Browse Source

- removed dllfuncs unit, use dynlibs from the rtl instead
* fixed glx for Mac OS X

git-svn-id: trunk@1885 -

Jonas Maebe 19 years ago
parent
commit
ee1fba0822

+ 0 - 1
.gitattributes

@@ -2828,7 +2828,6 @@ packages/extra/numlib/tpnumlib.pas svneol=native#text/plain
 packages/extra/numlib/typ.pas svneol=native#text/plain
 packages/extra/numlib/typ.pas svneol=native#text/plain
 packages/extra/opengl/Makefile svneol=native#text/plain
 packages/extra/opengl/Makefile svneol=native#text/plain
 packages/extra/opengl/Makefile.fpc svneol=native#text/plain
 packages/extra/opengl/Makefile.fpc svneol=native#text/plain
-packages/extra/opengl/dllfuncs.pp svneol=native#text/plain
 packages/extra/opengl/examples/Makefile svneol=native#text/plain
 packages/extra/opengl/examples/Makefile svneol=native#text/plain
 packages/extra/opengl/examples/Makefile.fpc svneol=native#text/plain
 packages/extra/opengl/examples/Makefile.fpc svneol=native#text/plain
 packages/extra/opengl/examples/bounce.pp svneol=native#text/plain
 packages/extra/opengl/examples/bounce.pp svneol=native#text/plain

+ 18 - 18
packages/extra/opengl/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/12/04]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/12/06]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
@@ -233,7 +233,7 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/ext
 override PACKAGE_NAME=opengl
 override PACKAGE_NAME=opengl
 override PACKAGE_VERSION=2.0.0
 override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
@@ -245,13 +245,13 @@ ifeq ($(FULL_TARGET),i386-os2)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
@@ -263,7 +263,7 @@ ifeq ($(FULL_TARGET),i386-netware)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
@@ -281,13 +281,13 @@ ifeq ($(FULL_TARGET),i386-wince)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
@@ -296,52 +296,52 @@ ifeq ($(FULL_TARGET),m68k-atari)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gl glu glut
 override TARGET_UNITS+=gl glu glut
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=gl glu glut  dllfuncs glx glext
+override TARGET_UNITS+=gl glu glut  glx glext
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=examples
 override TARGET_EXAMPLEDIRS+=examples

+ 5 - 5
packages/extra/opengl/Makefile.fpc

@@ -16,11 +16,11 @@ packages_darwin=x11
 [target]
 [target]
 units=gl glu glut
 units=gl glu glut
 units_win32=glext
 units_win32=glext
-units_linux=dllfuncs glx glext
-units_freebsd=dllfuncs glx glext
-units_netbsd=dllfuncs glx glext
-units_openbsd=dllfuncs glx glext
-units_darwin=dllfuncs glx glext
+units_linux=glx glext
+units_freebsd=glx glext
+units_netbsd=glx glext
+units_openbsd=glx glext
+units_darwin=glx glext
 exampledirs=examples
 exampledirs=examples
 
 
 [install]
 [install]

+ 0 - 61
packages/extra/opengl/dllfuncs.pp

@@ -1,61 +0,0 @@
-{
-
- **********************************************************************}
-
-{$MODE OBJFPC}
-
-unit DLLFuncs;
-
-interface
-
-uses SysUtils;
-
-function LoadLibrary(Name: PChar): PtrInt;
-function GetProcAddress(Lib: PtrInt; ProcName: PChar): Pointer;
-function FreeLibrary(Lib: PtrInt): Boolean;
-function getlastdlerror: pchar;
-
-
-implementation
-
-const
-  RTLD_LAZY         = $001;
-  RTLD_NOW          = $002;
-  RTLD_BINDING_MASK = $003;
-
-{$ifdef Linux}
-function dlopen(Name: PChar; Flags: LongInt) : Pointer; cdecl; external 'dl';
-function dlsym(Lib: Pointer; Name: PChar) : Pointer; cdecl; external 'dl';
-function dlclose(Lib: Pointer): LongInt; cdecl; external 'dl';
-function dlerror: pchar; cdecl; external 'dl';
-{$else}
-function dlopen(Name: PChar; Flags: LongInt) : Pointer; cdecl; external 'c';
-function dlsym(Lib: Pointer; Name: PChar) : Pointer; cdecl; external 'c';
-function dlclose(Lib: Pointer): LongInt; cdecl; external 'c';
-function dlerror: pchar; cdecl; external 'c';
-{$endif}
-
-function getlastdlerror: pchar;
-begin
-  getlastdlerror := dlerror;
-end;
-
-function LoadLibrary(Name: PChar): PtrInt;
-begin
-  Result := PtrInt(dlopen(Name, RTLD_LAZY));
-end;
-
-function GetProcAddress(Lib: PtrInt; ProcName: PChar): Pointer;
-begin
-  Result := dlsym(Pointer(Lib), ProcName);
-end;
-
-function FreeLibrary(Lib: PtrInt): Boolean;
-begin
-  if Lib = 0 then
-    Result := False
-  else
-    Result := dlClose(Pointer(Lib)) = 0;
-end;
-
-end.

+ 1 - 1
packages/extra/opengl/examples/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/12/04]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/12/06]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux

+ 1 - 1
packages/extra/opengl/gl.pp

@@ -68,7 +68,7 @@ uses
   {$IFDEF MorphOS}
   {$IFDEF MorphOS}
   TinyGL
   TinyGL
   {$ELSE MorphOS}
   {$ELSE MorphOS}
-  DLLFuncs
+  dynlibs
   {$ENDIF MorphOS}
   {$ENDIF MorphOS}
   {$ENDIF Win32};
   {$ENDIF Win32};
 
 

+ 1 - 1
packages/extra/opengl/glext.pp

@@ -30,7 +30,7 @@ uses
   {$IFDEF Win32}
   {$IFDEF Win32}
   Windows,
   Windows,
   {$ELSE}
   {$ELSE}
-  DLLFuncs,
+  dynlibs,
   {$ENDIF}
   {$ENDIF}
   GL;
   GL;
 
 

+ 1 - 1
packages/extra/opengl/glu.pp

@@ -77,7 +77,7 @@ uses
   {$IFDEF MORPHOS}
   {$IFDEF MORPHOS}
   TinyGL,
   TinyGL,
   {$ELSE}
   {$ELSE}
-  DLLFuncs,
+  dynlibs,
   {$ENDIF}
   {$ENDIF}
   {$ENDIF}
   {$ENDIF}
   GL;
   GL;

+ 1 - 1
packages/extra/opengl/glut.pp

@@ -42,7 +42,7 @@ uses
   {$IFDEF MORPHOS}
   {$IFDEF MORPHOS}
   TinyGL,
   TinyGL,
   {$ELSE}
   {$ELSE}
-  DLLFuncs,
+  dynlibs,
   {$ENDIF}
   {$ENDIF}
   {$ENDIF}
   {$ENDIF}
   GL;
   GL;

+ 36 - 27
packages/extra/opengl/glx.pp

@@ -168,7 +168,7 @@ var
 
 
 implementation
 implementation
 
 
-uses GL, DLLFuncs;
+uses GL, dynlibs;
 
 
 {$LINKLIB m}
 {$LINKLIB m}
 
 
@@ -180,38 +180,47 @@ begin
 end;
 end;
 
 
 function InitGLX: Boolean;
 function InitGLX: Boolean;
+var
+  OurLibGL: TLibHandle;
 begin
 begin
   Result := False;
   Result := False;
-  if libGL = 0 then
+
+{$ifndef darwin}
+  OurLibGL := libGl;
+{$else darwin}
+  OurLibGL := LoadLibrary('/usr/X11R6/lib/libGL.dylib');
+{$endif darwin}
+
+  if OurLibGL = 0 then
     exit;
     exit;
 
 
-  glXChooseVisual := GetProc(LibGL, 'glXChooseVisual');
-  glXCreateContext := GetProc(LibGL, 'glXCreateContext');
-  glXDestroyContext := GetProc(LibGL, 'glXDestroyContext');
-  glXMakeCurrent := GetProc(LibGL, 'glXMakeCurrent');
-  glXCopyContext := GetProc(LibGL, 'glXCopyContext');
-  glXSwapBuffers := GetProc(LibGL, 'glXSwapBuffers');
-  glXCreateGLXPixmap := GetProc(LibGL, 'glXCreateGLXPixmap');
-  glXDestroyGLXPixmap := GetProc(LibGL, 'glXDestroyGLXPixmap');
-  glXQueryExtension := GetProc(LibGL, 'glXQueryExtension');
-  glXQueryVersion := GetProc(LibGL, 'glXQueryVersion');
-  glXIsDirect := GetProc(LibGL, 'glXIsDirect');
-  glXGetConfig := GetProc(LibGL, 'glXGetConfig');
-  glXGetCurrentContext := GetProc(LibGL, 'glXGetCurrentContext');
-  glXGetCurrentDrawable := GetProc(LibGL, 'glXGetCurrentDrawable');
-  glXWaitGL := GetProc(LibGL, 'glXWaitGL');
-  glXWaitX := GetProc(LibGL, 'glXWaitX');
-  glXUseXFont := GetProc(LibGL, 'glXUseXFont');
+  glXChooseVisual := GetProc(OurLibGL, 'glXChooseVisual');
+  glXCreateContext := GetProc(OurLibGL, 'glXCreateContext');
+  glXDestroyContext := GetProc(OurLibGL, 'glXDestroyContext');
+  glXMakeCurrent := GetProc(OurLibGL, 'glXMakeCurrent');
+  glXCopyContext := GetProc(OurLibGL, 'glXCopyContext');
+  glXSwapBuffers := GetProc(OurLibGL, 'glXSwapBuffers');
+  glXCreateGLXPixmap := GetProc(OurLibGL, 'glXCreateGLXPixmap');
+  glXDestroyGLXPixmap := GetProc(OurLibGL, 'glXDestroyGLXPixmap');
+  glXQueryExtension := GetProc(OurLibGL, 'glXQueryExtension');
+  glXQueryVersion := GetProc(OurLibGL, 'glXQueryVersion');
+  glXIsDirect := GetProc(OurLibGL, 'glXIsDirect');
+  glXGetConfig := GetProc(OurLibGL, 'glXGetConfig');
+  glXGetCurrentContext := GetProc(OurLibGL, 'glXGetCurrentContext');
+  glXGetCurrentDrawable := GetProc(OurLibGL, 'glXGetCurrentDrawable');
+  glXWaitGL := GetProc(OurLibGL, 'glXWaitGL');
+  glXWaitX := GetProc(OurLibGL, 'glXWaitX');
+  glXUseXFont := GetProc(OurLibGL, 'glXUseXFont');
   // GLX 1.1 and later
   // GLX 1.1 and later
-  glXQueryExtensionsString := GetProc(LibGL, 'glXQueryExtensionsString');
-  glXQueryServerString := GetProc(LibGL, 'glXQueryServerString');
-  glXGetClientString := GetProc(LibGL, 'glXGetClientString');
+  glXQueryExtensionsString := GetProc(OurLibGL, 'glXQueryExtensionsString');
+  glXQueryServerString := GetProc(OurLibGL, 'glXQueryServerString');
+  glXGetClientString := GetProc(OurLibGL, 'glXGetClientString');
   // Mesa GLX Extensions
   // Mesa GLX Extensions
-  glXCreateGLXPixmapMESA := GetProc(LibGL, 'glXCreateGLXPixmapMESA');
-  glXReleaseBufferMESA := GetProc(LibGL, 'glXReleaseBufferMESA');
-  glXCopySubBufferMESA := GetProc(LibGL, 'glXCopySubBufferMESA');
-  glXGetVideoSyncSGI := GetProc(LibGL, 'glXGetVideoSyncSGI');
-  glXWaitVideoSyncSGI := GetProc(LibGL, 'glXWaitVideoSyncSGI');
+  glXCreateGLXPixmapMESA := GetProc(OurLibGL, 'glXCreateGLXPixmapMESA');
+  glXReleaseBufferMESA := GetProc(OurLibGL, 'glXReleaseBufferMESA');
+  glXCopySubBufferMESA := GetProc(OurLibGL, 'glXCopySubBufferMESA');
+  glXGetVideoSyncSGI := GetProc(OurLibGL, 'glXGetVideoSyncSGI');
+  glXWaitVideoSyncSGI := GetProc(OurLibGL, 'glXWaitVideoSyncSGI');
 
 
   GLXInitialized := True;
   GLXInitialized := True;
   Result := True;
   Result := True;