Hier:
Delphi-Quellcode:
procedure BeginStayOnTop;
begin
// Depth-Buffer auf Read-Only setzen
glDepthMask(ByteBool(False));
// Depth-Buffer deaktivieren
glDisable(GL_DEPTH_TEST);
end;
procedure EndStayOnTop;
begin
// und nun den Depth-Buffer reaktivieren
glEnable(GL_DEPTH_TEST);
glDepthMask(ByteBool(True));
end;
{ .............. }
if i = CurrentQuad then
begin
// Blendung einschalten
glEnable(GL_BLEND);
// Blend Funktion setzen
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glColor4f(1, 1, 1, 0.7);
// Hervorhebung aktivieren
BeginStayOnTop;
Win.IMGTexture := quadTexture[i];
Win.bRenderGUI := True;
end else
begin
// Original Farben setzen
glColor4f(1, 1, 1, 1);
// Blenden ausschalten
glDisable(GL_BLEND);
end;
glBegin( // .... hier das Quad Rendern
glEnd(); // das ende des Quad-Renderings
// Hervorhebung wieder deaktivieren (falls es an war)
if i = CurrentQuad then
EndStayOnTop;
Edit: hab dein
Edit nicht gesehen
Also der Code sollte eigentlich funktionieren. Ich weiß nicht, was du dir unter dem "StayOnTop" vorstellt: Der Code ist nur dafür da, um den Tiefentest zu deaktivieren. Wenn du jetzt das Quad noch größer machen willst, musst du das schon von Hand machen.