获取简单的输入和渲染窗口(Hello Window)

Posted llllllvty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取简单的输入和渲染窗口(Hello Window)相关的知识,希望对你有一定的参考价值。

  我们可以使用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_BITGL_DEPTH_BUFFER_BITGL_STENCIL_BUFFER_BIT。

     glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);

   注意,除了glClear之外,我们还调用了glClearColor来设置清空屏幕所用的颜色。当调用glClear函数,清除颜色缓冲之后,整个颜色缓冲都会被填充为glClearColor里所设置的颜色。在这里,我们将屏幕设置为了类似黑板的深蓝绿色。其中glClearColor为状态设置函数,glClear为状态应用函数。

  产生的效果如下:

  技术分享图片

 

 

以上是关于获取简单的输入和渲染窗口(Hello Window)的主要内容,如果未能解决你的问题,请参考以下文章

tkinter_一个简单的窗口

解决QT 中使用SDL多次创建窗口不能渲染画面

解决QT 中使用SDL多次创建窗口不能渲染画面

在刚刚创建的窗口中为文本输入设置焦点

h5中performance.timing轻松获取网页各个数据 如dom加载时间 渲染时长 加载完触发时间...

jquery 中用$(window).height() 怎么获取的高度不是窗口的高度呢?