我需要在 OpenGL 场景上绘制 2D 叠加层。OpenGL 用于 2D 动画,只是在正交投影中绘制带纹理的 2D 矩形,这是绘图代码:
//视口设置为整个窗口客户区 // m_fRectX, m_fRectY 在 OnSize 中计算并定义 // 用于图像绘制的子矩形 // m_nImageWidth, m_nImageHeight 是纹理尺寸 glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_TEXTURE_RECTANGLE_ARB); glBegin(GL_TRIANGLE_STRIP); glTexCoord2d(0.0f, (float)m_nImageHeight); glVertex2d(-m_fRectX, -m_fRectY); glTexCoord2d((float)m_nImageWidth, (float)m_nImageHeight); glVertex2d(+m_fRectX, -m_fRectY); glTexCoord2d(0.0f, 0.0f); glVertex2d(-m_fRectX, +m_fRectY); glTexCoord2d((float)m_nImageWidth, 0.0f); glVertex2d(+m_fRectX, +m_fRectY); glEnd(); 交换缓冲区(m_hDC);
我的要求:
性能至关重要。
允许使用特定于 Windows 的 API。
需要文本和图像叠加(图标样式)。
定义覆盖位置和大小的唯一因素是窗口客户区大小(在我的情况下等于 OpenGL 视口)。
什么技术适合这种情况?