Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi OpenGL Alpha Kanal funktioniert nicht (https://www.delphipraxis.net/164907-opengl-alpha-kanal-funktioniert-nicht.html)

Destroxi 5. Dez 2011 20:14

OpenGL Alpha Kanal funktioniert nicht
 
Hi,
ich habe das Problem, dass bei mir plötzlich der Alphakanal nicht mehr funktioniert.
Früher ging er jetzt nochmal probiert und schon geht er nicht mehr, sprich der Hintergrund der Textur bleibt schwarz.

Mein Quellcode:
Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
var
 i1, i2: Integer;
begin
 If not InitOpenGL then
 begin
  ErrorMsg('Konnte OpenGL nicht initialisieren!'#10'Error: '+IntToStr(GetLastError));
  Exit;
 end;
 DC := GetDC(Handle);
 RC := CreateRenderingContext(DC, [opDoubleBuffered], 32, 24, 0, 0, 0, 0);
 ActivateRenderingContext(DC, RC);

 glClearColor(0.3, 0.3, 1, 0);
 Application.OnIdle := glRender;

 try
  For i1 := Low(MarioTex) to High(MarioTex) do
  begin
   For i2 := Low(MarioTex[i1]) to High(MarioTex[i1]) do
    LoadTexture(GetCurrentDir+'\Textures\'+IntToStr(i1)+'\frame_'+GetFrameStr(i2)+'.jpg', MarioTex[1][i2], False);
  end;
 except
  on E: Exception do
   ErrorMsg('Konnte Textur['+IntToStr(i1)+']['+GetFrameStr(i2)+'] nicht laden!'#10'Fehler: ['+IntToStr(GetLastError)+']'+E.Message);
 end;
 AktFrame := Low(MarioTex);

 glEnable(GL_TEXTURE_2D);
 glEnable(GL_ALPHA_TEST);
 glAlphaFunc(GL_GREATER, 0.1);
Und zum anzeigen:
Delphi-Quellcode:
procedure TMainForm.glRender(Sender: TObject; var Done: Boolean);
begin
 glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
 glClearColor(0.3, 0.3, 1, 0);

 glSetSizes;

 glEnable(GL_ALPHA_TEST);
 glAlphaFunc(GL_GREATER, 0.1);
 glBindTexture(GL_TEXTURE_2D, MarioTex[1][AktFrame]);

 Player.Walk(1);
 glDraw(Player.pX, Player.pY, Player.pWidth, Player.pHeight);

 SwapBuffers(DC);

 Done := False;
end;
Was ist da falsch?
Ist der Fehler beim anzeigen oder beim laden?
Danke für jede Hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz