小编kai*_*ken的帖子

如何在OpenGl中使用橡皮筋

我正试图在OpenGL和Visual Studio C++中寻找橡皮筋的方法.我遇到的问题是一些Win 7计算机(即我的老板')将不允许我读取或绘制到前缓冲区,从而直接杀死绘图.

glDrawBuffer( GL_FRONT );
glEnable(GL_COLOR_LOGIC_OP);
glLogicOp( GL_XOR );
glPolygonMode(GL_FRONT, GL_LINE);
glRecti(X0, Y0, X1, Y1);
X1 = X;
Y1 = Y;
glRecti(X0, Y0, X1, Y1);
*//Doesn't draw lines*
Run Code Online (Sandbox Code Playgroud)

或者将前缓冲区复制到后台缓冲区(重绘到它需要很长时间)调用swapbuffers绘图然后交换agian

glReadBuffer( GL_FRONT );
glDrawBuffer( GL_BACK );
glCopyPixels(0, 0, Width, Height, GL_COLOR);

glEnable(GL_COLOR_LOGIC_OP);
glLogicOp( GL_XOR );
glPolygonMode(GL_BACK, GL_LINE);
SwapBuffers(hdc);
glRecti(X0, Y0, X1, Y1);
X1 = X;
Y1 = Y;
glRecti(X0, Y0, X1, Y1);
SwapBuffers(hdc);   
*//Doesn't display original drawing*
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c++ opengl rubber-band

5
推荐指数
1
解决办法
2139
查看次数

标签 统计

c++ ×1

opengl ×1

rubber-band ×1