AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi OpenGL Alpha Kanal funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL Alpha Kanal funktioniert nicht

Ein Thema von Destroxi · begonnen am 5. Dez 2011
Antwort Antwort
Destroxi

Registriert seit: 29. Okt 2011
55 Beiträge
 
Delphi 7 Enterprise
 
#1

OpenGL Alpha Kanal funktioniert nicht

  Alt 5. Dez 2011, 21:14
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 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