Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Apr 16, 2024 19:18

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 215 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6 ... 15  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 19, 2003 11:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wer an den Anfang des Threads guckt, wird sicherlich merken das es seit heute wieder ne aktualisierte Version unseres Headers gibt. Wie dort steht gab es mit einigen Corefunktionen Probleme (sie zeigten auf NIL), während ihre ARB/EXT-Pendants ohne Murren funktionierten. So wollte glTexImage3D nicht, während glTexImage3DEXT ohne Probleme seinen Dienst verrichtete.
Das wurde gefixt und der Header darf damit auch als final und komplett funktionierend betrachtet werden.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 19, 2003 12:19 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Folgende Core Konstanten und Routinen sollten noch hinzugefügt werden (die ARB losen Varianten von Buffer Objects und Occlusion Queries), um der OpenGL 1.5 Spezifikation zu entsprechen (die es allerdings in dieser Form ohnehin noch in keinem mir bekannten Treiber gibt).

Ich habe den Code aus Bequemlichkeit einfach gepostet, sollte es zu störend wirken, dann entfernt ihn bitte.

Code:
  1. {$IFDEF GL_15}
  2.   // ********** 1.5 constants **********
  3.   GL_ARRAY_BUFFER                                   = $8892;   // GL 1.5
  4.   GL_ELEMENT_ARRAY_BUFFER                           = $8893;   // GL 1.5
  5.   GL_ARRAY_BUFFER_BINDING                           = $8894;   // GL 1.5
  6.   GL_ELEMENT_ARRAY_BUFFER_BINDING                   = $8895;   // GL 1.5
  7.   GL_VERTEX_ARRAY_BUFFER_BINDING                    = $8896;   // GL 1.5
  8.   GL_NORMAL_ARRAY_BUFFER_BINDING                    = $8897;   // GL 1.5
  9.   GL_COLOR_ARRAY_BUFFER_BINDING                     = $8898;   // GL 1.5
  10.   GL_INDEX_ARRAY_BUFFER_BINDING                     = $8899;   // GL 1.5
  11.   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING             = $889A;   // GL 1.5
  12.   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING                 = $889B;   // GL 1.5
  13.   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING           = $889C;   // GL 1.5
  14.   GL_FOG_COORD_ARRAY_BUFFER_BINDING                 = $889D;   // GL 1.5
  15.   GL_WEIGHT_ARRAY_BUFFER_BINDING                    = $889E;   // GL 1.5
  16.   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING             = $889F;   // GL 1.5
  17.   GL_STREAM_DRAW                                    = $88E0;   // GL 1.5
  18.   GL_STREAM_READ                                    = $88E1;   // GL 1.5
  19.   GL_STREAM_COPY                                    = $88E2;   // GL 1.5
  20.   GL_STATIC_DRAW                                    = $88E4;   // GL 1.5
  21.   GL_STATIC_READ                                    = $88E5;   // GL 1.5
  22.   GL_STATIC_COPY                                    = $88E6;   // GL 1.5
  23.   GL_DYNAMIC_DRAW                                   = $88E8;   // GL 1.5
  24.   GL_DYNAMIC_READ                                   = $88E9;   // GL 1.5
  25.   GL_DYNAMIC_COPY                                   = $88EA;   // GL 1.5
  26.   GL_READ_ONLY                                      = $88B8;   // GL 1.5
  27.   GL_WRITE_ONLY                                     = $88B9;   // GL 1.5
  28.   GL_READ_WRITE                                     = $88BA;   // GL 1.5
  29.   GL_BUFFER_SIZE                                    = $8764;   // GL 1.5
  30.   GL_BUFFER_USAGE                                   = $8765;   // GL 1.5
  31.   GL_BUFFER_ACCESS                                  = $88BB;   // GL 1.5
  32.   GL_BUFFER_MAPPED                                  = $88BC;   // GL 1.5
  33.   GL_BUFFER_MAP_POINTER                             = $88BD;   // GL 1.5
  34.  
  35.   GL_SAMPLES_PASSED                                 = $8914;   // GL 1.5
  36.   GL_QUERY_COUNTER_BITS                             = $8864;   // GL 1.5
  37.   GL_CURRENT_QUERY                                  = $8865;   // GL 1.5
  38.   GL_QUERY_RESULT                                   = $8866;   // GL 1.5
  39.   GL_QUERY_RESULT_AVAILABLE                         = $8867;   // GL 1.5
  40. {$ENDIF}
  41.  


und

Code:
  1. {$IFDEF GL_15}
  2.   glBindBuffer: procedure(target: GLenum; buffer: GLuint); stdcall;
  3.   glDeleteBuffers: procedure(n: GLsizei; buffer: PGLuint); stdcall;
  4.   glGenBuffers: procedure(n: GLsizei; buffer: PGLuint); stdcall;
  5.   glIsBuffer: function(buffer: GLuint): GLboolean; stdcall;
  6.   glBufferData: procedure(target: GLenum; size: GLsizei; data: Pointer; usage: GLenum); stdcall;
  7.   glBufferSubData: procedure(target: GLenum; offset: GLsizei; size: GLsizei; data: Pointer); stdcall;
  8.   glGetBufferSubData: procedure(target: GLenum; offset: GLsizei; size: GLsizei; data: Pointer); stdcall;
  9.   glMapBuffer: function(target: GLenum; access: GLenum): Pointer; stdcall;
  10.   glUnmapBuffer: function(target: GLenum): GLboolean; stdcall;
  11.   glGetBufferParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  12.   glGetBufferPointerv: procedure(target: GLenum; pname: GLenum; param: PPointer); stdcall;
  13.  
  14.   glGenQueries:procedure(n:GLsizei;ids:PGLuint);stdcall;
  15.   glDeleteQueries:procedure(n:GLsizei;const ids:PGLuint);stdcall;
  16.   glIsQuery:function(id:GLuint):boolean;stdcall;
  17.   glBeginQuery:procedure(target:GLenum;id:GLuint);stdcall;
  18.   glEndQuery:procedure(target:GLenum);stdcall;
  19.   glGetQueryiv:procedure(target,pname:GLenum;params:PGLint);stdcall;
  20.   glGetQueryObjectiv:procedure(id:GLuint;pname:GLenum;params:PGLint);stdcall;
  21.   glGetQueryObjectuiv:procedure(id:GLuint;pname:GLenum;params:PGLuint);stdcall;
  22. {$ENDIF}
  23.  

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 19, 2003 12:26 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Außerdem sind laut Spezifikation folgende Konstanten veraltet:

Code:
  1.  
  2. // deprecated
  3.   GL_SOURCE0_RGB = GL_SRC0_RGB;
  4.   GL_SOURCE1_RGB = GL_SRC1_RGB;
  5.   GL_SOURCE2_RGB = GL_SRC2_RGB;
  6.   GL_SOURCE0_ALPHA = GL_SRC0_ALPHA;
  7.   GL_SOURCE1_ALPHA = GL_SRC1_ALPHA;
  8.   GL_SOURCE2_ALPHA = GL_SRC2_ALPHA;
  9.  


und

Code:
  1.   // deprecated
  2.   GL_FOG_COORDINATE_SOURCE = GL_FOG_COORD_SOURCE;
  3.   GL_FOG_COORDINATE = GL_FOG_COORD;
  4.   GL_CURRENT_FOG_COORDINATE = GL_CURRENT_FOG_COORD;
  5.   GL_FOG_COORDINATE_ARRAY_TYPE = GL_FOG_COORD_ARRAY_TYPE;
  6.   GL_FOG_COORDINATE_ARRAY_STRIDE = GL_FOG_COORD_ARRAY_STRIDE;
  7.   GL_FOG_COORDINATE_ARRAY_POINTER = GL_FOG_COORD_ARRAY_POINTER;
  8.   GL_FOG_COORDINATE_ARRAY = GL_FOG_COORD_ARRAY;
  9.  


das heißt die _SOURCEx_ und FOG_COORDINATE sollten in _SRCx und FOG_COORD umbenannt werden, aus Kompatibilitätsgründen sollten dann noch die obigen Zeilen eingefügt werden.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 19, 2003 13:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Thx für die beiden Codeschnippsel. Werd die dann spätestens beim nächsten Update einfügen. Bleibt jetzt nur noch abzuwarten wann ATI endlich komplette GL1.5-Treiber bringt damit ich die neuen Extensions auch richtig testen kann.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 30, 2003 20:20 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
dglOpenGL enthält noch einen kleinen Bug beim Laden der OpenGL Treiber:

Code:
  1. function InitOpenGL(LibName: String = 'OpenGL32.dll';GLULibName : String = 'GLU32.dll'): Boolean;


wird in den ReadImplementationProperties ohne Parameter aufgerufen - was zur Folge hat, dass zu diesem Zeitpunkt auf jeden Fall wieder die Windows OpenGL Treiber geladen werden.

Richtigerweise könnte man z.B. LibName und GLULibName bei jedem Aufruf von InitOpenGL in globalen Variablen speichern und in ReadImplementationProperties folgenden Code ändern:

Code:
  1. Buffer := glGetString(GL_EXTENSIONS);
  2. if (InitOpenGL(LastLibName, LastGLULibName) then
  3.  begin
  4.  

Beim Aufruf von ReadImplementationProperties müssen die OpenGL Treiber ja bereits mindestens einmal geladen worden sein - sonst hätte man auch kein Pixelformat setzen können.

Außerdem werden, wie von Eric angemerkt, geladene DLLs nicht freigegeben - die Variablen LibHandle und GLULibHandle sollten mit 0 vorinitialisiert werden, der Code in InitOpenGL folgendermaßen geändert:

Code:
  1.  
  2. if LibHandle<>0 then FreeLibrary(LibHandle);
  3. if GLULibHandle<>0 then FreeLibrary(GLULibHandle);
  4. LibHandle    := LoadLibrary(PChar(LibName));
  5. GLULibHandle := LoadLibrary(PChar(GLULibName));
  6.  


Man könnte die Bibliotheken auch nur dann laden, wenn LibHandle und GLULibHandle <> 0 sind - davon würde ich aber abraten, da ja jemand auch im laufenden Betrieb eines Programmes den OpenGL Treiber wechseln könnte (in Carad ist dies zum Beispiel möglich) - und wenn der Wechsel oder die Initialisierung des Treibers einige Millisekunden länger dauern, ist das wirklich vollkommen egal.

Wenn das auch noch geändert wird, sollte dglOpenGL eigentlich fehlerfrei sein, evtl. könnte man es noch aus ästhetischen Gründen durch einen Codeformatierer durchlaufen lassen (in dieser Hinsicht bin ich vielleicht etwas pingelig - aber ich habe gerne ein einheitliches Bild).

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 30, 2003 23:08 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Erstmal danke für die Hinweise. Wollte diese auch eben implementieren, aber geklappt hat nur die Sache mit den Lib-Namen. Das FreeLibrary macht momentan Probleme, da InitOpenGL ja bei der Programminitialisierung quasi zweimal aufgerufen wird (zweites mal in ReadImplementationProperties) und beim zweiten Mal wird mir das dann wohl bestraft, weshalb da evtl. was umgestellt werden muss. Und die Sache mit der Codeformatierung ist auch am Jedi-Code-Formater selbst gescheitert. Entweder bringt er nen Nesting-Fehler, oder spuckt mir nur ne ~90KByte große Datei aus...mal sehen was sich da machen lässt. Die von dir angesprochenen Sachen werden aber auf jeden Fall ins nächste Update mit einfliessen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 01:34 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Am besten kopierst du außer den wgl und den glu Routinen sämtliche Einsprungpunkte in die ReadExtensions - genaugenommen gehören sie da auch hin, da ein OpenGL Treiber sogar pro Pixelformat unterschiedliche OpenGL Versionen zur Verfügung stellen könnte.

Code:
  1. wglGetProcAddress := GetProcAddress(LibHandle, 'wglGetProcAddress');
  2.  
  3. if (LibHandle <> 0) then
  4.  begin
  5.  // window support routines (WGL) ==============================================
  6.  wglCopyContext              := glProcedure('wglCopyContext');
  7.  wglCreateLayerContext       := glProcedure('wglCreateLayerContext');
  8.  wglCreateContext            := glProcedure('wglCreateContext');
  9.  wglDeleteContext            := glProcedure('wglDeleteContext');
  10.  wglDescribeLayerPlane       := glProcedure('wglDescribeLayerPlane');
  11.  wglGetCurrentContext        := glProcedure('wglGetCurrentContext');
  12.  wglGetCurrentDC             := glProcedure('wglGetCurrentDC');
  13.  wglGetLayerPaletteEntries   := glProcedure('wglGetLayerPaletteEntries');
  14.  wglMakeCurrent              := glProcedure('wglMakeCurrent');
  15.  wglRealizeLayerPalette      := glProcedure('wglRealizeLayerPalette');
  16.  wglSetLayerPaletteEntries   := glProcedure('wglSetLayerPaletteEntries');
  17.  wglShareLists               := glProcedure('wglShareLists');
  18.  wglSwapLayerBuffers         := glProcedure('wglSwapLayerBuffers');
  19.  wglSwapMultipleBuffers      := glProcedure('wglSwapMultipleBuffers');
  20.  wglUseFontBitmapsA          := glProcedure('wglUseFontBitmapsA');
  21.  wglUseFontOutlinesA         := glProcedure('wglUseFontOutlinesA');
  22.  wglUseFontBitmapsW          := glProcedure('wglUseFontBitmapsW');
  23.  wglUseFontOutlinesW         := glProcedure('wglUseFontOutlinesW');
  24.  wglUseFontBitmaps           := glProcedure('wglUseFontBitmapsA');
  25.  wglUseFontOutlines          := glProcedure('wglUseFontOutlinesA');
  26.  
  27.  Result := True;
  28.  end;
  29.  


dies sind die einzigen OpenGL Routinen, die tatsächlich von InitOpenGL gesetzt werden sollten (bei glu ist es egal - das ist ohnehin ein reine Softwaresache) - wenn ich den Rest in die ReadExtensions rüberkopiere, klappts bei mir jedenfalls mit der Freigabe der DLL Handles - und gleichzeitig ist sichergestellt, dass tatsächlich alle Einsprungpunkte zur selben Zeit (also nicht etwa mit aus zu unterschiedlichen Zeitpunkten geladenen - oder gar verschiedenen - OpenGL DLLs) geladen werden.

Die wgl Routinen hingegen müssen von InitOpenGL geladen werden - und die verändern sich aber auch nicht, da über diese das Pixelformat erst eingestellt wird.

In ReadImplementationProperties ersetzt du dann

if InitOpenGL...

durch

if (LibHandle<>0) then

- InitOpenGL lädt ja jetzt keine neuen Routinen mehr, macht also keinen Sinn die selben DLLs zu entladen und wieder zu laden. Damit kannst du dir jetzt auch LastLibName und LastGLULibName schenken, da InitOpenGL jetzt nicht mehr von ReadImplementationProperties aufgerufen wird.

ActivateRenderingContext solltest du hingegen folgendermaßen umschreiben:

Zitat:
procedure ActivateRenderingContext(DC : HDC;RC : HGLRC);
begin
Assert((DC <> 0), 'DC must not be 0');
Assert((RC <> 0), 'RC must not be 0');
wglMakeCurrent(DC, RC);
ReadExtensions;
ReadImplementationProperties;
end;


Könnte ja sein - wenn auch unwahrscheinlich, dass jemand gleichzeitig einen sowohl einen OpenGL Kontext in ein Bitmap offen hat (Unter Windows ist das dann immer Version 1.1), als auch einen hardwareunterstützten Kontext auf den Bildschirm - in diesem Fall ändern sich die Einsprungpunkte beim Umschalten, und es ist tatsächlich notwending sie nochmals auszulesen.

Mit diesen Änderungen werden die OpenGL DLLs nur mehr einmal geladen (bei InitOpenGL) was auch recht angenehm sein dürfte.

Ich schicke dir die geänderte Unit gleich mit, ich hab's schon ausprobiert, und bei mir funktioniert es sowohl mit den Standard OpenGL Treibern als auch mit MesaGL (Bei MesaGL muss man noch Get/Set/Choose/DescribePixelFormat durch Zeiger auf wglGet/Set/Choose/DescribePixelFormat ersetzen - das ist aber MesaGL spezifisch, dafür kann dglOpenGL nichts).


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 10:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Sowas nenn ich Feedback, und dann noch gleich mit ner fertigen Problemlösung! Hab den Header in einigen Projekten ohne Probleme getestet, noch deinen Namen und die Änderungen reingeschrieben und ihn so in die Downloadsektion hochgeladen.
Also nochmals danke für die Hilfe.

Edit : Um evtl. "Problemen" die bei den Leuten auftreten können entgegenzuwirken hab ich in den Download des GL1.5-Headers nun auch eine brauchbare Readme mit passenden Links und Hinweisen gepackt.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 23:06 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Also das freut mich jetzt wirklich.
Die Readme schaut soweit gut aus, ich hab dann gleich die Gelegenheit beim Schopf gepackt, das angegebene Template so umzuschreiben, dass es die MesaGL Treiber verwendet. Vielleicht kann man das auch hier irgendwo hochladen, dann gibt es auch für die Besitzer ältester Windows 95 und NT-Systemen ohne Administratorrechte keine faulen Ausreden mehr, auf OpenGL zu verzichten :wink: .

Hier der Link darauf:
http://mcad.delphigl.com/opengl15_vcl_template.zip

(die DLLs sind aus den neuesten Sourcen kompiliert und gleich mit dabei, da es gar nicht so einfach ist, fertig kompilierte aktuelle Versionen davon aufzutreiben).

P.S.: Vielleicht könntest du beim nächsten Update meine Homepage auf http://www.basegraph.com ändern. Die ist zwar eigentlich noch nicht so wirklich öffentlich, aber wenigstens nicht so peinlich wie die ständigen Werbeeinblendungen des Redirectors der .cjb.net Addresse.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 25, 2003 23:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Bei der Nutzung von glSlang habe ich festgestellt, dass es aufgrund dieser Deklarationen in unserem Header :

Code:
  1.   PPGLCharARB  = ^PGLCharARB;
  2.   PGLCharARB   = ^GLCharARB;
  3.   GLCharARB    = Char;


Nicht einfach möglich war, über z.B. folgendes Kommando an die Position eines Uniformparameters im Shader zu kommen :

Code:
  1. glGetUniformLocationARB(ProgramObject, PChar('texSamplerTMU0'))


Fehlergrund war logischerweise eine ungültige Typenunwandlung.

Hab dann die obigen Deklarationen so abgeändert, und auch entsprechend in den Funktionen die Parameter verändert :
Code:
  1.   PPGLCharARB  = ^PChar;
  2.   PGLCharARB   = PChar;
  3.   GLCharARB    = Char;


Woraufhin obiges Kommando einwandfrei ohne herumgewrappte Funktion aufrufbar ist. Habe die "neue" Version auch bereits hochgeladen. Wer also glSlang nutzen will (und in wenigen Tagen werdet ihr dazu einen driftigen Grund haen ;) ) sollte sich den Header erneut runterladen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 28, 2004 12:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Nachdem ich gestern per E-Mail auf nen kleinen Faux-Pas im Header aufmerksam gemacht wurde, hab ich heute die aktualisierte Version hochgeladen.
Der Fehler lag in Zeile 8466, wo die GL_ARB_Shader_Objects-Extension aufgrund eines überflüssigen Leerzeichens nicht korrekt geladen werden konnte :
Code:
  1. GL_ARB_shader_objects := CheckExtension('GL_ARB_shader_objects ');

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 12, 2004 12:11 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Nachdem ich letzthin Probleme hatte, die neue BaseGraph Version mit dglOpenGL zu kompilieren, habe ich in dglOpenGL folgende Änderungen durchgeführt:
* GL_FOG_COORD_xxx Konstanten hinzugefügt
* ARB lose Varianten der VBO Konstanten und Routinen

Damit die Sache etwas konsistenter wird, habe ich heute noch
* ARB lose Varianten der Occlusion Queries Konstanten und Routinen hinzugefügt

Außerdem wurden die Occlusion Query Einsprungpunkte in der ClearExtensions nicht auf NIL gesetzt - ein kleiner Bug der ebenfalls behoben wurde.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 12, 2004 12:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Dann sag ich mal danke für die Änderungen. Werd dann den aktualisierten Header nachher hochladen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 16, 2004 02:48 
Offline
DGL Member

Registriert: Mo Apr 05, 2004 19:51
Beiträge: 105
Hallo!
Ich habe mir gerade die letzte Version heruntergeladen und konnte den Code nicht kompilieren (Delphi 5) wegen dem RaiseLastOSError-Problem. Frage: Warum setzt ihr nicht einfach einen $IFDEF auf die Delphi-Version? Also anstatt der vorhandenen Funktion, einfach folgendes einfügen:
Code:
  1. procedure RaiseLastOSError;
  2. begin
  3. {$IFDEF VER140}   // If Delphi 6 or later
  4. SysUtils.RaiseLastOSError;
  5. {$ELSE}
  6. SysUtils.RaiseLastWin32Error;
  7. {$ENDIF}
  8. end;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 16, 2004 09:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
:shock: Das muss irgendwo untergegangen sein, und war glaube ich sogar schonmal in einer älteren Version drinne, da sich da schon mehrere Personen drüber beschwert haben. Werd das dann wieder einbauen, thx für den Hinweis.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 215 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6 ... 15  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 24 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.385s | 17 Queries | GZIP : On ]