Entwickler-Ecke

Multimedia / Grafik - Benötige bei einer OpenGL-Prozedur Hilfe.


Blue-Angel - Mi 24.03.04 18:44
Titel: Benötige bei einer OpenGL-Prozedur Hilfe.
Hey Leute,
ich bräuchte mal eure Hilfe und zwar wüsste ich gern was in folgender prozedur geschieht. :-)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
procedure TSonnensystem.SetDCPixelFormat(Handle: HDC);
var
  nPixelFormat: GLUint;
const
  pfd          : PIXELFORMATDESCRIPTOR = (
      nSize    : sizeof( PIXELFORMATDESCRIPTOR );
      nVersion : 1;
      dwFlags  : PFD_DRAW_TO_WINDOW
      or PFD_SUPPORT_OPENGL
      or PFD_DOUBLEBUFFER;
      iPixelType      : PFD_TYPE_RGBA;
      cColorBits      : 16;
      cRedBits        : 0;
      cRedShift       : 0;
      cGreenBits      : 0;
      cBlueBits       : 0;
      cBlueShift      : 0;
      cAlphaBits      : 0;
      cAlphaShift     : 0;
      cAccumBits      : 0;
      cAccumRedBits   : 0;
      cAccumGreenBits : 0;
      cAccumBlueBits  : 0;
      cAccumAlphaBits : 0;
      cDepthBits      : 16;
      cStencilBits    : 0;
      cAuxBuffers     : 0;
      iLayerType      : PFD_MAIN_PLANE;
      bReserved       : 0;
      dwLayerMask     : 0;
      dwVisibleMask   : 0;
      dwDamageMask    : 0
  );
begin
    nPixelFormat:=ChoosePixelFormat(h_DC, @pfd);
    SetpixelFormat(h_DC,nPixelFormat,@pfd);
end;


Danke schonmal für eure Hilfe :D

Moderiert von user profile iconPeter Lustig: Topic verschoben


Christian S. - Mi 24.03.04 18:50

Hallo und :welcome:!

Bitte ändere den Titel des Topics da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Delphi-Forum.de Richtlinien:

Richtlinien hat folgendes geschrieben:

1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]

Einfach oben bei deinem ersten Beitrag auf "Edit" klicken und den Titel ändern. Dank Dir!

Gruß Peter Lustig


Delete - Mi 24.03.04 19:42

Die Prozedur setzt dein OGL-Fenster, dessen Context wohl in "h_DC" steht, auf ein bestimmtes Format.
In dem Fall 16bit Farbtiefe mit 16bit Z-Buffer und Doublebuffered.

Wenn du die eingebettete Konstante veränderst, kann natürlich auch ein anderes Format gesetzt werden.
Allerdings macht die Prozedur überhaupt keine Fehlerbehandlung. Vermutlich weil man praktisch jedes Fenster auf dieses einfache Format setzen kann.
Wenn du kompliziertere Formate wählst, musst du zuerst überprüfen, ob nPixelFormat nicht 0 ist.
Das hieße nämlich, dass das angegebene Format nicht unterstützt wird.