Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi OpenGl flackern (https://www.delphipraxis.net/25676-opengl-flackern.html)

Tabak 10. Jul 2004 11:34


OpenGl flackern
 
Hi Leute,
Mein erster Betrag ist gleich mal ein kleines Problem. Ich hab ein Programm gemacht - mit OpenGl, das Farbwerte in Höhen und Tiefen umwandelt. Allerdings stört das flackern sehr.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  dc : HDC;
  pf : integer;
  pfd : TPIXELFORMATDESCRIPTOR;
begin

  {OpenGL initialisieren}
  dc := GetDC(Handle);
  {PixelFormat setzen}
  pfd.nSize := sizeof(pfd);
  pfd.nVersion := 1;
  pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or 0;
  pfd.iPixelType := PFD_TYPE_RGBA;
  pfd.cColorBits := 32;
  pf := ChoosePixelFormat(dc, @pfd);
  SetPixelFormat(dc, pf, @pfd);
  rc := wglCreateContext(dc);
  wglMakeCurrent(dc, rc);

  glClearDepth(1.0);             // Depth Buffer Setup
  glEnable(GL_DEPTH_TEST);          
  glDepthFunc(GL_LEQUAL);          

end;
Könnt ihr mir vielleicht sagen, was ich da hinzufügen muss, damit das nicht mehr flimmert? - thx

[edit=sakura] [delphi]Tags Mfg, sakura[/edit]
Ich hab mich nochmal umgeschaut und das hier gefunden: PFD_DOUBLEBUFFER, aber wenn ich das bei pfd.dwFlags statt der 0 einsetze passiert überhaupt nichts mehr, obwohl es bei anderen codes zu funktionieren scheint... :gruebel:

Mr_T 12. Jul 2004 13:19

Re: OpenGl flackern
 
Doch doch, es muss wohl

PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;

heißen ... was da deine Null soll ist mir irgendwie unklar *g*

Wenn du hinterher nichts mehr siehst, denn Frage ich mich, wie du zeichnest ... wenn das über das OnIdle-Event oder aber einen Timer läuft sollte das eigentlich keine Probleme bereiten ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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