獲取簡單的輸入和渲染視窗(Hello Window)
阿新 • • 發佈:2018-12-30
我們可以使用GLFW的glfwGetKey方法來為我們繪製的視窗獲取輸入,這個方法返回值表示當前這個按鍵是否被按下。程式碼如下:
void processInput(GLFWwindow *window) { if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) glfwSetWindowShouldClose(window, true); }
使用GLFW_KEY_ESCAPE表示ESC鍵位,其中ESCAPE可以被替換為其它鍵位。當ESC鍵沒有被按下的時候,glfwGetKey的返回值為 GLFW_RELAESE,然後我們使用glfwSetWindowShouldClose方法來關閉我們當前正在渲染的視窗
接著我們在每個渲染迴圈中呼叫processInput函式,程式碼如下:
while (!glfwWindowShouldClose(window)) { //Input ProcessInput(window); glfwSwapBuffers(window);//交換緩衝區 glfwPollEvents(); //更新事件 比如視窗的拖拽和移動 }
執行專案,此時我們可以用ESC鍵來關閉我們渲染的視窗
渲染
首先,我們渲染相關的程式碼放在渲染迴圈中,確保每次視窗進行渲染我們的程式碼都能起作用。除此以外,我們需要在每次渲染之前清空視窗,否則窗口裡面將顯示上次渲染的內容。這裡可以設定一個顏色來清空螢幕,我們可以通過呼叫glClear函式來清空螢幕的顏色緩衝,它接受一個緩衝位(Buffer Bit)來指定要清空的緩衝,可能的緩衝位有GL_COLOR_BUFFER_BIT ,GL_DEPTH_BUFFER_BIT和GL_STENCIL_BUFFER_BIT。
glClearColor(0.5f, 0.5f, 0.5f, 1.0f); glClear(GL_COLOR_BUFFER_BIT);
注意,除了glClear之外,我們還呼叫了glClearColor來設定清空螢幕所用的顏色。當呼叫glClear函式,清除顏色緩衝之後,整個顏色緩衝都會被填充為glClearColor裡所設定的顏色。在這裡,我們將螢幕設定為了類似黑板的深藍綠色。其中glClearColor為狀態設定函式,glClear為狀態應用函式。
產生的效果如下: