Ich schreibe mal so wie ich es gemacht habe
(Mehrere Farben habe ich gemacht, so per Tastendruck zum togglen)
Erst ein paar Sachen geboolt und geint ^^
bool Timbo8=false; //für die eine Farbe
int Timbo81=0; //zum zählen
bool Timbo9=false; //für dei andere
so. nun in glbegin:
(vorsicht es ist anders als bei subay)
if (Timbo8 && (mode != GL_TRIANGLES) && (mode != GL_TRIANGLE_STRIP) && (mode != GL_TRIANGLE_FAN) && (mode != GL_QUADS))
{
glDisable(GL_TEXTURE_2D);
glColor3f(1.f, 1.0f, 1.0f); //wird die Orginalfarbe der Wand herstellen
glEnable(GL_TEXTURE_2D);
}
if (Timbo9 && (mode != GL_TRIANGLES) && (mode != GL_TRIANGLE_STRIP) && (mode != GL_TRIANGLE_FAN) && (mode != GL_QUADS))
{
glDisable(GL_TEXTURE_2D);
glColor3f(1.f, 1.0f, 1.0f); //wird die Orginalfarbe der Wand herstellen
glEnable(GL_TEXTURE_2D);
}
so jetzt noch wie oben in glblendfunc
if (Timbo8)
{
glColor3f(0.4f, 0.4f, 1.0f); //hud blue, man kann auch (*orig_glColor3ub) nehmen, dann sind es rgb Farben
}
if (Timbo9)
{
glColor3f(1.0f, 0.0f, 0.0f); //hud red
}
und nun zum Abschluss der Togglebind in glviewport:
if(GetAsyncKeyState(VK_NUMPAD6)& (1==1)) //Colored Hud
{
if(Timbo81 == 1)
{
Timbo8=!Timbo8; //blue
Timbo81--;
}
else
{
Timbo9=!Timbo9; //red
Timbo81++;
}
}
So zur Erklärung, in glblendfunc wird die Farbe rot bzw blau dargestellt. Da ich damals nicht wusste wie ich es mache, dass es nur das Hud ist, welches die Fabre zugeteilt bekommt. Habe ich in glbegin noch den Teil eingefügt. Wenn man den weglässt, werden die Wände auch farbig.
Im Viewport wird jetzt wenn die Taste 6 auf dem Numblock gedrückt wird, geprüft ob Timbo81 gleich 1 ist, wenn ja dann wird Timbo8 auf true gesetzt und somit die Farbe blau dargestellt. Und wird dann auf 0 gesetzt. Wenn Timbo81 aber 0 ist, wird die Farbe rot dargestellt und Timbo81 auf 1 gesetzt.
Ps sorry für das miese Deutscht, hoffe ihr versteht es, aber nach 6 Bier denkt es sich schwer