glDeleteObject: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(neuer Artikel)
 
(ARB entfernt; Der Kategorie SHADER_OBJECTS zugeordnet)
Zeile 1: Zeile 1:
= glDeleteObjectARB =
+
= glDeleteObject (glDeleteObjectARB)=
  
 
<br>
 
<br>
Zeile 7: Zeile 7:
 
<br>
 
<br>
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 +
procedure '''glDeleteObject'''(''Obj'': GLHandle);
 
  procedure '''glDeleteObjectARB'''(''Obj'': GLHandleARB);
 
  procedure '''glDeleteObjectARB'''(''Obj'': GLHandleARB);
  
Zeile 21: Zeile 22:
  
 
== Beschreibung ==  
 
== Beschreibung ==  
'''glDeleteObjectARB''' gibt den Speicher und das Handle auf das durch ''Obj'' übergebene OpenGL Objekt frei. (Das Handle ist danach ungültig)
+
'''glDeleteObject''' gibt den Speicher und das Handle auf das durch ''Obj'' übergebene OpenGL Objekt frei. (Das Handle ist danach ungültig)
Die Funktion macht damit den Effekt eines Aufrufs von [[glCreateShaderObjectARB]] oder [[glCreateProgramObjectARB]] rückgängig.
+
Die Funktion macht damit den Effekt eines Aufrufs von [[glCreateShaderObject]] oder [[glCreateProgramObject]] rückgängig.
  
  
 
Wenn ein freizugebendes Objekt an einem anderen Objekt hängt wird es markiert aber nicht freigegeben. Dies geschieht erst, wenn die Bindung an das andere Objekt gelöst wurde. Dies muss für jeden Rendering Kontext gemacht werden (Um das Objekt zu löschen muss es also überall dort losgelöst werden wo es vorher gebunden wurde.).<br>
 
Wenn ein freizugebendes Objekt an einem anderen Objekt hängt wird es markiert aber nicht freigegeben. Dies geschieht erst, wenn die Bindung an das andere Objekt gelöst wurde. Dies muss für jeden Rendering Kontext gemacht werden (Um das Objekt zu löschen muss es also überall dort losgelöst werden wo es vorher gebunden wurde.).<br>
 
Wenn ein Objekt als Teil des aktuellen Renderstatus benutzt wird, wird es markiert und erst dann freigegeben wenn es nicht mehr zum aktuellen Renderstatus auf allen Renderkontexten gehört. <br>
 
Wenn ein Objekt als Teil des aktuellen Renderstatus benutzt wird, wird es markiert und erst dann freigegeben wenn es nicht mehr zum aktuellen Renderstatus auf allen Renderkontexten gehört. <br>
Wenn einem freizugebenden Objekt andere Objekte angehängt wurden, werden diese Objekte abgekoppelt aber nicht freigegeben außer Sie wurden durch vorangehende Aufrufe von '''glDeleteObjectARB''' als freizugeben markiert.
+
Wenn einem freizugebenden Objekt andere Objekte angehängt wurden, werden diese Objekte abgekoppelt aber nicht freigegeben außer Sie wurden durch vorangehende Aufrufe von '''glDeleteObject''' als freizugeben markiert.
  
  
Um herauszufinden, ob ein Objekt zum Freigeben markiert wurde rufen Sie [[glGetObjectParameterARB]] mit den Argumenten ''Obj'' und '''GL_OBJECT_DELETE_STATUS_ARB''' auf.
+
Um herauszufinden, ob ein Objekt zum Freigeben markiert wurde rufen Sie [[glGetObjectParameter]] mit den Argumenten ''Obj'' und '''GL_OBJECT_DELETE_STATUS''' auf.
  
 
<b><i>
 
<b><i>
Zeile 39: Zeile 40:
 
To determine whether an object has been flagged for deletion, call glGetObjectParameterARB  with arguments obj  and GL_OBJECT_DELETE_STATUS_ARB.
 
To determine whether an object has been flagged for deletion, call glGetObjectParameterARB  with arguments obj  and GL_OBJECT_DELETE_STATUS_ARB.
 
</i></b>
 
</i></b>
 +
 +
Seit der OpenGL Version 2.0 ist '''glDeleteObject''' im Kern enthalten. Die alte ARB Bezeichnung war '''glDeleteObject'''.
  
 
<br>
 
<br>
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
 
'''GL_INVALID_VALUE''' wird generiert wenn ''Obj'' kein von OpenGL generiertes Objekthandle ist, oder wenn irgendein Handle in ''Obj'' nicht von OpenGL generiert wurde.<br>
 
'''GL_INVALID_VALUE''' wird generiert wenn ''Obj'' kein von OpenGL generiertes Objekthandle ist, oder wenn irgendein Handle in ''Obj'' nicht von OpenGL generiert wurde.<br>
'''GL_INVALID_OPERATION''' wird generiert wenn '''glDeleteObjectARB''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.  
+
'''GL_INVALID_OPERATION''' wird generiert wenn '''glDeleteObject''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.  
  
 
<br>
 
<br>
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glGetHandleARB]]  mit Token '''GL_PROGRAM_OBJECT_ARB''' <br>
+
[[glGetHandle]]  mit Token '''GL_PROGRAM_OBJECT''' <br>
[[glGetObjectParameterARB]] mit den Parametern ''Obj'' und '''GL_OBJECT_DELETE_STATUS_ARB'''
+
[[glGetObjectParameter]] mit den Parametern ''Obj'' und '''GL_OBJECT_DELETE_STATUS'''
  
 
<br>
 
<br>
  
 
== Siehe auch ==
 
== Siehe auch ==
[[glCreateProgramObjectARB]], [[glCreateShaderObjectARB]], [[glDetachObjectARB], [[glUseProgramObjectARB]]  
+
[[glCreateProgramObject]], [[glCreateShaderObject]], [[glDetachObject]], [[glUseProgramObject]]  
  
  
[[Kategorie:GL|DeleteObjectARB]]
+
[[Kategorie:GL|DeleteObject]]
 +
[[Kategorie:SHADER_OBJECTS|DeleteObject]]

Version vom 30. April 2005, 12:32 Uhr

glDeleteObject (glDeleteObjectARB)


Name

glDeleteObjectARB - Gibt ein von OpenGl verwaltetes Objekt frei.


Delphi-Spezifikation

procedure glDeleteObject(Obj: GLHandle);
procedure glDeleteObjectARB(Obj: GLHandleARB);


Parameter

Obj Ist das Handle des freizugebenden, von OpenGL verwalteten Objekts.


Beschreibung

glDeleteObject gibt den Speicher und das Handle auf das durch Obj übergebene OpenGL Objekt frei. (Das Handle ist danach ungültig) Die Funktion macht damit den Effekt eines Aufrufs von glCreateShaderObject oder glCreateProgramObject rückgängig.


Wenn ein freizugebendes Objekt an einem anderen Objekt hängt wird es markiert aber nicht freigegeben. Dies geschieht erst, wenn die Bindung an das andere Objekt gelöst wurde. Dies muss für jeden Rendering Kontext gemacht werden (Um das Objekt zu löschen muss es also überall dort losgelöst werden wo es vorher gebunden wurde.).
Wenn ein Objekt als Teil des aktuellen Renderstatus benutzt wird, wird es markiert und erst dann freigegeben wenn es nicht mehr zum aktuellen Renderstatus auf allen Renderkontexten gehört.
Wenn einem freizugebenden Objekt andere Objekte angehängt wurden, werden diese Objekte abgekoppelt aber nicht freigegeben außer Sie wurden durch vorangehende Aufrufe von glDeleteObject als freizugeben markiert.


Um herauszufinden, ob ein Objekt zum Freigeben markiert wurde rufen Sie glGetObjectParameter mit den Argumenten Obj und GL_OBJECT_DELETE_STATUS auf.

Orginaltext:

If an object to be deleted is attached to another object, it will be flagged for deletion, but it will not be deleted until it is no longer attached to any object, for any rendering context (i.e., it must be detached from wherever it was attached before it will be deleted). If an object is in use as part of current rendering state, it will be flagged for deletion, but it will not be deleted until it is no longer part of current state for any rendering context. If an object to be deleted has objects attached to it, those objects will be automatically detached but not deleted unless they have already been flagged for deletion by a previous call to glDeleteObjectARB.

To determine whether an object has been flagged for deletion, call glGetObjectParameterARB with arguments obj and GL_OBJECT_DELETE_STATUS_ARB.

Seit der OpenGL Version 2.0 ist glDeleteObject im Kern enthalten. Die alte ARB Bezeichnung war glDeleteObject.


Fehlermeldungen

GL_INVALID_VALUE wird generiert wenn Obj kein von OpenGL generiertes Objekthandle ist, oder wenn irgendein Handle in Obj nicht von OpenGL generiert wurde.
GL_INVALID_OPERATION wird generiert wenn glDeleteObject innerhalb eines glBegin-glEnd Blocks aufgerufen wird.


Zugehörige Wertrückgaben

glGetHandle mit Token GL_PROGRAM_OBJECT
glGetObjectParameter mit den Parametern Obj und GL_OBJECT_DELETE_STATUS


Siehe auch

glCreateProgramObject, glCreateShaderObject, glDetachObject, glUseProgramObject