스케일을 디자인하고 있습니다. 그 안에는 숫자가 흰색으로 표시되어야합니다. 현재 아래 코드에서 "825"만 표시하려고합니다. 그 후 저울의 배경을 가진 회색 색상의 직사각형 상자를 그려 봅니다. 내가 실행하려고 할 때, 나는 볼 수 없습니다 (아래의 예에서, "825) 수를 확인 해달라고 만 회색 사각형 볼 수OpenGL : 직사각형을 그리면 텍스트가 표시되지 않습니다.
#define SPD_SCALE_TAPE_STATIC_LINE_COLOR_160 160 // Light GRAY
#define SPD_SCALE_TAPE_STATIC_LINE_COLOR_120 120 // Light GRAY
#define SPD_SCALE_TAPE_STATIC_LINE_COLOR_180 180 // Light GRAY
#define SPD_SCALE_TAPE_STATIC_LINE_COLOR_050 50 // Light GRAY
// Co-ordinates for GRAY box
#define SPD_SCALE_TAPE_GRAY_X1 -8.0
#define SPD_SCALE_TAPE_GRAY_Y1 0.5
#define SPD_SCALE_TAPE_GRAY_X2 -6.0
#define SPD_SCALE_TAPE_GRAY_Y2 6.3
// Method to draw the text with TIMES NEW ROMAN with FONT size = 24
void drawText_TIMES_24(float x, float y, float z, char* text)
{
int i_len = 0;
i_len = strlen(text);
if(i_len > 0)
{
glPushMatrix();
glRasterPos3f(x,y,z);
while(*text != '\0')
{
if(i_len == 2)
{
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, ' ');
i_len = 0;
}
else
{
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, *text);
text = text+1;
}
}
glPopMatrix();
}
}
void drawAir_Speed_ReadOut_Val(void)
{
char a[] = "825";
glColor3ub(0, 255, 0);
drawText_TIMES_24(-7.5, 3.0, 0.0, a);
}
// Method to draw Spd Scale Tape Gray Rect
void drawSpd_Scale_Tape_Gray_Rect(void)
{
glColor3ub(SPD_SCALE_TAPE_STATIC_LINE_COLOR_050, SPD_SCALE_TAPE_STATIC_LINE_COLOR_050, SPD_SCALE_TAPE_STATIC_LINE_COLOR_050);
// Draw TOP rectangle GRAY box
glRectf(SPD_SCALE_TAPE_GRAY_X1, SPD_SCALE_TAPE_GRAY_Y1, SPD_SCALE_TAPE_GRAY_X2, SPD_SCALE_TAPE_GRAY_Y2);
// Draw BOTTOM rectangle GRAY box
glRectf(-6.0, -0.5, -8.0, -6.3);
// Draw TOP triangle GRAY box
drawTriangle (-6.5, 0.5, -6.0, 0.0, -6.0, 0.5);
// Draw BOTTOM triangle GRAY box
drawTriangle (-6.5, -0.5, -6.0, 0.0, -6.0, -0.5);
}
void draw(void)
{
drawAir_Speed_ReadOut_Val();
drawSpd_Scale_Tape_Gray_Rect();
}
회색 직사각형이 텍스트를 덮어 쓰는 경우 일 수 있습니다. 당신은 어떤 텍스트라도 보았습니까? 그렇다면 통화 순서를 바꿉니다. –
@Ville 주석 처리하고 확인했습니다. 텍스트가 표시됩니다.하지만 회색 배경이 필요합니다. –
회색 사각형 뒤에 텍스트를 그립니다. 어쩌면 glDisable (GL_DEPTH_TEST)입니까? –