OpenGL鼠标交互glFlush()问题

本文探讨了一个编程问题,即使用glFlush()在鼠标右键清除OpenGL画布时遇到的问题。作者通过实例展示了如何在遇到glFlush()无法实现右键清除缓存时,改用glClearColor()和glClear()配合glFinish()的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能:鼠标左击个对焦点画出矩形,鼠标右键清除画布。
就这么简单的鼠标交互,鼠标右键清除缓存的时候,用glFLush()就是实现不了,调试发现就是堵在了if (button == GLUT_RIGHT_BUTTON){}里面。明明是照着书敲的代码,甚至朋友copy我的代码装了环境在他的电脑上跑程序,glFlush()都没问题。云调试到凌晨1点得出结论–我的电脑只能glClearColor(1.0, 1.0, 1.0, 0.0); glClear(GL_COLOR_BUFFER_BIT);glFinish();这样搭配着用
代码如下:

#include <gl/glut.h>
#include<gl/GLU.h>
#include<Windows.h>
#include<math.h>
#include<iostream>
using namespace std;
//鼠标互动
struct GLPoint {
   
	GLint x;
	GLint y;
};
//起始点
GLPoint window_point = {
    0,0 };

//函数重载
void drawPoint(GLint x,GLint y) {
   
	glBegin(GL_POINTS);
	glVertex2i(x, y);
	glEnd();
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值