Нет, не существует указанного способа сделать это. Делать это в OpenGL не так уж сложно.
В соответствии с вашими предыдущими вопросами, я предполагаю, что вы хотите сделать это в немедленном режиме, используя glBegin
- glEnd
последовательности.
В следующем я предполагаю, что width
- ширина окна. и height
его высота. Вы должны отключить проверку глубины и создать резервную копию текущих матриц на glPushMatrix
/ glPopMatrix
. Загрузите Идентификационную матрицу для матрицы вида модели и настройте ортографическую проекцию c, соответствующую размеру окна (glOrtho
):
cross_size = 100
glMatrixMode(GL_MODELVIEW)
glPushMatrix()
glLoadIdentity()
glMatrixMode(GL_PROJECTION)
glPushMatrix()
glLoadIdentity()
glOrtho(0, width, height, 0, -1, 1)
glDisable(GL_DEPTH_TEST)
glColor3ub(128, 128, 128) # color of the crosshair
glBegin(GL_LINES)
glVertex2f(width/2 - cross_size/2, height/2)
glVertex2f(width/2 + cross_size/2, height/2)
glVertex2f(width/2, height/2 - cross_size/2)
glVertex2f(width/2, height/2 + cross_size/2)
glEnd()
glEnable(GL_DEPTH_TEST)
glMatrixMode(GL_PROJECTION)
glPopMatrix()
glMatrixMode(GL_MODELVIEW)
glPopMatrix()
Убедитесь что двумерное текстурирование отключено (glDisable(GL_TEXTURE_2D)
)