Witam,
chcę w moim frameworku zrobić prosty hud. Prosty prostokącik na górze ekranu, który wyświetlałby fps i kilka innych pierdółek. Mój kod dotyczący Huda wygląda tak:
void
Hud::draw() {
// włączamy Hud Mode
hudMode(true);
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glBegin(GL_QUADS);
glVertex3f(0.2, 0.0, 0.0);
glVertex3f(0.2, 0.4, 0.0);
glVertex3f(0.8, 0.4, 0.0);
glVertex3f(0.8, 0.0, 0.0);
glEnd();
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glLineWidth(2.0f);
glBegin(GL_LINE_LOOP);
glVertex2f(0.2, 0.0);
glVertex2f(0.2, 0.4);
glVertex2f(0.8, 0.4);
glVertex2f(0.8, 0.0);
glEnd();
__font -> print(0.0f, 0.0f, "aaabbb");
hudMode(false);
}
void
Hud::hudMode(bool flag) {
if (flag) {
int w, h;
__instance -> getWindowSize(w, h);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0, w, h, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glDisable(GL_DEPTH_TEST);
} else {
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
glEnable(GL_DEPTH_TEST);
}
}
font
to moja klasa, która opakowuje X'owe fonty, a instance
to wskaźnik na instancję klasy-matki, która jest singletonem.
Chodzi o to, że takie coś nie działa. Wywołuję Hud::draw bezpośrednio przed podmianą buforów. Nic się nie wyświetla, jakby huda w ogóle nie było. Proszę o pomoc i wskazówki, co może być źle. Jeśli by było potrzebne więcej kodu, to powiedzcie.
Pozdrawiam.