mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-13 14:49:10 +02:00
- 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:
parent
9301b6f9a2
commit
ee1fba0822
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -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
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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,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
|
||||
|
@ -68,7 +68,7 @@ uses
|
||||
{$IFDEF MorphOS}
|
||||
TinyGL
|
||||
{$ELSE MorphOS}
|
||||
DLLFuncs
|
||||
dynlibs
|
||||
{$ENDIF MorphOS}
|
||||
{$ENDIF Win32};
|
||||
|
||||
|
@ -30,7 +30,7 @@ uses
|
||||
{$IFDEF Win32}
|
||||
Windows,
|
||||
{$ELSE}
|
||||
DLLFuncs,
|
||||
dynlibs,
|
||||
{$ENDIF}
|
||||
GL;
|
||||
|
||||
|
@ -77,7 +77,7 @@ uses
|
||||
{$IFDEF MORPHOS}
|
||||
TinyGL,
|
||||
{$ELSE}
|
||||
DLLFuncs,
|
||||
dynlibs,
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
GL;
|
||||
|
@ -42,7 +42,7 @@ uses
|
||||
{$IFDEF MORPHOS}
|
||||
TinyGL,
|
||||
{$ELSE}
|
||||
DLLFuncs,
|
||||
dynlibs,
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
GL;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user