首页 > 解决方案 > 是否可以在使用 glBitmap 绘制的位图上使用 glScalef?

问题描述

我正在制作一个使用 FreeType 2 和旧版 OpenGL 的文本渲染器。问题是,FreeType 2 的坐标系在左上角有 (0, 0),而 OpenGL 的坐标系是笛卡尔坐标系。这意味着我必须翻转位图。我希望 glScalef 可以与 glBitmap 一起使用,但它没有效果。谁能告诉我是否可以使用 glScalef 垂直翻转位图,或者如果不可能,请指向其他可以翻转位图的源(最好尽可能高效)?

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glScalef(1.0, -1.0, 1.0)
glBitmap(size_x, size_y, 0, 0, xadd, yadd, (GLubyte *) bitmap);

标签: openglopengl-compatfreetype2opengl-1.x

解决方案


您正在寻找的功能是glPixelZoom.

像素缩放因子不限于正值。负缩放因子反映了关于当前光栅位置的结果图像。

它肯定会对glDrawPixels. 有一个注释glBitmap说它的行为就像glDrawPixels但我找不到任何关于是否glPixelZoom适用于的明确声明glBitmap,所以 YMMV。


推荐阅读