glXCreatePbuffer

Aus DGL Wiki
Wechseln zu: Navigation, Suche

glXCreatePbuffer

Name

glXCreatePbuffer - Erzeugt einen Off-Screen-Renderbereich.


Delphi-Spezifikation

function glXCreatePbuffer(dpy: PDisplay; config: GLXFBConfig; const attrib_list: PGLint): GLXPbuffer;


Parameter

dpy Gibt die Verbindung zum X-Server an
config Gibt die GLXFBConfig-Struktur mit den gewünschten Werten für das Fenster an
attrib_list Zeiger auf eine Liste von Attributwertpaaren, welche mit None oder nil beendet werden muss. Akzeptierte Attribute sind GLX_PBUFFER_WIDTH, GLX_PBUFFER_HEIGHT, GLX_PRESERVED_CONTENTS und GLX_LARGEST_PBUFFER.


Beschreibung

Die Funktion glXCreatePbuffer erzeugt einen Off-Screen-Renderbereich und gibt dessen XID zurück. Jeder GLX-Renderkontext, der mit der Konfiguration config erzeugt wurde, kann genutzt werden, um in dieses Fenster zu rendern. Mit der Funktion glXMakeContextCurrent kann der Renderbereich mit dem gewünschten GLX-Renderkontext verbunden werden.

GLXPbuffers enthalten die Farb- und Hilfspuffer, die durch config angegeben werden. Es ist möglich, Pixelpuffer mit Backbuffern zu erzeugen und diese mit glXSwapBuffers zu vertauschen.

Die in attrib_list akzeptieren Attribute für einen GLXPbuffer sind:

GLX_LARGEST_PBUFFER

Kann angegeben werden, um den größten, verfügbaren Pixelpuffer zu erhalten, falls die Allokation des gewünschten Pixelpuffers fehlschlagen würde. Die Breite bzw. die Höhe des angelegten Pixelpuffers wird niemals die für GLX_PBUFFER_WIDTH bzw. GLX_PBUFFER_HEIGHT angegebenen Werte übersteigen. Um die Abmessungen des erzeugten Pixelpuffers zu erhalten, kann man glXQueryDrawable nutzen. Der Vorgabewert ist False.

GLX_PBUFFER_HEIGHT

Gibt die Höhe des angefragten Pixelpuffers an. Der Vorgabewert ist 0.

GLX_PBUFFER_WIDTH

Gibt die Breite des angefragten Pixelpuffers an. Der Vorgabewert ist 0.

GLX_PRESERVED_CONTENTS

Kann angeben werden, um den Inhalt des Pixelpuffers zu erhalten, wenn ein Ressourcenkonflikt auftritt. Falls der Wert auf False gesetzt wird, kann der Inhalt des Pixelpuffers jederzeit verloren gehen. Falls der Wert auf True gesetzt wird oder in attrib_list nicht angegeben ist, so wird der Inhalt des Pixelpuffers beibehalten (höchstwahrscheinlich durch Kopieren des Inhaltes aus dem Framebuffer in den Systemhauptspeicher). In beiden Fällen kann der Klient (unter Nutzung von glXSelectEvent) Ereignisse abfragen, die generiert werden, wenn der Inhalt des Pixelpuffers beschädigt oder aber beibehalten wurde.


Hinweise

glXCreatePbuffer ist nur verfügbar, wenn die GLX-Version 1.3 oder höher ist.

Falls die GLX-Version 1.1 oder 1.0 ist, so muss die GL-Version 1.0 sein. Falls die GLX-Version 1.2 ist, so muss die GL-Version 1.1 sein. Falls die GLX-Version 1.3 ist, so muss die GL-Version 1.2 sein.

GLXPbuffer werden unter Nutzung von Framebufferressourcen angelegt; Anwendungen sollten darüber nachdenken, diese nach Möglichkeit zu deallokieren, wenn sie nicht (mehr) genutzt werden.


Fehlermeldungen

BadAlloc wird generiert, wenn nicht genügen Ressourcen vorhanden sind, um den angefragten GLXPbuffer anzulegen.

GLXBadFBConfig wird generiert, falls config keine gültige GLXFBConfig-Struktur ist.

BadMatch wird generiert, wenn config kein Rendern in Pixelpuffern unterstützt (z.B. wenn die Bitmaske GLX_DRAWABLE_TYPE nicht das Bit GLX_PBUFFER_BIT enthält).


Siehe auch

glXChooseFBConfig, glXMakeContextCurrent, glXSelectEvent