我们可以使用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为状态应用函数。

  产生的效果如下:

  

转载于:https://www.cnblogs.com/llllllvty/p/10189851.html

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

  1. Android获取软键盘输入内容

    该功能的实现是通过Android辅助功能来进行实现的, 先上效果图:                                                      下面说一下如何使用Acc ...

  2. html判断用户名的合法性,javascript简单判断输入内容是否合法的方法

    本文实例讲述了javascript简单判断输入内容是否合法的方法.分享给大家供大家参考,具体如下: 关于检测用户输入的内容是否有非法的字符检测实现思路 1.定义合法的字符串(源字符串) 2.获取用户输 ...

  3. 如何获取Java用户输入?

    本文翻译自:How can I get the user input in Java? I attempted to create a calculator, but I can not get it ...

  4. UE4 输入系统详解一、 UE4如何获取win系统输入消息

    UE4 输入系统详解一. UE4如何获取win系统输入消息 UE4版本:4.253 按键输入 1.当我们按下键盘时输入时,FEngineLoop::Tick()里的每个tick执行的PumpMessa ...

  5. 【杂记】(input获取焦点失去焦点、获取input中输入的值、 键盘事件、js事件、Math 属性、手机自适应meta定义、 去掉input内置阴影、图片居中、去蓝色默认背景、点击去掉默认边框)

    1. input获取焦点失去焦点 input:focus{border:1px red solid:} 获取焦点 .focus()失去焦点.blur() 2. 获取input中输入的值 <inp ...

  6. Python中如何获取用户的输入,你一定要知道,学Python必看

    文章目录 欢迎关注公众号[Python开发实战],免费领取Python.PyCharm安装教程和Python学习电子书! 输入函数input 处理input输入内容 欢迎关注公众号[Python开发实 ...

  7. VTK:多重渲染窗口用法实战

    VTK:多重渲染窗口用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkCallbackCommand ...

  8. 无法渲染窗口发黄_基础c4d教程:OC渲染器的立体光照

    一.效果图 昨天才把C4DR19安装好,之前安装一直在说无法找到系统的什么dll,后面查了好多方法终于弄好了,今天我也是第一次使用OC渲染,所以可能调节就没有那么好,大家一起进步吧! 二.教程 1. ...

  9. c# 获取键盘的输入

    Console 类公开了三个方法获取键盘的输入,分别是Read .Readkey.ReadLine Read方法: 每次只能读入一个字符,如果没有字符可以读,返回-1,Read方法是不会马上读取的,读 ...

  10. Get Window Titles关键字——获取当前已经打开的浏览器窗口的所有Title

    Get Window Titles关键字:获取当前已经打开的浏览器窗口的所有Title:该关键字不需要任何参数 ============================================ ...

最新文章

  1. php post请求后端拿不到值_[精选] uniapp实现多端开发,与PHP是如何结合的
  2. 【Python基础】Python十大文件骚操作!!
  3. webstorm设置文件类型
  4. HTML左侧下拉列表,HTML中的下拉列表 select
  5. (转)OL2中设置鼠标的样式
  6. idea安装2019
  7. dram和nand哪个难生产_终于有人说清楚了什么是DRAM、什么是NAND Flash
  8. LitePal简单用法
  9. C语言_字符串转数字
  10. 人脸生成黑科技:实现人脸转变特效,让人脸自动戴墨镜
  11. 网络与信息安全应急处置预案
  12. AutoCAD启动缓慢
  13. T32 simulator
  14. 3G、4G移动数据网络业务流程
  15. anaconda linux环境变量,配置anaconda环境(linux)
  16. 网站都变成灰色的了,代码是怎么实现的呢?
  17. 树莓派串口通信编码_树莓派3B 串口通信超详细
  18. 虚拟机 服务器 断电,意外断电自动启动服务器和虚拟机的教程
  19. 强联通分量与双连通分量
  20. 安装【银河麒麟V10】linux系统

热门文章

  1. 端午节那晚,见了个小学时的同学!
  2. 新Attention | NAM,一种新的注意力计算方式,无需额外的参数
  3. 【超级综述】BERT、GPT-3们有了新名字:Percy Liang、李飞飞等发布200多页综述,阐述大模型机遇与风险...
  4. 【招聘】浙江大学杨杰课题组-博士后招聘-医学人工智能
  5. 关系抽取之远程监督算法:别再跟我提知识图谱(上篇)
  6. 【ESIM】论文阅读笔记:文本蕴含之ESIM
  7. 机器学习面试-Libsvm
  8. 【每日算法Day 65】你能顺利救出地下城里的公主吗?
  9. python——extend用新序列扩展其他列表
  10. 深度学习2.0-42.Auto-Encoders-无监督学习