glAddSwapHintRectWIN: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Hinweise)
K (Kleinere Korrekturen (u.a. Zeichensetzung))
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glAddSwapHintRectWIN =
 
= glAddSwapHintRectWIN =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
'''glAddSwapHintRectWIN''' - Spezifiziert einen Satz von rechteckigen Bereichen im Framebuffer die durch [[SwapBuffers]] kopiert werden sollen.
+
'''glAddSwapHintRectWIN''' - Spezifiziert einen Satz von rechteckigen Bereichen im Framebuffer, die durch [[SwapBuffers]] kopiert werden sollen.
 +
 
 +
 
  
<br>
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  procedure '''glAddSwapHintRectWIN'''(''x'': TGLint; ''y'': TGLint; ''width'': TGLsizei; ''height'': TGLsizei);
 
  procedure '''glAddSwapHintRectWIN'''(''x'': TGLint; ''y'': TGLint; ''width'': TGLsizei; ''height'': TGLsizei);
<br>
+
 
 +
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 20: Zeile 23:
 
|}
 
|}
  
<br>
 
  
== Beschreibung ==  
+
 
Mit der Funktion '''glAddSwapHintRectWIN''' können Sie Bereiche des Framebuffers auswählen, die beim nächsten Aufruf von [[SwapBuffers]] ausgegeben werden sollen. Durch dieses Vorgehen können Sie die Zeichengeschwindigkeit signifikant erhöhen, denn nur die Bereiche die Sie spezifiziert haben werden neu gezeichnet. Dies wirkt sich vorallem aus, wenn '''SwapBuffers''' in Software implementiert ist.
+
== Beschreibung ==
 +
Mit der Funktion '''glAddSwapHintRectWIN''' können Sie Bereiche des Framebuffers auswählen, die beim nächsten Aufruf von [[SwapBuffers]] ausgegeben werden sollen. Durch dieses Vorgehen können Sie die Zeichengeschwindigkeit signifikant erhöhen, denn nur die Bereiche, die Sie spezifiziert haben, werden neu gezeichnet. Dies wirkt sich vorallem aus, wenn [[SwapBuffers]] in Software implementiert ist.
 
Wenn mittels '''glAddSwapHintRectWIN''' kein Bereich gesetzt wurde, wird der gesamte [[Framebuffer]] angezeigt.
 
Wenn mittels '''glAddSwapHintRectWIN''' kein Bereich gesetzt wurde, wird der gesamte [[Framebuffer]] angezeigt.
  
Durch '''glAddSwapHintRectWIN''' fügen Sie ein neues Rechteck zum Markierungsbereich (org.: Hint Region) hinzu. Wenn das '''PFD_SWAP_COPY''' Flag der Pixelformatstruktur (siehe [[PIXELFORMATDISCRIPTOR]]) gesetzt ist, nutzt '''SwapBuffers''' diese Bereiche um den Kopiervorgang vom Backbuffer in den Frontbuffer einzuschränken (für Infos zu den Puffern siehe [[Doppelpufferung]]). Das '''PFD_SWAP_COPY''' Flag wird nicht von Ihnen - dem Programmierer - sondern von entsprechender Hardware gesetzt.
+
Durch '''glAddSwapHintRectWIN''' fügen Sie ein neues Rechteck zum Markierungsbereich (org.: Hint Region) hinzu. Wenn das '''PFD_SWAP_COPY'''-Flag der Pixelformatstruktur (siehe [[PIXELFORMATDESCRIPTOR]]) gesetzt ist, nutzt [[SwapBuffers]] diese Bereiche, um den Kopiervorgang vom Backbuffer in den Frontbuffer einzuschränken (für Infos zu den Puffern siehe [[Doppelpufferung]]). Das '''PFD_SWAP_COPY'''-Flag wird nicht von Ihnen - dem Programmierer - sondern von entsprechender Hardware gesetzt.
  
Die Markierungsbereiche werden nach jedem Aufruf von '''SwapBuffers''' geleert.
+
Die Markierungsbereiche werden nach jedem Aufruf von [[SwapBuffers]] geleert.
  
Bei einigen Hardwareconfiguartionen kann '''SwapBuffers''' die Markierungsbereiche ingnorieren und den gesammten '''Framebuffer''' austauschen. ('''SwapBuffers''' wird vom System bereitgestellt, nicht von einer Anwendung.)
+
Bei einigen Hardwareconfiguartionen kann [[SwapBuffers]] die Markierungsbereiche ignorieren und den gesammten '''Framebuffer''' austauschen. ('''SwapBuffers''' wird vom System bereitgestellt, nicht von einer Anwendung.)
  
OpenGl behält für jedes Fenster nur einen eigenen Markierungsbereich. Durch den Aufruf von '''glAddSwapHintRectWIN''' in einem Renderingkontext der an ein Fenster gebunden ist, wird das neue Markierungsrechteck mit dem bereits bestehenden Markierungsbereich kombiniert.
+
OpenGL behält für jedes Fenster nur einen eigenen Markierungsbereich. Durch den Aufruf von '''glAddSwapHintRectWIN''' in einem Renderkontext, der an ein Fenster gebunden ist, wird das neue Markierungsrechteck mit dem bereits bestehenden Markierungsbereich kombiniert.
 +
 
 +
 
 +
Benutzen Sie '''glAddSwapHintRectWIN''' so, dass sie nur die Bereiche neu zeichnen, in denen sich tatsächlich etwas ändert. (Das sind entweder Sachen, die sich bewegen oder Dinge aus dem letzten Frame, die gelöscht werden sollen.)
  
  
Benutzen Sie '''glAddSwapHintRectWIN''' so, dass sie nur die Bereiche neu zeichnen, in denen sich tatsächlich etwas ändert. (Das sind entweder Sachen die sich bewegen oder Dinge aus dem letzten Frame die gelöscht werden sollen.)
 
  
<br>
 
 
== Hinweise ==
 
== Hinweise ==
'''glAddSwapHintRectWIN''' ist eine Extensionfunktion die nicht Teil der standard OpenGL Bibiothek ist. Aber Sie ist Teil der '''GL_WIN_swap_hint''' Extension.
+
'''glAddSwapHintRectWIN''' ist eine Extensionfunktion, die nicht Teil des Kerns der [[OpenGL]]-Bibiothek ist. Aber Sie ist Teil der '''GL_WIN_swap_hint'''-Extension.
Um zu prüfen, ob Ihre Implementation von OpenGl '''glAddSwapHintRectWIN''' unterstützt, rufen sie [[glGetString]](GL_EXTENSIONS) auf. Wenn der zurückgelieferte String '''GL_WIN_swap_hint''' enthält wird '''glAddSwapHintRectWIN''' unterstützt.  
+
Um zu prüfen, ob Ihre Implementation von OpenGL '''glAddSwapHintRectWIN''' unterstützt, rufen sie [[glGetString]](GL_EXTENSIONS) auf. Wenn der zurückgelieferte String '''GL_WIN_swap_hint''' enthält, wird '''glAddSwapHintRectWIN''' unterstützt.  
Um die Adresse einer Extensionfunktion zu ermitteln rufen Sie [[wglGetProcAddress]] auf.
+
Um die Adresse einer Extensionfunktion zu ermitteln, rufen Sie [[wglGetProcAddress]] auf.
 +
 
  
<br>
 
  
 
== Siehe auch ==
 
== Siehe auch ==

Aktuelle Version vom 4. Juni 2008, 21:47 Uhr

glAddSwapHintRectWIN

Name

glAddSwapHintRectWIN - Spezifiziert einen Satz von rechteckigen Bereichen im Framebuffer, die durch SwapBuffers kopiert werden sollen.


Delphi-Spezifikation

procedure glAddSwapHintRectWIN(x: TGLint; y: TGLint; width: TGLsizei; height: TGLsizei);


Parameter

x,y Gibt die Position der linken unteren Ecke (in Fensterkoordinaten) des Markierungsrechtecks an.
width, height Gibt die Ausmaße des Markierungsrechtecks an.


Beschreibung

Mit der Funktion glAddSwapHintRectWIN können Sie Bereiche des Framebuffers auswählen, die beim nächsten Aufruf von SwapBuffers ausgegeben werden sollen. Durch dieses Vorgehen können Sie die Zeichengeschwindigkeit signifikant erhöhen, denn nur die Bereiche, die Sie spezifiziert haben, werden neu gezeichnet. Dies wirkt sich vorallem aus, wenn SwapBuffers in Software implementiert ist. Wenn mittels glAddSwapHintRectWIN kein Bereich gesetzt wurde, wird der gesamte Framebuffer angezeigt.

Durch glAddSwapHintRectWIN fügen Sie ein neues Rechteck zum Markierungsbereich (org.: Hint Region) hinzu. Wenn das PFD_SWAP_COPY-Flag der Pixelformatstruktur (siehe PIXELFORMATDESCRIPTOR) gesetzt ist, nutzt SwapBuffers diese Bereiche, um den Kopiervorgang vom Backbuffer in den Frontbuffer einzuschränken (für Infos zu den Puffern siehe Doppelpufferung). Das PFD_SWAP_COPY-Flag wird nicht von Ihnen - dem Programmierer - sondern von entsprechender Hardware gesetzt.

Die Markierungsbereiche werden nach jedem Aufruf von SwapBuffers geleert.

Bei einigen Hardwareconfiguartionen kann SwapBuffers die Markierungsbereiche ignorieren und den gesammten Framebuffer austauschen. (SwapBuffers wird vom System bereitgestellt, nicht von einer Anwendung.)

OpenGL behält für jedes Fenster nur einen eigenen Markierungsbereich. Durch den Aufruf von glAddSwapHintRectWIN in einem Renderkontext, der an ein Fenster gebunden ist, wird das neue Markierungsrechteck mit dem bereits bestehenden Markierungsbereich kombiniert.


Benutzen Sie glAddSwapHintRectWIN so, dass sie nur die Bereiche neu zeichnen, in denen sich tatsächlich etwas ändert. (Das sind entweder Sachen, die sich bewegen oder Dinge aus dem letzten Frame, die gelöscht werden sollen.)


Hinweise

glAddSwapHintRectWIN ist eine Extensionfunktion, die nicht Teil des Kerns der OpenGL-Bibiothek ist. Aber Sie ist Teil der GL_WIN_swap_hint-Extension. Um zu prüfen, ob Ihre Implementation von OpenGL glAddSwapHintRectWIN unterstützt, rufen sie glGetString(GL_EXTENSIONS) auf. Wenn der zurückgelieferte String GL_WIN_swap_hint enthält, wird glAddSwapHintRectWIN unterstützt. Um die Adresse einer Extensionfunktion zu ermitteln, rufen Sie wglGetProcAddress auf.


Siehe auch

glGetString, PIXELFORMATDESCRIPTOR, SwapBuffers, wglGetProcAddress