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

Aktuelle Zeit: Fr Sep 03, 2010 01:42

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



Ein neues Thema erstellen Auf das Thema antworten  [ 174 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 12  Nächste
Autor Nachricht
 Betreff des Beitrags: OpenGL Header (letzte Aktualisierung : siehe Wiki)
BeitragVerfasst: Di Sep 09, 2003 15:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 20:27
Beiträge: 5044
Die aktuelle Version und das aktuelle Changelog findet man im Wiki. siehe dglOpenGL.pas

Der Header wurde so ausgelegt, das ein Umstieg von z.B. Mike Lischkes OpenGL12.pas einfach fallen sollte, denn er enthält sowohl die dort verwendeten Datentypen (z.b. TGLFloat), also auch selbige ohne vorangestelltes "T".Darüberhinaus beherbergt diese Unit auch die an Mike Lischkes Unit angelehnten Helferfunktionen wie z.B. CreateRenderContext und ActivateRendercontext (ersteres mit leicht veränderter Parameteranzahl).

Und auch euer Feedback wurde erhöhrt, und die Probleme mit der bisherigen Unit sollten allesamt behoben sein, auch fehlende Extensions bzw. Konstanten wurden hinzugefügt.

Viel Spaß also mit der neuen Unit, die ihr jetzt getrost als Ersatz für die Unit von ML nutzen könnt (hab meinen Basecode auch schon komplett umgestellt).Aber vergesst bitte nicht, das wir immernoch auf euer Feedback angewiesen sind, weshalb ihr etwaige Probleme oder fehlende Dinge hier posten solltet.

Da dieses Thema lange vernachlässigt wurde werde ich es mal wieder auf den neusten Stand der Dinge bringen.

DOWNLOADLINK am Ende des Beitrags.

    Versionsgeschichte :

  • Update auf Version 1.2 (19.11.2003) :
    Nachdem ich beim Schreiben ner 3D-Texturendemo bemerkt habe, das u.a. die Funktion glTexImage3D nicht funktioniert (=NIL ist), glTexImage3DEXT aber schon, wurde der Header wieder aktualisiert. Jetzt sollten endgültig alle von einer Karte unterstützten Extension egal ob in der Coreversion oder als ARB/EXT funktionieren. Kleiner Nachtrag : Danks SchodMCs Tipp müssen Nutzer von Delphi 6 oder älter nix mehr an der Unit ändern, da nun automatisch über IFDEFS zwischen RaiseLastOSError und RaiseLastWin32Error unterschieden wird.
  • Update auf Version 1.3 (01.12.2003) :
    Dank Mars Hilfe lädt der Header auch beim erneuten Aufruf von ReadImplementationProperties die beim ersten Mal übergebenen Libraries und releast dieses auch ordnungsgemäß via FreeLibrary. Ausserdem ist noch eine recht detaillierte (englische) Readme in HTML-Form dazugekommen, die bitte vor der Nutzung gelesen werden sollte.
  • Update auf Version 1.3a (25.12.2003) :
    Aufgrund einer nicht ganz konformen Deklaration einiger für glSlang-Funktionen benötigter Typen gab es bisher z.B. beim feststellen der Position eines Uniformparameters im Shader Probleme, das wurde geändert und eine neue Headerversion wurde hochgeladen.
  • Update auf Version 1.3b (28.01.2004) :
    Die Extension GL_ARB_Shader_Objects wird nun korrekt geladen.
  • Update auf Version 1.3c (12.02.2004) :
    Mars hat im Zuge besserer GL1.5-Konformität die GL_FOG_COORD_xxx-Konstanten und ARB-lose VBO und Occlusion-Query-Konstanten und Routinen hinzugefügt.
  • Fixes vom 07.05.2004 :
    Arno hat sowohl ein IfDef eingefügt, sodass man an der Unit nichts ändern muss wenn sie unter D5 kompiliert wird, als auch die Sache mit den Zeilenumbrüchen unter D5 gefixt.
  • Update auf Version 1.4 (26.06.2004) :
    Header an die neuen glSlang-Spezifikationen (v1.10) angepasst : Konstanten GL_SAMPLER_*, GL_SHADING_LANGUAGE_VERSION_ARB, GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB hinzugefügt.
  • Update auf Version 1.4a (17.07.2004) :
    Fehlendes stdcall bei Funktionsdeklaration von glBindAttribLocationARB (glSlang) eingefügt-
  • Update auf Version 1.4b (03.09.2004) :
    Die von Mars angedeuteten Deklarationsänderungen bzgl. glCompileShaderARB (nun Prozedur statt Funktion) und glUniform*(i/f)v (fehlenden Parameter count hinzugefügt).
  • Update auf Version 1.5 (21.10.2004) :
    Dank an dieser Stelle geht an Benjamin Rosseaux, der den aktuellen Header so erweitert hat dass dieser auch mit FreePascal genutzt werden kann. Da diese Änderungen über ifdefs laufen und an der Funktionalität unter Delphi nichts ändern gibt es jetzt einen einzigen Header der sowohl unter Delphi als auch FreePascal funktioniert.
    Ausserdem habe ich den von Noeska angesprochenen fehlenden Datentyp TGLVector3f/TGLVectorf3 eingefügt.
  • Update auf Version 1.6 :
    Extension GL_EXT_framebuffer_object wurde implementiert.
  • Update auf Version 1.7 :
    Folgende Extensions wurden implementiert.
    - GL_ARB_fragment_program_shadow
    - GL_ARB_draw_buffers
    - GL_ARB_texture_rectangle
    - GL_ARB_color_buffer_float
    - GL_ARB_half_float_pixel
    - GL_ARB_texture_float
    - GL_ARB_pixel_buffer_object
    - GL_EXT_depth_bounds_test
    - GL_EXT_texture_mirror_clamp
    - GL_EXT_blend_equation_separate
    - GL_EXT_pixel_buffer_object
    - GL_EXT_texture_compression_dxt1
    - GL_NV_fragment_program_option
    - GL_NV_fragment_program2
    - GL_NV_vertex_program2_option
    - GL_NV_vertex_program3
  • Update auf Version 1.8 :
    Umstellung des Headers für die Unterstützung von .NET
  • Update auf Version 2.0 (16.12.2005) :
    Hinzufügen des OpenGL 2.0 Kerns
    Einige Imkompatibilitäten die aus der Umstellug für .NET resultierten wurden entfernt.
    Folgende Extensions wurden implementiert.
    - WGL_ARB_pixel_format_float
    - Added Extension GL_EXT_stencil_clear_tag
    - Added Extension GL_EXT_texture_rectangle
    - Added Extension GL_EXT_texture_edge_clamp
  • Update auf Version 2.0.1 :
    Es wurden kleiner Fehler an folgenden Funktionen behoben.
    • glGetActiveAttrib aus dem 2.0 Kern
    • gluProject
    • gluUnProject
    • gluTessVertex
    • gluLoadSamplingMatrices
  • Update auf Version 2.1 (20.02.2007) :
    - Keine .NET Unterstützung mehr
    - Besser Unterstützung für Linux (nun sollten alle Funktionen geladen werden)
    - Der Quellcode ist besser formatiert
    - Es gibt zusätzliche Matrix/Vector Typen (nicht nur die von OpenGL geforderten)
    - OpenGL in der Kernversion 2.1 implementiert
    - Geforce8 Extension
    • GL_ARB_fragment_program_shadow
    • GL_ARB_draw_buffers
    • GL_ARB_texture_rectangle
    • GL_ARB_color_buffer_float
    • GL_ARB_half_float_pixel
    • GL_ARB_texture_float
    • GL_ARB_pixel_buffer_object
    • GL_EXT_depth_bounds_test
    • GL_EXT_texture_mirror_clamp
    • GL_EXT_blend_equation_separate
    • GL_EXT_pixel_buffer_object
    • GL_EXT_texture_compression_dxt1
    • GL_NV_fragment_program_option
    • GL_NV_fragment_program2
    • GL_NV_vertex_program2_option
    • GL_NV_vertex_program3
  • Update auf Version 2.1 (09.04.2009):
    Es wurde eine generelle Strukturänderung durchgeführt. Wichtigste Änderung: .Net Version wurde in einen eigenen Header verlegt.
    Siehe Newsbeitrag.
    Änderungen dglOpenGL / dglOpenGL mit .NET
    • Es wurden kleiner Fehler an folgenden Funktionen behoben.
      • glGetActiveAttrib aus dem 2.0 Kern
      • gluProject
      • gluUnProject
      • gluTessVertex
      • gluLoadSamplingMatrices
    Änderungen dglOpenGL
    • Keine .NET Unterstützung mehr
    • Besser Unterstützung für Linux (nun sollten alle Funktionen geladen werden)
    • Der Quellcode ist besser formatiert
    • Es gibt zusätzliche Matrix/Vector Typen (nicht nur die von OpenGL geforderten)
    • OpenGL in der Kernversion 2.1 implementiert
    • Neue Erweiterungen (mit Geforce8)
      • GL_ARB_fragment_program_shadow
      • GL_ARB_draw_buffers
      • GL_ARB_texture_rectangle
      • GL_ARB_color_buffer_float
      • GL_ARB_half_float_pixel
      • GL_ARB_texture_float
      • GL_ARB_pixel_buffer_object
      • GL_EXT_depth_bounds_test
      • GL_EXT_texture_mirror_clamp
      • GL_EXT_blend_equation_separate
      • GL_EXT_pixel_buffer_object
      • GL_EXT_texture_compression_dxt1
      • GL_NV_fragment_program_option
      • GL_NV_fragment_program2
      • GL_NV_vertex_program2_option
      • GL_NV_vertex_program3
    WICHTIG!! Nach dem Erstellen des Renderkontex muss dieser entweder mit ActivateRenderingContext aktiviert werden oder aber es muss ReadExtensions und ReadImplementationProperties manuell aufgerufen werden. Mit dem Ausbau von .NET wurde eine Technik entfernt die die Pointer einzelner Methoden automatisch nachlädt. Dies muss jetzt manuell erledigt werden!!! Solltet ihr Zugriffsverletzungen an Adresse 0x00000000 bekommen wo vorher keine waren. Überprüft das.
  • Update auf Version 3.0 (03.01.2009):
    • Anpassungen an den Konstanten von GL_EXT_texture_shared_exponent
    • Möglicherweise eine bessere Unterstützung für Mac
    • Mithilfe des Defines DGL_TINY_HEADER ist es möglich das automatische Laden von Funktionspointer bzw das überprüfen der Erweiterungen zu deaktivieren. Nähere Details zu deren Benutzung sind im Header zu finden.
    • OpenGL in der Kernversion 3.0 implementiert
    • Neue Erweiterungen
      • GL_ARB_depth_buffer_float
      • GL_ARB_draw_instanced
      • GL_ARB_framebuffer_object
      • GL_ARB_framebuffer_sRGB
      • GL_ARB_geometry_shader4
      • GL_ARB_half_float_vertex
      • GL_ARB_instanced_arrays
      • GL_ARB_map_buffer_range
      • GL_ARB_texture_buffer_object
      • GL_ARB_texture_compression_rgtc
      • GL_ARB_texture_rg
      • GL_ARB_vertex_array_object
      • GL_NV_conditional_render
      • GL_NV_present_video
      • GL_EXT_transform_feedback
      • GL_EXT_direct_state_access
      • GL_EXT_vertex_array_bgra
      • GL_EXT_texture_swizzle
      • GL_NV_explicit_multisample
      • GL_NV_transform_feedback2
      • WGL_ARB_create_context
      • WGL_NV_present_video
      • WGL_NV_video_out
      • WGL_NV_swap_group
      • WGL_NV_gpu_affinity

    Um einen reinen OpenGL 3.0 Kontext benutzen zu können muss man allerdings selber ein bisschen Hand anlegen. Dazu existiert die Erweiterung WGL_ARB_create_context. Der Header versucht also nicht selbsttätig einen reinen OpenGL 3.0 Kontext zu erstellen. Unter Linux gibt es aktuell noch keine Möglichkeit einen 3.0 Kontext zu erstellen. Ich hatte zwar vor ein paar Tagen eine entsprechende Erweiterung gefunden. Diese wurde aber noch nicht in den Header übernommen. Was wohl auch nicht ganz so einfach werden dürfte.
  • Update auf Version 3.2 (12.09.2009):
    • OpenGL 3.1 Kern wurde hinzugefügt
    • OpenGL 3.2 Kern wurde hinzugefügt
    • GLX Kern bis Version 1.4 wurde hinzugefügt. Damit ist es dann mit der dglOpenGL unter Linux (mac?) möglich einen Kontext per Hand erstellen zu können. Mit den Erweiterungen GLX_ARB_create_context und GLX_ARB_create_context_profile dann auch einen 3.0 Kontext.
    • Das Define DGL_DEPRECATED wurde hinzugefügt. Das Define ist per default aktiv und aktiviert die als deprecated markierten Methoden und Konstanten im OpenGL Kern. Auf alle anderen Erweiterungen hat das keinen Einfluss. Für Ideen bin ich jederzeit offen. Und ja. Ich habs im Endeffekt doch so gemacht, denn im Header von opengl.org werden ältere Version gelegentlich mal aktualisiert und dass müsste dann auch mit seperaten Headern von unserer Seite gemacht werden. Und da bin ich zu faul für.
    • Der Header sollte jetzt 64 Bit kompatibel sein. Hatte es unter Fedora 11 32 Bit /64 Bit und Windows XP 32 Bit / 64 Bit getestet. Allerdings alles in der Virtual Box.
    • Der Header ist Delphi 2009 und 2010 kompatibel
    • Die Erkennung von Delphi wurde verändert. Zukünftige Versionen von Delphi müssen nicht mehr nachgepflegt werden, da jetzt speziell auf "problematische" Versionen geprüft wird. Wer auch immer sich das ausgedacht hatte, dass es wirklich alle andersrum machen. Danke...
    • verschiedenen Erweiterungen (GL_VERSION_3_0, GL_ARB_map_buffer_range, GL_NV_present_video, GL_ARB_instanced_arrays) wurden aktualisiert (auch der Header von opengl.org ist nicht perfekt).
    • Neue Erweiterungen
      • GL_ATI_meminfo
      • GL_AMD_performance_monitor
      • GL_AMD_texture_texture4
      • GL_AMD_vertex_shader_tesselator
      • GL_AMD_draw_buffers_blend
      • GL_ARB_uniform_buffer_object
      • GL_ARB_compatibility
      • GL_ARB_copy_buffer
      • GL_ARB_shader_texture_lod
      • GL_ARB_depth_clamp
      • GL_ARB_draw_elements_base_vertex
      • GL_ARB_fragment_coord_conventions
      • GL_ARB_provoking_vertex
      • GL_ARB_seamless_cube_map
      • GL_ARB_sync
      • GL_ARB_texture_multisample
      • GL_ARB_vertex_array_bgra
      • GL_ARB_draw_buffers_blend
      • GL_ARB_sample_shading
      • GL_ARB_texture_cube_map_array
      • GL_ARB_texture_gather
      • GL_ARB_texture_query_lod
      • GL_EXT_provoking_vertex
      • GL_EXT_texture_snorm
      • GL_APPLE_texture_range
      • GL_APPLE_float_pixels
      • GL_APPLE_vertex_program_evaluators
      • GL_APPLE_aux_depth_stencil
      • GL_APPLE_object_purgeable
      • GL_APPLE_row_bytes
      • WGL_ARB_create_context_profile
      • WGL_AMD_gpu_association
      • WGL_3DL_stereo_control
      • GLX_ARB_multisample
      • GLX_ARB_fbconfig_float
      • GLX_ARB_get_proc_address
      • GLX_ARB_create_context
      • GLX_ARB_create_context_profile
      • GLX_EXT_visual_info
      • GLX_EXT_visual_rating
      • GLX_EXT_import_context
      • GLX_EXT_fbconfig_packed_float
      • GLX_EXT_framebuffer_sRGB
      • GLX_EXT_texture_from_pixmap
  • Update auf Version 3.2.2 (16.12.2009):
    • Die Variablen der Extension GL_EXT_texture_snorm und GL_APPLE_row_bytes wurden vergessen mit Leben zu befüllen. Selbst wenn die Erweiterungen unterstützt wurden waren die Variablen immer false. Das wurde behoben.
    • Die Erweiterung, die im letzten opengl.org Header noch WGL_NV_video_out hieß heißt jetzt WGL_NV_video_output.
    • Neue Erweiterungen
      • GL_APPLE_rgb_422
      • GL_EXT_separate_shader_objects
      • GL_NV_video_capture
      • GL_NV_copy_image
      • GL_NV_parameter_buffer_object2
      • GL_NV_shader_buffer_load
      • GL_NV_vertex_buffer_unified_memory
      • GL_NV_texture_barrier
      • WGL_NV_video_capture
      • WGL_NV_copy_image
      • GLX_EXT_swap_control

Download Header

_________________
www.SaschaWillems.de | Projekt "W" - Dominate earth! | YouTube Kanal | PSN-ID (Cthulhu-Kultist)


Zuletzt geändert von Sascha Willems am Do Okt 21, 2004 11:56, insgesamt 19-mal geändert.

Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 15, 2003 19:00 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 19:50
Beiträge: 92
Also mir gehen 2 Typen ab:

TMatrix4d und TVector4i. Fragt mich bitte nicht, ob der Fehler bei mir liegt. Aber direkt nach der Umstellung hat mich mein Compi damit vollgemault.

Des weiteren fehlt die Funktion LoadOpenGL


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 15, 2003 19:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 20:27
Beiträge: 5044
Alzheimer hat geschrieben:
Also mir gehen 2 Typen ab:

TMatrix4d und TVector4i. Fragt mich bitte nicht, ob der Fehler bei mir liegt. Aber direkt nach der Umstellung hat mich mein Compi damit vollgemault.


Die heissen in unserer Unit momentan noch anders.Wird aber im nächsten Release gefixt.

Alzheimer hat geschrieben:
Des weiteren fehlt die Funktion LoadOpenGL

Die fehlt nicht.Das heisst in unserer Unit InitOpenGL, und mittels glReadExtensions lädst du nach dem Initialisieren des Renderkontextes die Extensions.

_________________
www.SaschaWillems.de | Projekt "W" - Dominate earth! | YouTube Kanal | PSN-ID (Cthulhu-Kultist)


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 22, 2003 13:39 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 13:18
Beiträge: 1063
Kompliment an alle Beteiligten! Die neue dglOpenGL ist sehr umfangreich und dabei auch noch übersichtlich. Sämtliche Extensions sind mit Kommentaren im Code abgetrennt - da steckt viel Arbeit drin, wie ich auch aus eigener Erfahrung beurteilen kann.

Das Kompilieren von mit Mcad erstellten Ogl Projekten funktioniert mit Hilfe einer kleinen Hilfsunit einwandfrei, allerdings ist folgende Glu- Funktion nicht implementiert:

Code:
  1.   gluBuild3DMipmaps: function(target: GLenum; components, width, height, depth: GLint; format, atype: GLenum;
  2.     Data: Pointer): GLint; stdcall;


die gibt es in der mit Windows gelieferten glu32.dll zwar auch nicht, alternative glu Versionen (ich glaube ab 1.3, bin mir aber nicht sicher), stellen diese aber sehr wohl zur Verfügung (z.B. MesaGLU), obwohl es bei Verwendung von nicht in glu32.dll implementierten Funktionen (zumindest unter Windows) ohnehin eine gute Idee ist, erst mal festzustellen, ob diese überhaupt funktionieren.

Der Source von dglOpenGL ist schön und übersichtlich formatiert, allerdings schaut es so aus, als ob zwei unterschiedliche Formatierungsarten (mit den Einrückungen) zur Anwendung gekommen wären - das Tüpfelchen auf dem i wäre noch, wenn das vereinheitlicht werden könnte.

Was mich bereits bei Lischkes OpenGL12.pas ein wenig gestört hat, sind die vielen ifdefs um Delphi und Kylix gleichermassen zu unterstützen. Während das Unterfangen zwar höchst löblich ist, funktionieren die ganzen Supportroutinen ja ohnehin nur unter Windows, weswegen man die ganzen OpenGL Einsprungpunkte direkt als stdcall definieren könnte.
Die ganzen stdcalls dann bei einer eventuellen Linuxversion (mit eigenen Supportroutinen!) dann durch cdecl zu ersetzen, wäre dank "Suchen und Ersetzen" dann eine Sache von Sekunden - und der Code würde noch etwas übersichtlicher werden.
Was man sich evtl. dann noch überlegen könnte, wäre eine einheitliche Schnittstelle zu Win32 und Linux Systemen, aber das ist, glaube ich, noch ein wenig Zukunftsmusik.

Ansonsten finde ich wirklich nichts mehr zu meckern (und das Angeführte sind ja auch nur Kleinigkeiten) - ich denke hier wurde Delphi OpenGL Programmierern ein großer Dienst erwiesen.

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


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 22, 2003 14:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 20:27
Beiträge: 5044
Erstmal danke für das positive Feedback, sowas sieht man gerne :wink:, und es freut mich das der neue Header auch bei dir ohne größere Probleme funzt.

@ gluBuild3DMipmaps :
Danke für den Hinweis, die Funktion war mir bisher sogar völlig unbekannt.Wird aber auf jeden Fall beim nächsten Headerupdate implementiert.

@ Formatierung & ifdefs :
Wird zur Kenntniss genommen, und im nächsten Release wird da was getan.Ursprünglich sollte der Header auch für Linux nutzbar sein, weshalb da die ganzen ifdefs drin.Allerdings gings uns zuerst mal um eine frühe Veröffentlichung, da es nicht unwahrscheinlich gewesen wäre wenn es GL1.5 bereits in die Catalyst 3.7-Treibern geschafft hätte (dem war leider nicht so).


P.S. : Evtl. für alle NVida-Anhänger ist folgender Thread interessant, denn anscheinend haben NVidia ihrem "wir-cheaten bis zum Umfallen"-Treiber (ich kanns mir leider ned verkneifen...) bereits (zumindest teilweise) OpenGL1.5-Funktionalität drin.

_________________
www.SaschaWillems.de | Projekt "W" - Dominate earth! | YouTube Kanal | PSN-ID (Cthulhu-Kultist)


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2003 19:07 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 16:56
Beiträge: 6733
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also ich habe ein Problemchen mit dem Header... :?
Beim Compilieren meldet er mir folgende Fehler:

Undefinierter Bezeichner: 'PPointer' (bei TGLUTessCombineProc)
Undefinierter Bezeichner: 'RaiseLastOSError'

Ich benutze Delphi 5

_________________
Letztes fertiges Projekt: Balance
Für den PBall Manager 2 gibt es ein Update (V1.1)!


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2003 21:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 20:27
Beiträge: 5044
Zu PPointer : Wie der Name vermuten lässt, ist PPointer ein Pointer auf einen Pointer.In Delphi 7 ist dieser Datentyp in der Systems.pas definiert,in älteren Versionen anscheinend nicht.Öffene einfach die dglOpenGL.pas und füge bei den vorhandenen Typendeklaratioenen einfach folgendes ein :
[pascal]
  1. PPointer : ^Pointer
[/pascal]

Zu RaiseLastOSError : Komisch das es hier Probleme gibt,denn D5 sollte diese Funktion kennen.Such mal danach in der Hilfe und guck mal (wenns vorhanden ist) in welcher Unit dieses Funktion abgelegt ist und binde diese mal in die dglOpenGL.pas über uses ein.

_________________
www.SaschaWillems.de | Projekt "W" - Dominate earth! | YouTube Kanal | PSN-ID (Cthulhu-Kultist)


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2003 22:53 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 13:18
Beiträge: 1063
Unter Delphi 5 heißt der noch RaiseLastWin32Error - erst ab Delphi 6 gabs dann ja Parallelversionen von Delphi und Kylix und dann hat man halt auch die Funktion "betriebssystemunabhängig" gemacht.
RaiseLastWin32Error funktioniert allerdings auch noch in Delphi 6 und 7, läuft dort aber als "veraltete" Funktion - ich denke aber für dglOpenGL ist es sauberer RaiseLastOSError beizubehalten und evtl. einen Kommentar für ältere Delphiversionen (5 und älter) im Header einzufügen, die Prozedurnamen auszutauschen.
Den PPointer könnte man aber auf jeden Fall hinzufügen, folgende Datentypen könnte man noch an die OpenGL Nomenklatur anpassen, welche die Elementgröße (b, f, d u.s.w.) als letztes angibt:

Code:
  1.   TGLArrayf4  = array [0..3] of TGLFloat;
  2.   TGLArrayf3  = array [0..2] of TGLFloat;
  3.   TGLArrayd3  = array [0..2] of TGLDouble;
  4.   TGLArrayi4  = array [0..3] of TGLint;
  5.   TGLArrayp4  = array [0..3] of Pointer;
  6.  
  7.   TGLMatrixf4 = array[0..3, 0..3] of Single;
  8.   TGLMatrixd4 = array[0..3, 0..3] of Double;
  9.  


Eventuell wäre es auch zu überlegen, für diese Datentypen, sowie für die GLU-Datentypen ebenfalls "T"-lose Versionen anzulegen. Irgendwie hat Lischke mit seinem "T" da mehr Verwirrung gestiftet, als schöneren Code erzeugt :D

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


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2003 23:05 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 20:27
Beiträge: 5044
@ RaiseLastWin32Error :
Danke für den Hinweis mit RaiseLastWin32Error (wusste doch das da noch sowas war),ich werd das dann mal in den Kommentaren des Headers anmerken.

@ Datentypen :
Wurde auch zur Kenntnis genommen und wird auch im nächsten Headerupdate berücksichtig.

@Mike Lischkes "T" :
Sehe ich genauso.Borland sagt zwar man solle seine eigenen Typen mit einem "T" beginnen,allerdings finde ich sowas bei ner Headerkonvertierung nur suboptimal.glFloat wäre mir auch lieber als TGLFloat und würde dann ja letztendlich auch dem Original entsprechen.Allerdings würde dies eine Migration von MLs Header auf unseren verkomplizieren.

_________________
www.SaschaWillems.de | Projekt "W" - Dominate earth! | YouTube Kanal | PSN-ID (Cthulhu-Kultist)


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 11, 2003 10:05 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 20:27
Beiträge: 5044
Hab grade die alte Version durch die aktualisierte ersetzt.Folgende Neuerungen sind jetzt enthalten :

# PPointer deklariert (Kompatibilitätmit Delphi <7)
# Eigene Prozedur RaiseLastOSError+Kommentat (Kompatibilität mit Delphi <7)
# Die von Mars vorgeschlagenen Datentypen mit GL-Syntax eingefügt

Da das alles keine großen Änderungen waren,hab ich die neue Unit nur mit meinem aktuellen Projekt getestet und dort machte sie keine Probleme.Falls es dennoch irgendwo zu Problemen kommen sollte,dann bitte hier im Thread melden.

_________________
www.SaschaWillems.de | Projekt "W" - Dominate earth! | YouTube Kanal | PSN-ID (Cthulhu-Kultist)


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 16, 2003 15:47 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 16:56
Beiträge: 6733
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hieß es nicht, am 15 kommt der offizielle 1.5 Header??. Is der jetzt da oder kommt der noch???

_________________
Letztes fertiges Projekt: Balance
Für den PBall Manager 2 gibt es ein Update (V1.1)!


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 16, 2003 16:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 20:27
Beiträge: 5044
Das ist der offizielle Header.Es hiess nur das Phob am 15.Oktober das offizielle SDK rausbringt,dies aber zeitlich wohl nicht schafft.

_________________
www.SaschaWillems.de | Projekt "W" - Dominate earth! | YouTube Kanal | PSN-ID (Cthulhu-Kultist)


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 14:20 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 08:15
Beiträge: 912
Wohnort: Plochingen (nähe Stuttgart)
Ich bin auf 1,5 Bugs in dem Header gestossen:

0,5: Zeile 8225 -> 2 Zuweisungen stehen in einer Zeile. Eigentlich kein bug, jedoch "unschön". Stört aber nicht. Hab's nur der Vollständigkeit halber erwähnt. ;)

Der andere iss wirklich ein Bug:
Zeile 8263 -> Auch hier sind mehrere Zuweisungs-Befehle in einer Zeile. Wäre ja nur halb so schlimm, wenn am Anfang der Zeile nicht ein //-Kommentar wäre. Somit werden die nachfolgendne Befehle einfach auskommentiert. Betroffen sind die Funktionen von ARB_Vertex_Shader und ARB_Occlusion_Query (glGetActiveAttribARB, glGetAttribLocationARB, glBindAttribLocationARB, glGetVertexAttribPointervARB, glGenQueriesARB und glDeleteQueriesARB).

Ich schätz' mal, dass es sich um die 1.5 Funktionen handelt und diese noch nicht getestet werden konnten. (Das Auskommentieren könnte ja dann auch absicht sein; keine Ahnung). Wollte es ebenfalls nur mal mitteilen.

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 14:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 20:27
Beiträge: 5044
:shock: Sicher das du den selben Header hast wie er hier angeboten wird?Hab grad nochmal nachgesehen, und bei mir sind die angesprochenen Zeilen und angeblich auskommentierten Funktionen allesamt da...sicher das du den Header hier aus dem Thread hast und nicht aus der DL-Sektion?

_________________
www.SaschaWillems.de | Projekt "W" - Dominate earth! | YouTube Kanal | PSN-ID (Cthulhu-Kultist)


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 14:40 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 13:18
Beiträge: 1063
Eigentlich ist bei der Version aus der DL-Sektion auch alles drinnen - obwohl es dennoch Sinn machen würde, beide Versionen abzugleichen.

Kann es sein, dass du evtl. eine ältere Delphiversion verwendest ? Meines Wissens hatte Delphi (ich glaube bis Version 6 oder so) Probleme mit "Linux" Zeilenumbrüchen (also CR anstelle von CRLF).
Hab da auch schon meine Gaudi gehabt, als ich einen C++ Source nach Delphi konvertierte und dann lauter Fehlermeldungen a'la Zeile zu lang (obwohl in der betreffenden Zeile gar nichts stand) bekam, oder (noch lustiger) das Programm beim Tracen völlig falsche Zeilen anzeigte und die diversen Meldungen den Ort eines Fehlers bestenfalls ungefähr erahnen ließen.

Abhilfe schafft, den ganzen Source in Notepad zu laden und nochmal abzuspeichern - am besten lädst du das Ganze vorher nochmal runter, für den Fall, dass sich in deinem Source inzwischen andere Fehler eingeschlichen haben.
Sollte dies tatsächlich der Fehler gewesen sein, sollte man aber unbedingt drauf achten eine "Alt-Delphikompatible" Version hochzuladen.

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


Nach oben
 Profil E-Mail senden  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 174 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 12  Nächste


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 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:  
  Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de