glXMakeCurrent

Aus DGL Wiki
Version vom 2. Februar 2005, 16:31 Uhr von Flash (Diskussion | Beiträge) ()

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Hinweis: Dieser Artikel ist noch unvollständig.
(Mehr Informationen/weitere Artikel)

{{{1}}}

Incomplete.jpg

glXMakeCurrent


Name

glXMakeCurrent - verbindet einen GLX-Renderingcontext mit einem Fenster oder einer GLX-PixMap.


Delphi-Spezifikation

function glXMakeCurrent(dpy : PDisplay; drawable : GLXDrawable; ctx : GLXContext): glboolean


Parameter

dpy Bestimmt die Verbindung zum X-Server.
drawable Spezifiziert eine GLX-Zeichenfläche. Dies muss entweder die ID eines X-Window sein oder die ID einer GLX-PixMap.
ctx Bestimmt den GLX-Renderingkontext der die Zeichenfläche drawable benutzen soll.


Beschreibung

glXMakeCurrent does two things: It makes ctx the current GLX rendering context of the calling thread, replacing the previously current context if there was one, and it attaches ctx to a GLX drawable, either a window or a GLX pixmap. As a result of these two actions, subsequent GL rendering calls use rendering context ctx to modify GLX drawable drawable. Because glXMakeCurrent always replaces the current rendering context with ctx, there can be only one current context per thread.

Pending commands to the previous context, if any, are flushed before it is released.

The first time ctx is made current to any thread, its viewport is set to the full size of drawable. Subsequent calls by any thread to glXMakeCurrent with ctx have no effect on its viewport.

To release the current context without assigning a new one, call glXMakeCurrent with drawable set None and ctx set to NULL

glXMakeCurrent returns True if it is successful, False otherwise. If False is returned, the previously current rendering context and drawable (if any) remain unchanged.


Hinweise

Ein Prozess ist eine Einzelausführungsumgebung (engl: single-execution enviroment) welche in einem eigenen Adressraum eingebettet ist. Dabei bestehen Prozesse mindestens aus einem, durchaus aber auch mehreren Threads.

Ein Thread ist ein "Subprozesse" (aus ihnen bestehen ja Prozesse). Die Threads eines Prozesses teilen sich den selben Adressraum, bezitzen aber jeweils eigene Befehlszeiger (engl: program counters/ instruction pointer; Zeiger auf den nächsten auszuführenden Befehl), Stacks, sowie weitere zugehörige globale Daten (related global data). Wenn in der Subprozessgruppe eines Prozesses nur ein Thread enthalten ist, dann ist dieser identisch mit dem Prozess selbst.



Fehlermeldungen

BadMatch wird generiert wenn drawable nicht mit dem selben X-Screen und Visual erstellt wurde wie ctx. Dieser Fehler wird auch generiert wenn drawable NIL und ctx nicht NIL war.
BadAccess wird generiert wenn ctx bereits der aktuelle Renderingkontext eines anderen Threads war, währen glXMakeCurrent aufgerufen wurde.
GLXBadDrawable wird generiert wenn drawable keine gültige GLX-Zeichenfläche ist.
GLXBadContext wird generiert wenn ctx kein gültiger GLX-Renderingkontext ist.
GLXBadContextState wird generiert wenn glXMakeCurrent innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
GLXBadContextState wird auch generiert wenn der aktuelle Renderingkontext des rufenden Threads den GL-Renderstatus GL_FEEDBACK oder GL_SELECT hat.
GLXBadCurrentWindow wird generiert wenn für den vorhergehenden Renderingkontext OpenGL-Befehle noch abgearbeitet werden müssen, die aktuelle Zeichenfläche aber ein nicht mehr gültiges Fenster ist.
BadAlloc kann generiert werden wenn if the server has delayed allocation of ancillary buffers until glXMakeCurrent is called, only to find that it has insufficient resources to complete the allocation.


Siehe auch

glXCreateContext, glXCreateGLXPixmap