- removed dllfuncs unit, use dynlibs from the rtl instead

* fixed glx for Mac OS X

git-svn-id: trunk@1885 -
This commit is contained in:
Jonas Maebe 2005-12-06 14:38:20 +00:00
parent 9301b6f9a2
commit ee1fba0822
10 changed files with 64 additions and 117 deletions

1
.gitattributes vendored
View File

@ -2828,7 +2828,6 @@ packages/extra/numlib/tpnumlib.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.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.fpc svneol=native#text/plain
packages/extra/opengl/examples/bounce.pp svneol=native#text/plain

View File

@ -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
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_VERSION=2.0.0
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_UNITS+=gl glu glut
@ -245,13 +245,13 @@ ifeq ($(FULL_TARGET),i386-os2)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_UNITS+=gl glu glut
@ -263,7 +263,7 @@ ifeq ($(FULL_TARGET),i386-netware)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_UNITS+=gl glu glut
@ -281,13 +281,13 @@ ifeq ($(FULL_TARGET),i386-wince)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_UNITS+=gl glu glut
@ -296,52 +296,52 @@ ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),x86_64-win64)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),arm-wince)
override TARGET_UNITS+=gl glu glut
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
override TARGET_UNITS+=gl glu glut dllfuncs glx glext
override TARGET_UNITS+=gl glu glut glx glext
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLEDIRS+=examples

View File

@ -16,11 +16,11 @@ packages_darwin=x11
[target]
units=gl glu glut
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
[install]

View File

@ -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.

View File

@ -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
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

View File

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

View File

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

View File

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

View File

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

View File

@ -168,7 +168,7 @@ var
implementation
uses GL, DLLFuncs;
uses GL, dynlibs;
{$LINKLIB m}
@ -180,38 +180,47 @@ begin
end;
function InitGLX: Boolean;
var
OurLibGL: TLibHandle;
begin
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;
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
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
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;
Result := True;