OpenGL:如何裁剪 2D 区域以避免将带有 GlutBitmap 的文本打印出该区域?
Posted
技术标签:
【中文标题】OpenGL:如何裁剪 2D 区域以避免将带有 GlutBitmap 的文本打印出该区域?【英文标题】:OpenGL: how to clip a 2D area to avoid text with GlutBitmap to be printed out of this area? 【发布时间】:2015-09-30 20:21:12 【问题描述】:如何在我的应用程序中定义一些可以打印文本的区域,而不会溢出?
int printText(char *myChar, int color, double x, double y, double z)
call_color(color);
int end_of_char=strlen(myChar);
glRasterPos3d(x,y,-1);
for(int i=0;i<end_of_char;i++)
glutBitmapCharacter(GLUT_BITMAP_8_BY_13,myChar[i]);
return(0);
样本:
void window_function()
// printing things before on all screen
// define clipping aera
char tem[64];
sprintf(tem,"mouse x: %.4f mouse y: %.4f",mouse_ox,mouse_oy);
printText(tem,COL_LIGHT_GREY,x+0.005,y-0.085,1.0);
//re opening the clipping aera to the complete screen
//printing other stuff
【问题讨论】:
你可以使用stencil buffer。 或者您可以使用glViewport
限制可绘制区域。但请注意,您还必须调整投影矩阵。
好的,非常感谢 处理 Windows 自制创建的最佳方法是什么,我需要在 x 和 y 的角度内移动?
【参考方案1】:
glScissor()
+ glEnable(GL_SCISSOR_TEST)
.
【讨论】:
以上是关于OpenGL:如何裁剪 2D 区域以避免将带有 GlutBitmap 的文本打印出该区域?的主要内容,如果未能解决你的问题,请参考以下文章