aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Game/Code/Classes/TextGL.pas10
-rw-r--r--Game/Code/Classes/UAudio_FFMpeg.pas8
-rw-r--r--Game/Code/Classes/UAudio_bass.pas20
-rw-r--r--Game/Code/Classes/UCatCovers.pas3
-rw-r--r--Game/Code/Classes/UCommandLine.pas3
-rw-r--r--Game/Code/Classes/UCommon.pas196
-rw-r--r--Game/Code/Classes/UCore.pas985
-rw-r--r--Game/Code/Classes/UCoreModule.pas7
-rw-r--r--Game/Code/Classes/UCovers.pas4
-rw-r--r--Game/Code/Classes/UDLLManager.pas17
-rw-r--r--Game/Code/Classes/UDataBase.pas5
-rw-r--r--Game/Code/Classes/UDraw.pas8
-rw-r--r--Game/Code/Classes/UFiles.pas4
-rw-r--r--Game/Code/Classes/UGraphic.pas4
-rw-r--r--Game/Code/Classes/UGraphicClasses.pas4
-rw-r--r--Game/Code/Classes/UHooks.pas9
-rw-r--r--Game/Code/Classes/UIni.pas4
-rw-r--r--Game/Code/Classes/ULCD.pas1
-rw-r--r--Game/Code/Classes/ULanguage.pas6
-rw-r--r--Game/Code/Classes/ULight.pas8
-rw-r--r--Game/Code/Classes/ULog.pas10
-rw-r--r--Game/Code/Classes/ULyrics.pas4
-rw-r--r--Game/Code/Classes/ULyrics_bak.pas4
-rw-r--r--Game/Code/Classes/UMain.pas275
-rw-r--r--Game/Code/Classes/UMedia_dummy.pas5
-rw-r--r--Game/Code/Classes/UModules.pas3
-rw-r--r--Game/Code/Classes/UMusic.pas4
-rw-r--r--Game/Code/Classes/UParty.pas5
-rw-r--r--Game/Code/Classes/UPlaylist.pas6
-rw-r--r--Game/Code/Classes/UPliki.pas2
-rw-r--r--Game/Code/Classes/UPluginInterface.pas3
-rw-r--r--Game/Code/Classes/URecord.pas4
-rw-r--r--Game/Code/Classes/UServices.pas11
-rw-r--r--Game/Code/Classes/USingNotes.pas3
-rw-r--r--Game/Code/Classes/USingScores.pas8
-rw-r--r--Game/Code/Classes/USkins.pas7
-rw-r--r--Game/Code/Classes/USongs.pas88
-rw-r--r--Game/Code/Classes/UTextClasses.pas3
-rw-r--r--Game/Code/Classes/UTexture.pas12
-rw-r--r--Game/Code/Classes/UThemes.pas4
-rw-r--r--Game/Code/Classes/UTime.pas4
-rw-r--r--Game/Code/Classes/UVideo.pas4
-rw-r--r--Game/Code/Classes/uPluginLoader.pas1582
-rwxr-xr-xGame/Code/MacOSX/Platform.inc13
-rw-r--r--Game/Code/MacOSX/UltraStarDX.pas7
-rw-r--r--Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.mode1423
-rw-r--r--Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.pbxuser1083
-rw-r--r--Game/Code/MacOSX/UltraStarDX.xcodeproj/project.pbxproj425
-rwxr-xr-xGame/Code/MacOSX/Wrapper/Graphics.pas2
-rwxr-xr-xGame/Code/MacOSX/Wrapper/JPEG.pas4
-rwxr-xr-xGame/Code/MacOSX/Wrapper/MacClasses.pas2
-rw-r--r--Game/Code/MacOSX/Wrapper/Messages.pas30
-rwxr-xr-xGame/Code/MacOSX/Wrapper/MidiFile.pas2
-rwxr-xr-xGame/Code/MacOSX/Wrapper/MidiOut.pas2
-rwxr-xr-xGame/Code/MacOSX/Wrapper/OpenGL12.pas9397
-rwxr-xr-xGame/Code/MacOSX/Wrapper/PNGImage.pas2
-rwxr-xr-xGame/Code/MacOSX/Wrapper/Windows.pas306
-rwxr-xr-xGame/Code/MacOSX/Wrapper/zlportio.pas2
-rw-r--r--Game/Code/Menu/UDisplay.pas6
-rw-r--r--Game/Code/Menu/UDrawTexture.pas3
-rw-r--r--Game/Code/Menu/UMenu.pas4
-rw-r--r--Game/Code/Menu/UMenuButton.pas3
-rw-r--r--Game/Code/Menu/UMenuButtonCollection.pas3
-rw-r--r--Game/Code/Menu/UMenuInteract.pas2
-rw-r--r--Game/Code/Menu/UMenuSelect.pas3
-rw-r--r--Game/Code/Menu/UMenuSelectSlide.pas4
-rw-r--r--Game/Code/Menu/UMenuStatic.pas3
-rw-r--r--Game/Code/Menu/UMenuText.pas37
-rw-r--r--Game/Code/Screens/UScreenCredits.pas4
-rw-r--r--Game/Code/Screens/UScreenEdit.pas2
-rw-r--r--Game/Code/Screens/UScreenEditConvert.pas4
-rw-r--r--Game/Code/Screens/UScreenEditHeader.pas2
-rw-r--r--Game/Code/Screens/UScreenEditSub.pas4
-rw-r--r--Game/Code/Screens/UScreenLevel.pas2
-rw-r--r--Game/Code/Screens/UScreenLoading.pas4
-rw-r--r--Game/Code/Screens/UScreenMain.pas4
-rw-r--r--Game/Code/Screens/UScreenName.pas2
-rw-r--r--Game/Code/Screens/UScreenOpen.pas2
-rw-r--r--Game/Code/Screens/UScreenOptions.pas2
-rw-r--r--Game/Code/Screens/UScreenOptionsAdvanced.pas2
-rw-r--r--Game/Code/Screens/UScreenOptionsGame.pas2
-rw-r--r--Game/Code/Screens/UScreenOptionsGraphics.pas2
-rw-r--r--Game/Code/Screens/UScreenOptionsLyrics.pas2
-rw-r--r--Game/Code/Screens/UScreenOptionsRecord.pas2
-rw-r--r--Game/Code/Screens/UScreenOptionsSound.pas2
-rw-r--r--Game/Code/Screens/UScreenOptionsThemes.pas2
-rw-r--r--Game/Code/Screens/UScreenPartyNewRound.pas5
-rw-r--r--Game/Code/Screens/UScreenPartyOptions.pas4
-rw-r--r--Game/Code/Screens/UScreenPartyPlayer.pas2
-rw-r--r--Game/Code/Screens/UScreenPartyScore.pas2
-rw-r--r--Game/Code/Screens/UScreenPartyWin.pas2
-rw-r--r--Game/Code/Screens/UScreenPopup.pas2
-rw-r--r--Game/Code/Screens/UScreenScore.pas4
-rw-r--r--Game/Code/Screens/UScreenSing.pas4
-rw-r--r--Game/Code/Screens/UScreenSingModi.pas907
-rw-r--r--Game/Code/Screens/UScreenSong.pas8
-rw-r--r--Game/Code/Screens/UScreenSongJumpto.pas2
-rw-r--r--Game/Code/Screens/UScreenSongMenu.pas4
-rw-r--r--Game/Code/Screens/UScreenStatDetail.pas2
-rw-r--r--Game/Code/Screens/UScreenStatMain.pas9
-rw-r--r--Game/Code/Screens/UScreenTop5.pas5
-rw-r--r--Game/Code/Screens/UScreenWelcome.pas2
-rw-r--r--Game/Code/UltraStar.dpr250
-rwxr-xr-xGame/Code/lib/FreeImage/FreeBitmap.pas1740
-rwxr-xr-xGame/Code/lib/FreeImage/FreeImage.pas743
-rwxr-xr-xGame/Code/lib/FreeImage/libfreeimage.dylibbin0 -> 3068680 bytes
-rw-r--r--Game/Code/lib/SQLite/SQLite3.pas10
-rw-r--r--Game/Code/lib/SQLite/SQLiteTable3.pas4
-rwxr-xr-xGame/Code/lib/bass/MacOSX/Bass.pas984
-rw-r--r--Game/Code/switches.inc62
-rw-r--r--Modis/SDK/ModiSDK.pas2
-rw-r--r--Modis/SDK/StrUtils.pas3
-rw-r--r--Modis/SDK/UPartyDefs.pas3
-rw-r--r--Modis/SDK/UPluginDefs.pas2
114 files changed, 12554 insertions, 7384 deletions
diff --git a/Game/Code/Classes/TextGL.pas b/Game/Code/Classes/TextGL.pas
index fbe9a050..af60c4ff 100644
--- a/Game/Code/Classes/TextGL.pas
+++ b/Game/Code/Classes/TextGL.pas
@@ -2,9 +2,7 @@ unit TextGL;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses OpenGL12,
@@ -80,7 +78,7 @@ uses UMain,
lcltype,
{$ENDIF}
SysUtils,
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
LResources,
{$ENDIF}
UGraphic;
@@ -88,7 +86,7 @@ uses UMain,
procedure BuildFont; // Build Our Bitmap Font
procedure loadfont( aID : integer; aType, aResourceName : String);
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
var
lLazRes : TLResource;
lResData : TStringStream;
@@ -541,7 +539,7 @@ begin
end;
-{$IFDEF FPC}
+{$IFDEF LAZARUS}
{$IFDEF win32}
initialization
{$I UltraStar.lrs}
diff --git a/Game/Code/Classes/UAudio_FFMpeg.pas b/Game/Code/Classes/UAudio_FFMpeg.pas
index 35822a3b..675dfd3c 100644
--- a/Game/Code/Classes/UAudio_FFMpeg.pas
+++ b/Game/Code/Classes/UAudio_FFMpeg.pas
@@ -13,9 +13,7 @@ This unit is primarily based upon -
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses Classes,
@@ -67,7 +65,7 @@ type
implementation
uses
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
lclintf,
libc,
{$ENDIF}
@@ -590,7 +588,7 @@ begin
len1 := len;
- {$ifdef win32}
+ {$ifdef WIN32}
lSrc := PUInt8( integer( laudio_buf ) + audio_buf_index );
CopyMemory(stream, lSrc , len1);
{$else}
diff --git a/Game/Code/Classes/UAudio_bass.pas b/Game/Code/Classes/UAudio_bass.pas
index 985eede5..463a6c7f 100644
--- a/Game/Code/Classes/UAudio_bass.pas
+++ b/Game/Code/Classes/UAudio_bass.pas
@@ -2,9 +2,7 @@ unit UAudio_bass;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses Classes,
@@ -24,7 +22,7 @@ uses Classes,
implementation
uses
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
lclintf,
{$ENDIF}
URecord,
@@ -111,7 +109,7 @@ var
function TAudio_bass.GetName: String;
begin
- result := 'BASS';
+ result := 'BASS';
end;
procedure TAudio_bass.InitializePlayback;
@@ -637,11 +635,11 @@ initialization
writeln( 'UAudio_Bass - Register Input' );
AudioManager.add( IAudioInput( singleton_MusicBass ) );
-finalization
- writeln( 'UAudio_Bass - UnRegister Playback' );
- AudioManager.Remove( IAudioPlayback( singleton_MusicBass ) );
-
- writeln( 'UAudio_Bass - UnRegister Input' );
- AudioManager.Remove( IAudioInput( singleton_MusicBass ) );
+finalization
+ writeln( 'UAudio_Bass - UnRegister Playback' );
+ AudioManager.Remove( IAudioPlayback( singleton_MusicBass ) );
+
+ writeln( 'UAudio_Bass - UnRegister Input' );
+ AudioManager.Remove( IAudioInput( singleton_MusicBass ) );
end.
diff --git a/Game/Code/Classes/UCatCovers.pas b/Game/Code/Classes/UCatCovers.pas
index d40b2564..b1c91e48 100644
--- a/Game/Code/Classes/UCatCovers.pas
+++ b/Game/Code/Classes/UCatCovers.pas
@@ -5,6 +5,9 @@ unit UCatCovers;
/////////////////////////////////////////////////////////////////////////
interface
+
+{$I switches.inc}
+
uses UIni;
type
diff --git a/Game/Code/Classes/UCommandLine.pas b/Game/Code/Classes/UCommandLine.pas
index 259c6e16..1539ffaf 100644
--- a/Game/Code/Classes/UCommandLine.pas
+++ b/Game/Code/Classes/UCommandLine.pas
@@ -2,6 +2,9 @@ unit UCommandLine;
interface
+{$I switches.inc}
+
+
type
//-----------
// TCMDParams - Class Reaads Infos from ParamStr and set some easy Interface Variables
diff --git a/Game/Code/Classes/UCommon.pas b/Game/Code/Classes/UCommon.pas
index 44ec6bb3..b532f775 100644
--- a/Game/Code/Classes/UCommon.pas
+++ b/Game/Code/Classes/UCommon.pas
@@ -2,16 +2,17 @@ unit UCommon;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses
SysUtils,
-{$IFDEF FPC}
+{$IFDEF LAZARUS}
lResources,
{$ENDIF}
ULog,
+{$IFDEF DARWIN}
+ messages,
+{$ENDIF}
{$IFDEF win32}
windows;
{$ELSE}
@@ -27,22 +28,23 @@ type
TWin32FindData = LongInt;
{$ENDIF}
-{$IFDEF FPC}
-
-type
- TWndMethod = procedure(var Message: TMessage) of object;
+{$IFDEF LAZARUS}
+ function LazFindResource( const aName, aType : String ): TLResource;
+{$ENDIF}
-function LazFindResource( const aName, aType : String ): TLResource;
+{$IFDEF FPC}
function RandomRange(aMin: Integer; aMax: Integer) : Integer;
function MaxValue(const Data: array of Double): Double;
function MinValue(const Data: array of Double): Double;
-{$IFDEF Win32}
-function AllocateHWnd(Method: TWndMethod): HWND;
-procedure DeallocateHWnd(Wnd: HWND);
-{$ENDIF} // Win32
+ {$IFDEF WIN32}
+ type
+ TWndMethod = procedure(var Message: TMessage) of object;
+ function AllocateHWnd(Method: TWndMethod): HWND;
+ procedure DeallocateHWnd(Wnd: HWND);
+ {$ENDIF} // Win32
{$ENDIF} // FPC Only
@@ -58,24 +60,24 @@ function AdaptFilePaths( const aPath : widestring ): widestring;
procedure ZeroMemory( Destination: Pointer; Length: DWORD );
{$ENDIF}
-{$IFDEF Win32}
+{$IFDEF MSWINDOWS}
type
TSearchRecW = record
- Time: Integer;
- Size: Integer;
- Attr: Integer;
- Name: WideString;
- ExcludeAttr: Integer;
- FindHandle: THandle;
- FindData: TWin32FindDataW;
- end;
-
- function FindFirstW(const Path: WideString; Attr: Integer; var F: TSearchRecW): Integer;
- function FindNextW(var F: TSearchRecW): Integer;
- procedure FindCloseW(var F: TSearchRecW);
- function FindMatchingFileW(var F: TSearchRecW): Integer;
- function DirectoryExistsW(const Directory: widestring): Boolean;
+ Time: Integer;
+ Size: Integer;
+ Attr: Integer;
+ Name: WideString;
+ ExcludeAttr: Integer;
+ FindHandle: THandle;
+ FindData: TWin32FindDataW;
+ end;
+
+ function FindFirstW(const Path: WideString; Attr: Integer; var F: TSearchRecW): Integer;
+ function FindNextW(var F: TSearchRecW): Integer;
+ procedure FindCloseW(var F: TSearchRecW);
+ function FindMatchingFileW(var F: TSearchRecW): Integer;
+ function DirectoryExistsW(const Directory: widestring): Boolean;
{$endif}
implementation
@@ -143,7 +145,7 @@ end;
{$ENDIF}
-{$IFDEF FPC}
+{$IFDEF LAZARUS}
function LazFindResource( const aName, aType : String ): TLResource;
var
@@ -161,7 +163,9 @@ begin
end;
end;
end;
+{$ENDIF}
+{$IFDEF FPC}
function MaxValue(const Data: array of Double): Double;
var
I: Integer;
@@ -191,7 +195,7 @@ end;
// NOTE !!!!!!!!!!
// AllocateHWnd is in lclintfh.inc
-{$IFDEF Win32}
+{$IFDEF MSWINDOWS}
// TODO : JB this is dodgey and bad... find a REAL solution !
function AllocateHWnd(Method: TWndMethod): HWND;
var
@@ -209,72 +213,82 @@ begin
DestroyWindow(Wnd);
end;
{$ENDIF}
+{$IFDEF DARWIN}
+// TODO : Situation for the mac isn't better !
+function AllocateHWnd(Method: TWndMethod): HWND;
+begin
+end;
+
+procedure DeallocateHWnd(Wnd: HWND);
+begin
+end;
+{$ENDIF}
+
-
{$ENDIF}
-{$ifdef win32}
-function FindFirstW(const Path: widestring; Attr: Integer; var F: TSearchRecW): Integer;
-const
- faSpecial = faHidden or faSysFile or faVolumeID or faDirectory;
-begin
- F.ExcludeAttr := not Attr and faSpecial;
- F.FindHandle := FindFirstFileW(PWideChar(Path), F.FindData);
- if F.FindHandle <> INVALID_HANDLE_VALUE then
- begin
- Result := FindMatchingFileW(F);
- if Result <> 0 then FindCloseW(F);
- end else
- Result := GetLastError;
-end;
-
-function FindNextW(var F: TSearchRecW): Integer;
-begin
- if FindNextFileW(F.FindHandle, F.FindData) then
- Result := FindMatchingFileW(F)
- else
- Result := GetLastError;
-end;
-
-procedure FindCloseW(var F: TSearchRecW);
-begin
- if F.FindHandle <> INVALID_HANDLE_VALUE then
- begin
- Windows.FindClose(F.FindHandle);
- F.FindHandle := INVALID_HANDLE_VALUE;
- end;
-end;
-
-function FindMatchingFileW(var F: TSearchRecW): Integer;
-var
- LocalFileTime: TFileTime;
-begin
- with F do
- begin
- while FindData.dwFileAttributes and ExcludeAttr <> 0 do
- if not FindNextFileW(FindHandle, FindData) then
- begin
- Result := GetLastError;
- Exit;
- end;
- FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
- FileTimeToDosDateTime(LocalFileTime, LongRec(Time).Hi, LongRec(Time).Lo);
- Size := FindData.nFileSizeLow;
- Attr := FindData.dwFileAttributes;
- Name := FindData.cFileName;
- end;
- Result := 0;
-end;
-
-function DirectoryExistsW(const Directory: widestring): Boolean;
-var
- Code: Integer;
-begin
- Code := GetFileAttributesW(PWideChar(Directory));
- Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
-end;
+{$ifdef MSWINDOWS}
+function FindFirstW(const Path: widestring; Attr: Integer; var F: TSearchRecW): Integer;
+const
+ faSpecial = faHidden or faSysFile or faVolumeID or faDirectory;
+begin
+ F.ExcludeAttr := not Attr and faSpecial;
+ F.FindHandle := FindFirstFileW(PWideChar(Path), F.FindData);
+ if F.FindHandle <> INVALID_HANDLE_VALUE then
+ begin
+ Result := FindMatchingFileW(F);
+ if Result <> 0 then FindCloseW(F);
+ end else
+ Result := GetLastError;
+end;
+
+function FindNextW(var F: TSearchRecW): Integer;
+begin
+ if FindNextFileW(F.FindHandle, F.FindData) then
+ Result := FindMatchingFileW(F)
+ else
+ Result := GetLastError;
+end;
+
+procedure FindCloseW(var F: TSearchRecW);
+begin
+ if F.FindHandle <> INVALID_HANDLE_VALUE then
+ begin
+ Windows.FindClose(F.FindHandle);
+ F.FindHandle := INVALID_HANDLE_VALUE;
+ end;
+end;
+
+function FindMatchingFileW(var F: TSearchRecW): Integer;
+var
+ LocalFileTime: TFileTime;
+begin
+ with F do
+ begin
+ while FindData.dwFileAttributes and ExcludeAttr <> 0 do
+ if not FindNextFileW(FindHandle, FindData) then
+ begin
+ Result := GetLastError;
+ Exit;
+ end;
+ FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
+ FileTimeToDosDateTime(LocalFileTime, LongRec(Time).Hi, LongRec(Time).Lo);
+ Size := FindData.nFileSizeLow;
+ Attr := FindData.dwFileAttributes;
+ Name := FindData.cFileName;
+ end;
+ Result := 0;
+end;
+
+function DirectoryExistsW(const Directory: widestring): Boolean;
+var
+ Code: Integer;
+begin
+ Code := GetFileAttributesW(PWideChar(Directory));
+ Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
+end;
{$endif}
diff --git a/Game/Code/Classes/UCore.pas b/Game/Code/Classes/UCore.pas
index 9c31e79a..091868f2 100644
--- a/Game/Code/Classes/UCore.pas
+++ b/Game/Code/Classes/UCore.pas
@@ -1,495 +1,492 @@
-unit UCore;
-
-interface
-uses uPluginDefs, uCoreModule, UHooks, UServices, UModules;
-{*********************
- TCore
- Class manages all CoreModules, teh StartUp, teh MainLoop and the shutdown process
- Also it does some Error Handling, and maybe sometime multithreaded Loading ;)
-*********************}
-
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
-{$I switches.inc}
-
-type
- TModuleListItem = record
- Module: TCoreModule; //Instance of the Modules Class
- Info: TModuleInfo; //ModuleInfo returned by Modules Modulinfo Proc
- NeedsDeInit: Boolean; //True if Module was succesful inited
- end;
-
- TCore = class
- private
- //Some Hook Handles. See Plugin SDKs Hooks.txt for Infos
- hLoadingFinished: THandle;
- hMainLoop: THandle;
- hTranslate: THandle;
- hLoadTextures: THandle;
- hExitQuery: THandle;
- hExit: THandle;
- hDebug: THandle;
- hError: THandle;
- sReportError: THandle;
- sReportDebug: THandle;
- sShowMessage: THandle;
- sRetranslate: THandle;
- sReloadTextures: THandle;
- sGetModuleInfo: THandle;
- sGetApplicationHandle: THandle;
-
- Modules: Array [0..High(CORE_MODULES_TO_LOAD)] of TModuleListItem;
-
- //Function Get all Modules and Creates them
- Function GetModules: Boolean;
-
- //Loads Core and all Modules
- Function Load: Boolean;
-
- //Inits Core and all Modules
- Function Init: Boolean;
-
- //DeInits Core and all Modules
- Function DeInit: Boolean;
-
- //Load the Core
- Function LoadCore: Boolean;
-
- //Init the Core
- Function InitCore: Boolean;
-
- //DeInit the Core
- Function DeInitCore: Boolean;
-
- //Called one Time per Frame
- Function MainLoop: Boolean;
-
- public
- Hooks: THookManager; //Teh Hook Manager ;)
- Services: TServiceManager;//The Service Manager
-
- CurExecuted: Integer; //ID of Plugin or Module curently Executed
-
- Name: String; //Name of this Application
- Version: LongWord; //Version of this ". For Info Look PluginDefs Functions
-
- LastErrorReporter:String; //Who Reported the Last Error String
- LastErrorString: String; //Last Error String reported
-
-
- //---------------
- //Main Methods to control the Core:
- //---------------
- Constructor Create(const cName: String; const cVersion: LongWord);
-
- //Starts Loading and Init Process. Then Runs MainLoop. DeInits on Shutdown
- Procedure Run;
-
- //Method for other Classes to get Pointer to a specific Module
- Function GetModulebyName(const Name: String): PCoreModule;
-
- //--------------
- // Hook and Service Procs:
- //--------------
- Function ShowMessage(wParam, lParam: DWord): integer; //Shows a Message (lParam: PChar Text, wParam: Symbol)
- Function ReportError(wParam, lParam: DWord): integer; //Shows a Message (wParam: Pchar(Message), lParam: PChar(Reportername))
- Function ReportDebug(wParam, lParam: DWord): integer; //Shows a Message (wParam: Pchar(Message), lParam: PChar(Reportername))
- Function Retranslate(wParam, lParam: DWord): integer; //Calls Translate hook
- Function ReloadTextures(wParam, lParam: DWord): integer; //Calls LoadTextures hook
- Function GetModuleInfo(wParam, lParam: DWord): integer; //If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TModuleInfo to address at lparam
- Function GetApplicationHandle(wParam, lParam: DWord): integer; //Returns Application Handle
- end;
-
-var
- Core: TCore;
-
-implementation
-uses SysUtils,
-{$IFDEF win32}
-Windows
-{$ENDIF};
-
-//-------------
-// Create - Creates Class + Hook and Service Manager
-//-------------
-Constructor TCore.Create(const cName: String; const cVersion: LongWord);
-begin
- Name := cName;
- Version := cVersion;
- CurExecuted := 0;
-
- LastErrorReporter := '';
- LastErrorString := '';
-
- Hooks := THookManager.Create(50);
- Services := TServiceManager.Create;
-end;
-
-//-------------
-//Starts Loading and Init Process. Then Runs MainLoop. DeInits on Shutdown
-//-------------
-Procedure TCore.Run;
-var
- noError: Boolean;
-begin
- //Get Modules
- Try
- noError := GetModules;
- Except
- noError := False;
- end;
-
- //Loading
- if (noError) then
- begin
- Try
- noError := Load;
- Except
- noError := False;
- end;
-
- if (noError) then
- begin //Init
- Try
- noError := Init;
- Except
- noError := False;
- end;
-
- If noError then
- begin
- //Call Translate Hook
- noError := (Hooks.CallEventChain(hTranslate, 0, 0) = 0);
-
- If noError then
- begin //Calls LoadTextures Hook
- noError := (Hooks.CallEventChain(hLoadTextures, 0, 0) = 0);
-
- if noError then
- begin //Calls Loading Finished Hook
- noError := (Hooks.CallEventChain(hLoadingFinished, 0, 0) = 0);
-
- If noError then
- begin
- //Start MainLoop
- While noError do
- begin
- noError := MainLoop;
- // to-do : Call Display Draw here
- end;
- end
- else
- begin
- If (LastErrorString <> '') then
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error calling LoadingFinished Hook: ' + LastErrorString)))
- else
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error calling LoadingFinished Hook')));
- end;
- end
- else
- begin
- If (LastErrorString <> '') then
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error loading textures: ' + LastErrorString)))
- else
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error loading textures')));
- end;
- end
- else
- begin
- If (LastErrorString <> '') then
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error translating: ' + LastErrorString)))
- else
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error translating')));
- end;
-
- end
- else
- begin
- If (LastErrorString <> '') then
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error initing Modules: ' + LastErrorString)))
- else
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error initing Modules')));
- end;
- end
- else
- begin
- If (LastErrorString <> '') then
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error loading Modules: ' + LastErrorString)))
- else
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error loading Modules')));
- end;
- end
- else
- begin
- If (LastErrorString <> '') then
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error Getting Modules: ' + LastErrorString)))
- else
- Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error Getting Modules')));
- end;
-
- //DeInit
- DeInit;
-end;
-
-//-------------
-//Called one Time per Frame
-//-------------
-Function TCore.MainLoop: Boolean;
-begin
- Result := False;
-
-end;
-
-//-------------
-//Function Get all Modules and Creates them
-//-------------
-Function TCore.GetModules: Boolean;
-var
- I: Integer;
-begin
- Result := False;
- try
- For I := 0 to high(Modules) do
- begin
- Modules[I].NeedsDeInit := False;
- Modules[I].Module := CORE_MODULES_TO_LOAD[I].Create;
- Modules[I].Module.Info(@Modules[I].Info);
- end;
- Result := True;
- except
- ReportError(Integer(PChar('Can''t get module #' + InttoStr(I) + ' "' + Modules[I].Info.Name + '"')), Integer(PChar('Core')));
- end;
-end;
-
-//-------------
-//Loads Core and all Modules
-//-------------
-Function TCore.Load: Boolean;
-var
- I: Integer;
-begin
- Result := LoadCore;
-
- I := 0;
- While ((Result = True) AND (I <= High(CORE_MODULES_TO_LOAD))) do
- begin
- try
- Result := Modules[I].Module.Load;
- except
- Result := False;
- ReportError(Integer(PChar('Error loading module #' + InttoStr(I) + ' "' + Modules[I].Info.Name + '"')), Integer(PChar('Core')));
- end;
-
- Inc(I);
- end;
-end;
-
-//-------------
-//Inits Core and all Modules
-//-------------
-Function TCore.Init: Boolean;
-var
- I: Integer;
-begin
- Result := InitCore;
-
- I := 0;
- While ((Result = True) AND (I <= High(CORE_MODULES_TO_LOAD))) do
- begin
- try
- Result := Modules[I].Module.Init;
- except
- Result := False;
- ReportError(Integer(PChar('Error initing module #' + InttoStr(I) + ' "' + Modules[I].Info.Name + '"')), Integer(PChar('Core')));
- end;
-
- Modules[I].NeedsDeInit := Result;
- Inc(I);
- end;
-end;
-
-//-------------
-//DeInits Core and all Modules
-//-------------
-Function TCore.DeInit: Boolean;
-var
- I: Integer;
-label Continue;
-begin
- I := High(CORE_MODULES_TO_LOAD);
-
- Continue:
- Try
- While (I >= 0) do
- begin
- If (Modules[I].NeedsDeInit) then
- Modules[I].Module.DeInit;
-
- Dec(I);
- end;
- Except
-
-
- end;
- If (I >= 0) then
- GoTo Continue;
-
- DeInitCore;
-end;
-
-//-------------
-//Load the Core
-//-------------
-Function TCore.LoadCore: Boolean;
-begin
- hLoadingFinished := Hooks.AddEvent('Core/LoadingFinished');
- hMainLoop := Hooks.AddEvent('Core/MainLoop');
- hTranslate := Hooks.AddEvent('Core/Translate');
- hLoadTextures := Hooks.AddEvent('Core/LoadTextures');
- hExitQuery := Hooks.AddEvent('Core/ExitQuery');
- hExit := Hooks.AddEvent('Core/Exit');
- hDebug := Hooks.AddEvent('Core/NewDebugInfo');
- hError := Hooks.AddEvent('Core/NewError');
-
- sReportError := Services.AddService('Core/ReportError', nil, Self.ReportError);
- sReportDebug := Services.AddService('Core/ReportDebug', nil, Self.ReportDebug);
- sShowMessage := Services.AddService('Core/ShowMessage', nil, Self.ShowMessage);
- sRetranslate := Services.AddService('Core/Retranslate', nil, Self.Retranslate);
- sReloadTextures := Services.AddService('Core/ReloadTextures', nil, Self.ReloadTextures);
- sGetModuleInfo := Services.AddService('Core/GetModuleInfo', nil, Self.GetModuleInfo);
- sGetApplicationHandle := Services.AddService('Core/GetApplicationHandle', nil, Self.GetApplicationHandle);
-
- //A little Test
- Hooks.AddSubscriber('Core/NewError', HookTest);
-end;
-
-//-------------
-//Init the Core
-//-------------
-Function TCore.InitCore: Boolean;
-begin
- //Dont Init s.th. atm.
-end;
-
-//-------------
-//DeInit the Core
-//-------------
-Function TCore.DeInitCore: Boolean;
-begin
-
-
- // to-do : write TService-/HookManager.Free and call it here
-end;
-
-//-------------
-//Method for other Classes to get Pointer to a specific Module
-//-------------
-Function TCore.GetModulebyName(const Name: String): PCoreModule;
-var I: Integer;
-begin
- Result := nil;
- For I := 0 to high(Modules) do
- If (Modules[I].Info.Name = Name) then
- begin
- Result := @Modules[I].Module;
- Break;
- end;
-end;
-
-//-------------
-// Shows a MessageDialog (lParam: PChar Text, wParam: Symbol)
-//-------------
-Function TCore.ShowMessage(wParam, lParam: DWord): integer;
-var Params: Cardinal;
-begin
- Result := -1;
-
- {$IFDEF win32}
- If (ptr(lParam)<>nil) then
- begin
- Params := MB_OK;
- Case wParam of
- CORE_SM_ERROR: Params := Params or MB_ICONERROR;
- CORE_SM_WARNING: Params := Params or MB_ICONWARNING;
- CORE_SM_INFO: Params := Params or MB_ICONINFORMATION;
- end;
-
- //Anzeigen:
- Result := Messagebox(0, ptr(lParam), PChar(Name), Params);
- end;
- {$ENDIF}
-
- // to-do : write ShowMessage for other OSes
-end;
-
-//-------------
-// Calls NewError HookChain (wParam: Pchar(Message), lParam: PChar(Reportername))
-//-------------
-Function TCore.ReportError(wParam, lParam: DWord): integer;
-begin
- //Update LastErrorReporter and LastErrorString
- LastErrorReporter := String(PChar(Ptr(lParam)));
- LastErrorString := String(PChar(Ptr(wParam)));
-
- Hooks.CallEventChain(hError, wParam, lParam);
-end;
-
-//-------------
-// Calls NewDebugInfo HookChain (wParam: Pchar(Message), lParam: PChar(Reportername))
-//-------------
-Function TCore.ReportDebug(wParam, lParam: DWord): integer;
-begin
- Hooks.CallEventChain(hDebug, wParam, lParam);
-end;
-
-//-------------
-// Calls Translate hook
-//-------------
-Function TCore.Retranslate(wParam, lParam: DWord): integer;
-begin
- Hooks.CallEventChain(hTranslate, 0, 1);
-end;
-
-//-------------
-// Calls LoadTextures hook
-//-------------
-Function TCore.ReloadTextures(wParam, lParam: DWord): integer;
-begin
- Hooks.CallEventChain(hLoadTextures, 0, 1);
-end;
-
-//-------------
-// If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TModuleInfo to address at lparam
-//-------------
-Function TCore.GetModuleInfo(wParam, lParam: DWord): integer;
-begin
- if (ptr(lParam) = nil) then
- begin
- Result := Length(Modules);
- end
- else
- begin
- Try
- For Result := 0 to High(Modules) do
- begin
- AModuleInfo(ptr(lParam))[Result].Name := Modules[Result].Info.Name;
- AModuleInfo(ptr(lParam))[Result].Version := Modules[Result].Info.Version;
- AModuleInfo(ptr(lParam))[Result].Description := Modules[Result].Info.Description;
- end;
- Except
- Result := -1;
- end;
- end;
-end;
-
-//-------------
-// Returns Application Handle
-//-------------
-Function TCore.GetApplicationHandle(wParam, lParam: DWord): integer;
-begin
- Result := hInstance;
-end;
-
+unit UCore;
+
+interface
+
+{$I switches.inc}
+
+uses uPluginDefs, uCoreModule, UHooks, UServices, UModules;
+{*********************
+ TCore
+ Class manages all CoreModules, teh StartUp, teh MainLoop and the shutdown process
+ Also it does some Error Handling, and maybe sometime multithreaded Loading ;)
+*********************}
+
+type
+ TModuleListItem = record
+ Module: TCoreModule; //Instance of the Modules Class
+ Info: TModuleInfo; //ModuleInfo returned by Modules Modulinfo Proc
+ NeedsDeInit: Boolean; //True if Module was succesful inited
+ end;
+
+ TCore = class
+ private
+ //Some Hook Handles. See Plugin SDKs Hooks.txt for Infos
+ hLoadingFinished: THandle;
+ hMainLoop: THandle;
+ hTranslate: THandle;
+ hLoadTextures: THandle;
+ hExitQuery: THandle;
+ hExit: THandle;
+ hDebug: THandle;
+ hError: THandle;
+ sReportError: THandle;
+ sReportDebug: THandle;
+ sShowMessage: THandle;
+ sRetranslate: THandle;
+ sReloadTextures: THandle;
+ sGetModuleInfo: THandle;
+ sGetApplicationHandle: THandle;
+
+ Modules: Array [0..High(CORE_MODULES_TO_LOAD)] of TModuleListItem;
+
+ //Function Get all Modules and Creates them
+ Function GetModules: Boolean;
+
+ //Loads Core and all Modules
+ Function Load: Boolean;
+
+ //Inits Core and all Modules
+ Function Init: Boolean;
+
+ //DeInits Core and all Modules
+ Function DeInit: Boolean;
+
+ //Load the Core
+ Function LoadCore: Boolean;
+
+ //Init the Core
+ Function InitCore: Boolean;
+
+ //DeInit the Core
+ Function DeInitCore: Boolean;
+
+ //Called one Time per Frame
+ Function MainLoop: Boolean;
+
+ public
+ Hooks: THookManager; //Teh Hook Manager ;)
+ Services: TServiceManager;//The Service Manager
+
+ CurExecuted: Integer; //ID of Plugin or Module curently Executed
+
+ Name: String; //Name of this Application
+ Version: LongWord; //Version of this ". For Info Look PluginDefs Functions
+
+ LastErrorReporter:String; //Who Reported the Last Error String
+ LastErrorString: String; //Last Error String reported
+
+
+ //---------------
+ //Main Methods to control the Core:
+ //---------------
+ Constructor Create(const cName: String; const cVersion: LongWord);
+
+ //Starts Loading and Init Process. Then Runs MainLoop. DeInits on Shutdown
+ Procedure Run;
+
+ //Method for other Classes to get Pointer to a specific Module
+ Function GetModulebyName(const Name: String): PCoreModule;
+
+ //--------------
+ // Hook and Service Procs:
+ //--------------
+ Function ShowMessage(wParam, lParam: DWord): integer; //Shows a Message (lParam: PChar Text, wParam: Symbol)
+ Function ReportError(wParam, lParam: DWord): integer; //Shows a Message (wParam: Pchar(Message), lParam: PChar(Reportername))
+ Function ReportDebug(wParam, lParam: DWord): integer; //Shows a Message (wParam: Pchar(Message), lParam: PChar(Reportername))
+ Function Retranslate(wParam, lParam: DWord): integer; //Calls Translate hook
+ Function ReloadTextures(wParam, lParam: DWord): integer; //Calls LoadTextures hook
+ Function GetModuleInfo(wParam, lParam: DWord): integer; //If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TModuleInfo to address at lparam
+ Function GetApplicationHandle(wParam, lParam: DWord): integer; //Returns Application Handle
+ end;
+
+var
+ Core: TCore;
+
+implementation
+uses SysUtils,
+{$IFDEF win32}
+Windows
+{$ENDIF};
+
+//-------------
+// Create - Creates Class + Hook and Service Manager
+//-------------
+Constructor TCore.Create(const cName: String; const cVersion: LongWord);
+begin
+ Name := cName;
+ Version := cVersion;
+ CurExecuted := 0;
+
+ LastErrorReporter := '';
+ LastErrorString := '';
+
+ Hooks := THookManager.Create(50);
+ Services := TServiceManager.Create;
+end;
+
+//-------------
+//Starts Loading and Init Process. Then Runs MainLoop. DeInits on Shutdown
+//-------------
+Procedure TCore.Run;
+var
+ noError: Boolean;
+begin
+ //Get Modules
+ Try
+ noError := GetModules;
+ Except
+ noError := False;
+ end;
+
+ //Loading
+ if (noError) then
+ begin
+ Try
+ noError := Load;
+ Except
+ noError := False;
+ end;
+
+ if (noError) then
+ begin //Init
+ Try
+ noError := Init;
+ Except
+ noError := False;
+ end;
+
+ If noError then
+ begin
+ //Call Translate Hook
+ noError := (Hooks.CallEventChain(hTranslate, 0, 0) = 0);
+
+ If noError then
+ begin //Calls LoadTextures Hook
+ noError := (Hooks.CallEventChain(hLoadTextures, 0, 0) = 0);
+
+ if noError then
+ begin //Calls Loading Finished Hook
+ noError := (Hooks.CallEventChain(hLoadingFinished, 0, 0) = 0);
+
+ If noError then
+ begin
+ //Start MainLoop
+ While noError do
+ begin
+ noError := MainLoop;
+ // to-do : Call Display Draw here
+ end;
+ end
+ else
+ begin
+ If (LastErrorString <> '') then
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error calling LoadingFinished Hook: ' + LastErrorString)))
+ else
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error calling LoadingFinished Hook')));
+ end;
+ end
+ else
+ begin
+ If (LastErrorString <> '') then
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error loading textures: ' + LastErrorString)))
+ else
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error loading textures')));
+ end;
+ end
+ else
+ begin
+ If (LastErrorString <> '') then
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error translating: ' + LastErrorString)))
+ else
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error translating')));
+ end;
+
+ end
+ else
+ begin
+ If (LastErrorString <> '') then
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error initing Modules: ' + LastErrorString)))
+ else
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error initing Modules')));
+ end;
+ end
+ else
+ begin
+ If (LastErrorString <> '') then
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error loading Modules: ' + LastErrorString)))
+ else
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error loading Modules')));
+ end;
+ end
+ else
+ begin
+ If (LastErrorString <> '') then
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error Getting Modules: ' + LastErrorString)))
+ else
+ Self.ShowMessage(CORE_SM_ERROR, Integer(PChar('Error Getting Modules')));
+ end;
+
+ //DeInit
+ DeInit;
+end;
+
+//-------------
+//Called one Time per Frame
+//-------------
+Function TCore.MainLoop: Boolean;
+begin
+ Result := False;
+
+end;
+
+//-------------
+//Function Get all Modules and Creates them
+//-------------
+Function TCore.GetModules: Boolean;
+var
+ I: Integer;
+begin
+ Result := False;
+ try
+ For I := 0 to high(Modules) do
+ begin
+ Modules[I].NeedsDeInit := False;
+ Modules[I].Module := CORE_MODULES_TO_LOAD[I].Create;
+ Modules[I].Module.Info(@Modules[I].Info);
+ end;
+ Result := True;
+ except
+ ReportError(Integer(PChar('Can''t get module #' + InttoStr(I) + ' "' + Modules[I].Info.Name + '"')), Integer(PChar('Core')));
+ end;
+end;
+
+//-------------
+//Loads Core and all Modules
+//-------------
+Function TCore.Load: Boolean;
+var
+ I: Integer;
+begin
+ Result := LoadCore;
+
+ I := 0;
+ While ((Result = True) AND (I <= High(CORE_MODULES_TO_LOAD))) do
+ begin
+ try
+ Result := Modules[I].Module.Load;
+ except
+ Result := False;
+ ReportError(Integer(PChar('Error loading module #' + InttoStr(I) + ' "' + Modules[I].Info.Name + '"')), Integer(PChar('Core')));
+ end;
+
+ Inc(I);
+ end;
+end;
+
+//-------------
+//Inits Core and all Modules
+//-------------
+Function TCore.Init: Boolean;
+var
+ I: Integer;
+begin
+ Result := InitCore;
+
+ I := 0;
+ While ((Result = True) AND (I <= High(CORE_MODULES_TO_LOAD))) do
+ begin
+ try
+ Result := Modules[I].Module.Init;
+ except
+ Result := False;
+ ReportError(Integer(PChar('Error initing module #' + InttoStr(I) + ' "' + Modules[I].Info.Name + '"')), Integer(PChar('Core')));
+ end;
+
+ Modules[I].NeedsDeInit := Result;
+ Inc(I);
+ end;
+end;
+
+//-------------
+//DeInits Core and all Modules
+//-------------
+Function TCore.DeInit: Boolean;
+var
+ I: Integer;
+label Continue;
+begin
+ I := High(CORE_MODULES_TO_LOAD);
+
+ Continue:
+ Try
+ While (I >= 0) do
+ begin
+ If (Modules[I].NeedsDeInit) then
+ Modules[I].Module.DeInit;
+
+ Dec(I);
+ end;
+ Except
+
+
+ end;
+ If (I >= 0) then
+ GoTo Continue;
+
+ DeInitCore;
+end;
+
+//-------------
+//Load the Core
+//-------------
+Function TCore.LoadCore: Boolean;
+begin
+ hLoadingFinished := Hooks.AddEvent('Core/LoadingFinished');
+ hMainLoop := Hooks.AddEvent('Core/MainLoop');
+ hTranslate := Hooks.AddEvent('Core/Translate');
+ hLoadTextures := Hooks.AddEvent('Core/LoadTextures');
+ hExitQuery := Hooks.AddEvent('Core/ExitQuery');
+ hExit := Hooks.AddEvent('Core/Exit');
+ hDebug := Hooks.AddEvent('Core/NewDebugInfo');
+ hError := Hooks.AddEvent('Core/NewError');
+
+ sReportError := Services.AddService('Core/ReportError', nil, Self.ReportError);
+ sReportDebug := Services.AddService('Core/ReportDebug', nil, Self.ReportDebug);
+ sShowMessage := Services.AddService('Core/ShowMessage', nil, Self.ShowMessage);
+ sRetranslate := Services.AddService('Core/Retranslate', nil, Self.Retranslate);
+ sReloadTextures := Services.AddService('Core/ReloadTextures', nil, Self.ReloadTextures);
+ sGetModuleInfo := Services.AddService('Core/GetModuleInfo', nil, Self.GetModuleInfo);
+ sGetApplicationHandle := Services.AddService('Core/GetApplicationHandle', nil, Self.GetApplicationHandle);
+
+ //A little Test
+ Hooks.AddSubscriber('Core/NewError', HookTest);
+end;
+
+//-------------
+//Init the Core
+//-------------
+Function TCore.InitCore: Boolean;
+begin
+ //Dont Init s.th. atm.
+end;
+
+//-------------
+//DeInit the Core
+//-------------
+Function TCore.DeInitCore: Boolean;
+begin
+
+
+ // to-do : write TService-/HookManager.Free and call it here
+end;
+
+//-------------
+//Method for other Classes to get Pointer to a specific Module
+//-------------
+Function TCore.GetModulebyName(const Name: String): PCoreModule;
+var I: Integer;
+begin
+ Result := nil;
+ For I := 0 to high(Modules) do
+ If (Modules[I].Info.Name = Name) then
+ begin
+ Result := @Modules[I].Module;
+ Break;
+ end;
+end;
+
+//-------------
+// Shows a MessageDialog (lParam: PChar Text, wParam: Symbol)
+//-------------
+Function TCore.ShowMessage(wParam, lParam: DWord): integer;
+var Params: Cardinal;
+begin
+ Result := -1;
+
+ {$IFDEF MSWINDOWS}
+ If (ptr(lParam)<>nil) then
+ begin
+ Params := MB_OK;
+ Case wParam of
+ CORE_SM_ERROR: Params := Params or MB_ICONERROR;
+ CORE_SM_WARNING: Params := Params or MB_ICONWARNING;
+ CORE_SM_INFO: Params := Params or MB_ICONINFORMATION;
+ end;
+
+ //Anzeigen:
+ Result := Messagebox(0, ptr(lParam), PChar(Name), Params);
+ end;
+ {$ENDIF}
+
+ // to-do : write ShowMessage for other OSes
+end;
+
+//-------------
+// Calls NewError HookChain (wParam: Pchar(Message), lParam: PChar(Reportername))
+//-------------
+Function TCore.ReportError(wParam, lParam: DWord): integer;
+begin
+ //Update LastErrorReporter and LastErrorString
+ LastErrorReporter := String(PChar(Pointer(lParam)));
+ LastErrorString := String(PChar(Pointer(wParam)));
+
+ Hooks.CallEventChain(hError, wParam, lParam);
+end;
+
+//-------------
+// Calls NewDebugInfo HookChain (wParam: Pchar(Message), lParam: PChar(Reportername))
+//-------------
+Function TCore.ReportDebug(wParam, lParam: DWord): integer;
+begin
+ Hooks.CallEventChain(hDebug, wParam, lParam);
+end;
+
+//-------------
+// Calls Translate hook
+//-------------
+Function TCore.Retranslate(wParam, lParam: DWord): integer;
+begin
+ Hooks.CallEventChain(hTranslate, 0, 1);
+end;
+
+//-------------
+// Calls LoadTextures hook
+//-------------
+Function TCore.ReloadTextures(wParam, lParam: DWord): integer;
+begin
+ Hooks.CallEventChain(hLoadTextures, 0, 1);
+end;
+
+//-------------
+// If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TModuleInfo to address at lparam
+//-------------
+Function TCore.GetModuleInfo(wParam, lParam: DWord): integer;
+begin
+ if (Pointer(lParam) = nil) then
+ begin
+ Result := Length(Modules);
+ end
+ else
+ begin
+ Try
+ For Result := 0 to High(Modules) do
+ begin
+ AModuleInfo(Pointer(lParam))[Result].Name := Modules[Result].Info.Name;
+ AModuleInfo(Pointer(lParam))[Result].Version := Modules[Result].Info.Version;
+ AModuleInfo(Pointer(lParam))[Result].Description := Modules[Result].Info.Description;
+ end;
+ Except
+ Result := -1;
+ end;
+ end;
+end;
+
+//-------------
+// Returns Application Handle
+//-------------
+Function TCore.GetApplicationHandle(wParam, lParam: DWord): integer;
+begin
+ Result := hInstance;
+end;
+
end. \ No newline at end of file
diff --git a/Game/Code/Classes/UCoreModule.pas b/Game/Code/Classes/UCoreModule.pas
index e5a874f0..b135089c 100644
--- a/Game/Code/Classes/UCoreModule.pas
+++ b/Game/Code/Classes/UCoreModule.pas
@@ -1,6 +1,9 @@
unit UCoreModule;
interface
+
+{$I switches.inc}
+
{*********************
TCoreModule
Dummy Class that has Methods that will be called from Core
@@ -8,10 +11,6 @@ interface
*********************}
uses UPluginDefs;
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
type
PCoreModule = ^TCoreModule;
TCoreModule = class
diff --git a/Game/Code/Classes/UCovers.pas b/Game/Code/Classes/UCovers.pas
index 966277cd..f4ede329 100644
--- a/Game/Code/Classes/UCovers.pas
+++ b/Game/Code/Classes/UCovers.pas
@@ -2,9 +2,7 @@ unit UCovers;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses OpenGL12,
{$IFDEF win32}
diff --git a/Game/Code/Classes/UDLLManager.pas b/Game/Code/Classes/UDLLManager.pas
index ff6c16a4..358be9af 100644
--- a/Game/Code/Classes/UDLLManager.pas
+++ b/Game/Code/Classes/UDLLManager.pas
@@ -1,12 +1,9 @@
unit UDLLManager;
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
-
interface
+{$I switches.inc}
+
uses ModiSDK,
UFiles;
@@ -44,15 +41,19 @@ var
const
DLLPath = 'Plugins';
- {$IFDEF win32}
+ {$IFDEF MSWINDOWS}
DLLExt = '.dll';
- {$ELSE}
+ {$ENDIF}
+ {$IFDEF LINUX}
DLLExt = '.so';
{$ENDIF}
+ {$IFDEF DARWIN}
+ DLLExt = '.dylib';
+ {$ENDIF}
implementation
-uses {$IFDEF win32}
+uses {$IFDEF MSWINDOWS}
windows,
{$ELSE}
dynlibs,
diff --git a/Game/Code/Classes/UDataBase.pas b/Game/Code/Classes/UDataBase.pas
index bacb0d98..0cafc9fd 100644
--- a/Game/Code/Classes/UDataBase.pas
+++ b/Game/Code/Classes/UDataBase.pas
@@ -2,10 +2,7 @@ unit UDataBase;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
uses USongs,
SQLiteTable3;
diff --git a/Game/Code/Classes/UDraw.pas b/Game/Code/Classes/UDraw.pas
index 2a5528b8..350926d8 100644
--- a/Game/Code/Classes/UDraw.pas
+++ b/Game/Code/Classes/UDraw.pas
@@ -2,9 +2,7 @@ unit UDraw;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
+{$I switches.inc}
uses UThemes,
ModiSDK,
@@ -243,7 +241,7 @@ begin
lTmpA := (Right-Left);
lTmpB := (Czesci[NrCzesci].Czesc[Czesci[NrCzesci].Akt].Koniec - Czesci[NrCzesci].Czesc[Czesci[NrCzesci].Akt].StartNote);
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
(*
writeln( 'UDRAW (Right-Left) : ' + floattostr( lTmpA ) );
writeln( 'UDRAW : ' + floattostr( lTmpB ) );
@@ -479,7 +477,7 @@ begin
lTmpA := (Right-Left);
lTmpB := (Czesci[NrCzesci].Czesc[Czesci[NrCzesci].Akt].Koniec - Czesci[NrCzesci].Czesc[Czesci[NrCzesci].Akt].StartNote);
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
{*
writeln( 'UDRAW (Right-Left) : ' + floattostr( lTmpA ) );
writeln( 'UDRAW : ' + floattostr( lTmpB ) );
diff --git a/Game/Code/Classes/UFiles.pas b/Game/Code/Classes/UFiles.pas
index 717d20e2..5f168ead 100644
--- a/Game/Code/Classes/UFiles.pas
+++ b/Game/Code/Classes/UFiles.pas
@@ -2,9 +2,7 @@ unit UFiles;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses SysUtils,
ULog,
diff --git a/Game/Code/Classes/UGraphic.pas b/Game/Code/Classes/UGraphic.pas
index 5847e41c..26601f2d 100644
--- a/Game/Code/Classes/UGraphic.pas
+++ b/Game/Code/Classes/UGraphic.pas
@@ -4,10 +4,6 @@ interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
uses
SDL,
OpenGL12,
diff --git a/Game/Code/Classes/UGraphicClasses.pas b/Game/Code/Classes/UGraphicClasses.pas
index c04a0ad8..2acd5530 100644
--- a/Game/Code/Classes/UGraphicClasses.pas
+++ b/Game/Code/Classes/UGraphicClasses.pas
@@ -5,10 +5,6 @@ interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
uses UTexture;
const DelayBetweenFrames : Cardinal = 60;
diff --git a/Game/Code/Classes/UHooks.pas b/Game/Code/Classes/UHooks.pas
index c3684ed1..ea31ec50 100644
--- a/Game/Code/Classes/UHooks.pas
+++ b/Game/Code/Classes/UHooks.pas
@@ -6,14 +6,11 @@ unit UHooks;
Saves all hookable events and their subscribers
*********************}
interface
-uses uPluginDefs, SysUtils;
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
{$I switches.inc}
+uses uPluginDefs, SysUtils;
+
type
//Record that saves info from Subscriber
PSubscriberInfo = ^TSubscriberInfo;
@@ -422,7 +419,7 @@ end;
function HookTest(wParam, lParam: DWord): integer; stdcall;
begin
Result := 0; //Don't break the chain
- Core.ShowMessage(CORE_SM_INFO, Integer(PChar(String(PChar(Ptr(lParam))) + ': ' + String(PChar(Ptr(wParam))))));
+ Core.ShowMessage(CORE_SM_INFO, Integer(PChar(String(PChar(Pointer(lParam))) + ': ' + String(PChar(Pointer(wParam))))));
end;
end.
diff --git a/Game/Code/Classes/UIni.pas b/Game/Code/Classes/UIni.pas
index 6b7f3cea..36ba2180 100644
--- a/Game/Code/Classes/UIni.pas
+++ b/Game/Code/Classes/UIni.pas
@@ -2,9 +2,7 @@ unit UIni;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
+{$I switches.inc}
uses IniFiles, ULog, SysUtils;
diff --git a/Game/Code/Classes/ULCD.pas b/Game/Code/Classes/ULCD.pas
index 50214ad0..13736729 100644
--- a/Game/Code/Classes/ULCD.pas
+++ b/Game/Code/Classes/ULCD.pas
@@ -1,6 +1,7 @@
unit ULCD;
interface
+
{$I switches.inc}
type
diff --git a/Game/Code/Classes/ULanguage.pas b/Game/Code/Classes/ULanguage.pas
index 679f6405..25986263 100644
--- a/Game/Code/Classes/ULanguage.pas
+++ b/Game/Code/Classes/ULanguage.pas
@@ -2,10 +2,8 @@ unit ULanguage;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
+
type
TLanguageEntry = record
diff --git a/Game/Code/Classes/ULight.pas b/Game/Code/Classes/ULight.pas
index 99edc88c..6621cf59 100644
--- a/Game/Code/Classes/ULight.pas
+++ b/Game/Code/Classes/ULight.pas
@@ -2,10 +2,6 @@ unit ULight;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
{$I switches.inc}
type
@@ -55,7 +51,11 @@ uses
begin
GetLocalTime(SystemTime);
with SystemTime do
+{$IFDEF DARWIN}
+ Result := EncodeTime(Hour, Minute, Second, MilliSecond);
+{$ELSE}
Result := EncodeTime(wHour, wMinute, wSecond, wMilliSeconds);
+{$ENDIF}
end;
{$ELSE}
Type
diff --git a/Game/Code/Classes/ULog.pas b/Game/Code/Classes/ULog.pas
index 7e464b57..2ce70a11 100644
--- a/Game/Code/Classes/ULog.pas
+++ b/Game/Code/Classes/ULog.pas
@@ -4,10 +4,6 @@ interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
uses Classes;
type
@@ -191,7 +187,7 @@ begin
{$DEFINE DEBUG} //How can i check if this is set in *.dpr file o0
//If Debug => Write to Console Output
{$IFDEF DEBUG}
- WriteLn('Error: ' + Text);
+ WriteLn('Error: ' + Text);
{$ENDIF}
end;
@@ -229,7 +225,7 @@ begin
//If Debug => Write to Console Output
{$IFDEF DEBUG}
- WriteLn(Log2 + ': ' + Log1);
+ WriteLn(Log2 + ': ' + Log1);
{$ENDIF}
end;
@@ -243,7 +239,7 @@ begin
//Write Error to Logfile:
LogError (Text);
- {$IFDEF win32}
+ {$IFDEF MSWINDOWS}
//Show Errormessage
Messagebox(0, PChar(Text), PChar(Title), MB_ICONERROR or MB_OK);
{$ELSE}
diff --git a/Game/Code/Classes/ULyrics.pas b/Game/Code/Classes/ULyrics.pas
index e4ac2024..96b9d43b 100644
--- a/Game/Code/Classes/ULyrics.pas
+++ b/Game/Code/Classes/ULyrics.pas
@@ -2,10 +2,6 @@ unit ULyrics;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
{$I switches.inc}
uses OpenGL12,
diff --git a/Game/Code/Classes/ULyrics_bak.pas b/Game/Code/Classes/ULyrics_bak.pas
index 43fa46f5..b5a9d798 100644
--- a/Game/Code/Classes/ULyrics_bak.pas
+++ b/Game/Code/Classes/ULyrics_bak.pas
@@ -2,10 +2,6 @@ unit ULyrics_bak;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
{$I switches.inc}
uses SysUtils,
diff --git a/Game/Code/Classes/UMain.pas b/Game/Code/Classes/UMain.pas
index 82fb92e4..bbc64f80 100644
--- a/Game/Code/Classes/UMain.pas
+++ b/Game/Code/Classes/UMain.pas
@@ -2,10 +2,6 @@ unit UMain;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
{$I switches.inc}
uses
@@ -119,6 +115,7 @@ var
procedure InitializePaths;
+Procedure Main;
procedure MainLoop;
procedure CheckEvents;
procedure Sing(Sender: TScreenSing);
@@ -133,7 +130,275 @@ function GetTimeFromBeat(Beat: integer): real;
procedure ClearScores(PlayerNum: integer);
implementation
-uses USongs, UJoystick, math, UCommandLine;
+
+uses USongs, UJoystick, math, UCommandLine, ULanguage, SDL_ttf,
+ USkins, UCovers, UCatCovers, UDataBase, UPlaylist, UDLLManager,
+ UParty, UCore, UGraphicClasses, UPluginDefs;
+
+const
+ Version = 'UltraStar Deluxe V 1.10 Alpha Build';
+
+{$IFDEF WIN32}
+Procedure Main;
+var
+ WndTitle: string;
+ hWnd: THandle;
+ I: Integer;
+begin
+ WndTitle := Version;
+
+// InitializeSound();
+// writeln( 'DONE' );
+// exit;
+
+
+ {$IFDEF MSWINDOWS}
+ //------------------------------
+ //Start more than One Time Prevention
+ //------------------------------
+ hWnd:= FindWindow(nil, PChar(WndTitle));
+ //Programm already started
+ if (hWnd <> 0) then
+ begin
+ I := Messagebox(0, PChar('Another Instance of Ultrastar is already running. Continue ?'), PChar(WndTitle), MB_ICONWARNING or MB_YESNO);
+ if (I = IDYes) then
+ begin
+ I := 1;
+ repeat
+ Inc(I);
+ hWnd := FindWindow(nil, PChar(WndTitle + ' Instance ' + InttoStr(I)));
+ until (hWnd = 0);
+ WndTitle := WndTitle + ' Instance ' + InttoStr(I);
+ end
+ else
+ Exit;
+ end;
+ {$ENDIF}
+
+ //------------------------------
+ //StartUp - Create Classes and Load Files
+ //------------------------------
+ USTime := TTime.Create;
+
+ // Commandline Parameter Parser
+ Params := TCMDParams.Create;
+
+ // Log + Benchmark
+ Log := TLog.Create;
+ Log.Title := WndTitle;
+ Log.Enabled := Not Params.NoLog;
+ Log.BenchmarkStart(0);
+
+ // Language
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize Paths', 'Initialization');
+ InitializePaths;
+ Log.LogStatus('Load Language', 'Initialization');
+ Language := TLanguage.Create;
+ //Add Const Values:
+ Language.AddConst('US_VERSION', Version);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Language', 1);
+
+ // SDL
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize SDL', 'Initialization');
+ SDL_Init(SDL_INIT_VIDEO or SDL_INIT_AUDIO);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing SDL', 1);
+
+ // SDL_ttf
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize SDL_ttf', 'Initialization');
+ TTF_Init(); //ttf_quit();
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing SDL_ttf', 1);
+
+ // Skin
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Loading Skin List', 'Initialization');
+ Skin := TSkin.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Skin List', 1);
+
+ // Sound Card List
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Loading Soundcard list', 'Initialization');
+ Recording := TRecord.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Soundcard list', 1);
+
+ // Ini + Paths
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Load Ini', 'Initialization');
+ Ini := TIni.Create;
+ Ini.Load;
+
+ //Load Languagefile
+ if (Params.Language <> -1) then
+ Language.ChangeLanguage(ILanguage[Params.Language])
+ else
+ Language.ChangeLanguage(ILanguage[Ini.Language]);
+
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Ini', 1);
+
+
+ // LCD
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Load LCD', 'Initialization');
+ LCD := TLCD.Create;
+ if Ini.LPT = 1 then begin
+// LCD.HalfInterface := true;
+ LCD.Enable;
+ LCD.Clear;
+ LCD.WriteText(1, ' UltraStar ');
+ LCD.WriteText(2, ' Loading... ');
+ end;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading LCD', 1);
+
+ // Light
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Load Light', 'Initialization');
+ Light := TLight.Create;
+ if Ini.LPT = 2 then begin
+ Light.Enable;
+ end;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Light', 1);
+
+
+
+ // Theme
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Load Themes', 'Initialization');
+ Theme := TTheme.Create('Themes\' + ITheme[Ini.Theme] + '.ini', Ini.Color);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Themes', 1);
+
+ // Covers Cache
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Creating Covers Cache', 'Initialization');
+ Covers := TCovers.Create;
+ Log.LogBenchmark('Loading Covers Cache Array', 1);
+ Log.BenchmarkStart(1);
+
+ // Category Covers
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Creating Category Covers Array', 'Initialization');
+ CatCovers:= TCatCovers.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Category Covers Array', 1);
+
+ // Songs
+ //Log.BenchmarkStart(1);
+ Log.LogStatus('Creating Song Array', 'Initialization');
+ Songs := TSongs.Create;
+ Songs.LoadSongList;
+ Log.LogStatus('Creating 2nd Song Array', 'Initialization');
+ CatSongs := TCatSongs.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Songs', 1);
+
+ // PluginManager
+ Log.BenchmarkStart(1);
+ Log.LogStatus('PluginManager', 'Initialization');
+ DLLMan := TDLLMan.Create; //Load PluginList
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading PluginManager', 1);
+
+ // Party Mode Manager
+ Log.BenchmarkStart(1);
+ Log.LogStatus('PartySession Manager', 'Initialization');
+ PartySession := TParty_Session.Create; //Load PartySession
+
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading PartySession Manager', 1);
+
+ // Sound
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize Sound', 'Initialization');
+ InitializeSound();
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing Sound', 1);
+
+// exit;
+
+ // Graphics
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize 3D', 'Initialization');
+ Initialize3D(WndTitle);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing 3D', 1);
+
+ // Score Saving System
+ Log.BenchmarkStart(1);
+ Log.LogStatus('DataBase System', 'Initialization');
+ DataBase := TDataBaseSystem.Create;
+
+ if (Params.ScoreFile = '') then
+ DataBase.Init ('Ultrastar.db')
+ else
+ DataBase.Init (Params.ScoreFile);
+
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading DataBase System', 1);
+
+ //Playlist Manager
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Playlist Manager', 'Initialization');
+ PlaylistMan := TPlaylistManager.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Playlist Manager', 1);
+
+ //GoldenStarsTwinkleMod
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Effect Manager', 'Initialization');
+ GoldenRec := TEffectManager.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Particel System', 1);
+
+ // Joypad
+ if (Ini.Joypad = 1) OR (Params.Joypad) then begin
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize Joystick', 'Initialization');
+ Joy := TJoy.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing Joystick', 1);
+ end;
+
+ Log.BenchmarkEnd(0);
+ Log.LogBenchmark('Loading Time', 0);
+
+ Log.LogError('Creating Core');
+ Core := TCore.Create('Ultrastar Deluxe Beta', MakeVersion(1,1,0, chr(0)));
+
+ Log.LogError('Running Core');
+ Core.Run;
+
+ //------------------------------
+ //Start- Mainloop
+ //------------------------------
+ //Music.SetLoop(true);
+ //Music.SetVolume(50);
+ //Music.Open(SkinPath + 'Menu Music 3.mp3');
+ //Music.Play;
+ Log.LogStatus('Main Loop', 'Initialization');
+ MainLoop;
+
+ //------------------------------
+ //Finish Application
+ //------------------------------
+ if Ini.LPT = 1 then LCD.Clear;
+ if Ini.LPT = 2 then Light.TurnOff;
+
+ Log.LogStatus('Main Loop', 'Finished');
+
+ Log.Free;
+
+end;
+{$ENDIF}
procedure MainLoop;
var
diff --git a/Game/Code/Classes/UMedia_dummy.pas b/Game/Code/Classes/UMedia_dummy.pas
index bf3ad727..37e311af 100644
--- a/Game/Code/Classes/UMedia_dummy.pas
+++ b/Game/Code/Classes/UMedia_dummy.pas
@@ -12,10 +12,7 @@ unit UMedia_dummy;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
implementation
diff --git a/Game/Code/Classes/UModules.pas b/Game/Code/Classes/UModules.pas
index 493fc393..fe623343 100644
--- a/Game/Code/Classes/UModules.pas
+++ b/Game/Code/Classes/UModules.pas
@@ -1,6 +1,9 @@
unit UModules;
interface
+
+{$I switches.inc}
+
{*********************
UModules
Unit Contains all used Modules in its uses clausel
diff --git a/Game/Code/Classes/UMusic.pas b/Game/Code/Classes/UMusic.pas
index f3342625..e2d2cc60 100644
--- a/Game/Code/Classes/UMusic.pas
+++ b/Game/Code/Classes/UMusic.pas
@@ -4,10 +4,6 @@ interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
uses Classes ;
type
diff --git a/Game/Code/Classes/UParty.pas b/Game/Code/Classes/UParty.pas
index 9be0df3e..4f351dc5 100644
--- a/Game/Code/Classes/UParty.pas
+++ b/Game/Code/Classes/UParty.pas
@@ -2,10 +2,7 @@ unit UParty;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
uses ModiSDK;
diff --git a/Game/Code/Classes/UPlaylist.pas b/Game/Code/Classes/UPlaylist.pas
index 3f89ffed..b18d4833 100644
--- a/Game/Code/Classes/UPlaylist.pas
+++ b/Game/Code/Classes/UPlaylist.pas
@@ -2,10 +2,8 @@ unit UPlaylist;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
+
type
TPlaylistItem = record
diff --git a/Game/Code/Classes/UPliki.pas b/Game/Code/Classes/UPliki.pas
index f7692990..f4e8ff97 100644
--- a/Game/Code/Classes/UPliki.pas
+++ b/Game/Code/Classes/UPliki.pas
@@ -2,6 +2,8 @@ unit UPliki;
interface
+{$I switches.inc}
+
uses USongs, SysUtils, ULog, UMusic;
procedure InitializePaths;
diff --git a/Game/Code/Classes/UPluginInterface.pas b/Game/Code/Classes/UPluginInterface.pas
index a9cc7e46..56293848 100644
--- a/Game/Code/Classes/UPluginInterface.pas
+++ b/Game/Code/Classes/UPluginInterface.pas
@@ -6,6 +6,9 @@ unit uPluginInterface;
*********************}
interface
+
+{$I switches.inc}
+
uses uPluginDefs;
//---------------
diff --git a/Game/Code/Classes/URecord.pas b/Game/Code/Classes/URecord.pas
index b553504d..8d3fa5f7 100644
--- a/Game/Code/Classes/URecord.pas
+++ b/Game/Code/Classes/URecord.pas
@@ -4,10 +4,6 @@ interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
uses Classes,
Math,
SysUtils,
diff --git a/Game/Code/Classes/UServices.pas b/Game/Code/Classes/UServices.pas
index 0028576b..92b61e85 100644
--- a/Game/Code/Classes/UServices.pas
+++ b/Game/Code/Classes/UServices.pas
@@ -1,6 +1,9 @@
unit UServices;
interface
+
+{$I switches.inc}
+
uses uPluginDefs, SysUtils;
{*********************
TServiceManager
@@ -8,12 +11,6 @@ uses uPluginDefs, SysUtils;
Saves all Services and their Procs
*********************}
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
-{$I switches.inc}
-
type
TServiceName = String[60];
PServiceInfo = ^TServiceInfo;
@@ -221,7 +218,7 @@ begin
//Backup CurExecuted
CurExecutedBackup := Core.CurExecuted;
- Service := ptr(SExists);
+ Service := Pointer(SExists);
If (Service.isClass) then
//Use Proc of Class
diff --git a/Game/Code/Classes/USingNotes.pas b/Game/Code/Classes/USingNotes.pas
index e2162bf1..f0754105 100644
--- a/Game/Code/Classes/USingNotes.pas
+++ b/Game/Code/Classes/USingNotes.pas
@@ -1,6 +1,9 @@
unit USingNotes;
interface
+
+{$I switches.inc}
+
{ Dummy Unit atm
For further expantation
Placeholder for Class that will handle the Notes Drawing}
diff --git a/Game/Code/Classes/USingScores.pas b/Game/Code/Classes/USingScores.pas
index 11f1f07d..d5256dc9 100644
--- a/Game/Code/Classes/USingScores.pas
+++ b/Game/Code/Classes/USingScores.pas
@@ -2,9 +2,7 @@ unit USingScores;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses UThemes,
OpenGl12,
@@ -425,7 +423,7 @@ begin
// TODO : JB_Lazarus - Exception=Invalid floating point operation
// AT THIS LINE !
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
(*
writeln( 'USINGSCORES-aPlayers[Cur.Player].RBTarget : ' + floattostr( aPlayers[Cur.Player].RBTarget ) );
writeln( 'USINGSCORES-(Cur.ScoreDiff - Cur.ScoreGiven) : ' + floattostr( (Cur.ScoreDiff - Cur.ScoreGiven) ) );
@@ -438,7 +436,7 @@ begin
lTempA := ( aPlayers[Cur.Player].RBTarget + (Cur.ScoreDiff - Cur.ScoreGiven) );
lTempB := ( Cur.ScoreDiff * (Cur.Rating / 20 - 0.26) );
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
(*
writeln( 'USINGSCORES-lTempA : ' + floattostr( lTempA ) );
writeln( 'USINGSCORES-lTempB : ' + floattostr( lTempB ) );
diff --git a/Game/Code/Classes/USkins.pas b/Game/Code/Classes/USkins.pas
index c9d7f2fd..5bab885b 100644
--- a/Game/Code/Classes/USkins.pas
+++ b/Game/Code/Classes/USkins.pas
@@ -1,12 +1,9 @@
unit USkins;
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
-
interface
+{$I switches.inc}
+
type
TSkinTexture = record
Name: string;
diff --git a/Game/Code/Classes/USongs.pas b/Game/Code/Classes/USongs.pas
index 5ce35201..9e0d6ca5 100644
--- a/Game/Code/Classes/USongs.pas
+++ b/Game/Code/Classes/USongs.pas
@@ -2,14 +2,15 @@ unit USongs;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
uses SysUtils,
- {$ifndef win32}
- oldlinux,
+ {$ifndef MSWINDOWS}
+ {$IFDEF DARWIN}
+ baseunix,
+ {$ELSE}
+ oldlinux,
+ {$ENDIF}
{$endif}
ULog,
UTexture,
@@ -115,6 +116,12 @@ uses StrUtils,
UMain,
UIni;
+{$IFDEF DARWIN}
+function AnsiContainsText(const AText, ASubText: string): Boolean;
+begin
+ Result := AnsiPos(AnsiUppercase(ASubText), AnsiUppercase(AText)) > 0;
+end;
+{$ENDIF}
procedure TSongs.LoadSongList;
begin
@@ -136,7 +143,7 @@ procedure TSongs.BrowseDir(Dir: widestring);
var
SLen: integer;
- {$ifdef win32}
+ {$ifdef MSWINDOWS}
SR: TSearchRecW; // for parsing Songs Directory
{$else} // This should work on all posix systems.
TheDir : pdir;
@@ -145,7 +152,7 @@ var
info : stat;
{$endif}
begin
- {$ifdef win32}
+ {$ifdef MSWINDOWS}
if FindFirstW(Dir + '*', faDirectory, SR) = 0 then // JB_Unicode - windows
begin
repeat
@@ -186,8 +193,9 @@ begin
until FindNextW(SR) <> 0;
end; // if FindFirst
FindCloseW(SR);
-
- {$else}
+ {$ENDIF}
+
+ {$IFDEF LINUX}
// Itterate the Songs Directory... ( With unicode capable functions for linux )
TheDir := opendir( Dir ); // JB_Unicode - linux
if TheDir <> nil then
@@ -245,6 +253,66 @@ begin
Until ADirent=Nil;
end; // if FindFirst
+ {$endif}
+
+ {$IFDEF DARWIN}
+ // Itterate the Songs Directory... ( With unicode capable functions for linux )
+ TheDir := FPOpenDir( Dir ); // JB_Unicode - linux
+ if TheDir <> nil then
+ begin
+ repeat
+ ADirent := FPReadDir(TheDir);
+
+ If ADirent<>Nil then
+ begin
+ With ADirent^ do
+ begin
+
+ if ( d_name[0] <> '.') then
+ BrowseDir( Dir + d_name + pathdelim );
+
+ end;
+ end;
+ Until ADirent=Nil;
+ end;
+
+
+
+ TheDir := FPOpenDir( Dir ); // JB_Unicode - linux
+ if TheDir <> nil then
+ begin
+ repeat
+ ADirent := FPReadDir(TheDir);
+
+ if ( ADirent <> Nil ) AND
+ ( pos( '.txt', ADirent^.d_name ) > -1 ) then
+ begin
+ SLen := BrowsePos;
+
+ Song[SLen].Path := Dir;
+ Song[SLen].Folder := Copy(Dir, Length(SongPath)+1, 10000);
+ Song[SLen].Folder := Copy(Song[SLen].Folder, 1, Pos( PathDelim , Song[SLen].Folder)-1);
+ Song[SLen].FileName := ADirent^.d_name;
+
+ if (AnalyseFile(Song[SLen]) = false) then
+ Dec(BrowsePos)
+ else
+ begin
+ if Song[SLen].Cover = '' then
+ Song[SLen].Cover := FindSongFile(Dir, '*[CO].jpg');
+ end;
+
+ //Change Length Only every 50 Entrys
+ Inc(BrowsePos);
+
+ if (BrowsePos mod 50 = 0) AND (BrowsePos <> 0) then
+ begin
+ SetLength(Song, Length(Song) + 50);
+ end;
+ end;
+
+ Until ADirent=Nil;
+ end; // if FindFirst
{$endif}
diff --git a/Game/Code/Classes/UTextClasses.pas b/Game/Code/Classes/UTextClasses.pas
index 5a0655e5..a09456b8 100644
--- a/Game/Code/Classes/UTextClasses.pas
+++ b/Game/Code/Classes/UTextClasses.pas
@@ -1,6 +1,9 @@
unit UTextClasses;
interface
+
+{$I switches.inc}
+
uses OpenGL12,
SDL,
UTexture,
diff --git a/Game/Code/Classes/UTexture.pas b/Game/Code/Classes/UTexture.pas
index 5ef29316..76d78f5b 100644
--- a/Game/Code/Classes/UTexture.pas
+++ b/Game/Code/Classes/UTexture.pas
@@ -19,10 +19,6 @@ interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
uses OpenGL12,
{$IFDEF win32}
windows,
@@ -131,7 +127,7 @@ implementation
uses ULog,
DateUtils,
UCovers,
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
LResources,
{$ENDIF}
StrUtils, dialogs;
@@ -247,7 +243,7 @@ var
TexRWops: PSDL_RWops;
dHandle: THandle;
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
lLazRes : TLResource;
lResData : TStringStream;
{$ELSE}
@@ -277,7 +273,7 @@ begin
Log.LogStatus( 'IS Resource, because file does not exist.('+Identifier+')', ' LoadImage' );
// load from resource stream
- {$IFNDEF FPC}
+ {$IFDEF WIN32}
dHandle := FindResource(hInstance, Identifier, 'TEX');
if dHandle=0 then
begin
@@ -1134,7 +1130,7 @@ begin
end;
end;
-{$IFDEF FPC}
+{$IFDEF LAZARUS}
initialization
{$I UltraStar.lrs}
{$ENDIF}
diff --git a/Game/Code/Classes/UThemes.pas b/Game/Code/Classes/UThemes.pas
index 00b763f0..c27f9c9e 100644
--- a/Game/Code/Classes/UThemes.pas
+++ b/Game/Code/Classes/UThemes.pas
@@ -2,9 +2,7 @@ unit UThemes;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
+{$I switches.inc}
uses
ULog,
diff --git a/Game/Code/Classes/UTime.pas b/Game/Code/Classes/UTime.pas
index 87d17ee5..f714fed5 100644
--- a/Game/Code/Classes/UTime.pas
+++ b/Game/Code/Classes/UTime.pas
@@ -2,9 +2,7 @@ unit UTime;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
{$UNDEF DebugDisplay}
diff --git a/Game/Code/Classes/UVideo.pas b/Game/Code/Classes/UVideo.pas
index 154cd04c..c18eea6c 100644
--- a/Game/Code/Classes/UVideo.pas
+++ b/Game/Code/Classes/UVideo.pas
@@ -20,9 +20,7 @@ unit UVideo;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
+{$I switches.inc}
(*
diff --git a/Game/Code/Classes/uPluginLoader.pas b/Game/Code/Classes/uPluginLoader.pas
index 442e76e0..55c89878 100644
--- a/Game/Code/Classes/uPluginLoader.pas
+++ b/Game/Code/Classes/uPluginLoader.pas
@@ -1,793 +1,797 @@
-unit UPluginLoader;
-{*********************
- UPluginLoader
- Unit contains to Classes
- TPluginLoader: Class Searching for and Loading the Plugins
- TtehPlugins: Class that represents the Plugins in Modules chain
-*********************}
-
-interface
-uses UPluginDefs, UCoreModule;
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
-type
- TPluginListItem = record
- Info: TUS_PluginInfo;
- State: Byte; //State of this Plugin: 0 - undefined; 1 - Loaded; 2 - Inited / Running; 4 - Unloaded; 254 - Loading aborted by Plugin; 255 - Unloaded because of Error
- Path: String; //Path to this Plugin
- NeedsDeInit: Boolean; //If this is Inited correctly this should be true
- hLib: THandle; //Handle of Loaded Libary
- Procs: record //Procs offered by Plugin. Don't call this directly use wrappers of TPluginLoader
- Load: Func_Load;
- Init: Func_Init;
- DeInit: Proc_DeInit;
- end;
- end;
- {*********************
- TPluginLoader
- Class Searches for Plugins and Manages loading and unloading
- *********************}
- PPluginLoader = ^TPluginLoader;
- TPluginLoader = class (TCoreModule)
- private
- LoadingProcessFinished: Boolean;
- sUnloadPlugin: THandle;
- sLoadPlugin: THandle;
- sGetPluginInfo: THandle;
- sGetPluginState: THandle;
-
- Procedure FreePlugin(Index: Cardinal);
- public
- PluginInterface: TUS_PluginInterface;
- Plugins: Array of TPluginListItem;
-
- //TCoreModule methods to inherit
- Constructor Create; override;
- Procedure Info(const pInfo: PModuleInfo); override;
- Function Load: Boolean; override;
- Function Init: Boolean; override;
- Procedure DeInit; override;
- Procedure Free; override;
-
- //New Methods
- Procedure BrowseDir(Path: String); //Browses the Path at _Path_ for Plugins
- Function PluginExists(Name: String): Integer; //If Plugin Exists: Index of Plugin, else -1
- Procedure AddPlugin(Filename: String);//Adds Plugin to the Array
-
- Function CallLoad(Index: Cardinal): Integer;
- Function CallInit(Index: Cardinal): Integer;
- Procedure CallDeInit(Index: Cardinal);
-
- //Services offered
- Function LoadPlugin(wParam, lParam: DWord): integer; //wParam PChar(PluginName/PluginPath) | lParam (if wParam = nil) ID of the Plugin
- Function UnloadPlugin(wParam, lParam: DWord): integer; //wParam PChar(PluginName/PluginPath) | lParam (if wParam = nil) ID of the Plugin
- Function GetPluginInfo(wParam, lParam: DWord): integer; //If wParam = -1 then (If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TUS_PluginInfo to address at lparam) Else (Get PluginInfo of Plugin with Index(wParam) to Address at lParam)
- Function GetPluginState(wParam, lParam: DWord): integer; //If wParam = -1 then (If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TUS_PluginInfo to address at lparam) Else (Return PluginInfo of Plugin with Index(wParam))
-
- end;
-
- {*********************
- TtehPlugins
- Class Represents the Plugins in Module Chain.
- It Calls the Plugins Procs and Funcs
- *********************}
- TtehPlugins = class (TCoreModule)
- private
- PluginLoader: PPluginLoader;
- public
- //TCoreModule methods to inherit
- Constructor Create; override;
-
- Procedure Info(const pInfo: PModuleInfo); override;
- Function Load: Boolean; override;
- Function Init: Boolean; override;
- Procedure DeInit; override;
- end;
-
-const
- {$IFDEF win32}
- PluginFileExtension = '.dll';
- {$ELSE}
- PluginFileExtension = '.so';
- {$ENDIF}
-
-implementation
-uses UCore, UPluginInterface,
-{$IFDEF win32}
+unit UPluginLoader;
+{*********************
+ UPluginLoader
+ Unit contains to Classes
+ TPluginLoader: Class Searching for and Loading the Plugins
+ TtehPlugins: Class that represents the Plugins in Modules chain
+*********************}
+
+interface
+
+{$I switches.inc}
+
+uses UPluginDefs, UCoreModule;
+
+type
+ TPluginListItem = record
+ Info: TUS_PluginInfo;
+ State: Byte; //State of this Plugin: 0 - undefined; 1 - Loaded; 2 - Inited / Running; 4 - Unloaded; 254 - Loading aborted by Plugin; 255 - Unloaded because of Error
+ Path: String; //Path to this Plugin
+ NeedsDeInit: Boolean; //If this is Inited correctly this should be true
+ hLib: THandle; //Handle of Loaded Libary
+ Procs: record //Procs offered by Plugin. Don't call this directly use wrappers of TPluginLoader
+ Load: Func_Load;
+ Init: Func_Init;
+ DeInit: Proc_DeInit;
+ end;
+ end;
+ {*********************
+ TPluginLoader
+ Class Searches for Plugins and Manages loading and unloading
+ *********************}
+ PPluginLoader = ^TPluginLoader;
+ TPluginLoader = class (TCoreModule)
+ private
+ LoadingProcessFinished: Boolean;
+ sUnloadPlugin: THandle;
+ sLoadPlugin: THandle;
+ sGetPluginInfo: THandle;
+ sGetPluginState: THandle;
+
+ Procedure FreePlugin(Index: Cardinal);
+ public
+ PluginInterface: TUS_PluginInterface;
+ Plugins: Array of TPluginListItem;
+
+ //TCoreModule methods to inherit
+ Constructor Create; override;
+ Procedure Info(const pInfo: PModuleInfo); override;
+ Function Load: Boolean; override;
+ Function Init: Boolean; override;
+ Procedure DeInit; override;
+ Procedure Free; override;
+
+ //New Methods
+ Procedure BrowseDir(Path: String); //Browses the Path at _Path_ for Plugins
+ Function PluginExists(Name: String): Integer; //If Plugin Exists: Index of Plugin, else -1
+ Procedure AddPlugin(Filename: String);//Adds Plugin to the Array
+
+ Function CallLoad(Index: Cardinal): Integer;
+ Function CallInit(Index: Cardinal): Integer;
+ Procedure CallDeInit(Index: Cardinal);
+
+ //Services offered
+ Function LoadPlugin(wParam, lParam: DWord): integer; //wParam PChar(PluginName/PluginPath) | lParam (if wParam = nil) ID of the Plugin
+ Function UnloadPlugin(wParam, lParam: DWord): integer; //wParam PChar(PluginName/PluginPath) | lParam (if wParam = nil) ID of the Plugin
+ Function GetPluginInfo(wParam, lParam: DWord): integer; //If wParam = -1 then (If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TUS_PluginInfo to address at lparam) Else (Get PluginInfo of Plugin with Index(wParam) to Address at lParam)
+ Function GetPluginState(wParam, lParam: DWord): integer; //If wParam = -1 then (If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TUS_PluginInfo to address at lparam) Else (Return PluginInfo of Plugin with Index(wParam))
+
+ end;
+
+ {*********************
+ TtehPlugins
+ Class Represents the Plugins in Module Chain.
+ It Calls the Plugins Procs and Funcs
+ *********************}
+ TtehPlugins = class (TCoreModule)
+ private
+ PluginLoader: PPluginLoader;
+ public
+ //TCoreModule methods to inherit
+ Constructor Create; override;
+
+ Procedure Info(const pInfo: PModuleInfo); override;
+ Function Load: Boolean; override;
+ Function Init: Boolean; override;
+ Procedure DeInit; override;
+ end;
+
+const
+ {$IFDEF MSWINDOWS}
+ PluginFileExtension = '.dll';
+ {$ENDIF}
+ {$IFDEF LINUX}
+ PluginFileExtension = '.so';
+ {$ENDIF}
+ {$IFDEF DARWIN}
+ PluginFileExtension = '.dylib';
+ {$ENDIF}
+
+implementation
+uses UCore, UPluginInterface,
+{$IFDEF MSWINDOWS}
windows,
{$ELSE}
dynlibs,
{$ENDIF}
-UMain, SysUtils;
-
-{*********************
- TPluginLoader
- Implentation
-*********************}
-
-//-------------
-// Function that gives some Infos about the Module to the Core
-//-------------
-Procedure TPluginLoader.Info(const pInfo: PModuleInfo);
-begin
- pInfo^.Name := 'TPluginLoader';
- pInfo^.Version := MakeVersion(1,0,0,chr(0));
- pInfo^.Description := 'Searches for Plugins, loads and unloads them';
-end;
-
-//-------------
-// Just the Constructor
-//-------------
-Constructor TPluginLoader.Create;
-begin
- //Init PluginInterface
- //Using Methods from UPluginInterface
- PluginInterface.CreateHookableEvent := CreateHookableEvent;
- PluginInterface.DestroyHookableEvent := DestroyHookableEvent;
- PluginInterface.NotivyEventHooks := NotivyEventHooks;
- PluginInterface.HookEvent := HookEvent;
- PluginInterface.UnHookEvent := UnHookEvent;
- PluginInterface.EventExists := EventExists;
-
- PluginInterface.CreateService := CreateService;
- PluginInterface.DestroyService := DestroyService;
- PluginInterface.CallService := CallService;
- PluginInterface.ServiceExists := ServiceExists;
-
- //UnSet Private Var
- LoadingProcessFinished := False;
-end;
-
-//-------------
-//Is Called on Loading.
-//In this Method only Events and Services should be created
-//to offer them to other Modules or Plugins during the Init process
-//If False is Returned this will cause a Forced Exit
-//-------------
-Function TPluginLoader.Load: Boolean;
-begin
- Result := True;
-
- Try
- //Start Searching for Plugins
- BrowseDir(PluginPath);
- Except
- Result := False;
- Core.ReportError(Integer(PChar('Error Browsing and Loading.')), Integer(PChar('TPluginLoader')));
- end;
-end;
-
-//-------------
-//Is Called on Init Process
-//In this Method you can Hook some Events and Create + Init
-//your Classes, Variables etc.
-//If False is Returned this will cause a Forced Exit
-//-------------
-Function TPluginLoader.Init: Boolean;
-begin
- //Just set Prvate Var to true.
- LoadingProcessFinished := True;
- Result := True;
-end;
-
-//-------------
-//Is Called if this Module has been Inited and there is a Exit.
-//Deinit is in backwards Initing Order
-//-------------
-Procedure TPluginLoader.DeInit;
-var
- I: Integer;
-begin
- //Force DeInit
- //If some Plugins aren't DeInited for some Reason o0
- For I := 0 to High(Plugins) do
- begin
- If (Plugins[I].State < 4) then
- FreePlugin(I);
- end;
-
- //Nothing to do here. Core will remove the Hooks
-end;
-
-//-------------
-//Is Called if this Module will be unloaded and has been created
-//Should be used to Free Memory
-//-------------
-Procedure TPluginLoader.Free;
-begin
- //Just save some Memory if it wasn't done now..
- SetLength(Plugins, 0);
-end;
-
-//--------------
-// Browses the Path at _Path_ for Plugins
-//--------------
-Procedure TPluginLoader.BrowseDir(Path: String);
-var
- SR: TSearchRec;
-begin
- //Search for other Dirs to Browse
- if FindFirst(Path + '*', faDirectory, SR) = 0 then begin
- repeat
- if (SR.Name <> '.') and (SR.Name <> '..') then
- BrowseDir(Path + Sr.Name + PathDelim);
- until FindNext(SR) <> 0;
- end;
- FindClose(SR);
-
- //Search for Plugins at Path
- if FindFirst(Path + '*' + PluginFileExtension, 0, SR) = 0 then
- begin
- repeat
- AddPlugin(Path + SR.Name);
- until FindNext(SR) <> 0;
- end;
- FindClose(SR);
-end;
-
-//--------------
-// If Plugin Exists: Index of Plugin, else -1
-//--------------
-Function TPluginLoader.PluginExists(Name: String): Integer;
-var
- I: Integer;
-begin
- Result := -1;
-
- If (Length(Name) <= 32 { =>Length(TUS_PluginInfo.Name)}) then
- begin
- For I := 0 to High(Plugins) do
- if (Plugins[I].Info.Name = Name) then
- begin //Found the Plugin
- Result := I;
- Break;
- end;
- end;
-end;
-
-//--------------
-// Adds Plugin to the Array
-//--------------
-Procedure TPluginLoader.AddPlugin(Filename: String);
-var
- hLib: THandle;
- PInfo: Proc_PluginInfo;
- Info: TUS_PluginInfo;
- PluginID: Integer;
-begin
- If (FileExists(Filename)) then
- begin //Load Libary
- hLib := LoadLibrary(PChar(Filename));
- If (hLib <> 0) then
- begin //Try to get Address of the Info Proc
- PInfo := GetProcAddress (hLib, PChar('USPlugin_Info'));
- If (@PInfo <> nil) then
- begin
- Info.cbSize := SizeOf(TUS_PluginInfo);
-
- Try //Call Info Proc
- PInfo(@Info);
- Except
- Info.Name := '';
- Core.ReportError(Integer(PChar('Error getting Plugin Info: ' + Filename)), Integer(PChar('TPluginLoader')));
- end;
-
- //Is Name set ?
- If (Trim(Info.Name) <> '') then
- begin
- PluginID := PluginExists(Info.Name);
-
- If (PluginID > 0) AND (Plugins[PluginID].State >=4) then
- PluginID := -1;
-
- If (PluginID = -1) then
- begin
- //Add new item to array
- PluginID := Length(Plugins);
- SetLength(Plugins, PluginID + 1);
-
- //Fill with Info:
- Plugins[PluginID].Info := Info;
- Plugins[PluginID].State := 0;
- Plugins[PluginID].Path := Filename;
- Plugins[PluginID].NeedsDeInit := False;
- Plugins[PluginID].hLib := hLib;
-
- //Try to get Procs
- Plugins[PluginID].Procs.Load := GetProcAddress (hLib, PChar('USPlugin_Load'));
- Plugins[PluginID].Procs.Init := GetProcAddress (hLib, PChar('USPlugin_Init'));
- Plugins[PluginID].Procs.DeInit := GetProcAddress (hLib, PChar('USPlugin_DeInit'));
-
- If (@Plugins[PluginID].Procs.Load = nil) OR (@Plugins[PluginID].Procs.Init = nil) OR (@Plugins[PluginID].Procs.DeInit = nil) then
- begin
- Plugins[PluginID].State := 255;
- FreeLibrary(hLib);
- Core.ReportError(Integer(PChar('Can''t get Plugin Procs from Libary: "' + Info.Name + '" ' + Filename)), Integer(PChar('TPluginLoader')));
- end;
-
- //Emulate loading process if this Plugin is loaded to late
- If (LoadingProcessFinished) then
- begin
- CallLoad(PluginID);
- CallInit(PluginID);
- end;
- end
- Else If (LoadingProcessFinished = False) then
- begin
- If (Plugins[PluginID].Info.Version < Info.Version) then
- begin //Found newer Version of this Plugin
- Core.ReportDebug(Integer(PChar('Found a newer Version of Plugin: ' + Info.Name)), Integer(PChar('TPluginLoader')));
-
- //Unload Old Plugin
- UnloadPlugin(Integer(nil), PluginID);
-
- //Fill with new Info
- Plugins[PluginID].Info := Info;
- Plugins[PluginID].State := 0;
- Plugins[PluginID].Path := Filename;
- Plugins[PluginID].NeedsDeInit := False;
- Plugins[PluginID].hLib := hLib;
-
- //Try to get Procs
- Plugins[PluginID].Procs.Load := GetProcAddress (hLib, PChar('USPlugin_Load'));
- Plugins[PluginID].Procs.Init := GetProcAddress (hLib, PChar('USPlugin_Init'));
- Plugins[PluginID].Procs.DeInit := GetProcAddress (hLib, PChar('USPlugin_DeInit'));
-
- If (@Plugins[PluginID].Procs.Load = nil) OR (@Plugins[PluginID].Procs.Init = nil) OR (@Plugins[PluginID].Procs.DeInit = nil) then
- begin
- FreeLibrary(hLib);
- Plugins[PluginID].State := 255;
- Core.ReportError(Integer(PChar('Can''t get Plugin Procs from Libary: "' + Info.Name + '" ' + Filename)), Integer(PChar('TPluginLoader')));
- end;
- end
- else
- begin //Newer Version already loaded
- FreeLibrary(hLib);
- end;
- end
- else
- begin
- FreeLibrary(hLib);
- Core.ReportError(Integer(PChar('Plugin with this Name already exists: ' + Info.Name)), Integer(PChar('TPluginLoader')));
- end;
- end
- else
- begin
- FreeLibrary(hLib);
- Core.ReportError(Integer(PChar('No name reported: ' + Filename)), Integer(PChar('TPluginLoader')));
- end;
- end
- else
- begin
- FreeLibrary(hLib);
- Core.ReportError(Integer(PChar('Can''t find Info Procedure: ' + Filename)), Integer(PChar('TPluginLoader')));
- end;
- end
- else
- Core.ReportError(Integer(PChar('Can''t load Plugin Libary: ' + Filename)), Integer(PChar('TPluginLoader')));
- end;
-end;
-
-//--------------
-// Calls Load Func of Plugin with the given Index
-//--------------
-Function TPluginLoader.CallLoad(Index: Cardinal): Integer;
-begin
- Result := -2;
- If(Index < Length(Plugins)) then
- begin
- If (@Plugins[Index].Procs.Load <> nil) AND (Plugins[Index].State = 0) then
- begin
- Try
- Result := Plugins[Index].Procs.Load(@PluginInterface);
- Except
- Result := -3;
- End;
-
- If (Result = 0) then
- Plugins[Index].State := 1
- Else
- begin
- FreePlugin(Index);
- Plugins[Index].State := 255;
- Core.ReportError(Integer(PChar('Error calling Load Function from Plugin: ' + Plugins[Index].Info.Name)), Integer(PChar('TPluginLoader')));
- end;
- end;
- end;
-end;
-
-//--------------
-// Calls Init Func of Plugin with the given Index
-//--------------
-Function TPluginLoader.CallInit(Index: Cardinal): Integer;
-begin
- Result := -2;
- If(Index < Length(Plugins)) then
- begin
- If (@Plugins[Index].Procs.Init <> nil) AND (Plugins[Index].State = 1) then
- begin
- Try
- Result := Plugins[Index].Procs.Init(@PluginInterface);
- Except
- Result := -3;
- End;
-
- If (Result = 0) then
- begin
- Plugins[Index].State := 2;
- Plugins[Index].NeedsDeInit := True;
- end
- Else
- begin
- FreePlugin(Index);
- Plugins[Index].State := 255;
- Core.ReportError(Integer(PChar('Error calling Init Function from Plugin: ' + Plugins[Index].Info.Name)), Integer(PChar('TPluginLoader')));
- end;
- end;
- end;
-end;
-
-//--------------
-// Calls DeInit Proc of Plugin with the given Index
-//--------------
-Procedure TPluginLoader.CallDeInit(Index: Cardinal);
-begin
- If(Index < Length(Plugins)) then
- begin
- If (Plugins[Index].State < 4) then
- begin
- If (@Plugins[Index].Procs.DeInit <> nil) and (Plugins[Index].NeedsDeInit) then
- Try
- Plugins[Index].Procs.DeInit(@PluginInterface);
- Except
-
- End;
-
- //Don't forget to remove Services and Subscriptions by this Plugin
- Core.Hooks.DelbyOwner(-1 - Index);
-
- FreePlugin(Index);
- end;
- end;
-end;
-
-//--------------
-// Frees all Plugin Sources (Procs and Handles) - Helper for Deiniting Functions
-//--------------
-Procedure TPluginLoader.FreePlugin(Index: Cardinal);
-begin
- Plugins[Index].State := 4;
- Plugins[Index].Procs.Load := nil;
- Plugins[Index].Procs.Init := nil;
- Plugins[Index].Procs.DeInit := nil;
-
- If (Plugins[Index].hLib <> 0) then
- FreeLibrary(Plugins[Index].hLib);
-end;
-
-
-
-//--------------
-// wParam PChar(PluginName/PluginPath) | lParam (if wParam = nil) ID of the Plugin
-//--------------
-Function TPluginLoader.LoadPlugin(wParam, lParam: DWord): integer;
-var
- Index: Integer;
- sFile: String;
-begin
- Result := -1;
- sFile := '';
- //lParam is ID
- If (Ptr(wParam) = nil) then
- begin
- Index := lParam;
- end
- else
- begin //wParam is PChar
- try
- sFile := String(PChar(Ptr(wParam)));
- Index := PluginExists(sFile);
- If (Index < 0) And FileExists(sFile) then
- begin //Is Filename
- AddPlugin(sFile);
- Result := Plugins[High(Plugins)].State;
- end;
- except
- Index := -2;
- end;
- end;
-
-
- If (Index >= 0) and (Index < Length(Plugins)) then
- begin
- AddPlugin(Plugins[Index].Path);
- Result := Plugins[Index].State;
- end;
-end;
-
-//--------------
-// wParam PChar(PluginName/PluginPath) | lParam (if wParam = nil) ID of the Plugin
-//--------------
-Function TPluginLoader.UnloadPlugin(wParam, lParam: DWord): integer;
-var
- Index: Integer;
- sName: String;
-begin
- Result := -1;
- //lParam is ID
- If (Ptr(wParam) = nil) then
- begin
- Index := lParam;
- end
- else
- begin //wParam is PChar
- try
- sName := String(PChar(Ptr(wParam)));
- Index := PluginExists(sName);
- except
- Index := -2;
- end;
- end;
-
-
- If (Index >= 0) and (Index < Length(Plugins)) then
- CallDeInit(Index)
-end;
-
-//--------------
-// If wParam = -1 then (If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TUS_PluginInfo to address at lparam) Else (Get PluginInfo of Plugin with Index(wParam) to Address at lParam)
-//--------------
-Function TPluginLoader.GetPluginInfo(wParam, lParam: DWord): integer;
-var I: Integer;
-begin
- Result := 0;
- If (wParam < 0) then
- begin //Get Info of 1 Plugin
- If (Ptr(lParam) <> nil) AND (wParam < Length(Plugins)) then
- begin
- Try
- Result := 1;
- PUS_PluginInfo(Ptr(lParam))^ := Plugins[wParam].Info;
- Except
-
- End;
- end;
- end
- Else If (Ptr(lParam) = nil) then
- begin //Get Length of Plugin (Info) Array
- Result := Length(Plugins);
- end
- Else //Write PluginInfo Array to Address in lParam
- begin
- Try
- For I := 0 to high(Plugins) do
- PAUS_PluginInfo(Ptr(lParam))^[I] := Plugins[I].Info;
- Result := Length(Plugins);
- Except
- Core.ReportError(Integer(PChar('Could not write PluginInfo Array')), Integer(PChar('TPluginLoader')));
- End;
- end;
-
-end;
-
-//--------------
-// If wParam = -1 then (If lParam = nil then get length of Plugin State Array. If lparam <> nil then write array of Byte to address at lparam) Else (Return State of Plugin with Index(wParam))
-//--------------
-Function TPluginLoader.GetPluginState(wParam, lParam: DWord): integer;
-var I: Integer;
-begin
- Result := -1;
- If (wParam < 0) then
- begin //Get State of 1 Plugin
- If (wParam < Length(Plugins)) then
- begin
- Result := Plugins[wParam].State;
- end;
- end
- Else If (Ptr(lParam) = nil) then
- begin //Get Length of Plugin (Info) Array
- Result := Length(Plugins);
- end
- Else //Write PluginInfo Array to Address in lParam
- begin
- Try
- For I := 0 to high(Plugins) do
- Byte(Ptr(lParam + I)^) := Plugins[I].State;
- Result := Length(Plugins);
- Except
- Core.ReportError(Integer(PChar('Could not write PluginState Array')), Integer(PChar('TPluginLoader')));
- End;
- end;
-end;
-
-
-
-
-
-{*********************
- TtehPlugins
- Implentation
-*********************}
-
-//-------------
-// Function that gives some Infos about the Module to the Core
-//-------------
-Procedure TtehPlugins.Info(const pInfo: PModuleInfo);
-begin
- pInfo^.Name := 'TtehPlugins';
- pInfo^.Version := MakeVersion(1,0,0,chr(0));
- pInfo^.Description := 'Module executing the Plugins!';
-end;
-
-//-------------
-// Just the Constructor
-//-------------
-Constructor TtehPlugins.Create;
-begin
- PluginLoader := nil;
-end;
-
-//-------------
-//Is Called on Loading.
-//In this Method only Events and Services should be created
-//to offer them to other Modules or Plugins during the Init process
-//If False is Returned this will cause a Forced Exit
-//-------------
-Function TtehPlugins.Load: Boolean;
-var
- I: Integer; //Counter
- CurExecutedBackup: Integer; //backup of Core.CurExecuted Attribute
-label Continue;
-begin
- //Get Pointer to PluginLoader
- PluginLoader := PPluginLoader(Core.GetModulebyName('TPluginLoader'));
- If (PluginLoader = nil) then
- begin
- Result := False;
- Core.ReportError(Integer(PChar('Could not get Pointer to PluginLoader')), Integer(PChar('TtehPlugins')));
- end
- else
- begin
- Result := True;
-
- //Backup CurExecuted
- CurExecutedBackup := Core.CurExecuted;
-
- //Start Loading the Plugins
- I := 0;
- Continue:
- Try
- While (I <= High(PluginLoader.Plugins)) do
- begin
- Core.CurExecuted := -1 - I;
-
- //Unload Plugin if not correctly Executed
- If (PluginLoader.CallLoad(I) <> 0) then
- begin
- PluginLoader.CallDeInit(I);
- PluginLoader.Plugins[I].State := 254; //Plugin asks for unload
- Core.ReportDebug(Integer(PChar('Plugin Selfabort during loading process: ' + PluginLoader.Plugins[I].Info.Name)), Integer(PChar('TtehPlugins')));
- end
- else
- Core.ReportDebug(Integer(PChar('Plugin loaded succesful: ' + PluginLoader.Plugins[I].Info.Name)), Integer(PChar('TtehPlugins')));
-
- Inc(I);
- end;
- Except
- //Plugin could not be loaded.
- // => Show Error Message, then ShutDown Plugin
- on E: Exception do
- begin
- PluginLoader.CallDeInit(I);
- PluginLoader.Plugins[I].State := 255; //Plugin causes Error
- Core.ReportError(Integer(PChar('Plugin causes Error during loading process: ' + PluginLoader.Plugins[I].Info.Name + ', ErrorMsg: "' + E.Message + '"')), Integer(PChar('TtehPlugins')));
-
-
- //don't forget to increase I
- Inc(I);
- end;
- End;
-
- If (I <= High(PluginLoader.Plugins)) then
- Goto Continue;
-
- //Reset CurExecuted
- Core.CurExecuted := CurExecutedBackup;
- end;
-end;
-
-//-------------
-//Is Called on Init Process
-//In this Method you can Hook some Events and Create + Init
-//your Classes, Variables etc.
-//If False is Returned this will cause a Forced Exit
-//-------------
-Function TtehPlugins.Init: Boolean;
-var
- I: Integer; //Counter
- CurExecutedBackup: Integer; //backup of Core.CurExecuted Attribute
-label Continue;
-begin
- Result := True;
-
- //Backup CurExecuted
- CurExecutedBackup := Core.CurExecuted;
-
- //Start Loading the Plugins
- I := 0;
- Continue:
- Try
- While (I <= High(PluginLoader.Plugins)) do
- begin
- Core.CurExecuted := -1 - I;
-
- //Unload Plugin if not correctly Executed
- If (PluginLoader.CallInit(I) <> 0) then
- begin
- PluginLoader.CallDeInit(I);
- PluginLoader.Plugins[I].State := 254; //Plugin asks for unload
- Core.ReportDebug(Integer(PChar('Plugin Selfabort during init process: ' + PluginLoader.Plugins[I].Info.Name)), Integer(PChar('TtehPlugins')));
- end
- else
- Core.ReportDebug(Integer(PChar('Plugin inited succesful: ' + PluginLoader.Plugins[I].Info.Name)), Integer(PChar('TtehPlugins')));
-
- //don't forget to increase I
- Inc(I);
- end;
- Except
- //Plugin could not be loaded.
- // => Show Error Message, then ShutDown Plugin
- PluginLoader.CallDeInit(I);
- PluginLoader.Plugins[I].State := 255; //Plugin causes Error
- Core.ReportError(Integer(PChar('Plugin causes Error during init process: ' + PluginLoader.Plugins[I].Info.Name)), Integer(PChar('TtehPlugins')));
-
- //don't forget to increase I
- Inc(I);
- End;
-
- If (I <= High(PluginLoader.Plugins)) then
- GoTo Continue;
-
- //Reset CurExecuted
- Core.CurExecuted := CurExecutedBackup;
-end;
-
-//-------------
-//Is Called if this Module has been Inited and there is a Exit.
-//Deinit is in backwards Initing Order
-//-------------
-Procedure TtehPlugins.DeInit;
-var
- I: Integer; //Counter
- CurExecutedBackup: Integer; //backup of Core.CurExecuted Attribute
-label Continue;
-begin
- //Backup CurExecuted
- CurExecutedBackup := Core.CurExecuted;
-
- //Start Loop
- I := 0;
-
- Continue:
- Try
- While (I <= High(PluginLoader.Plugins)) do
- begin
- //DeInit Plugin
- PluginLoader.CallDeInit(I);
-
- Inc(I);
- end;
- Except
- Inc(I);
- End;
-
- If I <= High(PluginLoader.Plugins) then
- Goto Continue;
-
- //Reset CurExecuted
- Core.CurExecuted := CurExecutedBackup;
-end;
-
-end.
+UMain, SysUtils;
+
+{*********************
+ TPluginLoader
+ Implentation
+*********************}
+
+//-------------
+// Function that gives some Infos about the Module to the Core
+//-------------
+Procedure TPluginLoader.Info(const pInfo: PModuleInfo);
+begin
+ pInfo^.Name := 'TPluginLoader';
+ pInfo^.Version := MakeVersion(1,0,0,chr(0));
+ pInfo^.Description := 'Searches for Plugins, loads and unloads them';
+end;
+
+//-------------
+// Just the Constructor
+//-------------
+Constructor TPluginLoader.Create;
+begin
+ //Init PluginInterface
+ //Using Methods from UPluginInterface
+ PluginInterface.CreateHookableEvent := CreateHookableEvent;
+ PluginInterface.DestroyHookableEvent := DestroyHookableEvent;
+ PluginInterface.NotivyEventHooks := NotivyEventHooks;
+ PluginInterface.HookEvent := HookEvent;
+ PluginInterface.UnHookEvent := UnHookEvent;
+ PluginInterface.EventExists := EventExists;
+
+ PluginInterface.CreateService := CreateService;
+ PluginInterface.DestroyService := DestroyService;
+ PluginInterface.CallService := CallService;
+ PluginInterface.ServiceExists := ServiceExists;
+
+ //UnSet Private Var
+ LoadingProcessFinished := False;
+end;
+
+//-------------
+//Is Called on Loading.
+//In this Method only Events and Services should be created
+//to offer them to other Modules or Plugins during the Init process
+//If False is Returned this will cause a Forced Exit
+//-------------
+Function TPluginLoader.Load: Boolean;
+begin
+ Result := True;
+
+ Try
+ //Start Searching for Plugins
+ BrowseDir(PluginPath);
+ Except
+ Result := False;
+ Core.ReportError(Integer(PChar('Error Browsing and Loading.')), Integer(PChar('TPluginLoader')));
+ end;
+end;
+
+//-------------
+//Is Called on Init Process
+//In this Method you can Hook some Events and Create + Init
+//your Classes, Variables etc.
+//If False is Returned this will cause a Forced Exit
+//-------------
+Function TPluginLoader.Init: Boolean;
+begin
+ //Just set Prvate Var to true.
+ LoadingProcessFinished := True;
+ Result := True;
+end;
+
+//-------------
+//Is Called if this Module has been Inited and there is a Exit.
+//Deinit is in backwards Initing Order
+//-------------
+Procedure TPluginLoader.DeInit;
+var
+ I: Integer;
+begin
+ //Force DeInit
+ //If some Plugins aren't DeInited for some Reason o0
+ For I := 0 to High(Plugins) do
+ begin
+ If (Plugins[I].State < 4) then
+ FreePlugin(I);
+ end;
+
+ //Nothing to do here. Core will remove the Hooks
+end;
+
+//-------------
+//Is Called if this Module will be unloaded and has been created
+//Should be used to Free Memory
+//-------------
+Procedure TPluginLoader.Free;
+begin
+ //Just save some Memory if it wasn't done now..
+ SetLength(Plugins, 0);
+end;
+
+//--------------
+// Browses the Path at _Path_ for Plugins
+//--------------
+Procedure TPluginLoader.BrowseDir(Path: String);
+var
+ SR: TSearchRec;
+begin
+ //Search for other Dirs to Browse
+ if FindFirst(Path + '*', faDirectory, SR) = 0 then begin
+ repeat
+ if (SR.Name <> '.') and (SR.Name <> '..') then
+ BrowseDir(Path + Sr.Name + PathDelim);
+ until FindNext(SR) <> 0;
+ end;
+ FindClose(SR);
+
+ //Search for Plugins at Path
+ if FindFirst(Path + '*' + PluginFileExtension, 0, SR) = 0 then
+ begin
+ repeat
+ AddPlugin(Path + SR.Name);
+ until FindNext(SR) <> 0;
+ end;
+ FindClose(SR);
+end;
+
+//--------------
+// If Plugin Exists: Index of Plugin, else -1
+//--------------
+Function TPluginLoader.PluginExists(Name: String): Integer;
+var
+ I: Integer;
+begin
+ Result := -1;
+
+ If (Length(Name) <= 32 { =>Length(TUS_PluginInfo.Name)}) then
+ begin
+ For I := 0 to High(Plugins) do
+ if (Plugins[I].Info.Name = Name) then
+ begin //Found the Plugin
+ Result := I;
+ Break;
+ end;
+ end;
+end;
+
+//--------------
+// Adds Plugin to the Array
+//--------------
+Procedure TPluginLoader.AddPlugin(Filename: String);
+var
+ hLib: THandle;
+ PInfo: Proc_PluginInfo;
+ Info: TUS_PluginInfo;
+ PluginID: Integer;
+begin
+ If (FileExists(Filename)) then
+ begin //Load Libary
+ hLib := LoadLibrary(PChar(Filename));
+ If (hLib <> 0) then
+ begin //Try to get Address of the Info Proc
+ PInfo := GetProcAddress (hLib, PChar('USPlugin_Info'));
+ If (@PInfo <> nil) then
+ begin
+ Info.cbSize := SizeOf(TUS_PluginInfo);
+
+ Try //Call Info Proc
+ PInfo(@Info);
+ Except
+ Info.Name := '';
+ Core.ReportError(Integer(PChar('Error getting Plugin Info: ' + Filename)), Integer(PChar('TPluginLoader')));
+ end;
+
+ //Is Name set ?
+ If (Trim(Info.Name) <> '') then
+ begin
+ PluginID := PluginExists(Info.Name);
+
+ If (PluginID > 0) AND (Plugins[PluginID].State >=4) then
+ PluginID := -1;
+
+ If (PluginID = -1) then
+ begin
+ //Add new item to array
+ PluginID := Length(Plugins);
+ SetLength(Plugins, PluginID + 1);
+
+ //Fill with Info:
+ Plugins[PluginID].Info := Info;
+ Plugins[PluginID].State := 0;
+ Plugins[PluginID].Path := Filename;
+ Plugins[PluginID].NeedsDeInit := False;
+ Plugins[PluginID].hLib := hLib;
+
+ //Try to get Procs
+ Plugins[PluginID].Procs.Load := GetProcAddress (hLib, PChar('USPlugin_Load'));
+ Plugins[PluginID].Procs.Init := GetProcAddress (hLib, PChar('USPlugin_Init'));
+ Plugins[PluginID].Procs.DeInit := GetProcAddress (hLib, PChar('USPlugin_DeInit'));
+
+ If (@Plugins[PluginID].Procs.Load = nil) OR (@Plugins[PluginID].Procs.Init = nil) OR (@Plugins[PluginID].Procs.DeInit = nil) then
+ begin
+ Plugins[PluginID].State := 255;
+ FreeLibrary(hLib);
+ Core.ReportError(Integer(PChar('Can''t get Plugin Procs from Libary: "' + Info.Name + '" ' + Filename)), Integer(PChar('TPluginLoader')));
+ end;
+
+ //Emulate loading process if this Plugin is loaded to late
+ If (LoadingProcessFinished) then
+ begin
+ CallLoad(PluginID);
+ CallInit(PluginID);
+ end;
+ end
+ Else If (LoadingProcessFinished = False) then
+ begin
+ If (Plugins[PluginID].Info.Version < Info.Version) then
+ begin //Found newer Version of this Plugin
+ Core.ReportDebug(Integer(PChar('Found a newer Version of Plugin: ' + String(Info.Name))), Integer(PChar('TPluginLoader')));
+
+ //Unload Old Plugin
+ UnloadPlugin(Integer(nil), PluginID);
+
+ //Fill with new Info
+ Plugins[PluginID].Info := Info;
+ Plugins[PluginID].State := 0;
+ Plugins[PluginID].Path := Filename;
+ Plugins[PluginID].NeedsDeInit := False;
+ Plugins[PluginID].hLib := hLib;
+
+ //Try to get Procs
+ Plugins[PluginID].Procs.Load := GetProcAddress (hLib, PChar('USPlugin_Load'));
+ Plugins[PluginID].Procs.Init := GetProcAddress (hLib, PChar('USPlugin_Init'));
+ Plugins[PluginID].Procs.DeInit := GetProcAddress (hLib, PChar('USPlugin_DeInit'));
+
+ If (@Plugins[PluginID].Procs.Load = nil) OR (@Plugins[PluginID].Procs.Init = nil) OR (@Plugins[PluginID].Procs.DeInit = nil) then
+ begin
+ FreeLibrary(hLib);
+ Plugins[PluginID].State := 255;
+ Core.ReportError(Integer(PChar('Can''t get Plugin Procs from Libary: "' + Info.Name + '" ' + Filename)), Integer(PChar('TPluginLoader')));
+ end;
+ end
+ else
+ begin //Newer Version already loaded
+ FreeLibrary(hLib);
+ end;
+ end
+ else
+ begin
+ FreeLibrary(hLib);
+ Core.ReportError(Integer(PChar('Plugin with this Name already exists: ' + String(Info.Name))), Integer(PChar('TPluginLoader')));
+ end;
+ end
+ else
+ begin
+ FreeLibrary(hLib);
+ Core.ReportError(Integer(PChar('No name reported: ' + Filename)), Integer(PChar('TPluginLoader')));
+ end;
+ end
+ else
+ begin
+ FreeLibrary(hLib);
+ Core.ReportError(Integer(PChar('Can''t find Info Procedure: ' + Filename)), Integer(PChar('TPluginLoader')));
+ end;
+ end
+ else
+ Core.ReportError(Integer(PChar('Can''t load Plugin Libary: ' + Filename)), Integer(PChar('TPluginLoader')));
+ end;
+end;
+
+//--------------
+// Calls Load Func of Plugin with the given Index
+//--------------
+Function TPluginLoader.CallLoad(Index: Cardinal): Integer;
+begin
+ Result := -2;
+ If(Index < Length(Plugins)) then
+ begin
+ If (@Plugins[Index].Procs.Load <> nil) AND (Plugins[Index].State = 0) then
+ begin
+ Try
+ Result := Plugins[Index].Procs.Load(@PluginInterface);
+ Except
+ Result := -3;
+ End;
+
+ If (Result = 0) then
+ Plugins[Index].State := 1
+ Else
+ begin
+ FreePlugin(Index);
+ Plugins[Index].State := 255;
+ Core.ReportError(Integer(PChar('Error calling Load Function from Plugin: ' + String(Plugins[Index].Info.Name))), Integer(PChar('TPluginLoader')));
+ end;
+ end;
+ end;
+end;
+
+//--------------
+// Calls Init Func of Plugin with the given Index
+//--------------
+Function TPluginLoader.CallInit(Index: Cardinal): Integer;
+begin
+ Result := -2;
+ If(Index < Length(Plugins)) then
+ begin
+ If (@Plugins[Index].Procs.Init <> nil) AND (Plugins[Index].State = 1) then
+ begin
+ Try
+ Result := Plugins[Index].Procs.Init(@PluginInterface);
+ Except
+ Result := -3;
+ End;
+
+ If (Result = 0) then
+ begin
+ Plugins[Index].State := 2;
+ Plugins[Index].NeedsDeInit := True;
+ end
+ Else
+ begin
+ FreePlugin(Index);
+ Plugins[Index].State := 255;
+ Core.ReportError(Integer(PChar('Error calling Init Function from Plugin: ' + String(Plugins[Index].Info.Name))), Integer(PChar('TPluginLoader')));
+ end;
+ end;
+ end;
+end;
+
+//--------------
+// Calls DeInit Proc of Plugin with the given Index
+//--------------
+Procedure TPluginLoader.CallDeInit(Index: Cardinal);
+begin
+ If(Index < Length(Plugins)) then
+ begin
+ If (Plugins[Index].State < 4) then
+ begin
+ If (@Plugins[Index].Procs.DeInit <> nil) and (Plugins[Index].NeedsDeInit) then
+ Try
+ Plugins[Index].Procs.DeInit(@PluginInterface);
+ Except
+
+ End;
+
+ //Don't forget to remove Services and Subscriptions by this Plugin
+ Core.Hooks.DelbyOwner(-1 - Index);
+
+ FreePlugin(Index);
+ end;
+ end;
+end;
+
+//--------------
+// Frees all Plugin Sources (Procs and Handles) - Helper for Deiniting Functions
+//--------------
+Procedure TPluginLoader.FreePlugin(Index: Cardinal);
+begin
+ Plugins[Index].State := 4;
+ Plugins[Index].Procs.Load := nil;
+ Plugins[Index].Procs.Init := nil;
+ Plugins[Index].Procs.DeInit := nil;
+
+ If (Plugins[Index].hLib <> 0) then
+ FreeLibrary(Plugins[Index].hLib);
+end;
+
+
+
+//--------------
+// wParam PChar(PluginName/PluginPath) | lParam (if wParam = nil) ID of the Plugin
+//--------------
+Function TPluginLoader.LoadPlugin(wParam, lParam: DWord): integer;
+var
+ Index: Integer;
+ sFile: String;
+begin
+ Result := -1;
+ sFile := '';
+ //lParam is ID
+ If (Pointer(wParam) = nil) then
+ begin
+ Index := lParam;
+ end
+ else
+ begin //wParam is PChar
+ try
+ sFile := String(PChar(Pointer(wParam)));
+ Index := PluginExists(sFile);
+ If (Index < 0) And FileExists(sFile) then
+ begin //Is Filename
+ AddPlugin(sFile);
+ Result := Plugins[High(Plugins)].State;
+ end;
+ except
+ Index := -2;
+ end;
+ end;
+
+
+ If (Index >= 0) and (Index < Length(Plugins)) then
+ begin
+ AddPlugin(Plugins[Index].Path);
+ Result := Plugins[Index].State;
+ end;
+end;
+
+//--------------
+// wParam PChar(PluginName/PluginPath) | lParam (if wParam = nil) ID of the Plugin
+//--------------
+Function TPluginLoader.UnloadPlugin(wParam, lParam: DWord): integer;
+var
+ Index: Integer;
+ sName: String;
+begin
+ Result := -1;
+ //lParam is ID
+ If (Pointer(wParam) = nil) then
+ begin
+ Index := lParam;
+ end
+ else
+ begin //wParam is PChar
+ try
+ sName := String(PChar(Pointer(wParam)));
+ Index := PluginExists(sName);
+ except
+ Index := -2;
+ end;
+ end;
+
+
+ If (Index >= 0) and (Index < Length(Plugins)) then
+ CallDeInit(Index)
+end;
+
+//--------------
+// If wParam = -1 then (If lParam = nil then get length of Moduleinfo Array. If lparam <> nil then write array of TUS_PluginInfo to address at lparam) Else (Get PluginInfo of Plugin with Index(wParam) to Address at lParam)
+//--------------
+Function TPluginLoader.GetPluginInfo(wParam, lParam: DWord): integer;
+var I: Integer;
+begin
+ Result := 0;
+ If (wParam < 0) then
+ begin //Get Info of 1 Plugin
+ If (Pointer(lParam) <> nil) AND (wParam < Length(Plugins)) then
+ begin
+ Try
+ Result := 1;
+ PUS_PluginInfo(Pointer(lParam))^ := Plugins[wParam].Info;
+ Except
+
+ End;
+ end;
+ end
+ Else If (Pointer(lParam) = nil) then
+ begin //Get Length of Plugin (Info) Array
+ Result := Length(Plugins);
+ end
+ Else //Write PluginInfo Array to Address in lParam
+ begin
+ Try
+ For I := 0 to high(Plugins) do
+ PAUS_PluginInfo(Pointer(lParam))^[I] := Plugins[I].Info;
+ Result := Length(Plugins);
+ Except
+ Core.ReportError(Integer(PChar('Could not write PluginInfo Array')), Integer(PChar('TPluginLoader')));
+ End;
+ end;
+
+end;
+
+//--------------
+// If wParam = -1 then (If lParam = nil then get length of Plugin State Array. If lparam <> nil then write array of Byte to address at lparam) Else (Return State of Plugin with Index(wParam))
+//--------------
+Function TPluginLoader.GetPluginState(wParam, lParam: DWord): integer;
+var I: Integer;
+begin
+ Result := -1;
+ If (wParam < 0) then
+ begin //Get State of 1 Plugin
+ If (wParam < Length(Plugins)) then
+ begin
+ Result := Plugins[wParam].State;
+ end;
+ end
+ Else If (Pointer(lParam) = nil) then
+ begin //Get Length of Plugin (Info) Array
+ Result := Length(Plugins);
+ end
+ Else //Write PluginInfo Array to Address in lParam
+ begin
+ Try
+ For I := 0 to high(Plugins) do
+ Byte(Pointer(lParam + I)^) := Plugins[I].State;
+ Result := Length(Plugins);
+ Except
+ Core.ReportError(Integer(PChar('Could not write PluginState Array')), Integer(PChar('TPluginLoader')));
+ End;
+ end;
+end;
+
+
+
+
+
+{*********************
+ TtehPlugins
+ Implentation
+*********************}
+
+//-------------
+// Function that gives some Infos about the Module to the Core
+//-------------
+Procedure TtehPlugins.Info(const pInfo: PModuleInfo);
+begin
+ pInfo^.Name := 'TtehPlugins';
+ pInfo^.Version := MakeVersion(1,0,0,chr(0));
+ pInfo^.Description := 'Module executing the Plugins!';
+end;
+
+//-------------
+// Just the Constructor
+//-------------
+Constructor TtehPlugins.Create;
+begin
+ PluginLoader := nil;
+end;
+
+//-------------
+//Is Called on Loading.
+//In this Method only Events and Services should be created
+//to offer them to other Modules or Plugins during the Init process
+//If False is Returned this will cause a Forced Exit
+//-------------
+Function TtehPlugins.Load: Boolean;
+var
+ I: Integer; //Counter
+ CurExecutedBackup: Integer; //backup of Core.CurExecuted Attribute
+label Continue;
+begin
+ //Get Pointer to PluginLoader
+ PluginLoader := PPluginLoader(Core.GetModulebyName('TPluginLoader'));
+ If (PluginLoader = nil) then
+ begin
+ Result := False;
+ Core.ReportError(Integer(PChar('Could not get Pointer to PluginLoader')), Integer(PChar('TtehPlugins')));
+ end
+ else
+ begin
+ Result := True;
+
+ //Backup CurExecuted
+ CurExecutedBackup := Core.CurExecuted;
+
+ //Start Loading the Plugins
+ I := 0;
+ Continue:
+ Try
+ While (I <= High(PluginLoader.Plugins)) do
+ begin
+ Core.CurExecuted := -1 - I;
+
+ //Unload Plugin if not correctly Executed
+ If (PluginLoader.CallLoad(I) <> 0) then
+ begin
+ PluginLoader.CallDeInit(I);
+ PluginLoader.Plugins[I].State := 254; //Plugin asks for unload
+ Core.ReportDebug(Integer(PChar('Plugin Selfabort during loading process: ' + String(PluginLoader.Plugins[I].Info.Name))), Integer(PChar('TtehPlugins')));
+ end
+ else
+ Core.ReportDebug(Integer(PChar('Plugin loaded succesful: ' + String(PluginLoader.Plugins[I].Info.Name))), Integer(PChar('TtehPlugins')));
+
+ Inc(I);
+ end;
+ Except
+ //Plugin could not be loaded.
+ // => Show Error Message, then ShutDown Plugin
+ on E: Exception do
+ begin
+ PluginLoader.CallDeInit(I);
+ PluginLoader.Plugins[I].State := 255; //Plugin causes Error
+ Core.ReportError(Integer(PChar('Plugin causes Error during loading process: ' + PluginLoader.Plugins[I].Info.Name + ', ErrorMsg: "' + E.Message + '"')), Integer(PChar('TtehPlugins')));
+
+
+ //don't forget to increase I
+ Inc(I);
+ end;
+ End;
+
+ If (I <= High(PluginLoader.Plugins)) then
+ Goto Continue;
+
+ //Reset CurExecuted
+ Core.CurExecuted := CurExecutedBackup;
+ end;
+end;
+
+//-------------
+//Is Called on Init Process
+//In this Method you can Hook some Events and Create + Init
+//your Classes, Variables etc.
+//If False is Returned this will cause a Forced Exit
+//-------------
+Function TtehPlugins.Init: Boolean;
+var
+ I: Integer; //Counter
+ CurExecutedBackup: Integer; //backup of Core.CurExecuted Attribute
+label Continue;
+begin
+ Result := True;
+
+ //Backup CurExecuted
+ CurExecutedBackup := Core.CurExecuted;
+
+ //Start Loading the Plugins
+ I := 0;
+ Continue:
+ Try
+ While (I <= High(PluginLoader.Plugins)) do
+ begin
+ Core.CurExecuted := -1 - I;
+
+ //Unload Plugin if not correctly Executed
+ If (PluginLoader.CallInit(I) <> 0) then
+ begin
+ PluginLoader.CallDeInit(I);
+ PluginLoader.Plugins[I].State := 254; //Plugin asks for unload
+ Core.ReportDebug(Integer(PChar('Plugin Selfabort during init process: ' + String(PluginLoader.Plugins[I].Info.Name))), Integer(PChar('TtehPlugins')));
+ end
+ else
+ Core.ReportDebug(Integer(PChar('Plugin inited succesful: ' + String(PluginLoader.Plugins[I].Info.Name))), Integer(PChar('TtehPlugins')));
+
+ //don't forget to increase I
+ Inc(I);
+ end;
+ Except
+ //Plugin could not be loaded.
+ // => Show Error Message, then ShutDown Plugin
+ PluginLoader.CallDeInit(I);
+ PluginLoader.Plugins[I].State := 255; //Plugin causes Error
+ Core.ReportError(Integer(PChar('Plugin causes Error during init process: ' + String(PluginLoader.Plugins[I].Info.Name))), Integer(PChar('TtehPlugins')));
+
+ //don't forget to increase I
+ Inc(I);
+ End;
+
+ If (I <= High(PluginLoader.Plugins)) then
+ GoTo Continue;
+
+ //Reset CurExecuted
+ Core.CurExecuted := CurExecutedBackup;
+end;
+
+//-------------
+//Is Called if this Module has been Inited and there is a Exit.
+//Deinit is in backwards Initing Order
+//-------------
+Procedure TtehPlugins.DeInit;
+var
+ I: Integer; //Counter
+ CurExecutedBackup: Integer; //backup of Core.CurExecuted Attribute
+label Continue;
+begin
+ //Backup CurExecuted
+ CurExecutedBackup := Core.CurExecuted;
+
+ //Start Loop
+ I := 0;
+
+ Continue:
+ Try
+ While (I <= High(PluginLoader.Plugins)) do
+ begin
+ //DeInit Plugin
+ PluginLoader.CallDeInit(I);
+
+ Inc(I);
+ end;
+ Except
+ Inc(I);
+ End;
+
+ If I <= High(PluginLoader.Plugins) then
+ Goto Continue;
+
+ //Reset CurExecuted
+ Core.CurExecuted := CurExecutedBackup;
+end;
+
+end.
diff --git a/Game/Code/MacOSX/Platform.inc b/Game/Code/MacOSX/Platform.inc
deleted file mode 100755
index 7f028a12..00000000
--- a/Game/Code/MacOSX/Platform.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-
-{$IFDEF FPC}
- {$MODE DELPHI}
- {$H+}
- {$R-}
- {$DEFINE DLL_CDECL}
- {$DEFINE MACOS}
- {$DEFINE WIN32}
- {$DEFINE TRANSLATE}
-{$ELSE}
- {$DEFINE DLL_STDCALL}
-{$ENDIF}
-
diff --git a/Game/Code/MacOSX/UltraStarDX.pas b/Game/Code/MacOSX/UltraStarDX.pas
index da42fb6a..b531244f 100644
--- a/Game/Code/MacOSX/UltraStarDX.pas
+++ b/Game/Code/MacOSX/UltraStarDX.pas
@@ -1,8 +1,11 @@
-program UltraStar;
+program UltraStarDX;
-uses UMain;
+uses UMain, UAudio_bass, UAudio_FFMpeg, UMedia_dummy, USingNotes, UTextClasses, UVideo;
+
+var i : Integer;
begin
+ i := 0;
Main;
end.
diff --git a/Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.mode1 b/Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.mode1
index c93ec352..4350b967 100644
--- a/Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.mode1
+++ b/Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.mode1
@@ -190,24 +190,264 @@
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>2C0B7D300CD683C80062A7C8</string>
+ <string>2CF552990CDA426600627463</string>
<key>PBXProjectModuleLabel</key>
- <string>TextGL.pas</string>
+ <string>UMain.pas</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>2C0B7D310CD683C80062A7C8</string>
+ <string>2CF5529A0CDA426600627463</string>
<key>PBXProjectModuleLabel</key>
- <string>TextGL.pas</string>
+ <string>UMain.pas</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>2C0B7D320CD683C80062A7C8</string>
+ <string>2CF553BB0CDA5A4D00627463</string>
<key>history</key>
<array>
- <string>2C0B7D280CD6808A0062A7C8</string>
+ <string>2CF553B10CDA5A2F00627463</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {1052, 646}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>222 147 1052 687 0 0 1680 1028 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF552960CDA426600627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>UAudio_FFMpeg.pas</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF552970CDA426600627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>UAudio_FFMpeg.pas</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>2CF553BC0CDA5A4D00627463</string>
+ <key>history</key>
+ <array>
+ <string>2CF553940CDA58E900627463</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {797, 748}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>38 213 797 789 0 0 1680 1028 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF552930CDA426600627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>UAudio_bass.pas</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF552940CDA426600627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>UAudio_bass.pas</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>2CF553BD0CDA5A4D00627463</string>
+ <key>history</key>
+ <array>
+ <string>2CF553960CDA58E900627463</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {797, 748}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 234 797 789 0 0 1680 1028 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF5536C0CDA575B00627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>UltraStarDX.pas</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF5536D0CDA575B00627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>UltraStarDX.pas</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>2CF553BE0CDA5A4D00627463</string>
+ <key>history</key>
+ <array>
+ <string>2CF553670CDA575100627463</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {987, 762}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>189 142 987 803 0 0 1680 1028 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF5536F0CDA575B00627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>sdl_image.pas</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF553700CDA575B00627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>sdl_image.pas</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>2CF553BF0CDA5A4D00627463</string>
+ <key>history</key>
+ <array>
+ <string>2CF553060CDA514A00627463</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {1052, 646}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 336 1052 687 0 0 1680 1028 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF553720CDA575B00627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>sdl.pas</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF553730CDA575B00627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>sdl.pas</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>2CF553C00CDA5A4D00627463</string>
+ <key>history</key>
+ <array>
+ <string>2CF553040CDA513000627463</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {987, 762}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>211 199 987 803 0 0 1680 1028 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF553750CDA575B00627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>UTexture.pas</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF553760CDA575B00627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>UTexture.pas</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>2CF553C10CDA5A4D00627463</string>
+ <key>history</key>
+ <array>
+ <string>2CF552FF0CDA500800627463</string>
</array>
</dict>
<key>SplitCount</key>
@@ -223,7 +463,87 @@
<key>PBXModuleWindowStatusBarHidden2</key>
<false/>
<key>RubberWindowFrame</key>
- <string>38 317 616 685 0 0 1680 1028 </string>
+ <string>15 338 616 685 0 0 1680 1028 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF5528D0CDA426600627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Windows.pas</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF5528E0CDA426600627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Windows.pas</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>2CF553C20CDA5A4D00627463</string>
+ <key>history</key>
+ <array>
+ <string>2CF553780CDA575B00627463</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {616, 644}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>176 191 616 685 0 0 1680 1028 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF5528A0CDA426600627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Messages.pas</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>2CF5528B0CDA426600627463</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Messages.pas</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>2CF553C30CDA5A4D00627463</string>
+ <key>history</key>
+ <array>
+ <string>2CF552760CDA419B00627463</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {1052, 646}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>102 232 1052 687 0 0 1680 1028 </string>
</dict>
</dict>
</array>
@@ -260,8 +580,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -301,15 +619,18 @@
<string>DD7C45450A6E72DE003FA52B</string>
<string>DDC6868A09F571C2004E4BFF</string>
<string>2CDD8D0B0CC5539900E4169D</string>
+ <string>DDC6888C09F57243004E4BFF</string>
+ <string>DDC688C809F574E9004E4BFF</string>
<string>1C37FBAC04509CD000000102</string>
+ <string>2CF5536A0CDA575B00627463</string>
+ <string>2CF5536B0CDA575B00627463</string>
<string>1C37FAAC04509CD000000102</string>
- <string>1C37FABC05509CD000000102</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>21</integer>
- <integer>19</integer>
+ <integer>17</integer>
+ <integer>15</integer>
<integer>0</integer>
</array>
</array>
@@ -333,7 +654,7 @@
<real>266</real>
</array>
<key>RubberWindowFrame</key>
- <string>665 266 817 753 0 0 1680 1028 </string>
+ <string>775 270 817 753 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -370,7 +691,7 @@
<key>Frame</key>
<string>{{0, 0}, {529, 0}}</string>
<key>RubberWindowFrame</key>
- <string>665 266 817 753 0 0 1680 1028 </string>
+ <string>775 270 817 753 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -378,6 +699,8 @@
<string>0pt</string>
</dict>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@@ -390,7 +713,7 @@
<key>Frame</key>
<string>{{0, 5}, {529, 707}}</string>
<key>RubberWindowFrame</key>
- <string>665 266 817 753 0 0 1680 1028 </string>
+ <string>775 270 817 753 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -414,9 +737,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>2C0B7D2E0CD683C80062A7C8</string>
+ <string>2CF5501B0CDA1CD700627463</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>2C0B7D2F0CD683C80062A7C8</string>
+ <string>2CF5501C0CDA1CD700627463</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -550,14 +873,26 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
+ <string>2CF5537F0CDA575B00627463</string>
+ <string>2CF553800CDA575B00627463</string>
+ <string>2CDD4BFC0CB948FC00549FAC</string>
+ <string>2CF54F210CDA14A100627463</string>
+ <string>2CF5528A0CDA426600627463</string>
+ <string>2CF5528D0CDA426600627463</string>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>2CF553750CDA575B00627463</string>
+ <string>2CF553720CDA575B00627463</string>
+ <string>2CF5536F0CDA575B00627463</string>
<string>2CDD4B730CB935C700549FAC</string>
- <string>2C0B7D270CD680850062A7C8</string>
- <string>1CD10A99069EF8BA00B06720</string>
- <string>2C0B7D300CD683C80062A7C8</string>
+ <string>2CF5536C0CDA575B00627463</string>
+ <string>2CF552930CDA426600627463</string>
+ <string>2CF552960CDA426600627463</string>
<string>/Users/eddie/Projekte/UltraStarDX/trunk/Game/Code/MacOSX/UltraStarDX.xcodeproj</string>
+ <string>2CF552990CDA426600627463</string>
+ <string>1CD10A99069EF8BA00B06720</string>
</array>
<key>WindowString</key>
- <string>665 266 817 753 0 0 1680 1028 </string>
+ <string>775 270 817 753 0 0 1680 1028 </string>
<key>WindowTools</key>
<array>
<dict>
@@ -573,14 +908,12 @@
<key>Dock</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string>UCommon.pas</string>
+ <string>UAudio_FFMpeg.pas</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -589,7 +922,7 @@
<key>Frame</key>
<string>{{0, 0}, {1318, 344}}</string>
<key>RubberWindowFrame</key>
- <string>347 117 1318 626 0 0 1680 1028 </string>
+ <string>312 244 1318 626 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -597,6 +930,8 @@
<string>344pt</string>
</dict>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@@ -613,7 +948,7 @@
<key>Frame</key>
<string>{{0, 349}, {1318, 236}}</string>
<key>RubberWindowFrame</key>
- <string>347 117 1318 626 0 0 1680 1028 </string>
+ <string>312 244 1318 626 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -636,18 +971,18 @@
<key>TableOfContents</key>
<array>
<string>2CDD4B730CB935C700549FAC</string>
- <string>2C0B7D200CD680850062A7C8</string>
+ <string>2CF54F1A0CDA14A100627463</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.build</string>
<key>WindowString</key>
- <string>347 117 1318 626 0 0 1680 1028 </string>
+ <string>312 244 1318 626 0 0 1680 1028 </string>
<key>WindowToolGUID</key>
<string>2CDD4B730CB935C700549FAC</string>
<key>WindowToolIsVisible</key>
- <false/>
+ <true/>
</dict>
<dict>
<key>FirstTimeWindowDisplayed</key>
@@ -678,8 +1013,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {368, 414}}</string>
- <string>{{368, 0}, {596, 414}}</string>
+ <string>{{0, 0}, {360, 414}}</string>
+ <string>{{360, 0}, {604, 414}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@@ -742,14 +1077,14 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>2C0B7D210CD680850062A7C8</string>
+ <string>2CF54F1B0CDA14A100627463</string>
<string>1C162984064C10D400B95A72</string>
- <string>2C0B7D220CD680850062A7C8</string>
- <string>2C0B7D230CD680850062A7C8</string>
- <string>2C0B7D240CD680850062A7C8</string>
- <string>2C0B7D250CD680850062A7C8</string>
- <string>2C0B7D260CD680850062A7C8</string>
- <string>2C0B7D270CD680850062A7C8</string>
+ <string>2CF54F1C0CDA14A100627463</string>
+ <string>2CF54F1D0CDA14A100627463</string>
+ <string>2CF54F1E0CDA14A100627463</string>
+ <string>2CF54F1F0CDA14A100627463</string>
+ <string>2CF54F200CDA14A100627463</string>
+ <string>2CF54F210CDA14A100627463</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debug</string>
@@ -776,14 +1111,12 @@
<key>Dock</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
- <string>TextGL.pas</string>
+ <string>UCommon.pas</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -804,6 +1137,8 @@
<string>502pt</string>
</dict>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@@ -839,8 +1174,8 @@
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
- <string>2CE78DAF0CCBA1C0003B6817</string>
- <string>2CE78DB00CCBA1C0003B6817</string>
+ <string>2CF54F3B0CDA1AA600627463</string>
+ <string>2CF54F3C0CDA1AA600627463</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
@@ -903,7 +1238,7 @@
<key>TableOfContents</key>
<array>
<string>2CDD4BFC0CB948FC00549FAC</string>
- <string>2CDD8E5D0CC558D500E4169D</string>
+ <string>2CF5537E0CDA575B00627463</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>WindowString</key>
diff --git a/Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.pbxuser b/Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.pbxuser
index e00a7dff..04871a3e 100644
--- a/Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.pbxuser
+++ b/Game/Code/MacOSX/UltraStarDX.xcodeproj/eddie.pbxuser
@@ -1,199 +1,504 @@
// !$*UTF8*$!
{
- 2C0B7D280CD6808A0062A7C8 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 2C4D9C620CC9EC8C0031092D /* TextGL.pas */;
+ 2C4D9C620CC9EC8C0031092D /* TextGL.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 7742}}";
+ sepNavSelRange = "{12201, 8}";
+ sepNavVisRect = "{{0, 6061}, {758, 716}}";
+ sepNavWindowFrame = "{{38, 157}, {797, 845}}";
+ };
};
- 2C0B7D320CD683C80062A7C8 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 2C4D9C620CC9EC8C0031092D /* TextGL.pas */;
- name = "TextGL.pas: 11";
- rLen = 0;
- rLoc = 92;
- rType = 0;
- vrLen = 1401;
- vrLoc = 0;
+ 2C4D9C630CC9EC8C0031092D /* UAudio_bass.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {884, 9044}}";
+ sepNavSelRange = "{3202, 12}";
+ sepNavVisRect = "{{0, 8328}, {758, 716}}";
+ sepNavWindowFrame = "{{15, 178}, {797, 845}}";
+ };
};
- 2C4D9C620CC9EC8C0031092D /* TextGL.pas */ = {
+ 2C4D9C640CC9EC8C0031092D /* UAudio_FFMpeg.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {680, 7770}}";
- sepNavSelRange = "{92, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{38, 261}, {616, 741}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1196, 13216}}";
+ sepNavSelRange = "{22728, 0}";
+ sepNavVisRect = "{{0, 12500}, {758, 716}}";
+ sepNavWindowFrame = "{{38, 157}, {797, 845}}";
+ };
+ };
+ 2C4D9C650CC9EC8C0031092D /* UCatCovers.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {764, 2128}}";
+ sepNavSelRange = "{352, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{61, 136}, {797, 845}}";
+ };
+ };
+ 2C4D9C660CC9EC8C0031092D /* UCommandLine.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 4074}}";
+ sepNavSelRange = "{54, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{84, 115}, {797, 845}}";
};
};
2C4D9C670CC9EC8C0031092D /* UCommon.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1277, 3990}}";
- sepNavSelRange = "{38, 0}";
- sepNavVisRect = "{{0, 0}, {1277, 312}}";
- sepNavWindowFrame = "{{38, 261}, {616, 741}}";
+ sepNavIntBoundsRect = "{{0, 0}, {749, 4186}}";
+ sepNavSelRange = "{748, 12}";
+ sepNavVisRect = "{{0, 234}, {749, 470}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2C4D9C680CC9EC8C0031092D /* UCore.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1136, 6888}}";
+ sepNavSelRange = "{13272, 0}";
+ sepNavVisRect = "{{0, 6145}, {758, 716}}";
+ sepNavWindowFrame = "{{107, 94}, {797, 845}}";
};
};
2C4D9C690CC9EC8C0031092D /* UCoreModule.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 1568}}";
- sepNavSelRange = "{278, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {577, 1708}}";
+ sepNavSelRange = "{262, 0}";
sepNavVisRect = "{{0, 0}, {577, 612}}";
sepNavWindowFrame = "{{38, 261}, {616, 741}}";
};
};
+ 2C4D9C6A0CC9EC8C0031092D /* UCovers.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 3668}}";
+ sepNavSelRange = "{49, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{130, 73}, {797, 845}}";
+ };
+ };
+ 2C4D9C6B0CC9EC8C0031092D /* UDataBase.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {4058, 5026}}";
+ sepNavSelRange = "{60, 19}";
+ sepNavVisRect = "{{0, 0}, {1277, 312}}";
+ sepNavWindowFrame = "{{153, 52}, {797, 845}}";
+ };
+ };
+ 2C4D9C6C0CC9EC8C0031092D /* UDLLManager.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1436, 3486}}";
+ sepNavSelRange = "{1375, 0}";
+ sepNavVisRect = "{{0, 456}, {758, 716}}";
+ sepNavWindowFrame = "{{15, 178}, {797, 845}}";
+ };
+ };
2C4D9C6D0CC9EC8C0031092D /* UDraw.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1046, 18578}}";
- sepNavSelRange = "{0, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1277, 18872}}";
+ sepNavSelRange = "{9710, 15}";
+ sepNavVisRect = "{{0, 4065}, {1277, 312}}";
sepNavWindowFrame = "{{61, 240}, {616, 741}}";
};
};
2C4D9C6E0CC9EC8C0031092D /* UFiles.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1562, 10710}}";
- sepNavSelRange = "{0, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1562, 10766}}";
+ sepNavSelRange = "{1829, 12}";
+ sepNavVisRect = "{{0, 766}, {749, 470}}";
sepNavWindowFrame = "{{84, 219}, {616, 741}}";
};
};
+ 2C4D9C6F0CC9EC8C0031092D /* UGraphic.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {830, 9800}}";
+ sepNavSelRange = "{872, 16}";
+ sepNavVisRect = "{{0, 391}, {758, 716}}";
+ sepNavWindowFrame = "{{38, 157}, {797, 845}}";
+ };
+ };
+ 2C4D9C700CC9EC8C0031092D /* UGraphicClasses.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1052, 9450}}";
+ sepNavSelRange = "{5863, 11}";
+ sepNavVisRect = "{{0, 2572}, {749, 470}}";
+ sepNavWindowFrame = "{{61, 136}, {797, 845}}";
+ };
+ };
+ 2C4D9C710CC9EC8C0031092D /* UHooks.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1277, 5964}}";
+ sepNavSelRange = "{11810, 0}";
+ sepNavVisRect = "{{0, 5652}, {1277, 312}}";
+ sepNavWindowFrame = "{{84, 115}, {797, 845}}";
+ };
+ };
+ 2C4D9C720CC9EC8C0031092D /* UIni.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {770, 11102}}";
+ sepNavSelRange = "{41, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{107, 94}, {797, 845}}";
+ };
+ };
+ 2C4D9C730CC9EC8C0031092D /* UJoystick.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {896, 3962}}";
+ sepNavSelRange = "{46, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{130, 73}, {797, 845}}";
+ };
+ };
+ 2C4D9C740CC9EC8C0031092D /* ULanguage.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 3290}}";
+ sepNavSelRange = "{46, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{153, 52}, {797, 845}}";
+ };
+ };
2C4D9C760CC9EC8C0031092D /* ULCD.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 4256}}";
- sepNavSelRange = "{320, 0}";
- sepNavVisRect = "{{0, 3483}, {577, 612}}";
+ sepNavIntBoundsRect = "{{0, 0}, {577, 4270}}";
+ sepNavSelRange = "{25, 0}";
+ sepNavVisRect = "{{0, 0}, {577, 612}}";
sepNavWindowFrame = "{{176, 135}, {616, 741}}";
};
};
+ 2C4D9C770CC9EC8C0031092D /* ULight.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 2282}}";
+ sepNavSelRange = "{1017, 0}";
+ sepNavVisRect = "{{0, 425}, {758, 716}}";
+ sepNavWindowFrame = "{{15, 178}, {797, 845}}";
+ };
+ };
+ 2C4D9C780CC9EC8C0031092D /* ULog.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 3612}}";
+ sepNavSelRange = "{6056, 0}";
+ sepNavVisRect = "{{0, 2896}, {758, 716}}";
+ sepNavWindowFrame = "{{38, 157}, {797, 845}}";
+ };
+ };
+ 2C4D9C790CC9EC8C0031092D /* ULyrics_bak.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1070, 5950}}";
+ sepNavSelRange = "{34, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{84, 115}, {797, 845}}";
+ };
+ };
+ 2C4D9C7A0CC9EC8C0031092D /* ULyrics.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1220, 7700}}";
+ sepNavSelRange = "{11162, 13}";
+ sepNavVisRect = "{{0, 4395}, {758, 716}}";
+ sepNavWindowFrame = "{{61, 136}, {797, 845}}";
+ };
+ };
2C4D9C7B0CC9EC8C0031092D /* UMain.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1277, 11312}}";
- sepNavSelRange = "{64, 18}";
+ sepNavIntBoundsRect = "{{0, 0}, {1013, 15092}}";
+ sepNavSelRange = "{3295, 0}";
+ sepNavVisRect = "{{0, 1684}, {1013, 614}}";
+ sepNavWindowFrame = "{{222, 91}, {1052, 743}}";
+ };
+ };
+ 2C4D9C7C0CC9EC8C0031092D /* UMedia_dummy.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 3864}}";
+ sepNavSelRange = "{859, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{107, 94}, {797, 845}}";
+ };
+ };
+ 2C4D9C7D0CC9EC8C0031092D /* UModules.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 716}}";
+ sepNavSelRange = "{31, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{130, 73}, {797, 845}}";
+ };
+ };
+ 2C4D9C7E0CC9EC8C0031092D /* UMusic.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 4438}}";
+ sepNavSelRange = "{44, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{153, 52}, {797, 845}}";
+ };
+ };
+ 2C4D9C7F0CC9EC8C0031092D /* UParty.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 5278}}";
+ sepNavSelRange = "{48, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{15, 178}, {797, 845}}";
+ };
+ };
+ 2C4D9C800CC9EC8C0031092D /* UPlaylist.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {824, 6496}}";
+ sepNavSelRange = "{51, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{38, 157}, {797, 845}}";
+ };
+ };
+ 2C4D9C820CC9EC8C0031092D /* UPluginInterface.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 2198}}";
+ sepNavSelRange = "{247, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{84, 115}, {797, 845}}";
+ };
+ };
+ 2C4D9C830CC9EC8C0031092D /* uPluginLoader.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1718, 11116}}";
+ sepNavSelRange = "{317, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{107, 94}, {797, 845}}";
+ };
+ };
+ 2C4D9C840CC9EC8C0031092D /* URecord.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1277, 4998}}";
+ sepNavSelRange = "{159, 11}";
sepNavVisRect = "{{0, 0}, {1277, 312}}";
- sepNavWindowFrame = "{{222, 93}, {616, 741}}";
+ sepNavWindowFrame = "{{130, 73}, {797, 845}}";
+ };
+ };
+ 2C4D9C850CC9EC8C0031092D /* UServices.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1916, 4494}}";
+ sepNavSelRange = "{9160, 4}";
+ sepNavVisRect = "{{0, 4182}, {1277, 312}}";
+ sepNavWindowFrame = "{{153, 52}, {797, 845}}";
+ };
+ };
+ 2C4D9C860CC9EC8C0031092D /* USingNotes.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 716}}";
+ sepNavSelRange = "{52, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{15, 178}, {797, 845}}";
+ };
+ };
+ 2C4D9C870CC9EC8C0031092D /* USingScores.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {950, 13818}}";
+ sepNavSelRange = "{15011, 16}";
+ sepNavVisRect = "{{0, 5904}, {749, 470}}";
+ sepNavWindowFrame = "{{38, 157}, {797, 845}}";
+ };
+ };
+ 2C4D9C880CC9EC8C0031092D /* USkins.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 2408}}";
+ sepNavSelRange = "{25, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{61, 136}, {797, 845}}";
+ };
+ };
+ 2C4D9C890CC9EC8C0031092D /* USongs.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {950, 12544}}";
+ sepNavSelRange = "{7215, 0}";
+ sepNavVisRect = "{{0, 3298}, {758, 716}}";
+ sepNavWindowFrame = "{{84, 115}, {797, 845}}";
+ };
+ };
+ 2C4D9C8A0CC9EC8C0031092D /* UTextClasses.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1010, 854}}";
+ sepNavSelRange = "{54, 0}";
+ sepNavVisRect = "{{0, 138}, {758, 716}}";
+ sepNavWindowFrame = "{{107, 94}, {797, 845}}";
};
};
2C4D9C8B0CC9EC8C0031092D /* UTexture.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1730, 16016}}";
- sepNavSelRange = "{2035, 0}";
- sepNavVisRect = "{{0, 3332}, {577, 612}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1730, 15960}}";
+ sepNavSelRange = "{11823, 20}";
+ sepNavVisRect = "{{0, 5091}, {577, 612}}";
sepNavWindowFrame = "{{15, 282}, {616, 741}}";
};
};
+ 2C4D9C8C0CC9EC8C0031092D /* UThemes.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {788, 30954}}";
+ sepNavSelRange = "{44, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{130, 73}, {797, 845}}";
+ };
+ };
+ 2C4D9C8D0CC9EC8C0031092D /* UTime.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 1400}}";
+ sepNavSelRange = "{42, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{153, 52}, {797, 845}}";
+ };
+ };
+ 2C4D9C8E0CC9EC8C0031092D /* UVideo.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {902, 9646}}";
+ sepNavSelRange = "{12347, 13}";
+ sepNavVisRect = "{{0, 5722}, {749, 470}}";
+ sepNavWindowFrame = "{{15, 178}, {797, 845}}";
+ };
+ };
+ 2C4D9D8D0CC9ED230031092D /* Bass.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1358, 13790}}";
+ sepNavSelRange = "{51143, 0}";
+ sepNavVisRect = "{{0, 10534}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
2C4D9D900CC9ED4F0031092D /* FreeBitmap.pas */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {974, 24374}}";
- sepNavSelRange = "{1396, 0}";
+ sepNavSelRange = "{1377, 0}";
sepNavVisRect = "{{0, 0}, {577, 612}}";
sepNavWindowFrame = "{{245, 72}, {616, 741}}";
};
};
2C4D9D910CC9ED4F0031092D /* FreeImage.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1718, 10472}}";
- sepNavSelRange = "{1135, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1718, 10416}}";
+ sepNavSelRange = "{1255, 0}";
+ sepNavVisRect = "{{0, 373}, {577, 612}}";
sepNavWindowFrame = "{{15, 282}, {616, 741}}";
};
};
+ 2C4D9DCC0CC9EE6F0031092D /* UDisplay.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1277, 6678}}";
+ sepNavSelRange = "{9419, 36}";
+ sepNavVisRect = "{{0, 4975}, {1277, 312}}";
+ sepNavWindowFrame = "{{38, 157}, {797, 845}}";
+ };
+ };
+ 2C4D9DCD0CC9EE6F0031092D /* UDrawTexture.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 1470}}";
+ sepNavSelRange = "{54, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{61, 136}, {797, 845}}";
+ };
+ };
+ 2C4D9DCE0CC9EE6F0031092D /* UMenu.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1502, 21658}}";
+ sepNavSelRange = "{11354, 12}";
+ sepNavVisRect = "{{0, 3972}, {749, 470}}";
+ sepNavWindowFrame = "{{38, 157}, {797, 845}}";
+ };
+ };
2C4D9DCF0CC9EE6F0031092D /* UMenuButton.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {680, 8022}}";
- sepNavSelRange = "{0, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
+ sepNavIntBoundsRect = "{{0, 0}, {680, 8064}}";
+ sepNavSelRange = "{6107, 37}";
+ sepNavVisRect = "{{0, 1104}, {577, 612}}";
sepNavWindowFrame = "{{153, 156}, {616, 741}}";
};
};
+ 2C4D9DD00CC9EE6F0031092D /* UMenuButtonCollection.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 1008}}";
+ sepNavSelRange = "{63, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{61, 136}, {797, 845}}";
+ };
+ };
+ 2C4D9DD10CC9EE6F0031092D /* UMenuInteract.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 716}}";
+ sepNavSelRange = "{55, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{84, 115}, {797, 845}}";
+ };
+ };
2C4D9DD20CC9EE6F0031092D /* UMenuSelect.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 2786}}";
- sepNavSelRange = "{0, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {577, 2828}}";
+ sepNavSelRange = "{53, 0}";
sepNavVisRect = "{{0, 0}, {577, 612}}";
sepNavWindowFrame = "{{130, 177}, {616, 741}}";
};
};
- 2C4D9DD40CC9EE6F0031092D /* UMenuStatic.pas */ = {
+ 2C4D9DD30CC9EE6F0031092D /* UMenuSelectSlide.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 1162}}";
- sepNavSelRange = "{0, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{107, 198}, {616, 741}}";
+ sepNavIntBoundsRect = "{{0, 0}, {758, 4928}}";
+ sepNavSelRange = "{58, 0}";
+ sepNavVisRect = "{{0, 0}, {758, 716}}";
+ sepNavWindowFrame = "{{107, 94}, {797, 845}}";
};
};
- 2C4D9DFF0CC9EF840031092D /* MacClasses.pas */ = {
+ 2C4D9DD40CC9EE6F0031092D /* UMenuStatic.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {578, 812}}";
- sepNavSelRange = "{8, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {577, 1204}}";
+ sepNavSelRange = "{53, 0}";
sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{15, 282}, {616, 741}}";
+ sepNavWindowFrame = "{{107, 198}, {616, 741}}";
};
};
- 2C4D9E000CC9EF840031092D /* Graphics.pas */ = {
+ 2C4D9DD50CC9EE6F0031092D /* UMenuText.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {620, 2674}}";
- sepNavSelRange = "{90, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{38, 261}, {616, 741}}";
+ sepNavIntBoundsRect = "{{0, 0}, {962, 5222}}";
+ sepNavSelRange = "{2165, 0}";
+ sepNavVisRect = "{{0, 707}, {758, 716}}";
+ sepNavWindowFrame = "{{130, 73}, {797, 845}}";
};
};
- 2C4D9E010CC9EF840031092D /* JPEG.pas */ = {
+ 2C4D9DEC0CC9EF0A0031092D /* sdl_image.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {602, 612}}";
- sepNavSelRange = "{5, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{61, 240}, {616, 741}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1268, 4788}}";
+ sepNavSelRange = "{8020, 0}";
+ sepNavVisRect = "{{0, 1745}, {1013, 614}}";
+ sepNavWindowFrame = "{{15, 280}, {1052, 743}}";
};
};
- 2C4D9E020CC9EF840031092D /* MidiFile.pas */ = {
+ 2C4D9DEF0CC9EF210031092D /* sdl_ttf.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 1442}}";
- sepNavSelRange = "{5, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{84, 219}, {616, 741}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1268, 6552}}";
+ sepNavSelRange = "{8844, 12}";
+ sepNavVisRect = "{{0, 2054}, {749, 470}}";
};
};
- 2C4D9E030CC9EF840031092D /* MidiOut.pas */ = {
+ 2C4D9E000CC9EF840031092D /* Graphics.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 882}}";
- sepNavSelRange = "{5, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{107, 198}, {616, 741}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1277, 2674}}";
+ sepNavSelRange = "{58, 56}";
+ sepNavVisRect = "{{0, 0}, {1277, 312}}";
+ sepNavWindowFrame = "{{38, 261}, {616, 741}}";
};
};
- 2C4D9E040CC9EF840031092D /* OpenGL12.pas */ = {
+ 2C4D9E010CC9EF840031092D /* JPEG.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1616, 65758}}";
- sepNavSelRange = "{66, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {602, 612}}";
+ sepNavSelRange = "{53, 0}";
sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{130, 177}, {616, 741}}";
+ sepNavWindowFrame = "{{61, 240}, {616, 741}}";
};
};
- 2C4D9E070CC9EF840031092D /* PNGImage.pas */ = {
+ 2C4D9E040CC9EF840031092D /* OpenGL12.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 612}}";
- sepNavSelRange = "{5, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{153, 156}, {616, 741}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1616, 65828}}";
+ sepNavSelRange = "{213686, 0}";
+ sepNavVisRect = "{{0, 64932}, {1031, 840}}";
+ sepNavWindowFrame = "{{1, 53}, {1070, 969}}";
};
};
2C4D9E090CC9EF840031092D /* Windows.pas */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 1960}}";
- sepNavSelRange = "{5, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
+ sepNavIntBoundsRect = "{{0, 0}, {577, 2352}}";
+ sepNavSelRange = "{2832, 0}";
+ sepNavVisRect = "{{0, 1249}, {577, 612}}";
sepNavWindowFrame = "{{176, 135}, {616, 741}}";
};
};
- 2C4D9E0A0CC9EF840031092D /* zlportio.pas */ = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 612}}";
- sepNavSelRange = "{5, 0}";
- sepNavVisRect = "{{0, 0}, {577, 612}}";
- sepNavWindowFrame = "{{199, 114}, {616, 741}}";
- };
- };
2C4D9E440CC9F0ED0031092D /* switches.inc */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {577, 612}}";
- sepNavSelRange = "{0, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {577, 616}}";
+ sepNavSelRange = "{312, 0}";
sepNavVisRect = "{{0, 0}, {577, 612}}";
sepNavWindowFrame = "{{15, 282}, {616, 741}}";
};
@@ -251,6 +556,8 @@
name = "Project Breakpoints";
objects = (
2CDEA8080CBD7D920096994C /* UMain.pas:293 */,
+ 2CF553830CDA578D00627463 /* UMain.pas:148 */,
+ 2CF553A20CDA59BB00627463 /* UltraStarDX.pas:8 */,
);
};
2CDEA8080CBD7D920096994C /* UMain.pas:293 */ = {
@@ -263,14 +570,552 @@
fileReference = 2CDD439C0CBBE92D00F364DE /* UMain.pas */;
hitCount = 1;
lineNumber = 293;
- location = UltraStar;
- modificationTime = 214261345.065247;
+ location = UltraStarDX;
+ modificationTime = 215636526.320362;
+ state = 1;
+ };
+ 2CF54F430CDA1B2B00627463 /* UScreenCredits.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1196, 19586}}";
+ sepNavSelRange = "{50178, 0}";
+ sepNavVisRect = "{{0, 1770}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F440CDA1B2B00627463 /* UScreenEdit.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1610}}";
+ sepNavSelRange = "{34, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F450CDA1B2B00627463 /* UScreenEditConvert.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1178, 8092}}";
+ sepNavSelRange = "{41, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F460CDA1B2B00627463 /* UScreenEditHeader.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 5180}}";
+ sepNavSelRange = "{59, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F470CDA1B2B00627463 /* UScreenEditSub.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1040, 19236}}";
+ sepNavSelRange = "{37, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F480CDA1B2B00627463 /* UScreenLevel.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1302}}";
+ sepNavSelRange = "{54, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F490CDA1B2B00627463 /* UScreenLoading.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 815}}";
+ sepNavSelRange = "{58, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F4A0CDA1B2B00627463 /* UScreenMain.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 3990}}";
+ sepNavSelRange = "{55, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F4B0CDA1B2B00627463 /* UScreenName.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {956, 3318}}";
+ sepNavSelRange = "{34, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F4C0CDA1B2B00627463 /* UScreenOpen.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 2366}}";
+ sepNavSelRange = "{55, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F4D0CDA1B2B00627463 /* UScreenOptions.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 2506}}";
+ sepNavSelRange = "{311, 0}";
+ sepNavVisRect = "{{0, 188}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F4E0CDA1B2B00627463 /* UScreenOptionsAdvanced.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1484}}";
+ sepNavSelRange = "{45, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F4F0CDA1B2B00627463 /* UScreenOptionsGame.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1582}}";
+ sepNavSelRange = "{60, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F500CDA1B2B00627463 /* UScreenOptionsGraphics.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1400}}";
+ sepNavSelRange = "{64, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F510CDA1B2B00627463 /* UScreenOptionsLyrics.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1330}}";
+ sepNavSelRange = "{62, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F520CDA1B2B00627463 /* UScreenOptionsRecord.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {776, 1974}}";
+ sepNavSelRange = "{39, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F530CDA1B2B00627463 /* UScreenOptionsSound.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1414}}";
+ sepNavSelRange = "{42, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F540CDA1B2B00627463 /* UScreenOptionsThemes.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1680}}";
+ sepNavSelRange = "{43, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F550CDA1B2B00627463 /* UScreenPartyNewRound.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {758, 5880}}";
+ sepNavSelRange = "{62, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F560CDA1B2B00627463 /* UScreenPartyOptions.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 3640}}";
+ sepNavSelRange = "{61, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F570CDA1B2B00627463 /* UScreenPartyPlayer.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {956, 4648}}";
+ sepNavSelRange = "{62, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F580CDA1B2B00627463 /* UScreenPartyScore.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1046, 4116}}";
+ sepNavSelRange = "{61, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F590CDA1B2B00627463 /* UScreenPartyWin.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {752, 3640}}";
+ sepNavSelRange = "{59, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F5A0CDA1B2B00627463 /* UScreenPopup.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 3472}}";
+ sepNavSelRange = "{56, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F5B0CDA1B2B00627463 /* UScreenScore.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1016, 9478}}";
+ sepNavSelRange = "{49, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F5C0CDA1B2B00627463 /* UScreenSing.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1262, 18480}}";
+ sepNavSelRange = "{49, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F5D0CDA1B2B00627463 /* UScreenSingModi.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1277, 9324}}";
+ sepNavSelRange = "{265, 14}";
+ sepNavVisRect = "{{0, 187}, {1277, 312}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F5E0CDA1B2B00627463 /* UScreenSong.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1700, 29050}}";
+ sepNavSelRange = "{23456, 0}";
+ sepNavVisRect = "{{0, 11219}, {1277, 312}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F5F0CDA1B2B00627463 /* UScreenSongJumpto.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1160, 2884}}";
+ sepNavSelRange = "{61, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F600CDA1B2B00627463 /* UScreenSongMenu.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {968, 8834}}";
+ sepNavSelRange = "{52, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F610CDA1B2B00627463 /* UScreenStatDetail.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 3514}}";
+ sepNavSelRange = "{40, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F620CDA1B2B00627463 /* UScreenStatMain.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1277, 3976}}";
+ sepNavSelRange = "{4341, 26}";
+ sepNavVisRect = "{{0, 2749}, {1277, 312}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF54F630CDA1B2B00627463 /* UScreenTop5.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 2324}}";
+ sepNavSelRange = "{48, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF54F640CDA1B2B00627463 /* UScreenWelcome.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {715, 1694}}";
+ sepNavSelRange = "{58, 0}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{38, 58}, {754, 944}}";
+ };
+ };
+ 2CF5508B0CDA22B000627463 /* ModiSDK.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {998, 2072}}";
+ sepNavSelRange = "{30, 19}";
+ sepNavVisRect = "{{0, 0}, {715, 815}}";
+ sepNavWindowFrame = "{{15, 79}, {754, 944}}";
+ };
+ };
+ 2CF5510E0CDA293700627463 /* SQLite3.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1364, 2800}}";
+ sepNavSelRange = "{517, 0}";
+ sepNavVisRect = "{{0, 0}, {1031, 840}}";
+ sepNavWindowFrame = "{{15, 54}, {1070, 969}}";
+ };
+ };
+ 2CF5510F0CDA293700627463 /* SQLiteTable3.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1031, 10766}}";
+ sepNavSelRange = "{559, 0}";
+ sepNavVisRect = "{{0, 0}, {1031, 840}}";
+ sepNavWindowFrame = "{{15, 54}, {1070, 969}}";
+ };
+ };
+ 2CF551A70CDA356800627463 /* UltraStar.dpr */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1031, 2338}}";
+ sepNavSelRange = "{6767, 0}";
+ sepNavVisRect = "{{0, 1498}, {1031, 840}}";
+ sepNavWindowFrame = "{{15, 54}, {1070, 969}}";
+ };
+ };
+ 2CF552110CDA3D1400627463 /* UPluginDefs.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1013, 2506}}";
+ sepNavSelRange = "{5, 11}";
+ sepNavVisRect = "{{0, 0}, {1013, 614}}";
+ sepNavWindowFrame = "{{107, 196}, {1052, 743}}";
+ };
+ };
+ 2CF552660CDA404000627463 /* Messages.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1013, 614}}";
+ sepNavSelRange = "{65, 0}";
+ sepNavVisRect = "{{0, 0}, {1013, 614}}";
+ sepNavWindowFrame = "{{102, 176}, {1052, 743}}";
+ };
+ };
+ 2CF552760CDA419B00627463 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 2CF552660CDA404000627463 /* Messages.pas */;
+ };
+ 2CF5529E0CDA42C900627463 /* avcodec.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1013, 28616}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 375}, {1013, 614}}";
+ sepNavWindowFrame = "{{176, 133}, {1052, 743}}";
+ };
+ };
+ 2CF5529F0CDA42C900627463 /* avformat.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1013, 9828}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 298}, {1013, 614}}";
+ sepNavWindowFrame = "{{245, 70}, {1052, 743}}";
+ };
+ };
+ 2CF552A00CDA42C900627463 /* avio.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1013, 3598}}";
+ sepNavSelRange = "{347, 0}";
+ sepNavVisRect = "{{0, 190}, {1013, 614}}";
+ sepNavWindowFrame = "{{199, 112}, {1052, 743}}";
+ };
+ };
+ 2CF552A10CDA42C900627463 /* avutil.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1022, 2058}}";
+ sepNavSelRange = "{674, 0}";
+ sepNavVisRect = "{{0, 293}, {1013, 614}}";
+ sepNavWindowFrame = "{{222, 91}, {1052, 743}}";
+ };
+ };
+ 2CF552FF0CDA500800627463 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 2C4D9C8B0CC9EC8C0031092D /* UTexture.pas */;
+ };
+ 2CF553040CDA513000627463 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 98B8BE5C0B1F974F00162019 /* sdl.pas */;
+ };
+ 2CF553060CDA514A00627463 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 2C4D9DEC0CC9EF0A0031092D /* sdl_image.pas */;
+ };
+ 2CF553070CDA51B500627463 /* sdlutils.pas */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1013, 61068}}";
+ sepNavSelRange = "{8481, 20}";
+ sepNavVisRect = "{{0, 1054}, {1013, 614}}";
+ sepNavWindowFrame = "{{38, 259}, {1052, 743}}";
+ };
+ };
+ 2CF553670CDA575100627463 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = DDC6851B09F57195004E4BFF /* UltraStarDX.pas */;
+ };
+ 2CF553780CDA575B00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9E090CC9EF840031092D /* Windows.pas */;
+ name = "function GetTickCount : Cardinal;";
+ rLen = 35;
+ rLoc = 2755;
+ rType = 0;
+ vrLen = 1149;
+ vrLoc = 1974;
+ };
+ 2CF553830CDA578D00627463 /* UMain.pas:148 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ delayBeforeContinue = 0;
+ fileReference = 2C4D9C7B0CC9EC8C0031092D /* UMain.pas */;
+ hitCount = 1;
+ lineNumber = 148;
+ location = UltraStarDX;
+ modificationTime = 215636536.733827;
+ state = 1;
+ };
+ 2CF553940CDA58E900627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9C640CC9EC8C0031092D /* UAudio_FFMpeg.pas */;
+ name = "{$ifdef fpc}";
+ rLen = 12;
+ rLoc = 11808;
+ rType = 0;
+ vrLen = 1465;
+ vrLoc = 718;
+ };
+ 2CF553960CDA58E900627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9C630CC9EC8C0031092D /* UAudio_bass.pas */;
+ name = AllocateHWND;
+ rLen = 12;
+ rLoc = 3202;
+ rType = 0;
+ vrLen = 1409;
+ vrLoc = 2690;
+ };
+ 2CF553A20CDA59BB00627463 /* UltraStarDX.pas:8 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ delayBeforeContinue = 0;
+ fileReference = DDC6851B09F57195004E4BFF /* UltraStarDX.pas */;
+ hitCount = 1;
+ lineNumber = 8;
+ location = UltraStarDX;
+ modificationTime = 215636528.021684;
state = 1;
};
+ 2CF553B10CDA5A2F00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9C7B0CC9EC8C0031092D /* UMain.pas */;
+ name = "UMain.pas: 136";
+ rLen = 0;
+ rLoc = 3282;
+ rType = 0;
+ vrLen = 1064;
+ vrLoc = 3295;
+ };
+ 2CF553BB0CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9C7B0CC9EC8C0031092D /* UMain.pas */;
+ name = "UMain.pas: 138";
+ rLen = 0;
+ rLoc = 3295;
+ rType = 0;
+ vrLen = 1415;
+ vrLoc = 2519;
+ };
+ 2CF553BC0CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9C640CC9EC8C0031092D /* UAudio_FFMpeg.pas */;
+ name = "UAudio_FFMpeg.pas: 944";
+ rLen = 0;
+ rLoc = 22728;
+ rType = 0;
+ vrLen = 1145;
+ vrLoc = 21583;
+ };
+ 2CF553BD0CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9C630CC9EC8C0031092D /* UAudio_bass.pas */;
+ name = AllocateHWND;
+ rLen = 12;
+ rLoc = 3202;
+ rType = 0;
+ vrLen = 1157;
+ vrLoc = 15694;
+ };
+ 2CF553BE0CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = DDC6851B09F57195004E4BFF /* UltraStarDX.pas */;
+ name = "UltraStarDX.pas: 7";
+ rLen = 0;
+ rLoc = 129;
+ rType = 0;
+ vrLen = 159;
+ vrLoc = 0;
+ };
+ 2CF553BF0CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9DEC0CC9EF0A0031092D /* sdl_image.pas */;
+ name = "sdl_image.pas: 130";
+ rLen = 0;
+ rLoc = 8020;
+ rType = 0;
+ vrLen = 885;
+ vrLoc = 7978;
+ };
+ 2CF553C00CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 98B8BE5C0B1F974F00162019 /* sdl.pas */;
+ name = "sdl.pas: 250";
+ rLen = 0;
+ rLoc = 16506;
+ rType = 0;
+ vrLen = 886;
+ vrLoc = 16376;
+ };
+ 2CF553C10CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9C8B0CC9EC8C0031092D /* UTexture.pas */;
+ name = SDL_ScaleSurfaceRect;
+ rLen = 20;
+ rLoc = 11823;
+ rType = 0;
+ vrLen = 1266;
+ vrLoc = 10980;
+ };
+ 2CF553C20CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2C4D9E090CC9EF840031092D /* Windows.pas */;
+ name = "Windows.pas: 115";
+ rLen = 0;
+ rLoc = 2832;
+ rType = 0;
+ vrLen = 1201;
+ vrLoc = 2027;
+ };
+ 2CF553C30CDA5A4D00627463 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2CF552660CDA404000627463 /* Messages.pas */;
+ name = "Messages.pas: 9";
+ rLen = 0;
+ rLoc = 65;
+ rType = 0;
+ vrLen = 428;
+ vrLoc = 0;
+ };
9845B6590B1F9B9E0084DD62 /* SDL.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {948, 1330}}";
- sepNavSelRange = "{345, 0}";
+ sepNavSelRange = "{273, 0}";
sepNavVisRect = "{{0, 0}, {948, 730}}";
sepNavWindowFrame = "{{61, 122}, {987, 859}}";
};
@@ -278,8 +1123,8 @@
98B8BE5C0B1F974F00162019 /* sdl.pas */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1268, 58492}}";
- sepNavSelRange = "{17272, 0}";
- sepNavVisRect = "{{0, 3394}, {948, 730}}";
+ sepNavSelRange = "{16506, 0}";
+ sepNavVisRect = "{{0, 3444}, {948, 730}}";
sepNavWindowFrame = "{{211, 143}, {987, 859}}";
};
};
@@ -287,7 +1132,7 @@
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {948, 5390}}";
sepNavSelRange = "{558, 0}";
- sepNavVisRect = "{{0, 0}, {948, 730}}";
+ sepNavVisRect = "{{0, 21}, {948, 730}}";
sepNavWindowFrame = "{{15, 164}, {987, 859}}";
};
};
@@ -295,7 +1140,7 @@
activeExec = 0;
};
DDC6850F09F5717A004E4BFF /* Project object */ = {
- activeBuildConfigurationName = Release;
+ activeBuildConfigurationName = Debug;
activeExecutable = 2CDD4B5D0CB9354800549FAC /* UltraStarDX */;
activeTarget = DDC688C709F574E9004E4BFF /* UltraStarDX */;
addToTargets = (
@@ -304,6 +1149,8 @@
);
breakpoints = (
2CDEA8080CBD7D920096994C /* UMain.pas:293 */,
+ 2CF553830CDA578D00627463 /* UMain.pas:148 */,
+ 2CF553A20CDA59BB00627463 /* UltraStarDX.pas:8 */,
);
breakpointsGroup = 2CDD4B7F0CB9394600549FAC /* XCBreakpointsBucket */;
codeSenseManager = 2CDD4B6A0CB9357000549FAC /* Code sense */;
@@ -409,12 +1256,28 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 215383733;
- PBXWorkspaceStateSaveDate = 215383733;
+ PBXPerProjectTemplateStateSaveDate = 215618698;
+ PBXWorkspaceStateSaveDate = 215618698;
};
perUserProjectItems = {
- 2C0B7D280CD6808A0062A7C8 /* PBXBookmark */ = 2C0B7D280CD6808A0062A7C8 /* PBXBookmark */;
- 2C0B7D320CD683C80062A7C8 /* PBXTextBookmark */ = 2C0B7D320CD683C80062A7C8 /* PBXTextBookmark */;
+ 2CF552760CDA419B00627463 /* PBXBookmark */ = 2CF552760CDA419B00627463 /* PBXBookmark */;
+ 2CF552FF0CDA500800627463 /* PBXBookmark */ = 2CF552FF0CDA500800627463 /* PBXBookmark */;
+ 2CF553040CDA513000627463 /* PBXBookmark */ = 2CF553040CDA513000627463 /* PBXBookmark */;
+ 2CF553060CDA514A00627463 /* PBXBookmark */ = 2CF553060CDA514A00627463 /* PBXBookmark */;
+ 2CF553670CDA575100627463 /* PBXBookmark */ = 2CF553670CDA575100627463 /* PBXBookmark */;
+ 2CF553780CDA575B00627463 /* PBXTextBookmark */ = 2CF553780CDA575B00627463 /* PBXTextBookmark */;
+ 2CF553940CDA58E900627463 /* PBXTextBookmark */ = 2CF553940CDA58E900627463 /* PBXTextBookmark */;
+ 2CF553960CDA58E900627463 /* PBXTextBookmark */ = 2CF553960CDA58E900627463 /* PBXTextBookmark */;
+ 2CF553B10CDA5A2F00627463 /* PBXTextBookmark */ = 2CF553B10CDA5A2F00627463 /* PBXTextBookmark */;
+ 2CF553BB0CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553BB0CDA5A4D00627463 /* PBXTextBookmark */;
+ 2CF553BC0CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553BC0CDA5A4D00627463 /* PBXTextBookmark */;
+ 2CF553BD0CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553BD0CDA5A4D00627463 /* PBXTextBookmark */;
+ 2CF553BE0CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553BE0CDA5A4D00627463 /* PBXTextBookmark */;
+ 2CF553BF0CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553BF0CDA5A4D00627463 /* PBXTextBookmark */;
+ 2CF553C00CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553C00CDA5A4D00627463 /* PBXTextBookmark */;
+ 2CF553C10CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553C10CDA5A4D00627463 /* PBXTextBookmark */;
+ 2CF553C20CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553C20CDA5A4D00627463 /* PBXTextBookmark */;
+ 2CF553C30CDA5A4D00627463 /* PBXTextBookmark */ = 2CF553C30CDA5A4D00627463 /* PBXTextBookmark */;
};
sourceControlManager = 2CDD4B690CB9357000549FAC /* Source Control */;
userBuildSettings = {
@@ -423,7 +1286,7 @@
DDC6851B09F57195004E4BFF /* UltraStarDX.pas */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {948, 730}}";
- sepNavSelRange = "{17, 0}";
+ sepNavSelRange = "{129, 0}";
sepNavVisRect = "{{0, 0}, {948, 730}}";
sepNavWindowFrame = "{{189, 86}, {987, 859}}";
};
diff --git a/Game/Code/MacOSX/UltraStarDX.xcodeproj/project.pbxproj b/Game/Code/MacOSX/UltraStarDX.xcodeproj/project.pbxproj
index 958c7a8a..f2cf90b5 100644
--- a/Game/Code/MacOSX/UltraStarDX.xcodeproj/project.pbxproj
+++ b/Game/Code/MacOSX/UltraStarDX.xcodeproj/project.pbxproj
@@ -26,7 +26,6 @@
2C4D9C9F0CC9EC8C0031092D /* UIni.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C720CC9EC8C0031092D /* UIni.pas */; };
2C4D9CA00CC9EC8C0031092D /* UJoystick.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C730CC9EC8C0031092D /* UJoystick.pas */; };
2C4D9CA10CC9EC8C0031092D /* ULanguage.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C740CC9EC8C0031092D /* ULanguage.pas */; };
- 2C4D9CA20CC9EC8C0031092D /* Ulazjpeg.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C750CC9EC8C0031092D /* Ulazjpeg.pas */; };
2C4D9CA30CC9EC8C0031092D /* ULCD.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C760CC9EC8C0031092D /* ULCD.pas */; };
2C4D9CA40CC9EC8C0031092D /* ULight.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C770CC9EC8C0031092D /* ULight.pas */; };
2C4D9CA50CC9EC8C0031092D /* ULog.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C780CC9EC8C0031092D /* ULog.pas */; };
@@ -38,7 +37,6 @@
2C4D9CAB0CC9EC8C0031092D /* UMusic.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C7E0CC9EC8C0031092D /* UMusic.pas */; };
2C4D9CAC0CC9EC8C0031092D /* UParty.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C7F0CC9EC8C0031092D /* UParty.pas */; };
2C4D9CAD0CC9EC8C0031092D /* UPlaylist.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C800CC9EC8C0031092D /* UPlaylist.pas */; };
- 2C4D9CAE0CC9EC8C0031092D /* UPliki.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C810CC9EC8C0031092D /* UPliki.pas */; };
2C4D9CAF0CC9EC8C0031092D /* UPluginInterface.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C820CC9EC8C0031092D /* UPluginInterface.pas */; };
2C4D9CB00CC9EC8C0031092D /* uPluginLoader.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C830CC9EC8C0031092D /* uPluginLoader.pas */; };
2C4D9CB10CC9EC8C0031092D /* URecord.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C840CC9EC8C0031092D /* URecord.pas */; };
@@ -71,7 +69,6 @@
2C4D9CCC0CC9EC8C0031092D /* UIni.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C720CC9EC8C0031092D /* UIni.pas */; };
2C4D9CCD0CC9EC8C0031092D /* UJoystick.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C730CC9EC8C0031092D /* UJoystick.pas */; };
2C4D9CCE0CC9EC8C0031092D /* ULanguage.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C740CC9EC8C0031092D /* ULanguage.pas */; };
- 2C4D9CCF0CC9EC8C0031092D /* Ulazjpeg.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C750CC9EC8C0031092D /* Ulazjpeg.pas */; };
2C4D9CD00CC9EC8C0031092D /* ULCD.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C760CC9EC8C0031092D /* ULCD.pas */; };
2C4D9CD10CC9EC8C0031092D /* ULight.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C770CC9EC8C0031092D /* ULight.pas */; };
2C4D9CD20CC9EC8C0031092D /* ULog.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C780CC9EC8C0031092D /* ULog.pas */; };
@@ -83,7 +80,6 @@
2C4D9CD80CC9EC8C0031092D /* UMusic.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C7E0CC9EC8C0031092D /* UMusic.pas */; };
2C4D9CD90CC9EC8C0031092D /* UParty.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C7F0CC9EC8C0031092D /* UParty.pas */; };
2C4D9CDA0CC9EC8C0031092D /* UPlaylist.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C800CC9EC8C0031092D /* UPlaylist.pas */; };
- 2C4D9CDB0CC9EC8C0031092D /* UPliki.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C810CC9EC8C0031092D /* UPliki.pas */; };
2C4D9CDC0CC9EC8C0031092D /* UPluginInterface.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C820CC9EC8C0031092D /* UPluginInterface.pas */; };
2C4D9CDD0CC9EC8C0031092D /* uPluginLoader.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C830CC9EC8C0031092D /* uPluginLoader.pas */; };
2C4D9CDE0CC9EC8C0031092D /* URecord.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9C840CC9EC8C0031092D /* URecord.pas */; };
@@ -133,24 +129,14 @@
2C4D9DF20CC9EF210031092D /* sdltruetypefont.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9DF00CC9EF210031092D /* sdltruetypefont.pas */; };
2C4D9DF30CC9EF210031092D /* sdl_ttf.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9DEF0CC9EF210031092D /* sdl_ttf.pas */; };
2C4D9DF40CC9EF210031092D /* sdltruetypefont.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9DF00CC9EF210031092D /* sdltruetypefont.pas */; };
- 2C4D9E0B0CC9EF840031092D /* MacClasses.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9DFF0CC9EF840031092D /* MacClasses.pas */; };
2C4D9E0C0CC9EF840031092D /* Graphics.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E000CC9EF840031092D /* Graphics.pas */; };
2C4D9E0D0CC9EF840031092D /* JPEG.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E010CC9EF840031092D /* JPEG.pas */; };
- 2C4D9E0E0CC9EF840031092D /* MidiFile.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E020CC9EF840031092D /* MidiFile.pas */; };
- 2C4D9E0F0CC9EF840031092D /* MidiOut.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E030CC9EF840031092D /* MidiOut.pas */; };
2C4D9E100CC9EF840031092D /* OpenGL12.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E040CC9EF840031092D /* OpenGL12.pas */; };
- 2C4D9E130CC9EF840031092D /* PNGImage.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E070CC9EF840031092D /* PNGImage.pas */; };
2C4D9E150CC9EF840031092D /* Windows.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E090CC9EF840031092D /* Windows.pas */; };
- 2C4D9E160CC9EF840031092D /* zlportio.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E0A0CC9EF840031092D /* zlportio.pas */; };
- 2C4D9E170CC9EF840031092D /* MacClasses.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9DFF0CC9EF840031092D /* MacClasses.pas */; };
2C4D9E180CC9EF840031092D /* Graphics.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E000CC9EF840031092D /* Graphics.pas */; };
2C4D9E190CC9EF840031092D /* JPEG.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E010CC9EF840031092D /* JPEG.pas */; };
- 2C4D9E1A0CC9EF840031092D /* MidiFile.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E020CC9EF840031092D /* MidiFile.pas */; };
- 2C4D9E1B0CC9EF840031092D /* MidiOut.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E030CC9EF840031092D /* MidiOut.pas */; };
2C4D9E1C0CC9EF840031092D /* OpenGL12.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E040CC9EF840031092D /* OpenGL12.pas */; };
- 2C4D9E1F0CC9EF840031092D /* PNGImage.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E070CC9EF840031092D /* PNGImage.pas */; };
2C4D9E210CC9EF840031092D /* Windows.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E090CC9EF840031092D /* Windows.pas */; };
- 2C4D9E220CC9EF840031092D /* zlportio.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E0A0CC9EF840031092D /* zlportio.pas */; };
2C4D9E450CC9F0ED0031092D /* switches.inc in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E440CC9F0ED0031092D /* switches.inc */; };
2C4D9E460CC9F0ED0031092D /* switches.inc in Sources */ = {isa = PBXBuildFile; fileRef = 2C4D9E440CC9F0ED0031092D /* switches.inc */; };
2CDD4BDE0CB947A400549FAC /* sdl.pas in Sources */ = {isa = PBXBuildFile; fileRef = 98B8BE5C0B1F974F00162019 /* sdl.pas */; };
@@ -159,6 +145,112 @@
2CDEA4F70CBD725B0096994C /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CDEA4F60CBD725B0096994C /* OpenGL.framework */; };
2CDEC4960CC5264600FFA244 /* SDL.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 98B8BE570B1F972400162019 /* SDL.framework */; };
2CDEC4CD0CC52E7F00FFA244 /* UltraStarDX.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2CDEC4CC0CC52E7F00FFA244 /* UltraStarDX.icns */; };
+ 2CF54F650CDA1B2B00627463 /* UScreenCredits.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F430CDA1B2B00627463 /* UScreenCredits.pas */; };
+ 2CF54F660CDA1B2B00627463 /* UScreenEdit.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F440CDA1B2B00627463 /* UScreenEdit.pas */; };
+ 2CF54F670CDA1B2B00627463 /* UScreenEditConvert.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F450CDA1B2B00627463 /* UScreenEditConvert.pas */; };
+ 2CF54F680CDA1B2B00627463 /* UScreenEditHeader.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F460CDA1B2B00627463 /* UScreenEditHeader.pas */; };
+ 2CF54F690CDA1B2B00627463 /* UScreenEditSub.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F470CDA1B2B00627463 /* UScreenEditSub.pas */; };
+ 2CF54F6A0CDA1B2B00627463 /* UScreenLevel.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F480CDA1B2B00627463 /* UScreenLevel.pas */; };
+ 2CF54F6B0CDA1B2B00627463 /* UScreenLoading.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F490CDA1B2B00627463 /* UScreenLoading.pas */; };
+ 2CF54F6C0CDA1B2B00627463 /* UScreenMain.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4A0CDA1B2B00627463 /* UScreenMain.pas */; };
+ 2CF54F6D0CDA1B2B00627463 /* UScreenName.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4B0CDA1B2B00627463 /* UScreenName.pas */; };
+ 2CF54F6E0CDA1B2B00627463 /* UScreenOpen.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4C0CDA1B2B00627463 /* UScreenOpen.pas */; };
+ 2CF54F6F0CDA1B2B00627463 /* UScreenOptions.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4D0CDA1B2B00627463 /* UScreenOptions.pas */; };
+ 2CF54F700CDA1B2B00627463 /* UScreenOptionsAdvanced.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4E0CDA1B2B00627463 /* UScreenOptionsAdvanced.pas */; };
+ 2CF54F710CDA1B2B00627463 /* UScreenOptionsGame.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4F0CDA1B2B00627463 /* UScreenOptionsGame.pas */; };
+ 2CF54F720CDA1B2B00627463 /* UScreenOptionsGraphics.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F500CDA1B2B00627463 /* UScreenOptionsGraphics.pas */; };
+ 2CF54F730CDA1B2B00627463 /* UScreenOptionsLyrics.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F510CDA1B2B00627463 /* UScreenOptionsLyrics.pas */; };
+ 2CF54F740CDA1B2B00627463 /* UScreenOptionsRecord.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F520CDA1B2B00627463 /* UScreenOptionsRecord.pas */; };
+ 2CF54F750CDA1B2B00627463 /* UScreenOptionsSound.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F530CDA1B2B00627463 /* UScreenOptionsSound.pas */; };
+ 2CF54F760CDA1B2B00627463 /* UScreenOptionsThemes.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F540CDA1B2B00627463 /* UScreenOptionsThemes.pas */; };
+ 2CF54F770CDA1B2B00627463 /* UScreenPartyNewRound.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F550CDA1B2B00627463 /* UScreenPartyNewRound.pas */; };
+ 2CF54F780CDA1B2B00627463 /* UScreenPartyOptions.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F560CDA1B2B00627463 /* UScreenPartyOptions.pas */; };
+ 2CF54F790CDA1B2B00627463 /* UScreenPartyPlayer.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F570CDA1B2B00627463 /* UScreenPartyPlayer.pas */; };
+ 2CF54F7A0CDA1B2B00627463 /* UScreenPartyScore.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F580CDA1B2B00627463 /* UScreenPartyScore.pas */; };
+ 2CF54F7B0CDA1B2B00627463 /* UScreenPartyWin.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F590CDA1B2B00627463 /* UScreenPartyWin.pas */; };
+ 2CF54F7C0CDA1B2B00627463 /* UScreenPopup.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5A0CDA1B2B00627463 /* UScreenPopup.pas */; };
+ 2CF54F7D0CDA1B2B00627463 /* UScreenScore.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5B0CDA1B2B00627463 /* UScreenScore.pas */; };
+ 2CF54F7E0CDA1B2B00627463 /* UScreenSing.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5C0CDA1B2B00627463 /* UScreenSing.pas */; };
+ 2CF54F7F0CDA1B2B00627463 /* UScreenSingModi.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5D0CDA1B2B00627463 /* UScreenSingModi.pas */; };
+ 2CF54F800CDA1B2B00627463 /* UScreenSong.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5E0CDA1B2B00627463 /* UScreenSong.pas */; };
+ 2CF54F810CDA1B2B00627463 /* UScreenSongJumpto.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5F0CDA1B2B00627463 /* UScreenSongJumpto.pas */; };
+ 2CF54F820CDA1B2B00627463 /* UScreenSongMenu.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F600CDA1B2B00627463 /* UScreenSongMenu.pas */; };
+ 2CF54F830CDA1B2B00627463 /* UScreenStatDetail.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F610CDA1B2B00627463 /* UScreenStatDetail.pas */; };
+ 2CF54F840CDA1B2B00627463 /* UScreenStatMain.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F620CDA1B2B00627463 /* UScreenStatMain.pas */; };
+ 2CF54F850CDA1B2B00627463 /* UScreenTop5.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F630CDA1B2B00627463 /* UScreenTop5.pas */; };
+ 2CF54F860CDA1B2B00627463 /* UScreenWelcome.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F640CDA1B2B00627463 /* UScreenWelcome.pas */; };
+ 2CF54F870CDA1B2B00627463 /* UScreenCredits.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F430CDA1B2B00627463 /* UScreenCredits.pas */; };
+ 2CF54F880CDA1B2B00627463 /* UScreenEdit.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F440CDA1B2B00627463 /* UScreenEdit.pas */; };
+ 2CF54F890CDA1B2B00627463 /* UScreenEditConvert.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F450CDA1B2B00627463 /* UScreenEditConvert.pas */; };
+ 2CF54F8A0CDA1B2B00627463 /* UScreenEditHeader.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F460CDA1B2B00627463 /* UScreenEditHeader.pas */; };
+ 2CF54F8B0CDA1B2B00627463 /* UScreenEditSub.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F470CDA1B2B00627463 /* UScreenEditSub.pas */; };
+ 2CF54F8C0CDA1B2B00627463 /* UScreenLevel.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F480CDA1B2B00627463 /* UScreenLevel.pas */; };
+ 2CF54F8D0CDA1B2B00627463 /* UScreenLoading.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F490CDA1B2B00627463 /* UScreenLoading.pas */; };
+ 2CF54F8E0CDA1B2B00627463 /* UScreenMain.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4A0CDA1B2B00627463 /* UScreenMain.pas */; };
+ 2CF54F8F0CDA1B2B00627463 /* UScreenName.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4B0CDA1B2B00627463 /* UScreenName.pas */; };
+ 2CF54F900CDA1B2B00627463 /* UScreenOpen.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4C0CDA1B2B00627463 /* UScreenOpen.pas */; };
+ 2CF54F910CDA1B2B00627463 /* UScreenOptions.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4D0CDA1B2B00627463 /* UScreenOptions.pas */; };
+ 2CF54F920CDA1B2B00627463 /* UScreenOptionsAdvanced.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4E0CDA1B2B00627463 /* UScreenOptionsAdvanced.pas */; };
+ 2CF54F930CDA1B2B00627463 /* UScreenOptionsGame.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F4F0CDA1B2B00627463 /* UScreenOptionsGame.pas */; };
+ 2CF54F940CDA1B2B00627463 /* UScreenOptionsGraphics.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F500CDA1B2B00627463 /* UScreenOptionsGraphics.pas */; };
+ 2CF54F950CDA1B2B00627463 /* UScreenOptionsLyrics.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F510CDA1B2B00627463 /* UScreenOptionsLyrics.pas */; };
+ 2CF54F960CDA1B2B00627463 /* UScreenOptionsRecord.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F520CDA1B2B00627463 /* UScreenOptionsRecord.pas */; };
+ 2CF54F970CDA1B2B00627463 /* UScreenOptionsSound.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F530CDA1B2B00627463 /* UScreenOptionsSound.pas */; };
+ 2CF54F980CDA1B2B00627463 /* UScreenOptionsThemes.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F540CDA1B2B00627463 /* UScreenOptionsThemes.pas */; };
+ 2CF54F990CDA1B2B00627463 /* UScreenPartyNewRound.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F550CDA1B2B00627463 /* UScreenPartyNewRound.pas */; };
+ 2CF54F9A0CDA1B2B00627463 /* UScreenPartyOptions.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F560CDA1B2B00627463 /* UScreenPartyOptions.pas */; };
+ 2CF54F9B0CDA1B2B00627463 /* UScreenPartyPlayer.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F570CDA1B2B00627463 /* UScreenPartyPlayer.pas */; };
+ 2CF54F9C0CDA1B2B00627463 /* UScreenPartyScore.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F580CDA1B2B00627463 /* UScreenPartyScore.pas */; };
+ 2CF54F9D0CDA1B2B00627463 /* UScreenPartyWin.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F590CDA1B2B00627463 /* UScreenPartyWin.pas */; };
+ 2CF54F9E0CDA1B2B00627463 /* UScreenPopup.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5A0CDA1B2B00627463 /* UScreenPopup.pas */; };
+ 2CF54F9F0CDA1B2B00627463 /* UScreenScore.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5B0CDA1B2B00627463 /* UScreenScore.pas */; };
+ 2CF54FA00CDA1B2B00627463 /* UScreenSing.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5C0CDA1B2B00627463 /* UScreenSing.pas */; };
+ 2CF54FA10CDA1B2B00627463 /* UScreenSingModi.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5D0CDA1B2B00627463 /* UScreenSingModi.pas */; };
+ 2CF54FA20CDA1B2B00627463 /* UScreenSong.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5E0CDA1B2B00627463 /* UScreenSong.pas */; };
+ 2CF54FA30CDA1B2B00627463 /* UScreenSongJumpto.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F5F0CDA1B2B00627463 /* UScreenSongJumpto.pas */; };
+ 2CF54FA40CDA1B2B00627463 /* UScreenSongMenu.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F600CDA1B2B00627463 /* UScreenSongMenu.pas */; };
+ 2CF54FA50CDA1B2B00627463 /* UScreenStatDetail.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F610CDA1B2B00627463 /* UScreenStatDetail.pas */; };
+ 2CF54FA60CDA1B2B00627463 /* UScreenStatMain.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F620CDA1B2B00627463 /* UScreenStatMain.pas */; };
+ 2CF54FA70CDA1B2B00627463 /* UScreenTop5.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F630CDA1B2B00627463 /* UScreenTop5.pas */; };
+ 2CF54FA80CDA1B2B00627463 /* UScreenWelcome.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF54F640CDA1B2B00627463 /* UScreenWelcome.pas */; };
+ 2CF5508C0CDA22B000627463 /* ModiSDK.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5508B0CDA22B000627463 /* ModiSDK.pas */; };
+ 2CF5508D0CDA22B000627463 /* ModiSDK.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5508B0CDA22B000627463 /* ModiSDK.pas */; };
+ 2CF551100CDA293700627463 /* SQLite3.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5510E0CDA293700627463 /* SQLite3.pas */; };
+ 2CF551110CDA293700627463 /* SQLiteTable3.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5510F0CDA293700627463 /* SQLiteTable3.pas */; };
+ 2CF551120CDA293700627463 /* SQLite3.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5510E0CDA293700627463 /* SQLite3.pas */; };
+ 2CF551130CDA293700627463 /* SQLiteTable3.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5510F0CDA293700627463 /* SQLiteTable3.pas */; };
+ 2CF5512D0CDA29C600627463 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CF5512C0CDA29C600627463 /* libsqlite3.dylib */; };
+ 2CF552140CDA3D1400627463 /* UPluginDefs.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552110CDA3D1400627463 /* UPluginDefs.pas */; };
+ 2CF552170CDA3D1400627463 /* UPluginDefs.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552110CDA3D1400627463 /* UPluginDefs.pas */; };
+ 2CF552670CDA404000627463 /* Messages.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552660CDA404000627463 /* Messages.pas */; };
+ 2CF552680CDA404000627463 /* Messages.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552660CDA404000627463 /* Messages.pas */; };
+ 2CF552A70CDA42C900627463 /* avcodec.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5529E0CDA42C900627463 /* avcodec.pas */; };
+ 2CF552A80CDA42C900627463 /* avformat.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5529F0CDA42C900627463 /* avformat.pas */; };
+ 2CF552A90CDA42C900627463 /* avio.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552A00CDA42C900627463 /* avio.pas */; };
+ 2CF552AA0CDA42C900627463 /* avutil.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552A10CDA42C900627463 /* avutil.pas */; };
+ 2CF552AD0CDA42C900627463 /* opt.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552A40CDA42C900627463 /* opt.pas */; };
+ 2CF552AE0CDA42C900627463 /* rational.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552A50CDA42C900627463 /* rational.pas */; };
+ 2CF552B00CDA42C900627463 /* avcodec.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5529E0CDA42C900627463 /* avcodec.pas */; };
+ 2CF552B10CDA42C900627463 /* avformat.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF5529F0CDA42C900627463 /* avformat.pas */; };
+ 2CF552B20CDA42C900627463 /* avio.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552A00CDA42C900627463 /* avio.pas */; };
+ 2CF552B30CDA42C900627463 /* avutil.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552A10CDA42C900627463 /* avutil.pas */; };
+ 2CF552B60CDA42C900627463 /* opt.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552A40CDA42C900627463 /* opt.pas */; };
+ 2CF552B70CDA42C900627463 /* rational.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF552A50CDA42C900627463 /* rational.pas */; };
+ 2CF552C30CDA4B7B00627463 /* libavcodec.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CF552BF0CDA4B7B00627463 /* libavcodec.dylib */; };
+ 2CF552C40CDA4B7B00627463 /* libavformat.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CF552C00CDA4B7B00627463 /* libavformat.dylib */; };
+ 2CF552C50CDA4B7B00627463 /* libavutil.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CF552C10CDA4B7B00627463 /* libavutil.dylib */; };
+ 2CF552C60CDA4B7B00627463 /* libmp3lame.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CF552C20CDA4B7B00627463 /* libmp3lame.dylib */; };
+ 2CF553080CDA51B500627463 /* sdlutils.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF553070CDA51B500627463 /* sdlutils.pas */; };
+ 2CF553090CDA51B500627463 /* sdlutils.pas in Sources */ = {isa = PBXBuildFile; fileRef = 2CF553070CDA51B500627463 /* sdlutils.pas */; };
+ 2CF553100CDA52D100627463 /* SDL_image.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2C4D9D980CC9EE0B0031092D /* SDL_image.framework */; };
+ 2CF5533B0CDA52E200627463 /* SDL_ttf.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2C4D9D990CC9EE0B0031092D /* SDL_ttf.framework */; };
+ 2CF5533E0CDA530300627463 /* libbass.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2C4D9CE90CC9ECB50031092D /* libbass.dylib */; };
+ 2CF5533F0CDA531100627463 /* libfreeimage.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2C4D9D960CC9EDEB0031092D /* libfreeimage.dylib */; };
+ 2CF553400CDA531100627463 /* libsqlite3.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2CF5512C0CDA29C600627463 /* libsqlite3.dylib */; };
+ 2CF553410CDA531100627463 /* libavcodec.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2CF552BF0CDA4B7B00627463 /* libavcodec.dylib */; };
+ 2CF553420CDA531100627463 /* libavformat.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2CF552C00CDA4B7B00627463 /* libavformat.dylib */; };
+ 2CF553430CDA531100627463 /* libavutil.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2CF552C10CDA4B7B00627463 /* libavutil.dylib */; };
+ 2CF553440CDA531100627463 /* libmp3lame.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2CF552C20CDA4B7B00627463 /* libmp3lame.dylib */; };
98B8BE340B1F947800162019 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98B8BE330B1F947800162019 /* AppKit.framework */; };
98B8BE390B1F949C00162019 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98B8BE370B1F949C00162019 /* Cocoa.framework */; };
98B8BE3A0B1F949C00162019 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98B8BE380B1F949C00162019 /* Foundation.framework */; };
@@ -238,6 +330,13 @@
dstPath = "";
dstSubfolderSpec = 6;
files = (
+ 2CF5533F0CDA531100627463 /* libfreeimage.dylib in CopyFiles */,
+ 2CF553400CDA531100627463 /* libsqlite3.dylib in CopyFiles */,
+ 2CF553410CDA531100627463 /* libavcodec.dylib in CopyFiles */,
+ 2CF553420CDA531100627463 /* libavformat.dylib in CopyFiles */,
+ 2CF553430CDA531100627463 /* libavutil.dylib in CopyFiles */,
+ 2CF553440CDA531100627463 /* libmp3lame.dylib in CopyFiles */,
+ 2CF5533E0CDA530300627463 /* libbass.dylib in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -248,6 +347,8 @@
dstSubfolderSpec = 10;
files = (
2CDEC4960CC5264600FFA244 /* SDL.framework in CopyFiles */,
+ 2CF553100CDA52D100627463 /* SDL_image.framework in CopyFiles */,
+ 2CF5533B0CDA52E200627463 /* SDL_ttf.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -273,7 +374,6 @@
2C4D9C720CC9EC8C0031092D /* UIni.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UIni.pas; path = ../Classes/UIni.pas; sourceTree = SOURCE_ROOT; };
2C4D9C730CC9EC8C0031092D /* UJoystick.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UJoystick.pas; path = ../Classes/UJoystick.pas; sourceTree = SOURCE_ROOT; };
2C4D9C740CC9EC8C0031092D /* ULanguage.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = ULanguage.pas; path = ../Classes/ULanguage.pas; sourceTree = SOURCE_ROOT; };
- 2C4D9C750CC9EC8C0031092D /* Ulazjpeg.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = Ulazjpeg.pas; path = ../Classes/Ulazjpeg.pas; sourceTree = SOURCE_ROOT; };
2C4D9C760CC9EC8C0031092D /* ULCD.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = ULCD.pas; path = ../Classes/ULCD.pas; sourceTree = SOURCE_ROOT; };
2C4D9C770CC9EC8C0031092D /* ULight.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = ULight.pas; path = ../Classes/ULight.pas; sourceTree = SOURCE_ROOT; };
2C4D9C780CC9EC8C0031092D /* ULog.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = ULog.pas; path = ../Classes/ULog.pas; sourceTree = SOURCE_ROOT; };
@@ -285,7 +385,6 @@
2C4D9C7E0CC9EC8C0031092D /* UMusic.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UMusic.pas; path = ../Classes/UMusic.pas; sourceTree = SOURCE_ROOT; };
2C4D9C7F0CC9EC8C0031092D /* UParty.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UParty.pas; path = ../Classes/UParty.pas; sourceTree = SOURCE_ROOT; };
2C4D9C800CC9EC8C0031092D /* UPlaylist.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UPlaylist.pas; path = ../Classes/UPlaylist.pas; sourceTree = SOURCE_ROOT; };
- 2C4D9C810CC9EC8C0031092D /* UPliki.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UPliki.pas; path = ../Classes/UPliki.pas; sourceTree = SOURCE_ROOT; };
2C4D9C820CC9EC8C0031092D /* UPluginInterface.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UPluginInterface.pas; path = ../Classes/UPluginInterface.pas; sourceTree = SOURCE_ROOT; };
2C4D9C830CC9EC8C0031092D /* uPluginLoader.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = uPluginLoader.pas; path = ../Classes/uPluginLoader.pas; sourceTree = SOURCE_ROOT; };
2C4D9C840CC9EC8C0031092D /* URecord.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = URecord.pas; path = ../Classes/URecord.pas; sourceTree = SOURCE_ROOT; };
@@ -319,18 +418,65 @@
2C4D9DEC0CC9EF0A0031092D /* sdl_image.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = sdl_image.pas; path = "/Library/Frameworks/JEDI-SDL.framework/SDL_image/sdl_image.pas"; sourceTree = "<absolute>"; };
2C4D9DEF0CC9EF210031092D /* sdl_ttf.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = sdl_ttf.pas; path = "/Library/Frameworks/JEDI-SDL.framework/SDL_ttf/sdl_ttf.pas"; sourceTree = "<absolute>"; };
2C4D9DF00CC9EF210031092D /* sdltruetypefont.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = sdltruetypefont.pas; path = "/Library/Frameworks/JEDI-SDL.framework/SDL_ttf/sdltruetypefont.pas"; sourceTree = "<absolute>"; };
- 2C4D9DFF0CC9EF840031092D /* MacClasses.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = MacClasses.pas; path = Wrapper/MacClasses.pas; sourceTree = "<group>"; };
2C4D9E000CC9EF840031092D /* Graphics.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = Graphics.pas; path = Wrapper/Graphics.pas; sourceTree = "<group>"; };
2C4D9E010CC9EF840031092D /* JPEG.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = JPEG.pas; path = Wrapper/JPEG.pas; sourceTree = "<group>"; };
- 2C4D9E020CC9EF840031092D /* MidiFile.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = MidiFile.pas; path = Wrapper/MidiFile.pas; sourceTree = "<group>"; };
- 2C4D9E030CC9EF840031092D /* MidiOut.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = MidiOut.pas; path = Wrapper/MidiOut.pas; sourceTree = "<group>"; };
2C4D9E040CC9EF840031092D /* OpenGL12.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = OpenGL12.pas; path = Wrapper/OpenGL12.pas; sourceTree = "<group>"; };
- 2C4D9E070CC9EF840031092D /* PNGImage.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = PNGImage.pas; path = Wrapper/PNGImage.pas; sourceTree = "<group>"; };
2C4D9E090CC9EF840031092D /* Windows.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = Windows.pas; path = Wrapper/Windows.pas; sourceTree = "<group>"; };
- 2C4D9E0A0CC9EF840031092D /* zlportio.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = zlportio.pas; path = Wrapper/zlportio.pas; sourceTree = "<group>"; };
2C4D9E440CC9F0ED0031092D /* switches.inc */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = switches.inc; path = ../switches.inc; sourceTree = SOURCE_ROOT; };
2CDEA4F60CBD725B0096994C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
2CDEC4CC0CC52E7F00FFA244 /* UltraStarDX.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = UltraStarDX.icns; sourceTree = "<group>"; };
+ 2CF54F430CDA1B2B00627463 /* UScreenCredits.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenCredits.pas; path = ../Screens/UScreenCredits.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F440CDA1B2B00627463 /* UScreenEdit.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenEdit.pas; path = ../Screens/UScreenEdit.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F450CDA1B2B00627463 /* UScreenEditConvert.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenEditConvert.pas; path = ../Screens/UScreenEditConvert.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F460CDA1B2B00627463 /* UScreenEditHeader.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenEditHeader.pas; path = ../Screens/UScreenEditHeader.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F470CDA1B2B00627463 /* UScreenEditSub.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenEditSub.pas; path = ../Screens/UScreenEditSub.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F480CDA1B2B00627463 /* UScreenLevel.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenLevel.pas; path = ../Screens/UScreenLevel.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F490CDA1B2B00627463 /* UScreenLoading.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenLoading.pas; path = ../Screens/UScreenLoading.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F4A0CDA1B2B00627463 /* UScreenMain.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenMain.pas; path = ../Screens/UScreenMain.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F4B0CDA1B2B00627463 /* UScreenName.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenName.pas; path = ../Screens/UScreenName.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F4C0CDA1B2B00627463 /* UScreenOpen.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOpen.pas; path = ../Screens/UScreenOpen.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F4D0CDA1B2B00627463 /* UScreenOptions.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOptions.pas; path = ../Screens/UScreenOptions.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F4E0CDA1B2B00627463 /* UScreenOptionsAdvanced.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOptionsAdvanced.pas; path = ../Screens/UScreenOptionsAdvanced.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F4F0CDA1B2B00627463 /* UScreenOptionsGame.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOptionsGame.pas; path = ../Screens/UScreenOptionsGame.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F500CDA1B2B00627463 /* UScreenOptionsGraphics.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOptionsGraphics.pas; path = ../Screens/UScreenOptionsGraphics.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F510CDA1B2B00627463 /* UScreenOptionsLyrics.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOptionsLyrics.pas; path = ../Screens/UScreenOptionsLyrics.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F520CDA1B2B00627463 /* UScreenOptionsRecord.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOptionsRecord.pas; path = ../Screens/UScreenOptionsRecord.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F530CDA1B2B00627463 /* UScreenOptionsSound.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOptionsSound.pas; path = ../Screens/UScreenOptionsSound.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F540CDA1B2B00627463 /* UScreenOptionsThemes.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenOptionsThemes.pas; path = ../Screens/UScreenOptionsThemes.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F550CDA1B2B00627463 /* UScreenPartyNewRound.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenPartyNewRound.pas; path = ../Screens/UScreenPartyNewRound.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F560CDA1B2B00627463 /* UScreenPartyOptions.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenPartyOptions.pas; path = ../Screens/UScreenPartyOptions.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F570CDA1B2B00627463 /* UScreenPartyPlayer.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenPartyPlayer.pas; path = ../Screens/UScreenPartyPlayer.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F580CDA1B2B00627463 /* UScreenPartyScore.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenPartyScore.pas; path = ../Screens/UScreenPartyScore.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F590CDA1B2B00627463 /* UScreenPartyWin.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenPartyWin.pas; path = ../Screens/UScreenPartyWin.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F5A0CDA1B2B00627463 /* UScreenPopup.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenPopup.pas; path = ../Screens/UScreenPopup.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F5B0CDA1B2B00627463 /* UScreenScore.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenScore.pas; path = ../Screens/UScreenScore.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F5C0CDA1B2B00627463 /* UScreenSing.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenSing.pas; path = ../Screens/UScreenSing.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F5D0CDA1B2B00627463 /* UScreenSingModi.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenSingModi.pas; path = ../Screens/UScreenSingModi.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F5E0CDA1B2B00627463 /* UScreenSong.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenSong.pas; path = ../Screens/UScreenSong.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F5F0CDA1B2B00627463 /* UScreenSongJumpto.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenSongJumpto.pas; path = ../Screens/UScreenSongJumpto.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F600CDA1B2B00627463 /* UScreenSongMenu.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenSongMenu.pas; path = ../Screens/UScreenSongMenu.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F610CDA1B2B00627463 /* UScreenStatDetail.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenStatDetail.pas; path = ../Screens/UScreenStatDetail.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F620CDA1B2B00627463 /* UScreenStatMain.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenStatMain.pas; path = ../Screens/UScreenStatMain.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F630CDA1B2B00627463 /* UScreenTop5.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenTop5.pas; path = ../Screens/UScreenTop5.pas; sourceTree = SOURCE_ROOT; };
+ 2CF54F640CDA1B2B00627463 /* UScreenWelcome.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UScreenWelcome.pas; path = ../Screens/UScreenWelcome.pas; sourceTree = SOURCE_ROOT; };
+ 2CF5508B0CDA22B000627463 /* ModiSDK.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = ModiSDK.pas; path = ../../../Modis/SDK/ModiSDK.pas; sourceTree = SOURCE_ROOT; };
+ 2CF5510E0CDA293700627463 /* SQLite3.pas */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; name = SQLite3.pas; path = ../lib/SQLite/SQLite3.pas; sourceTree = SOURCE_ROOT; };
+ 2CF5510F0CDA293700627463 /* SQLiteTable3.pas */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; name = SQLiteTable3.pas; path = ../lib/SQLite/SQLiteTable3.pas; sourceTree = SOURCE_ROOT; };
+ 2CF5512C0CDA29C600627463 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = ../lib/SQLite/libsqlite3.dylib; sourceTree = SOURCE_ROOT; };
+ 2CF551A70CDA356800627463 /* UltraStar.dpr */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = UltraStar.dpr; path = ../UltraStar.dpr; sourceTree = SOURCE_ROOT; };
+ 2CF552110CDA3D1400627463 /* UPluginDefs.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = UPluginDefs.pas; path = ../../../Modis/SDK/UPluginDefs.pas; sourceTree = SOURCE_ROOT; };
+ 2CF552660CDA404000627463 /* Messages.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; path = Messages.pas; sourceTree = "<group>"; };
+ 2CF5529E0CDA42C900627463 /* avcodec.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = avcodec.pas; path = ../lib/ffmpeg/avcodec.pas; sourceTree = SOURCE_ROOT; };
+ 2CF5529F0CDA42C900627463 /* avformat.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = avformat.pas; path = ../lib/ffmpeg/avformat.pas; sourceTree = SOURCE_ROOT; };
+ 2CF552A00CDA42C900627463 /* avio.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = avio.pas; path = ../lib/ffmpeg/avio.pas; sourceTree = SOURCE_ROOT; };
+ 2CF552A10CDA42C900627463 /* avutil.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = avutil.pas; path = ../lib/ffmpeg/avutil.pas; sourceTree = SOURCE_ROOT; };
+ 2CF552A40CDA42C900627463 /* opt.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = opt.pas; path = ../lib/ffmpeg/opt.pas; sourceTree = SOURCE_ROOT; };
+ 2CF552A50CDA42C900627463 /* rational.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = rational.pas; path = ../lib/ffmpeg/rational.pas; sourceTree = SOURCE_ROOT; };
+ 2CF552BF0CDA4B7B00627463 /* libavcodec.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libavcodec.dylib; path = ../lib/ffmpeg/libavcodec.dylib; sourceTree = SOURCE_ROOT; };
+ 2CF552C00CDA4B7B00627463 /* libavformat.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libavformat.dylib; path = ../lib/ffmpeg/libavformat.dylib; sourceTree = SOURCE_ROOT; };
+ 2CF552C10CDA4B7B00627463 /* libavutil.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libavutil.dylib; path = ../lib/ffmpeg/libavutil.dylib; sourceTree = SOURCE_ROOT; };
+ 2CF552C20CDA4B7B00627463 /* libmp3lame.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libmp3lame.dylib; path = ../lib/ffmpeg/libmp3lame.dylib; sourceTree = SOURCE_ROOT; };
+ 2CF553070CDA51B500627463 /* sdlutils.pas */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.pascal; name = sdlutils.pas; path = "/Library/Frameworks/JEDI-SDL.framework/SDL/sdlutils.pas"; sourceTree = "<absolute>"; };
9845B6590B1F9B9E0084DD62 /* SDL.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SDL.h; path = /Library/Frameworks/SDL.framework/Versions/A/Headers/SDL.h; sourceTree = "<absolute>"; };
98B8BE330B1F947800162019 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
98B8BE370B1F949C00162019 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
@@ -341,7 +487,7 @@
DD37F2430A60255800975B2D /* libfpcrtl.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libfpcrtl.a; sourceTree = BUILT_PRODUCTS_DIR; };
DDC6851B09F57195004E4BFF /* UltraStarDX.pas */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.pascal; path = UltraStarDX.pas; sourceTree = "<group>"; };
DDC6868B09F571C2004E4BFF /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
- DDC688C809F574E9004E4BFF /* UltraStar Deluxe.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "UltraStar Deluxe.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ DDC688C809F574E9004E4BFF /* UltraStarDX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UltraStarDX.app; sourceTree = BUILT_PRODUCTS_DIR; };
DDC688CA09F574E9004E4BFF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
DDC689B309F57C69004E4BFF /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
DDC689B409F57C69004E4BFF /* SDLMain.nib */ = {isa = PBXFileReference; explicitFileType = wrapper.nib; name = SDLMain.nib; path = English.lproj/SDLMain.nib; sourceTree = "<group>"; };
@@ -362,6 +508,11 @@
2C4D9D970CC9EDEB0031092D /* libfreeimage.dylib in Frameworks */,
2C4D9D9A0CC9EE0B0031092D /* SDL_image.framework in Frameworks */,
2C4D9D9B0CC9EE0B0031092D /* SDL_ttf.framework in Frameworks */,
+ 2CF5512D0CDA29C600627463 /* libsqlite3.dylib in Frameworks */,
+ 2CF552C30CDA4B7B00627463 /* libavcodec.dylib in Frameworks */,
+ 2CF552C40CDA4B7B00627463 /* libavformat.dylib in Frameworks */,
+ 2CF552C50CDA4B7B00627463 /* libavutil.dylib in Frameworks */,
+ 2CF552C60CDA4B7B00627463 /* libmp3lame.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -371,6 +522,7 @@
2C4D9DEB0CC9EECC0031092D /* SDL */ = {
isa = PBXGroup;
children = (
+ 2CF553070CDA51B500627463 /* sdlutils.pas */,
2C4D9DEF0CC9EF210031092D /* sdl_ttf.pas */,
2C4D9DF00CC9EF210031092D /* sdltruetypefont.pas */,
2C4D9DEC0CC9EF0A0031092D /* sdl_image.pas */,
@@ -384,15 +536,11 @@
2C4D9DF50CC9EF3A0031092D /* Wrapper */ = {
isa = PBXGroup;
children = (
- 2C4D9DFF0CC9EF840031092D /* MacClasses.pas */,
2C4D9E000CC9EF840031092D /* Graphics.pas */,
2C4D9E010CC9EF840031092D /* JPEG.pas */,
- 2C4D9E020CC9EF840031092D /* MidiFile.pas */,
- 2C4D9E030CC9EF840031092D /* MidiOut.pas */,
2C4D9E040CC9EF840031092D /* OpenGL12.pas */,
- 2C4D9E070CC9EF840031092D /* PNGImage.pas */,
2C4D9E090CC9EF840031092D /* Windows.pas */,
- 2C4D9E0A0CC9EF840031092D /* zlportio.pas */,
+ 2CF552660CDA404000627463 /* Messages.pas */,
);
name = Wrapper;
sourceTree = "<group>";
@@ -419,7 +567,6 @@
2C4D9C720CC9EC8C0031092D /* UIni.pas */,
2C4D9C730CC9EC8C0031092D /* UJoystick.pas */,
2C4D9C740CC9EC8C0031092D /* ULanguage.pas */,
- 2C4D9C750CC9EC8C0031092D /* Ulazjpeg.pas */,
2C4D9C760CC9EC8C0031092D /* ULCD.pas */,
2C4D9C770CC9EC8C0031092D /* ULight.pas */,
2C4D9C780CC9EC8C0031092D /* ULog.pas */,
@@ -431,7 +578,6 @@
2C4D9C7E0CC9EC8C0031092D /* UMusic.pas */,
2C4D9C7F0CC9EC8C0031092D /* UParty.pas */,
2C4D9C800CC9EC8C0031092D /* UPlaylist.pas */,
- 2C4D9C810CC9EC8C0031092D /* UPliki.pas */,
2C4D9C820CC9EC8C0031092D /* UPluginInterface.pas */,
2C4D9C830CC9EC8C0031092D /* uPluginLoader.pas */,
2C4D9C840CC9EC8C0031092D /* URecord.pas */,
@@ -490,16 +636,101 @@
name = BASS;
sourceTree = "<group>";
};
+ 2CF54F420CDA1B0C00627463 /* Screens */ = {
+ isa = PBXGroup;
+ children = (
+ 2CF54F430CDA1B2B00627463 /* UScreenCredits.pas */,
+ 2CF54F440CDA1B2B00627463 /* UScreenEdit.pas */,
+ 2CF54F450CDA1B2B00627463 /* UScreenEditConvert.pas */,
+ 2CF54F460CDA1B2B00627463 /* UScreenEditHeader.pas */,
+ 2CF54F470CDA1B2B00627463 /* UScreenEditSub.pas */,
+ 2CF54F480CDA1B2B00627463 /* UScreenLevel.pas */,
+ 2CF54F490CDA1B2B00627463 /* UScreenLoading.pas */,
+ 2CF54F4A0CDA1B2B00627463 /* UScreenMain.pas */,
+ 2CF54F4B0CDA1B2B00627463 /* UScreenName.pas */,
+ 2CF54F4C0CDA1B2B00627463 /* UScreenOpen.pas */,
+ 2CF54F4D0CDA1B2B00627463 /* UScreenOptions.pas */,
+ 2CF54F4E0CDA1B2B00627463 /* UScreenOptionsAdvanced.pas */,
+ 2CF54F4F0CDA1B2B00627463 /* UScreenOptionsGame.pas */,
+ 2CF54F500CDA1B2B00627463 /* UScreenOptionsGraphics.pas */,
+ 2CF54F510CDA1B2B00627463 /* UScreenOptionsLyrics.pas */,
+ 2CF54F520CDA1B2B00627463 /* UScreenOptionsRecord.pas */,
+ 2CF54F530CDA1B2B00627463 /* UScreenOptionsSound.pas */,
+ 2CF54F540CDA1B2B00627463 /* UScreenOptionsThemes.pas */,
+ 2CF54F550CDA1B2B00627463 /* UScreenPartyNewRound.pas */,
+ 2CF54F560CDA1B2B00627463 /* UScreenPartyOptions.pas */,
+ 2CF54F570CDA1B2B00627463 /* UScreenPartyPlayer.pas */,
+ 2CF54F580CDA1B2B00627463 /* UScreenPartyScore.pas */,
+ 2CF54F590CDA1B2B00627463 /* UScreenPartyWin.pas */,
+ 2CF54F5A0CDA1B2B00627463 /* UScreenPopup.pas */,
+ 2CF54F5B0CDA1B2B00627463 /* UScreenScore.pas */,
+ 2CF54F5C0CDA1B2B00627463 /* UScreenSing.pas */,
+ 2CF54F5D0CDA1B2B00627463 /* UScreenSingModi.pas */,
+ 2CF54F5E0CDA1B2B00627463 /* UScreenSong.pas */,
+ 2CF54F5F0CDA1B2B00627463 /* UScreenSongJumpto.pas */,
+ 2CF54F600CDA1B2B00627463 /* UScreenSongMenu.pas */,
+ 2CF54F610CDA1B2B00627463 /* UScreenStatDetail.pas */,
+ 2CF54F620CDA1B2B00627463 /* UScreenStatMain.pas */,
+ 2CF54F630CDA1B2B00627463 /* UScreenTop5.pas */,
+ 2CF54F640CDA1B2B00627463 /* UScreenWelcome.pas */,
+ );
+ name = Screens;
+ sourceTree = "<group>";
+ };
+ 2CF5508A0CDA228800627463 /* SDK */ = {
+ isa = PBXGroup;
+ children = (
+ 2CF552110CDA3D1400627463 /* UPluginDefs.pas */,
+ 2CF5508B0CDA22B000627463 /* ModiSDK.pas */,
+ );
+ name = SDK;
+ sourceTree = "<group>";
+ };
+ 2CF5510C0CDA28F000627463 /* Lib */ = {
+ isa = PBXGroup;
+ children = (
+ 2CE8C7CE0CBAA47D00E4D835 /* BASS */,
+ 2CF5529C0CDA428000627463 /* ffmpeg */,
+ 2CE1F4080CC3EEA400CD02E5 /* FreeImage */,
+ 2C4D9DEB0CC9EECC0031092D /* SDL */,
+ 2CF5510D0CDA291200627463 /* SQLite */,
+ );
+ name = Lib;
+ sourceTree = "<group>";
+ };
+ 2CF5510D0CDA291200627463 /* SQLite */ = {
+ isa = PBXGroup;
+ children = (
+ 2CF5510E0CDA293700627463 /* SQLite3.pas */,
+ 2CF5510F0CDA293700627463 /* SQLiteTable3.pas */,
+ );
+ name = SQLite;
+ sourceTree = "<group>";
+ };
+ 2CF5529C0CDA428000627463 /* ffmpeg */ = {
+ isa = PBXGroup;
+ children = (
+ 2CF5529E0CDA42C900627463 /* avcodec.pas */,
+ 2CF5529F0CDA42C900627463 /* avformat.pas */,
+ 2CF552A00CDA42C900627463 /* avio.pas */,
+ 2CF552A10CDA42C900627463 /* avutil.pas */,
+ 2CF552A40CDA42C900627463 /* opt.pas */,
+ 2CF552A50CDA42C900627463 /* rational.pas */,
+ );
+ name = ffmpeg;
+ sourceTree = "<group>";
+ };
DD7C45450A6E72DE003FA52B /* Source */ = {
isa = PBXGroup;
children = (
+ 2CF5510C0CDA28F000627463 /* Lib */,
2CDD43820CBBE8D400F364DE /* Classes */,
+ 2CF54F420CDA1B0C00627463 /* Screens */,
2CDD438D0CBBE8F700F364DE /* Menu */,
- 2CE1F4080CC3EEA400CD02E5 /* FreeImage */,
- 2CE8C7CE0CBAA47D00E4D835 /* BASS */,
- 2C4D9DEB0CC9EECC0031092D /* SDL */,
+ 2CF5508A0CDA228800627463 /* SDK */,
2C4D9DF50CC9EF3A0031092D /* Wrapper */,
DDC6851B09F57195004E4BFF /* UltraStarDX.pas */,
+ 2CF551A70CDA356800627463 /* UltraStar.dpr */,
2C4D9E440CC9F0ED0031092D /* switches.inc */,
);
name = Source;
@@ -517,6 +748,11 @@
98B8BE330B1F947800162019 /* AppKit.framework */,
2C4D9CE90CC9ECB50031092D /* libbass.dylib */,
2C4D9D960CC9EDEB0031092D /* libfreeimage.dylib */,
+ 2CF5512C0CDA29C600627463 /* libsqlite3.dylib */,
+ 2CF552BF0CDA4B7B00627463 /* libavcodec.dylib */,
+ 2CF552C00CDA4B7B00627463 /* libavformat.dylib */,
+ 2CF552C10CDA4B7B00627463 /* libavutil.dylib */,
+ 2CF552C20CDA4B7B00627463 /* libmp3lame.dylib */,
DD7C45450A6E72DE003FA52B /* Source */,
DDC6868A09F571C2004E4BFF /* Resources */,
2CDD8D0B0CC5539900E4169D /* UltraStarDX Resources */,
@@ -540,7 +776,7 @@
DDC6888C09F57243004E4BFF /* Products */ = {
isa = PBXGroup;
children = (
- DDC688C809F574E9004E4BFF /* UltraStar Deluxe.app */,
+ DDC688C809F574E9004E4BFF /* UltraStarDX.app */,
DD37F2430A60255800975B2D /* libfpcrtl.a */,
);
name = Products;
@@ -588,7 +824,7 @@
);
name = UltraStarDX;
productName = "JEDI-SDLCocoa";
- productReference = DDC688C809F574E9004E4BFF /* UltraStar Deluxe.app */;
+ productReference = DDC688C809F574E9004E4BFF /* UltraStarDX.app */;
productType = "com.apple.product-type.application";
};
DDC688D409F57523004E4BFF /* Put all program sources also in this target */ = {
@@ -662,7 +898,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\nUS_RESOURCES_SOURCE_DIR=UltraStarResources\nUS_RESOURCES_DEST_DIR=\"$CONFIGURATION_BUILD_DIR\"/\"$PRODUCT_NAME\".app/Contents\n\ncp -Rf $US_RESOURCES_SOURCE_DIR $US_RESOURCES_DEST_DIR";
+ shellScript = "\nUS_RESOURCES_SOURCE_DIR=UltraStarResources\nUS_RESOURCES_DEST_DIR=\"$CONFIGURATION_BUILD_DIR\"/\"$PRODUCT_NAME\".app/Contents\n\n#cp -Rf $US_RESOURCES_SOURCE_DIR $US_RESOURCES_DEST_DIR";
};
DD37F2350A60250900975B2D /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
@@ -736,7 +972,6 @@
2C4D9C9F0CC9EC8C0031092D /* UIni.pas in Sources */,
2C4D9CA00CC9EC8C0031092D /* UJoystick.pas in Sources */,
2C4D9CA10CC9EC8C0031092D /* ULanguage.pas in Sources */,
- 2C4D9CA20CC9EC8C0031092D /* Ulazjpeg.pas in Sources */,
2C4D9CA30CC9EC8C0031092D /* ULCD.pas in Sources */,
2C4D9CA40CC9EC8C0031092D /* ULight.pas in Sources */,
2C4D9CA50CC9EC8C0031092D /* ULog.pas in Sources */,
@@ -748,7 +983,6 @@
2C4D9CAB0CC9EC8C0031092D /* UMusic.pas in Sources */,
2C4D9CAC0CC9EC8C0031092D /* UParty.pas in Sources */,
2C4D9CAD0CC9EC8C0031092D /* UPlaylist.pas in Sources */,
- 2C4D9CAE0CC9EC8C0031092D /* UPliki.pas in Sources */,
2C4D9CAF0CC9EC8C0031092D /* UPluginInterface.pas in Sources */,
2C4D9CB00CC9EC8C0031092D /* uPluginLoader.pas in Sources */,
2C4D9CB10CC9EC8C0031092D /* URecord.pas in Sources */,
@@ -778,16 +1012,57 @@
2C4D9DED0CC9EF0A0031092D /* sdl_image.pas in Sources */,
2C4D9DF10CC9EF210031092D /* sdl_ttf.pas in Sources */,
2C4D9DF20CC9EF210031092D /* sdltruetypefont.pas in Sources */,
- 2C4D9E0B0CC9EF840031092D /* MacClasses.pas in Sources */,
2C4D9E0C0CC9EF840031092D /* Graphics.pas in Sources */,
2C4D9E0D0CC9EF840031092D /* JPEG.pas in Sources */,
- 2C4D9E0E0CC9EF840031092D /* MidiFile.pas in Sources */,
- 2C4D9E0F0CC9EF840031092D /* MidiOut.pas in Sources */,
2C4D9E100CC9EF840031092D /* OpenGL12.pas in Sources */,
- 2C4D9E130CC9EF840031092D /* PNGImage.pas in Sources */,
2C4D9E150CC9EF840031092D /* Windows.pas in Sources */,
- 2C4D9E160CC9EF840031092D /* zlportio.pas in Sources */,
2C4D9E450CC9F0ED0031092D /* switches.inc in Sources */,
+ 2CF54F650CDA1B2B00627463 /* UScreenCredits.pas in Sources */,
+ 2CF54F660CDA1B2B00627463 /* UScreenEdit.pas in Sources */,
+ 2CF54F670CDA1B2B00627463 /* UScreenEditConvert.pas in Sources */,
+ 2CF54F680CDA1B2B00627463 /* UScreenEditHeader.pas in Sources */,
+ 2CF54F690CDA1B2B00627463 /* UScreenEditSub.pas in Sources */,
+ 2CF54F6A0CDA1B2B00627463 /* UScreenLevel.pas in Sources */,
+ 2CF54F6B0CDA1B2B00627463 /* UScreenLoading.pas in Sources */,
+ 2CF54F6C0CDA1B2B00627463 /* UScreenMain.pas in Sources */,
+ 2CF54F6D0CDA1B2B00627463 /* UScreenName.pas in Sources */,
+ 2CF54F6E0CDA1B2B00627463 /* UScreenOpen.pas in Sources */,
+ 2CF54F6F0CDA1B2B00627463 /* UScreenOptions.pas in Sources */,
+ 2CF54F700CDA1B2B00627463 /* UScreenOptionsAdvanced.pas in Sources */,
+ 2CF54F710CDA1B2B00627463 /* UScreenOptionsGame.pas in Sources */,
+ 2CF54F720CDA1B2B00627463 /* UScreenOptionsGraphics.pas in Sources */,
+ 2CF54F730CDA1B2B00627463 /* UScreenOptionsLyrics.pas in Sources */,
+ 2CF54F740CDA1B2B00627463 /* UScreenOptionsRecord.pas in Sources */,
+ 2CF54F750CDA1B2B00627463 /* UScreenOptionsSound.pas in Sources */,
+ 2CF54F760CDA1B2B00627463 /* UScreenOptionsThemes.pas in Sources */,
+ 2CF54F770CDA1B2B00627463 /* UScreenPartyNewRound.pas in Sources */,
+ 2CF54F780CDA1B2B00627463 /* UScreenPartyOptions.pas in Sources */,
+ 2CF54F790CDA1B2B00627463 /* UScreenPartyPlayer.pas in Sources */,
+ 2CF54F7A0CDA1B2B00627463 /* UScreenPartyScore.pas in Sources */,
+ 2CF54F7B0CDA1B2B00627463 /* UScreenPartyWin.pas in Sources */,
+ 2CF54F7C0CDA1B2B00627463 /* UScreenPopup.pas in Sources */,
+ 2CF54F7D0CDA1B2B00627463 /* UScreenScore.pas in Sources */,
+ 2CF54F7E0CDA1B2B00627463 /* UScreenSing.pas in Sources */,
+ 2CF54F7F0CDA1B2B00627463 /* UScreenSingModi.pas in Sources */,
+ 2CF54F800CDA1B2B00627463 /* UScreenSong.pas in Sources */,
+ 2CF54F810CDA1B2B00627463 /* UScreenSongJumpto.pas in Sources */,
+ 2CF54F820CDA1B2B00627463 /* UScreenSongMenu.pas in Sources */,
+ 2CF54F830CDA1B2B00627463 /* UScreenStatDetail.pas in Sources */,
+ 2CF54F840CDA1B2B00627463 /* UScreenStatMain.pas in Sources */,
+ 2CF54F850CDA1B2B00627463 /* UScreenTop5.pas in Sources */,
+ 2CF54F860CDA1B2B00627463 /* UScreenWelcome.pas in Sources */,
+ 2CF5508C0CDA22B000627463 /* ModiSDK.pas in Sources */,
+ 2CF551100CDA293700627463 /* SQLite3.pas in Sources */,
+ 2CF551110CDA293700627463 /* SQLiteTable3.pas in Sources */,
+ 2CF552140CDA3D1400627463 /* UPluginDefs.pas in Sources */,
+ 2CF552680CDA404000627463 /* Messages.pas in Sources */,
+ 2CF552B00CDA42C900627463 /* avcodec.pas in Sources */,
+ 2CF552B10CDA42C900627463 /* avformat.pas in Sources */,
+ 2CF552B20CDA42C900627463 /* avio.pas in Sources */,
+ 2CF552B30CDA42C900627463 /* avutil.pas in Sources */,
+ 2CF552B60CDA42C900627463 /* opt.pas in Sources */,
+ 2CF552B70CDA42C900627463 /* rational.pas in Sources */,
+ 2CF553080CDA51B500627463 /* sdlutils.pas in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -816,7 +1091,6 @@
2C4D9CCC0CC9EC8C0031092D /* UIni.pas in Sources */,
2C4D9CCD0CC9EC8C0031092D /* UJoystick.pas in Sources */,
2C4D9CCE0CC9EC8C0031092D /* ULanguage.pas in Sources */,
- 2C4D9CCF0CC9EC8C0031092D /* Ulazjpeg.pas in Sources */,
2C4D9CD00CC9EC8C0031092D /* ULCD.pas in Sources */,
2C4D9CD10CC9EC8C0031092D /* ULight.pas in Sources */,
2C4D9CD20CC9EC8C0031092D /* ULog.pas in Sources */,
@@ -828,7 +1102,6 @@
2C4D9CD80CC9EC8C0031092D /* UMusic.pas in Sources */,
2C4D9CD90CC9EC8C0031092D /* UParty.pas in Sources */,
2C4D9CDA0CC9EC8C0031092D /* UPlaylist.pas in Sources */,
- 2C4D9CDB0CC9EC8C0031092D /* UPliki.pas in Sources */,
2C4D9CDC0CC9EC8C0031092D /* UPluginInterface.pas in Sources */,
2C4D9CDD0CC9EC8C0031092D /* uPluginLoader.pas in Sources */,
2C4D9CDE0CC9EC8C0031092D /* URecord.pas in Sources */,
@@ -858,16 +1131,57 @@
2C4D9DEE0CC9EF0A0031092D /* sdl_image.pas in Sources */,
2C4D9DF30CC9EF210031092D /* sdl_ttf.pas in Sources */,
2C4D9DF40CC9EF210031092D /* sdltruetypefont.pas in Sources */,
- 2C4D9E170CC9EF840031092D /* MacClasses.pas in Sources */,
2C4D9E180CC9EF840031092D /* Graphics.pas in Sources */,
2C4D9E190CC9EF840031092D /* JPEG.pas in Sources */,
- 2C4D9E1A0CC9EF840031092D /* MidiFile.pas in Sources */,
- 2C4D9E1B0CC9EF840031092D /* MidiOut.pas in Sources */,
2C4D9E1C0CC9EF840031092D /* OpenGL12.pas in Sources */,
- 2C4D9E1F0CC9EF840031092D /* PNGImage.pas in Sources */,
2C4D9E210CC9EF840031092D /* Windows.pas in Sources */,
- 2C4D9E220CC9EF840031092D /* zlportio.pas in Sources */,
2C4D9E460CC9F0ED0031092D /* switches.inc in Sources */,
+ 2CF54F870CDA1B2B00627463 /* UScreenCredits.pas in Sources */,
+ 2CF54F880CDA1B2B00627463 /* UScreenEdit.pas in Sources */,
+ 2CF54F890CDA1B2B00627463 /* UScreenEditConvert.pas in Sources */,
+ 2CF54F8A0CDA1B2B00627463 /* UScreenEditHeader.pas in Sources */,
+ 2CF54F8B0CDA1B2B00627463 /* UScreenEditSub.pas in Sources */,
+ 2CF54F8C0CDA1B2B00627463 /* UScreenLevel.pas in Sources */,
+ 2CF54F8D0CDA1B2B00627463 /* UScreenLoading.pas in Sources */,
+ 2CF54F8E0CDA1B2B00627463 /* UScreenMain.pas in Sources */,
+ 2CF54F8F0CDA1B2B00627463 /* UScreenName.pas in Sources */,
+ 2CF54F900CDA1B2B00627463 /* UScreenOpen.pas in Sources */,
+ 2CF54F910CDA1B2B00627463 /* UScreenOptions.pas in Sources */,
+ 2CF54F920CDA1B2B00627463 /* UScreenOptionsAdvanced.pas in Sources */,
+ 2CF54F930CDA1B2B00627463 /* UScreenOptionsGame.pas in Sources */,
+ 2CF54F940CDA1B2B00627463 /* UScreenOptionsGraphics.pas in Sources */,
+ 2CF54F950CDA1B2B00627463 /* UScreenOptionsLyrics.pas in Sources */,
+ 2CF54F960CDA1B2B00627463 /* UScreenOptionsRecord.pas in Sources */,
+ 2CF54F970CDA1B2B00627463 /* UScreenOptionsSound.pas in Sources */,
+ 2CF54F980CDA1B2B00627463 /* UScreenOptionsThemes.pas in Sources */,
+ 2CF54F990CDA1B2B00627463 /* UScreenPartyNewRound.pas in Sources */,
+ 2CF54F9A0CDA1B2B00627463 /* UScreenPartyOptions.pas in Sources */,
+ 2CF54F9B0CDA1B2B00627463 /* UScreenPartyPlayer.pas in Sources */,
+ 2CF54F9C0CDA1B2B00627463 /* UScreenPartyScore.pas in Sources */,
+ 2CF54F9D0CDA1B2B00627463 /* UScreenPartyWin.pas in Sources */,
+ 2CF54F9E0CDA1B2B00627463 /* UScreenPopup.pas in Sources */,
+ 2CF54F9F0CDA1B2B00627463 /* UScreenScore.pas in Sources */,
+ 2CF54FA00CDA1B2B00627463 /* UScreenSing.pas in Sources */,
+ 2CF54FA10CDA1B2B00627463 /* UScreenSingModi.pas in Sources */,
+ 2CF54FA20CDA1B2B00627463 /* UScreenSong.pas in Sources */,
+ 2CF54FA30CDA1B2B00627463 /* UScreenSongJumpto.pas in Sources */,
+ 2CF54FA40CDA1B2B00627463 /* UScreenSongMenu.pas in Sources */,
+ 2CF54FA50CDA1B2B00627463 /* UScreenStatDetail.pas in Sources */,
+ 2CF54FA60CDA1B2B00627463 /* UScreenStatMain.pas in Sources */,
+ 2CF54FA70CDA1B2B00627463 /* UScreenTop5.pas in Sources */,
+ 2CF54FA80CDA1B2B00627463 /* UScreenWelcome.pas in Sources */,
+ 2CF5508D0CDA22B000627463 /* ModiSDK.pas in Sources */,
+ 2CF551120CDA293700627463 /* SQLite3.pas in Sources */,
+ 2CF551130CDA293700627463 /* SQLiteTable3.pas in Sources */,
+ 2CF552170CDA3D1400627463 /* UPluginDefs.pas in Sources */,
+ 2CF552670CDA404000627463 /* Messages.pas in Sources */,
+ 2CF552A70CDA42C900627463 /* avcodec.pas in Sources */,
+ 2CF552A80CDA42C900627463 /* avformat.pas in Sources */,
+ 2CF552A90CDA42C900627463 /* avio.pas in Sources */,
+ 2CF552AA0CDA42C900627463 /* avutil.pas in Sources */,
+ 2CF552AD0CDA42C900627463 /* opt.pas in Sources */,
+ 2CF552AE0CDA42C900627463 /* rational.pas in Sources */,
+ 2CF553090CDA51B500627463 /* sdlutils.pas in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -972,11 +1286,12 @@
"$(LIBRARY_SEARCH_PATHS_QUOTED_4)",
"$(LIBRARY_SEARCH_PATHS_QUOTED_5)",
"$(LIBRARY_SEARCH_PATHS_QUOTED_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_3)",
);
LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Debug\"";
- LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/Bass\"";
- LIBRARY_SEARCH_PATHS_QUOTED_3 = "\"$(SRCROOT)/FreeImage\"";
- LIBRARY_SEARCH_PATHS_QUOTED_4 = "\"$(SRCROOT)/FreeImage\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/../lib/SQLite\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_3 = "\"$(SRCROOT)/../lib/ffmpeg\"";
LIBRARY_SEARCH_PATHS_QUOTED_5 = "\"$(SRCROOT)/../lib/bass\"";
LIBRARY_SEARCH_PATHS_QUOTED_6 = "\"$(SRCROOT)/../lib/FreeImage\"";
LINK_WITH_STANDARD_LIBRARIES = YES;
@@ -985,7 +1300,7 @@
Carbon,
);
PREBINDING = NO;
- PRODUCT_NAME = UltraStar;
+ PRODUCT_NAME = UltraStarDX;
WRAPPER_EXTENSION = app;
ZERO_LINK = NO;
};
@@ -1015,6 +1330,8 @@
"$(LIBRARY_SEARCH_PATHS_QUOTED_4)",
"$(LIBRARY_SEARCH_PATHS_QUOTED_5)",
"$(LIBRARY_SEARCH_PATHS_QUOTED_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_8)",
);
LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Debug\"";
LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/Bass\"";
@@ -1022,6 +1339,8 @@
LIBRARY_SEARCH_PATHS_QUOTED_4 = "\"$(SRCROOT)/FreeImage\"";
LIBRARY_SEARCH_PATHS_QUOTED_5 = "\"$(SRCROOT)/../lib/bass\"";
LIBRARY_SEARCH_PATHS_QUOTED_6 = "\"$(SRCROOT)/../lib/FreeImage\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_7 = "\"$(SRCROOT)/../lib/SQLite\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_8 = "\"$(SRCROOT)/../lib/ffmpeg\"";
LINK_WITH_STANDARD_LIBRARIES = YES;
OTHER_LDFLAGS = (
"-framework",
diff --git a/Game/Code/MacOSX/Wrapper/Graphics.pas b/Game/Code/MacOSX/Wrapper/Graphics.pas
index 5982bb77..11484e21 100755
--- a/Game/Code/MacOSX/Wrapper/Graphics.pas
+++ b/Game/Code/MacOSX/Wrapper/Graphics.pas
@@ -1,6 +1,6 @@
unit Graphics;
-{$INCLUDE ../Platform.inc}
+{$I switches.inc}
interface
diff --git a/Game/Code/MacOSX/Wrapper/JPEG.pas b/Game/Code/MacOSX/Wrapper/JPEG.pas
index b6a90f00..7419908b 100755
--- a/Game/Code/MacOSX/Wrapper/JPEG.pas
+++ b/Game/Code/MacOSX/Wrapper/JPEG.pas
@@ -1,10 +1,10 @@
unit JPEG;
-{$INCLUDE ../Platform.inc}
+{$I switches.inc}
interface
-uses GlueGraphics;
+uses Graphics;
type
TJPEGImage = class(TBitmap)
diff --git a/Game/Code/MacOSX/Wrapper/MacClasses.pas b/Game/Code/MacOSX/Wrapper/MacClasses.pas
index c494e6df..be41ac55 100755
--- a/Game/Code/MacOSX/Wrapper/MacClasses.pas
+++ b/Game/Code/MacOSX/Wrapper/MacClasses.pas
@@ -1,6 +1,6 @@
unit MacClasses;
-{$INCLUDE ../Platform.inc}
+{$I switches.inc}
interface
diff --git a/Game/Code/MacOSX/Wrapper/Messages.pas b/Game/Code/MacOSX/Wrapper/Messages.pas
new file mode 100644
index 00000000..e1c8e6aa
--- /dev/null
+++ b/Game/Code/MacOSX/Wrapper/Messages.pas
@@ -0,0 +1,30 @@
+unit Messages;
+
+{$I switches.inc}
+
+interface
+
+uses Windows;
+
+type
+
+ TMessage = packed record
+ Msg: Cardinal;
+ case Integer of
+ 0: (
+ WParam: Longint;
+ LParam: Longint;
+ Result: Longint);
+ 1: (
+ WParamLo: Word;
+ WParamHi: Word;
+ LParamLo: Word;
+ LParamHi: Word;
+ ResultLo: Word;
+ ResultHi: Word);
+ end;
+ PMessage = ^TMessage;
+
+implementation
+
+end. \ No newline at end of file
diff --git a/Game/Code/MacOSX/Wrapper/MidiFile.pas b/Game/Code/MacOSX/Wrapper/MidiFile.pas
index 9ae684f4..c91711cc 100755
--- a/Game/Code/MacOSX/Wrapper/MidiFile.pas
+++ b/Game/Code/MacOSX/Wrapper/MidiFile.pas
@@ -1,6 +1,6 @@
unit MidiFile;
-{$INCLUDE ../Platform.inc}
+{$I switches.inc}
interface
diff --git a/Game/Code/MacOSX/Wrapper/MidiOut.pas b/Game/Code/MacOSX/Wrapper/MidiOut.pas
index 249cb88b..e57da9d0 100755
--- a/Game/Code/MacOSX/Wrapper/MidiOut.pas
+++ b/Game/Code/MacOSX/Wrapper/MidiOut.pas
@@ -1,6 +1,6 @@
unit MidiOut;
-{$INCLUDE ../Platform.inc}
+{$I switches.inc}
interface
diff --git a/Game/Code/MacOSX/Wrapper/OpenGL12.pas b/Game/Code/MacOSX/Wrapper/OpenGL12.pas
index ff704b33..0efff14e 100755
--- a/Game/Code/MacOSX/Wrapper/OpenGL12.pas
+++ b/Game/Code/MacOSX/Wrapper/OpenGL12.pas
@@ -1,4696 +1,4701 @@
-unit OpenGL12;
-
-{$INCLUDE ../Platform.inc}
-
-interface
-
-uses Windows;
-
-const
-{$IFDEF MSWINDOWS}
- glu32 = 'glu32.dll';
-{$ENDIF}
-{$IFDEF MACOS}
- glu32 = 'OpenGL';
-{$ENDIF}
-
-type
-
- TRCOptions = set of (
- opDoubleBuffered,
- opGDI,
- opStereo
- );
-
- UINT = Cardinal;
-
- {$EXTERNALSYM GLenum}
- GLenum = UINT;
- TGLenum = UINT;
- PGLenum = ^TGLenum;
-
- {$EXTERNALSYM GLboolean}
- GLboolean = BYTEBOOL;
- TGLboolean = BYTEBOOL;
- PGLboolean = ^TGLboolean;
-
- {$EXTERNALSYM GLbitfield}
- GLbitfield = UINT;
- TGLbitfield = UINT;
- PGLbitfield = ^TGLbitfield;
-
- {$EXTERNALSYM GLbyte}
- GLbyte = ShortInt;
- TGLbyte = ShortInt;
- PGLbyte = ^TGLbyte;
-
- {$EXTERNALSYM GLshort}
- GLshort = SmallInt;
- TGLshort = SmallInt;
- PGLshort = ^TGLshort;
-
- {$EXTERNALSYM GLint}
- GLint = Integer;
- TGLint = Integer;
- PGLint = ^TGLint;
-
- {$EXTERNALSYM GLsizei}
- GLsizei = Integer;
- TGLsizei = Integer;
- PGLsizei = ^TGLsizei;
-
- {$EXTERNALSYM GLubyte}
- UCHAR = Byte;
- GLubyte = UCHAR;
- TGLubyte = UCHAR;
- PGLubyte = ^TGLubyte;
-
- {$EXTERNALSYM GLushort}
- GLushort = Word;
- TGLushort = Word;
- PGLushort = ^TGLushort;
-
- {$EXTERNALSYM GLuint}
- GLuint = UINT;
- TGLuint = UINT;
- PGLuint = ^TGLuint;
-
- {$EXTERNALSYM GLfloat}
- GLfloat = Single;
- TGLfloat = Single;
- PGLfloat = ^TGLfloat;
-
- {$EXTERNALSYM GLclampf}
- GLclampf = Single;
- TGLclampf = Single;
- PGLclampf = ^TGLclampf;
-
- {$EXTERNALSYM GLdouble}
- GLdouble = Double;
- TGLdouble = Double;
- PGLdouble = ^TGLdouble;
-
- {$EXTERNALSYM GLclampd}
- GLclampd = Double;
- TGLclampd = Double;
- PGLclampd = ^TGLclampd;
-
- TVector3d = array[0..2] of GLdouble;
-
- TVector4i = array[0..3] of GLint;
- TVector4f = array[0..3] of GLfloat;
- TVector4p = array[0..3] of Pointer;
-
- TMatrix4f = array[0..3, 0..3] of GLfloat;
- TMatrix4d = array[0..3, 0..3] of GLdouble;
-
- PPointer = ^Pointer;
-
-{$ifdef FPC}
- var
-{$else}
- {$ifdef MULTITHREADOPENGL}
- threadvar
- {$else}
- var
- {$endif}
-{$endif}
-
- GL_VERSION_1_0,
- GL_VERSION_1_1,
- GL_VERSION_1_2,
- GLU_VERSION_1_1,
- GLU_VERSION_1_2,
- GLU_VERSION_1_3: Boolean;
-
- // Extensions (gl)
- GL_3DFX_multisample,
- GL_3DFX_tbuffer,
- GL_3DFX_texture_compression_FXT1,
-
- GL_APPLE_specular_vector,
- GL_APPLE_transform_hint,
-
- GL_ARB_imaging,
- GL_ARB_multisample,
- GL_ARB_multitexture,
- GL_ARB_texture_compression,
- GL_ARB_texture_cube_map,
- GL_ARB_transpose_matrix,
- GL_ARB_vertex_blend,
-
- GL_EXT_422_pixels,
- GL_EXT_abgr,
- GL_EXT_bgra,
- GL_EXT_blend_color,
- GL_EXT_blend_func_separate,
- GL_EXT_blend_logic_op,
- GL_EXT_blend_minmax,
- GL_EXT_blend_subtract,
- GL_EXT_clip_volume_hint,
- GL_EXT_cmyka,
- GL_EXT_color_subtable,
- GL_EXT_compiled_vertex_array,
- GL_EXT_convolution,
- GL_EXT_coordinate_frame,
- GL_EXT_copy_texture,
- GL_EXT_cull_vertex,
- GL_EXT_draw_range_elements,
- GL_EXT_fog_coord,
- GL_EXT_histogram,
- GL_EXT_index_array_formats,
- GL_EXT_index_func,
- GL_EXT_index_material,
- GL_EXT_index_texture,
- GL_EXT_light_max_exponent,
- GL_EXT_light_texture,
- GL_EXT_misc_attribute,
- GL_EXT_multi_draw_arrays,
- GL_EXT_multisample,
- GL_EXT_packed_pixels,
- GL_EXT_paletted_texture,
- GL_EXT_pixel_transform,
- GL_EXT_point_parameters,
- GL_EXT_polygon_offset,
- GL_EXT_rescale_normal,
- GL_EXT_scene_marker,
- GL_EXT_secondary_color,
- GL_EXT_separate_specular_color,
- GL_EXT_shared_texture_palette,
- GL_EXT_stencil_wrap,
- GL_EXT_subtexture,
- GL_EXT_texture_color_table,
- GL_EXT_texture_compression_s3tc,
- GL_EXT_texture_cube_map,
- GL_EXT_texture_edge_clamp,
- GL_EXT_texture_env_add,
- GL_EXT_texture_env_combine,
- GL_EXT_texture_filter_anisotropic,
- GL_EXT_texture_lod_bias,
- GL_EXT_texture_object,
- GL_EXT_texture_perturb_normal,
- GL_EXT_texture3D,
- GL_EXT_vertex_array,
- GL_EXT_vertex_weighting,
-
- GL_FfdMaskSGIX,
- GL_HP_convolution_border_modes,
- GL_HP_image_transform,
- GL_HP_occlusion_test,
- GL_HP_texture_lighting,
-
- GL_IBM_cull_vertex,
- GL_IBM_multimode_draw_arrays,
- GL_IBM_rasterpos_clip,
- GL_IBM_vertex_array_lists,
-
- GL_INGR_color_clamp,
- GL_INGR_interlace_read,
-
- GL_INTEL_parallel_arrays,
-
- GL_KTX_buffer_region,
-
- GL_MESA_resize_buffers,
- GL_MESA_window_pos,
-
- GL_NV_blend_square,
- GL_NV_fog_distance,
- GL_NV_light_max_exponent,
- GL_NV_register_combiners,
- GL_NV_texgen_emboss,
- GL_NV_texgen_reflection,
- GL_NV_texture_env_combine4,
- GL_NV_vertex_array_range,
- GL_NV_vertex_program,
-
- GL_PGI_misc_hints,
- GL_PGI_vertex_hints,
-
- GL_REND_screen_coordinates,
-
- GL_SGI_color_matrix,
- GL_SGI_color_table,
- GL_SGI_depth_pass_instrument,
-
- GL_SGIS_detail_texture,
- GL_SGIS_fog_function,
- GL_SGIS_generate_mipmap,
- GL_SGIS_multisample,
- GL_SGIS_multitexture,
- GL_SGIS_pixel_texture,
- GL_SGIS_point_line_texgen,
- GL_SGIS_point_parameters,
- GL_SGIS_sharpen_texture,
- GL_SGIS_texture_border_clamp,
- GL_SGIS_texture_color_mask,
- GL_SGIS_texture_edge_clamp,
- GL_SGIS_texture_filter4,
- GL_SGIS_texture_lod,
- GL_SGIS_texture_select,
- GL_SGIS_texture4D,
-
- GL_SGIX_async,
- GL_SGIX_async_histogram,
- GL_SGIX_async_pixel,
- GL_SGIX_blend_alpha_minmax,
- GL_SGIX_calligraphic_fragment,
- GL_SGIX_clipmap,
- GL_SGIX_convolution_accuracy,
- GL_SGIX_depth_texture,
- GL_SGIX_flush_raster,
- GL_SGIX_fog_offset,
- GL_SGIX_fog_scale,
- GL_SGIX_fragment_lighting,
- GL_SGIX_framezoom,
- GL_SGIX_igloo_interface,
- GL_SGIX_instruments,
- GL_SGIX_interlace,
- GL_SGIX_ir_instrument1,
- GL_SGIX_list_priority,
- GL_SGIX_pixel_texture,
- GL_SGIX_pixel_tiles,
- GL_SGIX_polynomial_ffd,
- GL_SGIX_reference_plane,
- GL_SGIX_resample,
- GL_SGIX_shadow,
- GL_SGIX_shadow_ambient,
- GL_SGIX_sprite,
- GL_SGIX_subsample,
- GL_SGIX_tag_sample_buffer,
- GL_SGIX_texture_add_env,
- GL_SGIX_texture_lod_bias,
- GL_SGIX_texture_multi_buffer,
- GL_SGIX_texture_scale_bias,
- GL_SGIX_vertex_preclip,
- GL_SGIX_ycrcb,
- GL_SGIX_ycrcba,
-
- GL_SUN_convolution_border_modes,
- GL_SUN_global_alpha,
- GL_SUN_triangle_list,
- GL_SUN_vertex,
-
- GL_SUNX_constant_data,
-
- GL_WIN_phong_shading,
- GL_WIN_specular_fog,
- GL_WIN_swap_hint,
-
- WGL_EXT_swap_control,
- WGL_ARB_extensions_string,
- WGL_ARB_pixel_format,
-
- // Extensions (glu)
- GLU_EXT_Texture,
- GLU_EXT_object_space_tess,
- GLU_EXT_nurbs_tessellator: Boolean;
-
-const
- // ********** GL generic constants **********
-
- // errors
- GL_NO_ERROR = 0;
- {$EXTERNALSYM GL_NO_ERROR}
- GL_INVALID_ENUM = $0500;
- {$EXTERNALSYM GL_INVALID_ENUM}
- GL_INVALID_VALUE = $0501;
- {$EXTERNALSYM GL_INVALID_VALUE}
- GL_INVALID_OPERATION = $0502;
- {$EXTERNALSYM GL_INVALID_OPERATION}
- GL_STACK_OVERFLOW = $0503;
- {$EXTERNALSYM GL_STACK_OVERFLOW}
- GL_STACK_UNDERFLOW = $0504;
- {$EXTERNALSYM GL_STACK_UNDERFLOW}
- GL_OUT_OF_MEMORY = $0505;
- {$EXTERNALSYM GL_STACK_UNDERFLOW}
-
- // attribute bits
- GL_CURRENT_BIT = $00000001;
- {$EXTERNALSYM GL_CURRENT_BIT}
- GL_POINT_BIT = $00000002;
- {$EXTERNALSYM GL_POINT_BIT}
- GL_LINE_BIT = $00000004;
- {$EXTERNALSYM GL_LINE_BIT}
- GL_POLYGON_BIT = $00000008;
- {$EXTERNALSYM GL_POLYGON_BIT}
- GL_POLYGON_STIPPLE_BIT = $00000010;
- {$EXTERNALSYM GL_POLYGON_STIPPLE_BIT}
- GL_PIXEL_MODE_BIT = $00000020;
- {$EXTERNALSYM GL_PIXEL_MODE_BIT}
- GL_LIGHTING_BIT = $00000040;
- {$EXTERNALSYM GL_LIGHTING_BIT}
- GL_FOG_BIT = $00000080;
- {$EXTERNALSYM GL_FOG_BIT}
- GL_DEPTH_BUFFER_BIT = $00000100;
- {$EXTERNALSYM GL_DEPTH_BUFFER_BIT}
- GL_ACCUM_BUFFER_BIT = $00000200;
- {$EXTERNALSYM GL_ACCUM_BUFFER_BIT}
- GL_STENCIL_BUFFER_BIT = $00000400;
- {$EXTERNALSYM GL_STENCIL_BUFFER_BIT}
- GL_VIEWPORT_BIT = $00000800;
- {$EXTERNALSYM GL_VIEWPORT_BIT}
- GL_TRANSFORM_BIT = $00001000;
- {$EXTERNALSYM GL_TRANSFORM_BIT}
- GL_ENABLE_BIT = $00002000;
- {$EXTERNALSYM GL_ENABLE_BIT}
- GL_COLOR_BUFFER_BIT = $00004000;
- {$EXTERNALSYM GL_COLOR_BUFFER_BIT}
- GL_HINT_BIT = $00008000;
- {$EXTERNALSYM GL_HINT_BIT}
- GL_EVAL_BIT = $00010000;
- {$EXTERNALSYM GL_EVAL_BIT}
- GL_LIST_BIT = $00020000;
- {$EXTERNALSYM GL_LIST_BIT}
- GL_TEXTURE_BIT = $00040000;
- {$EXTERNALSYM GL_TEXTURE_BIT}
- GL_SCISSOR_BIT = $00080000;
- {$EXTERNALSYM GL_SCISSOR_BIT}
- GL_ALL_ATTRIB_BITS = $000FFFFF;
- {$EXTERNALSYM GL_ALL_ATTRIB_BITS}
-
- // client attribute bits
- GL_CLIENT_PIXEL_STORE_BIT = $00000001;
- {$EXTERNALSYM GL_CLIENT_PIXEL_STORE_BIT}
- GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
- {$EXTERNALSYM GL_CLIENT_VERTEX_ARRAY_BIT}
- GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
- {$EXTERNALSYM GL_CLIENT_ALL_ATTRIB_BITS}
-
- // boolean values
- GL_FALSE = Boolean(0);
- {$EXTERNALSYM GL_FALSE}
- GL_TRUE = Boolean(1);
- {$EXTERNALSYM GL_TRUE}
-
- // primitives
- GL_POINTS = $0000;
- {$EXTERNALSYM GL_POINTS}
- GL_LINES = $0001;
- {$EXTERNALSYM GL_LINES}
- GL_LINE_LOOP = $0002;
- {$EXTERNALSYM GL_LINE_LOOP}
- GL_LINE_STRIP = $0003;
- {$EXTERNALSYM GL_LINE_STRIP}
- GL_TRIANGLES = $0004;
- {$EXTERNALSYM GL_TRIANGLES}
- GL_TRIANGLE_STRIP = $0005;
- {$EXTERNALSYM GL_TRIANGLE_STRIP}
- GL_TRIANGLE_FAN = $0006;
- {$EXTERNALSYM GL_TRIANGLE_FAN}
- GL_QUADS = $0007;
- {$EXTERNALSYM GL_QUADS}
- GL_QUAD_STRIP = $0008;
- {$EXTERNALSYM GL_QUAD_STRIP}
- GL_POLYGON = $0009;
- {$EXTERNALSYM GL_POLYGON}
-
- // blending
- GL_ZERO = 0;
- {$EXTERNALSYM GL_ZERO}
- GL_ONE = 1;
- {$EXTERNALSYM GL_ONE}
- GL_SRC_COLOR = $0300;
- {$EXTERNALSYM GL_SRC_COLOR}
- GL_ONE_MINUS_SRC_COLOR = $0301;
- {$EXTERNALSYM GL_ONE_MINUS_SRC_COLOR}
- GL_SRC_ALPHA = $0302;
- {$EXTERNALSYM GL_SRC_ALPHA}
- GL_ONE_MINUS_SRC_ALPHA = $0303;
- {$EXTERNALSYM GL_ONE_MINUS_SRC_ALPHA}
- GL_DST_ALPHA = $0304;
- {$EXTERNALSYM GL_DST_ALPHA}
- GL_ONE_MINUS_DST_ALPHA = $0305;
- {$EXTERNALSYM GL_ONE_MINUS_DST_ALPHA}
- GL_DST_COLOR = $0306;
- {$EXTERNALSYM GL_DST_COLOR}
- GL_ONE_MINUS_DST_COLOR = $0307;
- {$EXTERNALSYM GL_ONE_MINUS_DST_COLOR}
- GL_SRC_ALPHA_SATURATE = $0308;
- {$EXTERNALSYM GL_SRC_ALPHA_SATURATE}
- GL_BLEND_DST = $0BE0;
- {$EXTERNALSYM GL_BLEND_DST}
- GL_BLEND_SRC = $0BE1;
- {$EXTERNALSYM GL_BLEND_SRC}
- GL_BLEND = $0BE2;
- {$EXTERNALSYM GL_BLEND}
-
- // blending (GL 1.2 ARB imaging)
- GL_BLEND_COLOR = $8005;
- {$EXTERNALSYM GL_BLEND_COLOR}
- GL_CONSTANT_COLOR = $8001;
- {$EXTERNALSYM GL_CONSTANT_COLOR}
- GL_ONE_MINUS_CONSTANT_COLOR = $8002;
- {$EXTERNALSYM GL_ONE_MINUS_CONSTANT_COLOR}
- GL_CONSTANT_ALPHA = $8003;
- {$EXTERNALSYM GL_CONSTANT_ALPHA}
- GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
- {$EXTERNALSYM GL_ONE_MINUS_CONSTANT_ALPHA}
- GL_FUNC_ADD = $8006;
- {$EXTERNALSYM GL_FUNC_ADD}
- GL_MIN = $8007;
- {$EXTERNALSYM GL_MIN}
- GL_MAX = $8008;
- {$EXTERNALSYM GL_MAX}
- GL_FUNC_SUBTRACT = $800A;
- {$EXTERNALSYM GL_FUNC_SUBTRACT}
- GL_FUNC_REVERSE_SUBTRACT = $800B;
- {$EXTERNALSYM GL_FUNC_REVERSE_SUBTRACT}
-
- // color table GL 1.2 ARB imaging
- GL_COLOR_TABLE = $80D0;
- {$EXTERNALSYM GL_COLOR_TABLE}
- GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
- {$EXTERNALSYM GL_POST_CONVOLUTION_COLOR_TABLE}
- GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_COLOR_TABLE}
- GL_PROXY_COLOR_TABLE = $80D3;
- {$EXTERNALSYM GL_PROXY_COLOR_TABLE}
- GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
- {$EXTERNALSYM GL_PROXY_POST_CONVOLUTION_COLOR_TABLE}
- GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
- {$EXTERNALSYM GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE}
- GL_COLOR_TABLE_SCALE = $80D6;
- {$EXTERNALSYM GL_COLOR_TABLE_SCALE}
- GL_COLOR_TABLE_BIAS = $80D7;
- {$EXTERNALSYM GL_COLOR_TABLE_BIAS}
- GL_COLOR_TABLE_FORMAT = $80D8;
- {$EXTERNALSYM GL_COLOR_TABLE_FORMAT}
- GL_COLOR_TABLE_WIDTH = $80D9;
- {$EXTERNALSYM GL_COLOR_TABLE_WIDTH}
- GL_COLOR_TABLE_RED_SIZE = $80DA;
- {$EXTERNALSYM GL_COLOR_TABLE_RED_SIZE}
- GL_COLOR_TABLE_GREEN_SIZE = $80DB;
- {$EXTERNALSYM GL_COLOR_TABLE_GREEN_SIZE}
- GL_COLOR_TABLE_BLUE_SIZE = $80DC;
- {$EXTERNALSYM GL_COLOR_TABLE_BLUE_SIZE}
- GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
- {$EXTERNALSYM GL_COLOR_TABLE_ALPHA_SIZE}
- GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
- {$EXTERNALSYM GL_COLOR_TABLE_LUMINANCE_SIZE}
- GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
- {$EXTERNALSYM GL_COLOR_TABLE_INTENSITY_SIZE}
-
- // convolutions GL 1.2 ARB imaging
- GL_CONVOLUTION_1D = $8010;
- {$EXTERNALSYM GL_CONVOLUTION_1D}
- GL_CONVOLUTION_2D = $8011;
- {$EXTERNALSYM GL_CONVOLUTION_2D}
- GL_SEPARABLE_2D = $8012;
- {$EXTERNALSYM GL_SEPARABLE_2D}
- GL_CONVOLUTION_BORDER_MODE = $8013;
- {$EXTERNALSYM GL_CONVOLUTION_BORDER_MODE}
- GL_CONVOLUTION_FILTER_SCALE = $8014;
- {$EXTERNALSYM GL_CONVOLUTION_FILTER_SCALE}
- GL_CONVOLUTION_FILTER_BIAS = $8015;
- {$EXTERNALSYM GL_CONVOLUTION_FILTER_BIAS}
- GL_REDUCE = $8016;
- {$EXTERNALSYM GL_REDUCE}
- GL_CONVOLUTION_FORMAT = $8017;
- {$EXTERNALSYM GL_CONVOLUTION_FORMAT}
- GL_CONVOLUTION_WIDTH = $8018;
- {$EXTERNALSYM GL_CONVOLUTION_WIDTH}
- GL_CONVOLUTION_HEIGHT = $8019;
- {$EXTERNALSYM GL_CONVOLUTION_HEIGHT}
- GL_MAX_CONVOLUTION_WIDTH = $801A;
- {$EXTERNALSYM GL_MAX_CONVOLUTION_WIDTH}
- GL_MAX_CONVOLUTION_HEIGHT = $801B;
- {$EXTERNALSYM GL_MAX_CONVOLUTION_HEIGHT}
- GL_POST_CONVOLUTION_RED_SCALE = $801C;
- {$EXTERNALSYM GL_POST_CONVOLUTION_RED_SCALE}
- GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
- {$EXTERNALSYM GL_POST_CONVOLUTION_GREEN_SCALE}
- GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
- {$EXTERNALSYM GL_POST_CONVOLUTION_BLUE_SCALE}
- GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
- {$EXTERNALSYM GL_POST_CONVOLUTION_ALPHA_SCALE}
- GL_POST_CONVOLUTION_RED_BIAS = $8020;
- {$EXTERNALSYM GL_POST_CONVOLUTION_RED_BIAS}
- GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
- {$EXTERNALSYM GL_POST_CONVOLUTION_GREEN_BIAS}
- GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
- {$EXTERNALSYM GL_POST_CONVOLUTION_BLUE_BIAS}
- GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
- {$EXTERNALSYM GL_POST_CONVOLUTION_ALPHA_BIAS}
-
- // histogram GL 1.2 ARB imaging
- GL_HISTOGRAM = $8024;
- {$EXTERNALSYM GL_HISTOGRAM}
- GL_PROXY_HISTOGRAM = $8025;
- {$EXTERNALSYM GL_PROXY_HISTOGRAM}
- GL_HISTOGRAM_WIDTH = $8026;
- {$EXTERNALSYM GL_HISTOGRAM_WIDTH}
- GL_HISTOGRAM_FORMAT = $8027;
- {$EXTERNALSYM GL_HISTOGRAM_FORMAT}
- GL_HISTOGRAM_RED_SIZE = $8028;
- {$EXTERNALSYM GL_HISTOGRAM_RED_SIZE}
- GL_HISTOGRAM_GREEN_SIZE = $8029;
- {$EXTERNALSYM GL_HISTOGRAM_GREEN_SIZE}
- GL_HISTOGRAM_BLUE_SIZE = $802A;
- {$EXTERNALSYM GL_HISTOGRAM_BLUE_SIZE}
- GL_HISTOGRAM_ALPHA_SIZE = $802B;
- {$EXTERNALSYM GL_HISTOGRAM_ALPHA_SIZE}
- GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
- {$EXTERNALSYM GL_HISTOGRAM_LUMINANCE_SIZE}
- GL_HISTOGRAM_SINK = $802D;
- {$EXTERNALSYM GL_HISTOGRAM_SINK}
- GL_MINMAX = $802E;
- {$EXTERNALSYM GL_MINMAX}
- GL_MINMAX_FORMAT = $802F;
- {$EXTERNALSYM GL_MINMAX_FORMAT}
- GL_MINMAX_SINK = $8030;
- {$EXTERNALSYM GL_MINMAX_SINK}
-
- // buffers
- GL_NONE = 0;
- {$EXTERNALSYM GL_NONE}
- GL_FRONT_LEFT = $0400;
- {$EXTERNALSYM GL_FRONT_LEFT}
- GL_FRONT_RIGHT = $0401;
- {$EXTERNALSYM GL_FRONT_RIGHT}
- GL_BACK_LEFT = $0402;
- {$EXTERNALSYM GL_BACK_LEFT}
- GL_BACK_RIGHT = $0403;
- {$EXTERNALSYM GL_BACK_RIGHT}
- GL_FRONT = $0404;
- {$EXTERNALSYM GL_FRONT}
- GL_BACK = $0405;
- {$EXTERNALSYM GL_BACK}
- GL_LEFT = $0406;
- {$EXTERNALSYM GL_LEFT}
- GL_RIGHT = $0407;
- {$EXTERNALSYM GL_RIGHT}
- GL_FRONT_AND_BACK = $0408;
- {$EXTERNALSYM GL_FRONT_AND_BACK}
- GL_AUX0 = $0409;
- {$EXTERNALSYM GL_AUX0}
- GL_AUX1 = $040A;
- {$EXTERNALSYM GL_AUX1}
- GL_AUX2 = $040B;
- {$EXTERNALSYM GL_AUX2}
- GL_AUX3 = $040C;
- {$EXTERNALSYM GL_AUX3}
- GL_AUX_BUFFERS = $0C00;
- {$EXTERNALSYM GL_AUX_BUFFERS}
- GL_DRAW_BUFFER = $0C01;
- {$EXTERNALSYM GL_DRAW_BUFFER}
- GL_READ_BUFFER = $0C02;
- {$EXTERNALSYM GL_READ_BUFFER}
- GL_DOUBLEBUFFER = $0C32;
- {$EXTERNALSYM GL_DOUBLEBUFFER}
- GL_STEREO = $0C33;
- {$EXTERNALSYM GL_STEREO}
-
- // depth buffer
- GL_DEPTH_RANGE = $0B70;
- {$EXTERNALSYM GL_DEPTH_RANGE}
- GL_DEPTH_TEST = $0B71;
- {$EXTERNALSYM GL_DEPTH_TEST}
- GL_DEPTH_WRITEMASK = $0B72;
- {$EXTERNALSYM GL_DEPTH_WRITEMASK}
- GL_DEPTH_CLEAR_VALUE = $0B73;
- {$EXTERNALSYM GL_DEPTH_CLEAR_VALUE}
- GL_DEPTH_FUNC = $0B74;
- {$EXTERNALSYM GL_DEPTH_FUNC}
- GL_NEVER = $0200;
- {$EXTERNALSYM GL_NEVER}
- GL_LESS = $0201;
- {$EXTERNALSYM GL_LESS}
- GL_EQUAL = $0202;
- {$EXTERNALSYM GL_EQUAL}
- GL_LEQUAL = $0203;
- {$EXTERNALSYM GL_LEQUAL}
- GL_GREATER = $0204;
- {$EXTERNALSYM GL_GREATER}
- GL_NOTEQUAL = $0205;
- {$EXTERNALSYM GL_NOTEQUAL}
- GL_GEQUAL = $0206;
- {$EXTERNALSYM GL_GEQUAL}
- GL_ALWAYS = $0207;
- {$EXTERNALSYM GL_ALWAYS}
-
- // accumulation buffer
- GL_ACCUM = $0100;
- {$EXTERNALSYM GL_ACCUM}
- GL_LOAD = $0101;
- {$EXTERNALSYM GL_LOAD}
- GL_RETURN = $0102;
- {$EXTERNALSYM GL_RETURN}
- GL_MULT = $0103;
- {$EXTERNALSYM GL_MULT}
- GL_ADD = $0104;
- {$EXTERNALSYM GL_ADD}
- GL_ACCUM_CLEAR_VALUE = $0B80;
- {$EXTERNALSYM GL_ACCUM_CLEAR_VALUE}
-
- // feedback buffer
- GL_FEEDBACK_BUFFER_POINTER = $0DF0;
- {$EXTERNALSYM GL_FEEDBACK_BUFFER_POINTER}
- GL_FEEDBACK_BUFFER_SIZE = $0DF1;
- {$EXTERNALSYM GL_FEEDBACK_BUFFER_SIZE}
- GL_FEEDBACK_BUFFER_TYPE = $0DF2;
- {$EXTERNALSYM GL_FEEDBACK_BUFFER_TYPE}
-
- // feedback types
- GL_2D = $0600;
- {$EXTERNALSYM GL_2D}
- GL_3D = $0601;
- {$EXTERNALSYM GL_3D}
- GL_3D_COLOR = $0602;
- {$EXTERNALSYM GL_3D_COLOR}
- GL_3D_COLOR_TEXTURE = $0603;
- {$EXTERNALSYM GL_3D_COLOR_TEXTURE}
- GL_4D_COLOR_TEXTURE = $0604;
- {$EXTERNALSYM GL_4D_COLOR_TEXTURE}
-
- // feedback tokens
- GL_PASS_THROUGH_TOKEN = $0700;
- {$EXTERNALSYM GL_PASS_THROUGH_TOKEN}
- GL_POINT_TOKEN = $0701;
- {$EXTERNALSYM GL_POINT_TOKEN}
- GL_LINE_TOKEN = $0702;
- {$EXTERNALSYM GL_LINE_TOKEN}
- GL_POLYGON_TOKEN = $0703;
- {$EXTERNALSYM GL_POLYGON_TOKEN}
- GL_BITMAP_TOKEN = $0704;
- {$EXTERNALSYM GL_BITMAP_TOKEN}
- GL_DRAW_PIXEL_TOKEN = $0705;
- {$EXTERNALSYM GL_DRAW_PIXEL_TOKEN}
- GL_COPY_PIXEL_TOKEN = $0706;
- {$EXTERNALSYM GL_COPY_PIXEL_TOKEN}
- GL_LINE_RESET_TOKEN = $0707;
- {$EXTERNALSYM GL_LINE_RESET_TOKEN}
-
- // fog
- GL_EXP = $0800;
- {$EXTERNALSYM GL_EXP}
- GL_EXP2 = $0801;
- {$EXTERNALSYM GL_EXP2}
- GL_FOG = $0B60;
- {$EXTERNALSYM GL_FOG}
- GL_FOG_INDEX = $0B61;
- {$EXTERNALSYM GL_FOG_INDEX}
- GL_FOG_DENSITY = $0B62;
- {$EXTERNALSYM GL_FOG_DENSITY}
- GL_FOG_START = $0B63;
- {$EXTERNALSYM GL_FOG_START}
- GL_FOG_END = $0B64;
- {$EXTERNALSYM GL_FOG_END}
- GL_FOG_MODE = $0B65;
- {$EXTERNALSYM GL_FOG_MODE}
- GL_FOG_COLOR = $0B66;
- {$EXTERNALSYM GL_FOG_COLOR}
-
- // pixel mode, transfer
- GL_PIXEL_MAP_I_TO_I = $0C70;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_I}
- GL_PIXEL_MAP_S_TO_S = $0C71;
- {$EXTERNALSYM GL_PIXEL_MAP_S_TO_S}
- GL_PIXEL_MAP_I_TO_R = $0C72;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_R}
- GL_PIXEL_MAP_I_TO_G = $0C73;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_G}
- GL_PIXEL_MAP_I_TO_B = $0C74;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_B}
- GL_PIXEL_MAP_I_TO_A = $0C75;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_A}
- GL_PIXEL_MAP_R_TO_R = $0C76;
- {$EXTERNALSYM GL_PIXEL_MAP_R_TO_R}
- GL_PIXEL_MAP_G_TO_G = $0C77;
- {$EXTERNALSYM GL_PIXEL_MAP_G_TO_G}
- GL_PIXEL_MAP_B_TO_B = $0C78;
- {$EXTERNALSYM GL_PIXEL_MAP_B_TO_B}
- GL_PIXEL_MAP_A_TO_A = $0C79;
- {$EXTERNALSYM GL_PIXEL_MAP_A_TO_A}
-
- // vertex arrays
- GL_VERTEX_ARRAY_POINTER = $808E;
- {$EXTERNALSYM GL_VERTEX_ARRAY_POINTER}
- GL_NORMAL_ARRAY_POINTER = $808F;
- {$EXTERNALSYM GL_NORMAL_ARRAY_POINTER}
- GL_COLOR_ARRAY_POINTER = $8090;
- {$EXTERNALSYM GL_COLOR_ARRAY_POINTER}
- GL_INDEX_ARRAY_POINTER = $8091;
- {$EXTERNALSYM GL_INDEX_ARRAY_POINTER}
- GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_POINTER}
- GL_EDGE_FLAG_ARRAY_POINTER = $8093;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_POINTER}
-
- // stenciling
- GL_STENCIL_TEST = $0B90;
- {$EXTERNALSYM GL_STENCIL_TEST}
- GL_STENCIL_CLEAR_VALUE = $0B91;
- {$EXTERNALSYM GL_STENCIL_CLEAR_VALUE}
- GL_STENCIL_FUNC = $0B92;
- {$EXTERNALSYM GL_STENCIL_FUNC}
- GL_STENCIL_VALUE_MASK = $0B93;
- {$EXTERNALSYM GL_STENCIL_VALUE_MASK}
- GL_STENCIL_FAIL = $0B94;
- {$EXTERNALSYM GL_STENCIL_FAIL}
- GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
- {$EXTERNALSYM GL_STENCIL_PASS_DEPTH_FAIL}
- GL_STENCIL_PASS_DEPTH_PASS = $0B96;
- {$EXTERNALSYM GL_STENCIL_PASS_DEPTH_PASS}
- GL_STENCIL_REF = $0B97;
- {$EXTERNALSYM GL_STENCIL_REF}
- GL_STENCIL_WRITEMASK = $0B98;
- {$EXTERNALSYM GL_STENCIL_WRITEMASK}
- GL_KEEP = $1E00;
- {$EXTERNALSYM GL_KEEP}
- GL_REPLACE = $1E01;
- {$EXTERNALSYM GL_REPLACE}
- GL_INCR = $1E02;
- {$EXTERNALSYM GL_INCR}
- GL_DECR = $1E03;
- {$EXTERNALSYM GL_DECR}
-
- // color material
- GL_COLOR_MATERIAL_FACE = $0B55;
- {$EXTERNALSYM GL_COLOR_MATERIAL_FACE}
- GL_COLOR_MATERIAL_PARAMETER = $0B56;
- {$EXTERNALSYM GL_COLOR_MATERIAL_PARAMETER}
- GL_COLOR_MATERIAL = $0B57;
- {$EXTERNALSYM GL_COLOR_MATERIAL}
-
- // points
- GL_POINT_SMOOTH = $0B10;
- {$EXTERNALSYM GL_POINT_SMOOTH}
- GL_POINT_SIZE = $0B11;
- {$EXTERNALSYM GL_POINT_SIZE}
- GL_POINT_SIZE_RANGE = $0B12;
- {$EXTERNALSYM GL_POINT_SIZE_RANGE}
- GL_POINT_SIZE_GRANULARITY = $0B13;
- {$EXTERNALSYM GL_POINT_SIZE_GRANULARITY}
-
- // lines
- GL_LINE_SMOOTH = $0B20;
- {$EXTERNALSYM GL_LINE_SMOOTH}
- GL_LINE_WIDTH = $0B21;
- {$EXTERNALSYM GL_LINE_WIDTH}
- GL_LINE_WIDTH_RANGE = $0B22;
- {$EXTERNALSYM GL_LINE_WIDTH_RANGE}
- GL_LINE_WIDTH_GRANULARITY = $0B23;
- {$EXTERNALSYM GL_LINE_WIDTH_GRANULARITY}
- GL_LINE_STIPPLE = $0B24;
- {$EXTERNALSYM GL_LINE_STIPPLE}
- GL_LINE_STIPPLE_PATTERN = $0B25;
- {$EXTERNALSYM GL_LINE_STIPPLE_PATTERN}
- GL_LINE_STIPPLE_REPEAT = $0B26;
- {$EXTERNALSYM GL_LINE_STIPPLE_REPEAT}
-
- // polygons
- GL_POLYGON_MODE = $0B40;
- {$EXTERNALSYM GL_POLYGON_MODE}
- GL_POLYGON_SMOOTH = $0B41;
- {$EXTERNALSYM GL_POLYGON_SMOOTH}
- GL_POLYGON_STIPPLE = $0B42;
- {$EXTERNALSYM GL_POLYGON_STIPPLE}
- GL_EDGE_FLAG = $0B43;
- {$EXTERNALSYM GL_EDGE_FLAG}
- GL_CULL_FACE = $0B44;
- {$EXTERNALSYM GL_CULL_FACE}
- GL_CULL_FACE_MODE = $0B45;
- {$EXTERNALSYM GL_CULL_FACE_MODE}
- GL_FRONT_FACE = $0B46;
- {$EXTERNALSYM GL_FRONT_FACE}
- GL_CW = $0900;
- {$EXTERNALSYM GL_CW}
- GL_CCW = $0901;
- {$EXTERNALSYM GL_CCW}
- GL_POINT = $1B00;
- {$EXTERNALSYM GL_POINT}
- GL_LINE = $1B01;
- {$EXTERNALSYM GL_LINE}
- GL_FILL = $1B02;
- {$EXTERNALSYM GL_FILL}
-
- // display lists
- GL_LIST_MODE = $0B30;
- {$EXTERNALSYM GL_LIST_MODE}
- GL_LIST_BASE = $0B32;
- {$EXTERNALSYM GL_LIST_BASE}
- GL_LIST_INDEX = $0B33;
- {$EXTERNALSYM GL_LIST_INDEX}
- GL_COMPILE = $1300;
- {$EXTERNALSYM GL_COMPILE}
- GL_COMPILE_AND_EXECUTE = $1301;
- {$EXTERNALSYM GL_COMPILE_AND_EXECUTE}
-
- // lighting
- GL_LIGHTING = $0B50;
- {$EXTERNALSYM GL_LIGHTING}
- GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
- {$EXTERNALSYM GL_LIGHT_MODEL_LOCAL_VIEWER}
- GL_LIGHT_MODEL_TWO_SIDE = $0B52;
- {$EXTERNALSYM GL_LIGHT_MODEL_TWO_SIDE}
- GL_LIGHT_MODEL_AMBIENT = $0B53;
- {$EXTERNALSYM GL_LIGHT_MODEL_AMBIENT}
- GL_LIGHT_MODEL_COLOR_CONTROL = $81F8; // GL 1.2
- {$EXTERNALSYM GL_LIGHT_MODEL_COLOR_CONTROL}
- GL_SHADE_MODEL = $0B54;
- {$EXTERNALSYM GL_SHADE_MODEL}
- GL_NORMALIZE = $0BA1;
- {$EXTERNALSYM GL_NORMALIZE}
- GL_AMBIENT = $1200;
- {$EXTERNALSYM GL_AMBIENT}
- GL_DIFFUSE = $1201;
- {$EXTERNALSYM GL_DIFFUSE}
- GL_SPECULAR = $1202;
- {$EXTERNALSYM GL_SPECULAR}
- GL_POSITION = $1203;
- {$EXTERNALSYM GL_POSITION}
- GL_SPOT_DIRECTION = $1204;
- {$EXTERNALSYM GL_SPOT_DIRECTION}
- GL_SPOT_EXPONENT = $1205;
- {$EXTERNALSYM GL_SPOT_EXPONENT}
- GL_SPOT_CUTOFF = $1206;
- {$EXTERNALSYM GL_SPOT_CUTOFF}
- GL_CONSTANT_ATTENUATION = $1207;
- {$EXTERNALSYM GL_CONSTANT_ATTENUATION}
- GL_LINEAR_ATTENUATION = $1208;
- {$EXTERNALSYM GL_LINEAR_ATTENUATION}
- GL_QUADRATIC_ATTENUATION = $1209;
- {$EXTERNALSYM GL_QUADRATIC_ATTENUATION}
- GL_EMISSION = $1600;
- {$EXTERNALSYM GL_EMISSION}
- GL_SHININESS = $1601;
- {$EXTERNALSYM GL_SHININESS}
- GL_AMBIENT_AND_DIFFUSE = $1602;
- {$EXTERNALSYM GL_AMBIENT_AND_DIFFUSE}
- GL_COLOR_INDEXES = $1603;
- {$EXTERNALSYM GL_COLOR_INDEXES}
- GL_FLAT = $1D00;
- {$EXTERNALSYM GL_FLAT}
- GL_SMOOTH = $1D01;
- {$EXTERNALSYM GL_SMOOTH}
- GL_LIGHT0 = $4000;
- {$EXTERNALSYM GL_LIGHT0}
- GL_LIGHT1 = $4001;
- {$EXTERNALSYM GL_LIGHT1}
- GL_LIGHT2 = $4002;
- {$EXTERNALSYM GL_LIGHT2}
- GL_LIGHT3 = $4003;
- {$EXTERNALSYM GL_LIGHT3}
- GL_LIGHT4 = $4004;
- {$EXTERNALSYM GL_LIGHT4}
- GL_LIGHT5 = $4005;
- {$EXTERNALSYM GL_LIGHT5}
- GL_LIGHT6 = $4006;
- {$EXTERNALSYM GL_LIGHT6}
- GL_LIGHT7 = $4007;
- {$EXTERNALSYM GL_LIGHT7}
-
- // matrix modes
- GL_MATRIX_MODE = $0BA0;
- {$EXTERNALSYM GL_MATRIX_MODE}
- GL_MODELVIEW = $1700;
- {$EXTERNALSYM GL_MODELVIEW}
- GL_PROJECTION = $1701;
- {$EXTERNALSYM GL_PROJECTION}
- GL_TEXTURE = $1702;
- {$EXTERNALSYM GL_TEXTURE}
-
- // gets
- GL_CURRENT_COLOR = $0B00;
- {$EXTERNALSYM GL_CURRENT_COLOR}
- GL_CURRENT_INDEX = $0B01;
- {$EXTERNALSYM GL_CURRENT_INDEX}
- GL_CURRENT_NORMAL = $0B02;
- {$EXTERNALSYM GL_CURRENT_NORMAL}
- GL_CURRENT_TEXTURE_COORDS = $0B03;
- {$EXTERNALSYM GL_CURRENT_TEXTURE_COORDS}
- GL_CURRENT_RASTER_COLOR = $0B04;
- {$EXTERNALSYM GL_CURRENT_RASTER_COLOR}
- GL_CURRENT_RASTER_INDEX = $0B05;
- {$EXTERNALSYM GL_CURRENT_RASTER_INDEX}
- GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
- {$EXTERNALSYM GL_CURRENT_RASTER_TEXTURE_COORDS}
- GL_CURRENT_RASTER_POSITION = $0B07;
- {$EXTERNALSYM GL_CURRENT_RASTER_POSITION}
- GL_CURRENT_RASTER_POSITION_VALID = $0B08;
- {$EXTERNALSYM GL_CURRENT_RASTER_POSITION_VALID}
- GL_CURRENT_RASTER_DISTANCE = $0B09;
- {$EXTERNALSYM GL_CURRENT_RASTER_DISTANCE}
- GL_MAX_LIST_NESTING = $0B31;
- {$EXTERNALSYM GL_MAX_LIST_NESTING}
- GL_VIEWPORT = $0BA2;
- {$EXTERNALSYM GL_VIEWPORT}
- GL_MODELVIEW_STACK_DEPTH = $0BA3;
- {$EXTERNALSYM GL_MODELVIEW_STACK_DEPTH}
- GL_PROJECTION_STACK_DEPTH = $0BA4;
- {$EXTERNALSYM GL_PROJECTION_STACK_DEPTH}
- GL_TEXTURE_STACK_DEPTH = $0BA5;
- {$EXTERNALSYM GL_TEXTURE_STACK_DEPTH}
- GL_MODELVIEW_MATRIX = $0BA6;
- {$EXTERNALSYM GL_MODELVIEW_MATRIX}
- GL_PROJECTION_MATRIX = $0BA7;
- {$EXTERNALSYM GL_PROJECTION_MATRIX}
- GL_TEXTURE_MATRIX = $0BA8;
- {$EXTERNALSYM GL_TEXTURE_MATRIX}
- GL_ATTRIB_STACK_DEPTH = $0BB0;
- {$EXTERNALSYM GL_ATTRIB_STACK_DEPTH}
- GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
- {$EXTERNALSYM GL_CLIENT_ATTRIB_STACK_DEPTH}
-
- GL_SINGLE_COLOR = $81F9; // GL 1.2
- {$EXTERNALSYM GL_SINGLE_COLOR}
- GL_SEPARATE_SPECULAR_COLOR = $81FA; // GL 1.2
- {$EXTERNALSYM GL_SEPARATE_SPECULAR_COLOR}
-
- // alpha testing
- GL_ALPHA_TEST = $0BC0;
- {$EXTERNALSYM GL_ALPHA_TEST}
- GL_ALPHA_TEST_FUNC = $0BC1;
- {$EXTERNALSYM GL_ALPHA_TEST_FUNC}
- GL_ALPHA_TEST_REF = $0BC2;
- {$EXTERNALSYM GL_ALPHA_TEST_REF}
-
- GL_LOGIC_OP_MODE = $0BF0;
- {$EXTERNALSYM GL_LOGIC_OP_MODE}
- GL_INDEX_LOGIC_OP = $0BF1;
- {$EXTERNALSYM GL_INDEX_LOGIC_OP}
- GL_LOGIC_OP = $0BF1;
- {$EXTERNALSYM GL_LOGIC_OP}
- GL_COLOR_LOGIC_OP = $0BF2;
- {$EXTERNALSYM GL_COLOR_LOGIC_OP}
- GL_SCISSOR_BOX = $0C10;
- {$EXTERNALSYM GL_SCISSOR_BOX}
- GL_SCISSOR_TEST = $0C11;
- {$EXTERNALSYM GL_SCISSOR_TEST}
- GL_INDEX_CLEAR_VALUE = $0C20;
- {$EXTERNALSYM GL_INDEX_CLEAR_VALUE}
- GL_INDEX_WRITEMASK = $0C21;
- {$EXTERNALSYM GL_INDEX_WRITEMASK}
- GL_COLOR_CLEAR_VALUE = $0C22;
- {$EXTERNALSYM GL_COLOR_CLEAR_VALUE}
- GL_COLOR_WRITEMASK = $0C23;
- {$EXTERNALSYM GL_COLOR_WRITEMASK}
- GL_INDEX_MODE = $0C30;
- {$EXTERNALSYM GL_INDEX_MODE}
- GL_RGBA_MODE = $0C31;
- {$EXTERNALSYM GL_RGBA_MODE}
- GL_RENDER_MODE = $0C40;
- {$EXTERNALSYM GL_RENDER_MODE}
- GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
- {$EXTERNALSYM GL_PERSPECTIVE_CORRECTION_HINT}
- GL_POINT_SMOOTH_HINT = $0C51;
- {$EXTERNALSYM GL_POINT_SMOOTH_HINT}
- GL_LINE_SMOOTH_HINT = $0C52;
- {$EXTERNALSYM GL_LINE_SMOOTH_HINT}
- GL_POLYGON_SMOOTH_HINT = $0C53;
- {$EXTERNALSYM GL_POLYGON_SMOOTH_HINT}
- GL_FOG_HINT = $0C54;
- {$EXTERNALSYM GL_FOG_HINT}
- GL_TEXTURE_GEN_S = $0C60;
- {$EXTERNALSYM GL_TEXTURE_GEN_S}
- GL_TEXTURE_GEN_T = $0C61;
- {$EXTERNALSYM GL_TEXTURE_GEN_T}
- GL_TEXTURE_GEN_R = $0C62;
- {$EXTERNALSYM GL_TEXTURE_GEN_R}
- GL_TEXTURE_GEN_Q = $0C63;
- {$EXTERNALSYM GL_TEXTURE_GEN_Q}
- GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_I_SIZE}
- GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
- {$EXTERNALSYM GL_PIXEL_MAP_S_TO_S_SIZE}
- GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_R_SIZE}
- GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_G_SIZE}
- GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_B_SIZE}
- GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
- {$EXTERNALSYM GL_PIXEL_MAP_I_TO_A_SIZE}
- GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
- {$EXTERNALSYM GL_PIXEL_MAP_R_TO_R_SIZE}
- GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
- {$EXTERNALSYM GL_PIXEL_MAP_G_TO_G_SIZE}
- GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
- {$EXTERNALSYM GL_PIXEL_MAP_B_TO_B_SIZE}
- GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
- {$EXTERNALSYM GL_PIXEL_MAP_A_TO_A_SIZE}
- GL_UNPACK_SWAP_BYTES = $0CF0;
- {$EXTERNALSYM GL_UNPACK_SWAP_BYTES}
- GL_UNPACK_LSB_FIRST = $0CF1;
- {$EXTERNALSYM GL_UNPACK_LSB_FIRST}
- GL_UNPACK_ROW_LENGTH = $0CF2;
- {$EXTERNALSYM GL_UNPACK_ROW_LENGTH}
- GL_UNPACK_SKIP_ROWS = $0CF3;
- {$EXTERNALSYM GL_UNPACK_SKIP_ROWS}
- GL_UNPACK_SKIP_PIXELS = $0CF4;
- {$EXTERNALSYM GL_UNPACK_SKIP_PIXELS}
- GL_UNPACK_ALIGNMENT = $0CF5;
- {$EXTERNALSYM GL_UNPACK_ALIGNMENT}
- GL_PACK_SWAP_BYTES = $0D00;
- {$EXTERNALSYM GL_PACK_SWAP_BYTES}
- GL_PACK_LSB_FIRST = $0D01;
- {$EXTERNALSYM GL_PACK_LSB_FIRST}
- GL_PACK_ROW_LENGTH = $0D02;
- {$EXTERNALSYM GL_PACK_ROW_LENGTH}
- GL_PACK_SKIP_ROWS = $0D03;
- {$EXTERNALSYM GL_PACK_SKIP_ROWS}
- GL_PACK_SKIP_PIXELS = $0D04;
- {$EXTERNALSYM GL_PACK_SKIP_PIXELS}
- GL_PACK_ALIGNMENT = $0D05;
- {$EXTERNALSYM GL_PACK_ALIGNMENT}
- GL_PACK_SKIP_IMAGES = $806B; // GL 1.2
- {$EXTERNALSYM GL_PACK_SKIP_IMAGES}
- GL_PACK_IMAGE_HEIGHT = $806C; // GL 1.2
- {$EXTERNALSYM GL_PACK_IMAGE_HEIGHT}
- GL_UNPACK_SKIP_IMAGES = $806D; // GL 1.2
- {$EXTERNALSYM GL_UNPACK_SKIP_IMAGES}
- GL_UNPACK_IMAGE_HEIGHT = $806E; // GL 1.2
- {$EXTERNALSYM GL_UNPACK_IMAGE_HEIGHT}
- GL_MAP_COLOR = $0D10;
- {$EXTERNALSYM GL_MAP_COLOR}
- GL_MAP_STENCIL = $0D11;
- {$EXTERNALSYM GL_MAP_STENCIL}
- GL_INDEX_SHIFT = $0D12;
- {$EXTERNALSYM GL_INDEX_SHIFT}
- GL_INDEX_OFFSET = $0D13;
- {$EXTERNALSYM GL_INDEX_OFFSET}
- GL_RED_SCALE = $0D14;
- {$EXTERNALSYM GL_RED_SCALE}
- GL_RED_BIAS = $0D15;
- {$EXTERNALSYM GL_RED_BIAS}
- GL_ZOOM_X = $0D16;
- {$EXTERNALSYM GL_ZOOM_X}
- GL_ZOOM_Y = $0D17;
- {$EXTERNALSYM GL_ZOOM_Y}
- GL_GREEN_SCALE = $0D18;
- {$EXTERNALSYM GL_GREEN_SCALE}
- GL_GREEN_BIAS = $0D19;
- {$EXTERNALSYM GL_GREEN_BIAS}
- GL_BLUE_SCALE = $0D1A;
- {$EXTERNALSYM GL_BLUE_SCALE}
- GL_BLUE_BIAS = $0D1B;
- {$EXTERNALSYM GL_BLUE_BIAS}
- GL_ALPHA_SCALE = $0D1C;
- {$EXTERNALSYM GL_ALPHA_SCALE}
- GL_ALPHA_BIAS = $0D1D;
- {$EXTERNALSYM GL_ALPHA_BIAS}
- GL_DEPTH_SCALE = $0D1E;
- {$EXTERNALSYM GL_DEPTH_SCALE}
- GL_DEPTH_BIAS = $0D1F;
- {$EXTERNALSYM GL_DEPTH_BIAS}
- GL_MAX_EVAL_ORDER = $0D30;
- {$EXTERNALSYM GL_MAX_EVAL_ORDER}
- GL_MAX_LIGHTS = $0D31;
- {$EXTERNALSYM GL_MAX_LIGHTS}
- GL_MAX_CLIP_PLANES = $0D32;
- {$EXTERNALSYM GL_MAX_CLIP_PLANES}
- GL_MAX_TEXTURE_SIZE = $0D33;
- {$EXTERNALSYM GL_MAX_TEXTURE_SIZE}
- GL_MAX_3D_TEXTURE_SIZE = $8073; // GL 1.2
- {$EXTERNALSYM GL_MAX_3D_TEXTURE_SIZE}
- GL_MAX_PIXEL_MAP_TABLE = $0D34;
- {$EXTERNALSYM GL_MAX_PIXEL_MAP_TABLE}
- GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
- {$EXTERNALSYM GL_MAX_ATTRIB_STACK_DEPTH}
- GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
- {$EXTERNALSYM GL_MAX_MODELVIEW_STACK_DEPTH}
- GL_MAX_NAME_STACK_DEPTH = $0D37;
- {$EXTERNALSYM GL_MAX_NAME_STACK_DEPTH}
- GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
- {$EXTERNALSYM GL_MAX_PROJECTION_STACK_DEPTH}
- GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
- {$EXTERNALSYM GL_MAX_TEXTURE_STACK_DEPTH}
- GL_MAX_VIEWPORT_DIMS = $0D3A;
- {$EXTERNALSYM GL_MAX_VIEWPORT_DIMS}
- GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
- {$EXTERNALSYM GL_MAX_CLIENT_ATTRIB_STACK_DEPTH}
- GL_MAX_ELEMENTS_VERTICES = $80E8; // GL 1.2
- {$EXTERNALSYM GL_MAX_ELEMENTS_VERTICES}
- GL_MAX_ELEMENTS_INDICES = $80E9; // GL 1.2
- {$EXTERNALSYM GL_MAX_ELEMENTS_INDICES}
- GL_RESCALE_NORMAL = $803A; // GL 1.2
- {$EXTERNALSYM GL_RESCALE_NORMAL}
- GL_SUBPIXEL_BITS = $0D50;
- {$EXTERNALSYM GL_SUBPIXEL_BITS}
- GL_INDEX_BITS = $0D51;
- {$EXTERNALSYM GL_INDEX_BITS}
- GL_RED_BITS = $0D52;
- {$EXTERNALSYM GL_RED_BITS}
- GL_GREEN_BITS = $0D53;
- {$EXTERNALSYM GL_GREEN_BITS}
- GL_BLUE_BITS = $0D54;
- {$EXTERNALSYM GL_BLUE_BITS}
- GL_ALPHA_BITS = $0D55;
- {$EXTERNALSYM GL_ALPHA_BITS}
- GL_DEPTH_BITS = $0D56;
- {$EXTERNALSYM GL_DEPTH_BITS}
- GL_STENCIL_BITS = $0D57;
- {$EXTERNALSYM GL_STENCIL_BITS}
- GL_ACCUM_RED_BITS = $0D58;
- {$EXTERNALSYM GL_ACCUM_RED_BITS}
- GL_ACCUM_GREEN_BITS = $0D59;
- {$EXTERNALSYM GL_ACCUM_GREEN_BITS}
- GL_ACCUM_BLUE_BITS = $0D5A;
- {$EXTERNALSYM GL_ACCUM_BLUE_BITS}
- GL_ACCUM_ALPHA_BITS = $0D5B;
- {$EXTERNALSYM GL_ACCUM_ALPHA_BITS}
- GL_NAME_STACK_DEPTH = $0D70;
- {$EXTERNALSYM GL_NAME_STACK_DEPTH}
- GL_AUTO_NORMAL = $0D80;
- {$EXTERNALSYM GL_AUTO_NORMAL}
- GL_MAP1_COLOR_4 = $0D90;
- {$EXTERNALSYM GL_MAP1_COLOR_4}
- GL_MAP1_INDEX = $0D91;
- {$EXTERNALSYM GL_MAP1_INDEX}
- GL_MAP1_NORMAL = $0D92;
- {$EXTERNALSYM GL_MAP1_NORMAL}
- GL_MAP1_TEXTURE_COORD_1 = $0D93;
- {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_1}
- GL_MAP1_TEXTURE_COORD_2 = $0D94;
- {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_2}
- GL_MAP1_TEXTURE_COORD_3 = $0D95;
- {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_3}
- GL_MAP1_TEXTURE_COORD_4 = $0D96;
- {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_4}
- GL_MAP1_VERTEX_3 = $0D97;
- {$EXTERNALSYM GL_MAP1_VERTEX_3}
- GL_MAP1_VERTEX_4 = $0D98;
- {$EXTERNALSYM GL_MAP1_VERTEX_4}
- GL_MAP2_COLOR_4 = $0DB0;
- {$EXTERNALSYM GL_MAP2_COLOR_4}
- GL_MAP2_INDEX = $0DB1;
- {$EXTERNALSYM GL_MAP2_INDEX}
- GL_MAP2_NORMAL = $0DB2;
- {$EXTERNALSYM GL_MAP2_NORMAL}
- GL_MAP2_TEXTURE_COORD_1 = $0DB3;
- {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_1}
- GL_MAP2_TEXTURE_COORD_2 = $0DB4;
- {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_2}
- GL_MAP2_TEXTURE_COORD_3 = $0DB5;
- {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_3}
- GL_MAP2_TEXTURE_COORD_4 = $0DB6;
- {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_4}
- GL_MAP2_VERTEX_3 = $0DB7;
- {$EXTERNALSYM GL_MAP2_VERTEX_3}
- GL_MAP2_VERTEX_4 = $0DB8;
- {$EXTERNALSYM GL_MAP2_VERTEX_4}
- GL_MAP1_GRID_DOMAIN = $0DD0;
- {$EXTERNALSYM GL_MAP1_GRID_DOMAIN}
- GL_MAP1_GRID_SEGMENTS = $0DD1;
- {$EXTERNALSYM GL_MAP1_GRID_SEGMENTS}
- GL_MAP2_GRID_DOMAIN = $0DD2;
- {$EXTERNALSYM GL_MAP2_GRID_DOMAIN}
- GL_MAP2_GRID_SEGMENTS = $0DD3;
- {$EXTERNALSYM GL_MAP2_GRID_SEGMENTS}
- GL_TEXTURE_1D = $0DE0;
- {$EXTERNALSYM GL_TEXTURE_1D}
- GL_TEXTURE_2D = $0DE1;
- {$EXTERNALSYM GL_TEXTURE_2D}
- GL_TEXTURE_3D = $806F; // GL 1.2
- {$EXTERNALSYM GL_TEXTURE_3D}
- GL_SELECTION_BUFFER_POINTER = $0DF3;
- {$EXTERNALSYM GL_SELECTION_BUFFER_POINTER}
- GL_SELECTION_BUFFER_SIZE = $0DF4;
- {$EXTERNALSYM GL_SELECTION_BUFFER_SIZE}
- GL_POLYGON_OFFSET_UNITS = $2A00;
- {$EXTERNALSYM GL_POLYGON_OFFSET_UNITS}
- GL_POLYGON_OFFSET_POINT = $2A01;
- {$EXTERNALSYM GL_POLYGON_OFFSET_POINT}
- GL_POLYGON_OFFSET_LINE = $2A02;
- {$EXTERNALSYM GL_POLYGON_OFFSET_LINE}
- GL_POLYGON_OFFSET_FILL = $8037;
- {$EXTERNALSYM GL_POLYGON_OFFSET_FILL}
- GL_POLYGON_OFFSET_FACTOR = $8038;
- {$EXTERNALSYM GL_POLYGON_OFFSET_FACTOR}
- GL_TEXTURE_BINDING_1D = $8068;
- {$EXTERNALSYM GL_TEXTURE_BINDING_1D}
- GL_TEXTURE_BINDING_2D = $8069;
- {$EXTERNALSYM GL_TEXTURE_BINDING_2D}
- GL_VERTEX_ARRAY = $8074;
- {$EXTERNALSYM GL_VERTEX_ARRAY}
- GL_NORMAL_ARRAY = $8075;
- {$EXTERNALSYM GL_NORMAL_ARRAY}
- GL_COLOR_ARRAY = $8076;
- {$EXTERNALSYM GL_COLOR_ARRAY}
- GL_INDEX_ARRAY = $8077;
- {$EXTERNALSYM GL_INDEX_ARRAY}
- GL_TEXTURE_COORD_ARRAY = $8078;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY}
- GL_EDGE_FLAG_ARRAY = $8079;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY}
- GL_VERTEX_ARRAY_SIZE = $807A;
- {$EXTERNALSYM GL_VERTEX_ARRAY_SIZE}
- GL_VERTEX_ARRAY_TYPE = $807B;
- {$EXTERNALSYM GL_VERTEX_ARRAY_TYPE}
- GL_VERTEX_ARRAY_STRIDE = $807C;
- {$EXTERNALSYM GL_VERTEX_ARRAY_STRIDE}
- GL_NORMAL_ARRAY_TYPE = $807E;
- {$EXTERNALSYM GL_NORMAL_ARRAY_TYPE}
- GL_NORMAL_ARRAY_STRIDE = $807F;
- {$EXTERNALSYM GL_NORMAL_ARRAY_STRIDE}
- GL_COLOR_ARRAY_SIZE = $8081;
- {$EXTERNALSYM GL_COLOR_ARRAY_SIZE}
- GL_COLOR_ARRAY_TYPE = $8082;
- {$EXTERNALSYM GL_COLOR_ARRAY_TYPE}
- GL_COLOR_ARRAY_STRIDE = $8083;
- {$EXTERNALSYM GL_COLOR_ARRAY_STRIDE}
- GL_INDEX_ARRAY_TYPE = $8085;
- {$EXTERNALSYM GL_INDEX_ARRAY_TYPE}
- GL_INDEX_ARRAY_STRIDE = $8086;
- {$EXTERNALSYM GL_INDEX_ARRAY_STRIDE}
- GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_SIZE}
- GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_TYPE}
- GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_STRIDE}
- GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_STRIDE}
- GL_COLOR_MATRIX = $80B1; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_COLOR_MATRIX}
- GL_COLOR_MATRIX_STACK_DEPTH = $80B2; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_COLOR_MATRIX_STACK_DEPTH}
- GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_MAX_COLOR_MATRIX_STACK_DEPTH}
- GL_POST_COLOR_MATRIX_RED_SCALE = $80B4; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_RED_SCALE}
- GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_GREEN_SCALE}
- GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_BLUE_SCALE}
- GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_ALPHA_SCALE}
- GL_POST_COLOR_MATRIX_RED_BIAS = $80B8; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_RED_BIAS}
- GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_GREEN_BIAS}
- GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_BLUE_BIAS}
- GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB; // GL 1.2 ARB imaging
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_ALPHA_BIAS}
-
- // evaluators
- GL_COEFF = $0A00;
- {$EXTERNALSYM GL_COEFF}
- GL_ORDER = $0A01;
- {$EXTERNALSYM GL_ORDER}
- GL_DOMAIN = $0A02;
- {$EXTERNALSYM GL_DOMAIN}
-
- // texture mapping
- GL_TEXTURE_WIDTH = $1000;
- {$EXTERNALSYM GL_TEXTURE_WIDTH}
- GL_TEXTURE_HEIGHT = $1001;
- {$EXTERNALSYM GL_TEXTURE_HEIGHT}
- GL_TEXTURE_INTERNAL_FORMAT = $1003;
- {$EXTERNALSYM GL_TEXTURE_INTERNAL_FORMAT}
- GL_TEXTURE_COMPONENTS = $1003;
- {$EXTERNALSYM GL_TEXTURE_COMPONENTS}
- GL_TEXTURE_BORDER_COLOR = $1004;
- {$EXTERNALSYM GL_TEXTURE_BORDER_COLOR}
- GL_TEXTURE_BORDER = $1005;
- {$EXTERNALSYM GL_TEXTURE_BORDER}
- GL_TEXTURE_RED_SIZE = $805C;
- {$EXTERNALSYM GL_TEXTURE_RED_SIZE}
- GL_TEXTURE_GREEN_SIZE = $805D;
- {$EXTERNALSYM GL_TEXTURE_GREEN_SIZE}
- GL_TEXTURE_BLUE_SIZE = $805E;
- {$EXTERNALSYM GL_TEXTURE_BLUE_SIZE}
- GL_TEXTURE_ALPHA_SIZE = $805F;
- {$EXTERNALSYM GL_TEXTURE_ALPHA_SIZE}
- GL_TEXTURE_LUMINANCE_SIZE = $8060;
- {$EXTERNALSYM GL_TEXTURE_LUMINANCE_SIZE}
- GL_TEXTURE_INTENSITY_SIZE = $8061;
- {$EXTERNALSYM GL_TEXTURE_INTENSITY_SIZE}
- GL_TEXTURE_PRIORITY = $8066;
- {$EXTERNALSYM GL_TEXTURE_PRIORITY}
- GL_TEXTURE_RESIDENT = $8067;
- {$EXTERNALSYM GL_TEXTURE_RESIDENT}
- GL_BGR = $80E0; // v 1.2
- {$EXTERNALSYM GL_BGR}
- GL_BGRA = $80E1; // v 1.2
- {$EXTERNALSYM GL_BGRA}
- GL_S = $2000;
- {$EXTERNALSYM GL_S}
- GL_T = $2001;
- {$EXTERNALSYM GL_T}
- GL_R = $2002;
- {$EXTERNALSYM GL_R}
- GL_Q = $2003;
- {$EXTERNALSYM GL_Q}
- GL_MODULATE = $2100;
- {$EXTERNALSYM GL_MODULATE}
- GL_DECAL = $2101;
- {$EXTERNALSYM GL_DECAL}
- GL_TEXTURE_ENV_MODE = $2200;
- {$EXTERNALSYM GL_TEXTURE_ENV_MODE}
- GL_TEXTURE_ENV_COLOR = $2201;
- {$EXTERNALSYM GL_TEXTURE_ENV_COLOR}
- GL_TEXTURE_ENV = $2300;
- {$EXTERNALSYM GL_TEXTURE_ENV}
- GL_EYE_LINEAR = $2400;
- {$EXTERNALSYM GL_EYE_LINEAR}
- GL_OBJECT_LINEAR = $2401;
- {$EXTERNALSYM GL_OBJECT_LINEAR}
- GL_SPHERE_MAP = $2402;
- {$EXTERNALSYM GL_SPHERE_MAP}
- GL_TEXTURE_GEN_MODE = $2500;
- {$EXTERNALSYM GL_TEXTURE_GEN_MODE}
- GL_OBJECT_PLANE = $2501;
- {$EXTERNALSYM GL_OBJECT_PLANE}
- GL_EYE_PLANE = $2502;
- {$EXTERNALSYM GL_EYE_PLANE}
- GL_NEAREST = $2600;
- {$EXTERNALSYM GL_NEAREST}
- GL_LINEAR = $2601;
- {$EXTERNALSYM GL_LINEAR}
- GL_NEAREST_MIPMAP_NEAREST = $2700;
- {$EXTERNALSYM GL_NEAREST_MIPMAP_NEAREST}
- GL_LINEAR_MIPMAP_NEAREST = $2701;
- {$EXTERNALSYM GL_LINEAR_MIPMAP_NEAREST}
- GL_NEAREST_MIPMAP_LINEAR = $2702;
- {$EXTERNALSYM GL_NEAREST_MIPMAP_LINEAR}
- GL_LINEAR_MIPMAP_LINEAR = $2703;
- {$EXTERNALSYM GL_LINEAR_MIPMAP_LINEAR}
- GL_TEXTURE_MAG_FILTER = $2800;
- {$EXTERNALSYM GL_TEXTURE_MAG_FILTER}
- GL_TEXTURE_MIN_FILTER = $2801;
- {$EXTERNALSYM GL_TEXTURE_MIN_FILTER}
- GL_TEXTURE_WRAP_R = $8072; // GL 1.2
- {$EXTERNALSYM GL_TEXTURE_WRAP_R}
- GL_TEXTURE_WRAP_S = $2802;
- {$EXTERNALSYM GL_TEXTURE_WRAP_S}
- GL_TEXTURE_WRAP_T = $2803;
- {$EXTERNALSYM GL_TEXTURE_WRAP_T}
- GL_CLAMP_TO_EDGE = $812F; // GL 1.2
- {$EXTERNALSYM GL_CLAMP_TO_EDGE}
- GL_TEXTURE_MIN_LOD = $813A; // GL 1.2
- {$EXTERNALSYM GL_TEXTURE_MIN_LOD}
- GL_TEXTURE_MAX_LOD = $813B; // GL 1.2
- {$EXTERNALSYM GL_TEXTURE_MAX_LOD}
- GL_TEXTURE_BASE_LEVEL = $813C; // GL 1.2
- {$EXTERNALSYM GL_TEXTURE_BASE_LEVEL}
- GL_TEXTURE_MAX_LEVEL = $813D; // GL 1.2
- {$EXTERNALSYM GL_TEXTURE_MAX_LEVEL}
- GL_TEXTURE_DEPTH = $8071; // GL 1.2
- {$EXTERNALSYM GL_TEXTURE_DEPTH}
- GL_PROXY_TEXTURE_1D = $8063;
- {$EXTERNALSYM GL_PROXY_TEXTURE_1D}
- GL_PROXY_TEXTURE_2D = $8064;
- {$EXTERNALSYM GL_PROXY_TEXTURE_2D}
- GL_PROXY_TEXTURE_3D = $8070; // GL 1.2
- {$EXTERNALSYM GL_PROXY_TEXTURE_3D}
- GL_CLAMP = $2900;
- {$EXTERNALSYM GL_CLAMP}
- GL_REPEAT = $2901;
- {$EXTERNALSYM GL_REPEAT}
-
- // hints
- GL_DONT_CARE = $1100;
- {$EXTERNALSYM GL_DONT_CARE}
- GL_FASTEST = $1101;
- {$EXTERNALSYM GL_FASTEST}
- GL_NICEST = $1102;
- {$EXTERNALSYM GL_NICEST}
-
- // data types
- GL_BYTE = $1400;
- {$EXTERNALSYM GL_BYTE}
- GL_UNSIGNED_BYTE = $1401;
- {$EXTERNALSYM GL_UNSIGNED_BYTE}
- GL_SHORT = $1402;
- {$EXTERNALSYM GL_SHORT}
- GL_UNSIGNED_SHORT = $1403;
- {$EXTERNALSYM GL_UNSIGNED_SHORT}
- GL_INT = $1404;
- {$EXTERNALSYM GL_INT}
- GL_UNSIGNED_INT = $1405;
- {$EXTERNALSYM GL_UNSIGNED_INT}
- GL_FLOAT = $1406;
- {$EXTERNALSYM GL_FLOAT}
- GL_2_BYTES = $1407;
- {$EXTERNALSYM GL_2_BYTES}
- GL_3_BYTES = $1408;
- {$EXTERNALSYM GL_3_BYTES}
- GL_4_BYTES = $1409;
- {$EXTERNALSYM GL_4_BYTES}
- GL_DOUBLE = $140A;
- {$EXTERNALSYM GL_DOUBLE}
- GL_DOUBLE_EXT = $140A;
- {$EXTERNALSYM GL_DOUBLE_EXT}
-
- // logic operations
- GL_CLEAR = $1500;
- {$EXTERNALSYM GL_CLEAR}
- GL_AND = $1501;
- {$EXTERNALSYM GL_AND}
- GL_AND_REVERSE = $1502;
- {$EXTERNALSYM GL_AND_REVERSE}
- GL_COPY = $1503;
- {$EXTERNALSYM GL_COPY}
- GL_AND_INVERTED = $1504;
- {$EXTERNALSYM GL_AND_INVERTED}
- GL_NOOP = $1505;
- {$EXTERNALSYM GL_NOOP}
- GL_XOR = $1506;
- {$EXTERNALSYM GL_XOR}
- GL_OR = $1507;
- {$EXTERNALSYM GL_OR}
- GL_NOR = $1508;
- {$EXTERNALSYM GL_NOR}
- GL_EQUIV = $1509;
- {$EXTERNALSYM GL_EQUIV}
- GL_INVERT = $150A;
- {$EXTERNALSYM GL_INVERT}
- GL_OR_REVERSE = $150B;
- {$EXTERNALSYM GL_OR_REVERSE}
- GL_COPY_INVERTED = $150C;
- {$EXTERNALSYM GL_COPY_INVERTED}
- GL_OR_INVERTED = $150D;
- {$EXTERNALSYM GL_OR_INVERTED}
- GL_NAND = $150E;
- {$EXTERNALSYM GL_NAND}
- GL_SET = $150F;
- {$EXTERNALSYM GL_SET}
-
- // PixelCopyType
- GL_COLOR = $1800;
- {$EXTERNALSYM GL_COLOR}
- GL_DEPTH = $1801;
- {$EXTERNALSYM GL_DEPTH}
- GL_STENCIL = $1802;
- {$EXTERNALSYM GL_STENCIL}
-
- // pixel formats
- GL_COLOR_INDEX = $1900;
- {$EXTERNALSYM GL_COLOR_INDEX}
- GL_STENCIL_INDEX = $1901;
- {$EXTERNALSYM GL_STENCIL_INDEX}
- GL_DEPTH_COMPONENT = $1902;
- {$EXTERNALSYM GL_DEPTH_COMPONENT}
- GL_RED = $1903;
- {$EXTERNALSYM GL_RED}
- GL_GREEN = $1904;
- {$EXTERNALSYM GL_GREEN}
- GL_BLUE = $1905;
- {$EXTERNALSYM GL_BLUE}
- GL_ALPHA = $1906;
- {$EXTERNALSYM GL_ALPHA}
- GL_RGB = $1907;
- {$EXTERNALSYM GL_RGB}
- GL_RGBA = $1908;
- {$EXTERNALSYM GL_RGBA}
- GL_LUMINANCE = $1909;
- {$EXTERNALSYM GL_LUMINANCE}
- GL_LUMINANCE_ALPHA = $190A;
- {$EXTERNALSYM GL_LUMINANCE_ALPHA}
-
- // pixel type
- GL_BITMAP = $1A00;
- {$EXTERNALSYM GL_BITMAP}
-
- // rendering modes
- GL_RENDER = $1C00;
- {$EXTERNALSYM GL_RENDER}
- GL_FEEDBACK = $1C01;
- {$EXTERNALSYM GL_FEEDBACK}
- GL_SELECT = $1C02;
- {$EXTERNALSYM GL_SELECT}
-
- // implementation strings
- GL_VENDOR = $1F00;
- {$EXTERNALSYM GL_VENDOR}
- GL_RENDERER = $1F01;
- {$EXTERNALSYM GL_RENDERER}
- GL_VERSION = $1F02;
- {$EXTERNALSYM GL_VERSION}
- GL_EXTENSIONS = $1F03;
- {$EXTERNALSYM GL_EXTENSIONS}
-
- // pixel formats
- GL_R3_G3_B2 = $2A10;
- {$EXTERNALSYM GL_R3_G3_B2}
- GL_ALPHA4 = $803B;
- {$EXTERNALSYM GL_ALPHA4}
- GL_ALPHA8 = $803C;
- {$EXTERNALSYM GL_ALPHA8}
- GL_ALPHA12 = $803D;
- {$EXTERNALSYM GL_ALPHA12}
- GL_ALPHA16 = $803E;
- {$EXTERNALSYM GL_ALPHA16}
- GL_LUMINANCE4 = $803F;
- {$EXTERNALSYM GL_LUMINANCE4}
- GL_LUMINANCE8 = $8040;
- {$EXTERNALSYM GL_LUMINANCE8}
- GL_LUMINANCE12 = $8041;
- {$EXTERNALSYM GL_LUMINANCE12}
- GL_LUMINANCE16 = $8042;
- {$EXTERNALSYM GL_LUMINANCE16}
- GL_LUMINANCE4_ALPHA4 = $8043;
- {$EXTERNALSYM GL_LUMINANCE4_ALPHA4}
- GL_LUMINANCE6_ALPHA2 = $8044;
- {$EXTERNALSYM GL_LUMINANCE6_ALPHA2}
- GL_LUMINANCE8_ALPHA8 = $8045;
- {$EXTERNALSYM GL_LUMINANCE8_ALPHA8}
- GL_LUMINANCE12_ALPHA4 = $8046;
- {$EXTERNALSYM GL_LUMINANCE12_ALPHA4}
- GL_LUMINANCE12_ALPHA12 = $8047;
- {$EXTERNALSYM GL_LUMINANCE12_ALPHA12}
- GL_LUMINANCE16_ALPHA16 = $8048;
- {$EXTERNALSYM GL_LUMINANCE16_ALPHA16}
- GL_INTENSITY = $8049;
- {$EXTERNALSYM GL_INTENSITY}
- GL_INTENSITY4 = $804A;
- {$EXTERNALSYM GL_INTENSITY4}
- GL_INTENSITY8 = $804B;
- {$EXTERNALSYM GL_INTENSITY8}
- GL_INTENSITY12 = $804C;
- {$EXTERNALSYM GL_INTENSITY12}
- GL_INTENSITY16 = $804D;
- {$EXTERNALSYM GL_INTENSITY16}
- GL_RGB4 = $804F;
- {$EXTERNALSYM GL_RGB4}
- GL_RGB5 = $8050;
- {$EXTERNALSYM GL_RGB5}
- GL_RGB8 = $8051;
- {$EXTERNALSYM GL_RGB8}
- GL_RGB10 = $8052;
- {$EXTERNALSYM GL_RGB10}
- GL_RGB12 = $8053;
- {$EXTERNALSYM GL_RGB12}
- GL_RGB16 = $8054;
- {$EXTERNALSYM GL_RGB16}
- GL_RGBA2 = $8055;
- {$EXTERNALSYM GL_RGBA2}
- GL_RGBA4 = $8056;
- {$EXTERNALSYM GL_RGBA4}
- GL_RGB5_A1 = $8057;
- {$EXTERNALSYM GL_RGB5_A1}
- GL_RGBA8 = $8058;
- {$EXTERNALSYM GL_RGBA8}
- GL_RGB10_A2 = $8059;
- {$EXTERNALSYM GL_RGB10_A2}
- GL_RGBA12 = $805A;
- {$EXTERNALSYM GL_RGBA12}
- GL_RGBA16 = $805B;
- {$EXTERNALSYM GL_RGBA16}
- UNSIGNED_BYTE_3_3_2 = $8032; // GL 1.2
- {$EXTERNALSYM UNSIGNED_BYTE_3_3_2}
- UNSIGNED_BYTE_2_3_3_REV = $8362; // GL 1.2
- {$EXTERNALSYM UNSIGNED_BYTE_2_3_3_REV}
- UNSIGNED_SHORT_5_6_5 = $8363; // GL 1.2
- {$EXTERNALSYM UNSIGNED_SHORT_5_6_5}
- UNSIGNED_SHORT_5_6_5_REV = $8364; // GL 1.2
- {$EXTERNALSYM UNSIGNED_SHORT_5_6_5_REV}
- UNSIGNED_SHORT_4_4_4_4 = $8033; // GL 1.2
- {$EXTERNALSYM UNSIGNED_SHORT_4_4_4_4}
- UNSIGNED_SHORT_4_4_4_4_REV = $8365; // GL 1.2
- {$EXTERNALSYM UNSIGNED_SHORT_4_4_4_4_REV}
- UNSIGNED_SHORT_5_5_5_1 = $8034; // GL 1.2
- {$EXTERNALSYM UNSIGNED_SHORT_5_5_5_1}
- UNSIGNED_SHORT_1_5_5_5_REV = $8366; // GL 1.2
- {$EXTERNALSYM UNSIGNED_SHORT_1_5_5_5_REV}
- UNSIGNED_INT_8_8_8_8 = $8035; // GL 1.2
- {$EXTERNALSYM UNSIGNED_INT_8_8_8_8}
- UNSIGNED_INT_8_8_8_8_REV = $8367; // GL 1.2
- {$EXTERNALSYM UNSIGNED_INT_8_8_8_8_REV}
- UNSIGNED_INT_10_10_10_2 = $8036; // GL 1.2
- {$EXTERNALSYM UNSIGNED_INT_10_10_10_2}
- UNSIGNED_INT_2_10_10_10_REV = $8368; // GL 1.2
- {$EXTERNALSYM UNSIGNED_INT_2_10_10_10_REV}
-
- // interleaved arrays formats
- GL_V2F = $2A20;
- {$EXTERNALSYM GL_V2F}
- GL_V3F = $2A21;
- {$EXTERNALSYM GL_V3F}
- GL_C4UB_V2F = $2A22;
- {$EXTERNALSYM GL_C4UB_V2F}
- GL_C4UB_V3F = $2A23;
- {$EXTERNALSYM GL_C4UB_V3F}
- GL_C3F_V3F = $2A24;
- {$EXTERNALSYM GL_C3F_V3F}
- GL_N3F_V3F = $2A25;
- {$EXTERNALSYM GL_N3F_V3F}
- GL_C4F_N3F_V3F = $2A26;
- {$EXTERNALSYM GL_C4F_N3F_V3F}
- GL_T2F_V3F = $2A27;
- {$EXTERNALSYM GL_T2F_V3F}
- GL_T4F_V4F = $2A28;
- {$EXTERNALSYM GL_T4F_V4F}
- GL_T2F_C4UB_V3F = $2A29;
- {$EXTERNALSYM GL_T2F_C4UB_V3F}
- GL_T2F_C3F_V3F = $2A2A;
- {$EXTERNALSYM GL_T2F_C3F_V3F}
- GL_T2F_N3F_V3F = $2A2B;
- {$EXTERNALSYM GL_T2F_N3F_V3F}
- GL_T2F_C4F_N3F_V3F = $2A2C;
- {$EXTERNALSYM GL_T2F_C4F_N3F_V3F}
- GL_T4F_C4F_N3F_V4F = $2A2D;
- {$EXTERNALSYM GL_T4F_C4F_N3F_V4F}
-
- // clip planes
- GL_CLIP_PLANE0 = $3000;
- {$EXTERNALSYM GL_CLIP_PLANE0}
- GL_CLIP_PLANE1 = $3001;
- {$EXTERNALSYM GL_CLIP_PLANE1}
- GL_CLIP_PLANE2 = $3002;
- {$EXTERNALSYM GL_CLIP_PLANE2}
- GL_CLIP_PLANE3 = $3003;
- {$EXTERNALSYM GL_CLIP_PLANE3}
- GL_CLIP_PLANE4 = $3004;
- {$EXTERNALSYM GL_CLIP_PLANE4}
- GL_CLIP_PLANE5 = $3005;
- {$EXTERNALSYM GL_CLIP_PLANE5}
-
- // miscellaneous
- GL_DITHER = $0BD0;
- {$EXTERNALSYM GL_DITHER}
-
- // ----- extensions enumerants -----
- // EXT_abgr
- GL_ABGR_EXT = $8000;
- {$EXTERNALSYM GL_ABGR_EXT}
-
- // EXT_packed_pixels
- GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
- {$EXTERNALSYM GL_UNSIGNED_BYTE_3_3_2_EXT}
- GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
- {$EXTERNALSYM GL_UNSIGNED_SHORT_4_4_4_4_EXT}
- GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
- {$EXTERNALSYM GL_UNSIGNED_SHORT_5_5_5_1_EXT}
- GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
- {$EXTERNALSYM GL_UNSIGNED_INT_8_8_8_8_EXT}
- GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
- {$EXTERNALSYM GL_UNSIGNED_INT_10_10_10_2_EXT}
-
- // EXT_vertex_array
- GL_VERTEX_ARRAY_EXT = $8074;
- {$EXTERNALSYM GL_VERTEX_ARRAY_EXT}
- GL_NORMAL_ARRAY_EXT = $8075;
- {$EXTERNALSYM GL_NORMAL_ARRAY_EXT}
- GL_COLOR_ARRAY_EXT = $8076;
- {$EXTERNALSYM GL_COLOR_ARRAY_EXT}
- GL_INDEX_ARRAY_EXT = $8077;
- {$EXTERNALSYM GL_INDEX_ARRAY_EXT}
- GL_TEXTURE_COORD_ARRAY_EXT = $8078;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_EXT}
- GL_EDGE_FLAG_ARRAY_EXT = $8079;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_EXT}
- GL_VERTEX_ARRAY_SIZE_EXT = $807A;
- {$EXTERNALSYM GL_VERTEX_ARRAY_SIZE_EXT}
- GL_VERTEX_ARRAY_TYPE_EXT = $807B;
- {$EXTERNALSYM GL_VERTEX_ARRAY_TYPE_EXT}
- GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
- {$EXTERNALSYM GL_VERTEX_ARRAY_STRIDE_EXT}
- GL_VERTEX_ARRAY_COUNT_EXT = $807D;
- {$EXTERNALSYM GL_VERTEX_ARRAY_COUNT_EXT}
- GL_NORMAL_ARRAY_TYPE_EXT = $807E;
- {$EXTERNALSYM GL_NORMAL_ARRAY_TYPE_EXT}
- GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
- {$EXTERNALSYM GL_NORMAL_ARRAY_STRIDE_EXT}
- GL_NORMAL_ARRAY_COUNT_EXT = $8080;
- {$EXTERNALSYM GL_NORMAL_ARRAY_COUNT_EXT}
- GL_COLOR_ARRAY_SIZE_EXT = $8081;
- {$EXTERNALSYM GL_COLOR_ARRAY_SIZE_EXT}
- GL_COLOR_ARRAY_TYPE_EXT = $8082;
- {$EXTERNALSYM GL_COLOR_ARRAY_TYPE_EXT}
- GL_COLOR_ARRAY_STRIDE_EXT = $8083;
- {$EXTERNALSYM GL_COLOR_ARRAY_STRIDE_EXT}
- GL_COLOR_ARRAY_COUNT_EXT = $8084;
- {$EXTERNALSYM GL_COLOR_ARRAY_COUNT_EXT}
- GL_INDEX_ARRAY_TYPE_EXT = $8085;
- {$EXTERNALSYM GL_INDEX_ARRAY_TYPE_EXT}
- GL_INDEX_ARRAY_STRIDE_EXT = $8086;
- {$EXTERNALSYM GL_INDEX_ARRAY_STRIDE_EXT}
- GL_INDEX_ARRAY_COUNT_EXT = $8087;
- {$EXTERNALSYM GL_INDEX_ARRAY_COUNT_EXT}
- GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_SIZE_EXT}
- GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_TYPE_EXT}
- GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_STRIDE_EXT}
- GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_COUNT_EXT}
- GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_STRIDE_EXT}
- GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_COUNT_EXT}
- GL_VERTEX_ARRAY_POINTER_EXT = $808E;
- {$EXTERNALSYM GL_VERTEX_ARRAY_POINTER_EXT}
- GL_NORMAL_ARRAY_POINTER_EXT = $808F;
- {$EXTERNALSYM GL_NORMAL_ARRAY_POINTER_EXT}
- GL_COLOR_ARRAY_POINTER_EXT = $8090;
- {$EXTERNALSYM GL_COLOR_ARRAY_POINTER_EXT}
- GL_INDEX_ARRAY_POINTER_EXT = $8091;
- {$EXTERNALSYM GL_INDEX_ARRAY_POINTER_EXT}
- GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_POINTER_EXT}
- GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_POINTER_EXT}
-
- // EXT_color_table
- GL_TABLE_TOO_LARGE_EXT = $8031;
- {$EXTERNALSYM GL_TABLE_TOO_LARGE_EXT}
- GL_COLOR_TABLE_EXT = $80D0;
- {$EXTERNALSYM GL_COLOR_TABLE_EXT}
- GL_POST_CONVOLUTION_COLOR_TABLE_EXT = $80D1;
- {$EXTERNALSYM GL_POST_CONVOLUTION_COLOR_TABLE_EXT}
- GL_POST_COLOR_MATRIX_COLOR_TABLE_EXT = $80D2;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_COLOR_TABLE_EXT}
- GL_PROXY_COLOR_TABLE_EXT = $80D3;
- {$EXTERNALSYM GL_PROXY_COLOR_TABLE_EXT}
- GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_EXT = $80D4;
- {$EXTERNALSYM GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_EXT}
- GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_EXT = $80D5;
- {$EXTERNALSYM GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_EXT}
- GL_COLOR_TABLE_SCALE_EXT = $80D6;
- {$EXTERNALSYM GL_COLOR_TABLE_SCALE_EXT}
- GL_COLOR_TABLE_BIAS_EXT = $80D7;
- {$EXTERNALSYM GL_COLOR_TABLE_BIAS_EXT}
- GL_COLOR_TABLE_FORMAT_EXT = $80D8;
- {$EXTERNALSYM GL_COLOR_TABLE_FORMAT_EXT}
- GL_COLOR_TABLE_WIDTH_EXT = $80D9;
- {$EXTERNALSYM GL_COLOR_TABLE_WIDTH_EXT}
- GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
- {$EXTERNALSYM GL_COLOR_TABLE_RED_SIZE_EXT}
- GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
- {$EXTERNALSYM GL_COLOR_TABLE_GREEN_SIZE_EXT}
- GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
- {$EXTERNALSYM GL_COLOR_TABLE_BLUE_SIZE_EXT}
- GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
- {$EXTERNALSYM GL_COLOR_TABLE_ALPHA_SIZE_EXT}
- GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
- {$EXTERNALSYM GL_COLOR_TABLE_LUMINANCE_SIZE_EXT}
- GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
- {$EXTERNALSYM GL_COLOR_TABLE_INTENSITY_SIZE_EXT}
-
- // EXT_bgra
- GL_BGR_EXT = $80E0;
- {$EXTERNALSYM GL_BGR_EXT}
- GL_BGRA_EXT = $80E1;
- {$EXTERNALSYM GL_BGRA_EXT}
-
- // EXT_paletted_texture
- GL_COLOR_INDEX1_EXT = $80E2;
- {$EXTERNALSYM GL_COLOR_INDEX1_EXT}
- GL_COLOR_INDEX2_EXT = $80E3;
- {$EXTERNALSYM GL_COLOR_INDEX2_EXT}
- GL_COLOR_INDEX4_EXT = $80E4;
- {$EXTERNALSYM GL_COLOR_INDEX4_EXT}
- GL_COLOR_INDEX8_EXT = $80E5;
- {$EXTERNALSYM GL_COLOR_INDEX8_EXT}
- GL_COLOR_INDEX12_EXT = $80E6;
- {$EXTERNALSYM GL_COLOR_INDEX12_EXT}
- GL_COLOR_INDEX16_EXT = $80E7;
- {$EXTERNALSYM GL_COLOR_INDEX16_EXT}
-
- // EXT_blend_color
- GL_CONSTANT_COLOR_EXT = $8001;
- {$EXTERNALSYM GL_CONSTANT_COLOR_EXT}
- GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
- {$EXTERNALSYM GL_ONE_MINUS_CONSTANT_COLOR_EXT}
- GL_CONSTANT_ALPHA_EXT = $8003;
- {$EXTERNALSYM GL_CONSTANT_ALPHA_EXT}
- GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
- {$EXTERNALSYM GL_ONE_MINUS_CONSTANT_ALPHA_EXT}
- GL_BLEND_COLOR_EXT = $8005;
- {$EXTERNALSYM GL_BLEND_COLOR_EXT}
-
- // EXT_blend_minmax
- GL_FUNC_ADD_EXT = $8006;
- {$EXTERNALSYM GL_FUNC_ADD_EXT}
- GL_MIN_EXT = $8007;
- {$EXTERNALSYM GL_MIN_EXT}
- GL_MAX_EXT = $8008;
- {$EXTERNALSYM GL_MAX_EXT}
- GL_BLEND_EQUATION_EXT = $8009;
- {$EXTERNALSYM GL_BLEND_EQUATION_EXT}
-
- // EXT_blend_subtract
- GL_FUNC_SUBTRACT_EXT = $800A;
- {$EXTERNALSYM GL_FUNC_SUBTRACT_EXT}
- GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
- {$EXTERNALSYM GL_FUNC_REVERSE_SUBTRACT_EXT}
-
- // EXT_convolution
- GL_CONVOLUTION_1D_EXT = $8010;
- {$EXTERNALSYM GL_CONVOLUTION_1D_EXT}
- GL_CONVOLUTION_2D_EXT = $8011;
- {$EXTERNALSYM GL_CONVOLUTION_2D_EXT}
- GL_SEPARABLE_2D_EXT = $8012;
- {$EXTERNALSYM GL_SEPARABLE_2D_EXT}
- GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
- {$EXTERNALSYM GL_CONVOLUTION_BORDER_MODE_EXT}
- GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
- {$EXTERNALSYM GL_CONVOLUTION_FILTER_SCALE_EXT}
- GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
- {$EXTERNALSYM GL_CONVOLUTION_FILTER_BIAS_EXT}
- GL_REDUCE_EXT = $8016;
- {$EXTERNALSYM GL_REDUCE_EXT}
- GL_CONVOLUTION_FORMAT_EXT = $8017;
- {$EXTERNALSYM GL_CONVOLUTION_FORMAT_EXT}
- GL_CONVOLUTION_WIDTH_EXT = $8018;
- {$EXTERNALSYM GL_CONVOLUTION_WIDTH_EXT}
- GL_CONVOLUTION_HEIGHT_EXT = $8019;
- {$EXTERNALSYM GL_CONVOLUTION_HEIGHT_EXT}
- GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
- {$EXTERNALSYM GL_MAX_CONVOLUTION_WIDTH_EXT}
- GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
- {$EXTERNALSYM GL_MAX_CONVOLUTION_HEIGHT_EXT}
- GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
- {$EXTERNALSYM GL_POST_CONVOLUTION_RED_SCALE_EXT}
- GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
- {$EXTERNALSYM GL_POST_CONVOLUTION_GREEN_SCALE_EXT}
- GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
- {$EXTERNALSYM GL_POST_CONVOLUTION_BLUE_SCALE_EXT}
- GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
- {$EXTERNALSYM GL_POST_CONVOLUTION_ALPHA_SCALE_EXT}
- GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
- {$EXTERNALSYM GL_POST_CONVOLUTION_RED_BIAS_EXT}
- GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
- {$EXTERNALSYM GL_POST_CONVOLUTION_GREEN_BIAS_EXT}
- GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
- {$EXTERNALSYM GL_POST_CONVOLUTION_BLUE_BIAS_EXT}
- GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
- {$EXTERNALSYM GL_POST_CONVOLUTION_ALPHA_BIAS_EXT}
-
- // EXT_histogram
- GL_HISTOGRAM_EXT = $8024;
- {$EXTERNALSYM GL_HISTOGRAM_EXT}
- GL_PROXY_HISTOGRAM_EXT = $8025;
- {$EXTERNALSYM GL_PROXY_HISTOGRAM_EXT}
- GL_HISTOGRAM_WIDTH_EXT = $8026;
- {$EXTERNALSYM GL_HISTOGRAM_WIDTH_EXT}
- GL_HISTOGRAM_FORMAT_EXT = $8027;
- {$EXTERNALSYM GL_HISTOGRAM_FORMAT_EXT}
- GL_HISTOGRAM_RED_SIZE_EXT = $8028;
- {$EXTERNALSYM GL_HISTOGRAM_RED_SIZE_EXT}
- GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
- {$EXTERNALSYM GL_HISTOGRAM_GREEN_SIZE_EXT}
- GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
- {$EXTERNALSYM GL_HISTOGRAM_BLUE_SIZE_EXT}
- GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
- {$EXTERNALSYM GL_HISTOGRAM_ALPHA_SIZE_EXT}
- GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
- {$EXTERNALSYM GL_HISTOGRAM_LUMINANCE_SIZE_EXT}
- GL_HISTOGRAM_SINK_EXT = $802D;
- {$EXTERNALSYM GL_HISTOGRAM_SINK_EXT}
- GL_MINMAX_EXT = $802E;
- {$EXTERNALSYM GL_MINMAX_EXT}
- GL_MINMAX_FORMAT_EXT = $802F;
- {$EXTERNALSYM GL_MINMAX_FORMAT_EXT}
- GL_MINMAX_SINK_EXT = $8030;
- {$EXTERNALSYM GL_MINMAX_SINK_EXT}
-
- // EXT_polygon_offset
- GL_POLYGON_OFFSET_EXT = $8037;
- {$EXTERNALSYM GL_POLYGON_OFFSET_EXT}
- GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
- {$EXTERNALSYM GL_POLYGON_OFFSET_FACTOR_EXT}
- GL_POLYGON_OFFSET_BIAS_EXT = $8039;
- {$EXTERNALSYM GL_POLYGON_OFFSET_BIAS_EXT}
-
- // EXT_texture
- GL_ALPHA4_EXT = $803B;
- {$EXTERNALSYM GL_ALPHA4_EXT}
- GL_ALPHA8_EXT = $803C;
- {$EXTERNALSYM GL_ALPHA8_EXT}
- GL_ALPHA12_EXT = $803D;
- {$EXTERNALSYM GL_ALPHA12_EXT}
- GL_ALPHA16_EXT = $803E;
- {$EXTERNALSYM GL_ALPHA16_EXT}
- GL_LUMINANCE4_EXT = $803F;
- {$EXTERNALSYM GL_LUMINANCE4_EXT}
- GL_LUMINANCE8_EXT = $8040;
- {$EXTERNALSYM GL_LUMINANCE8_EXT}
- GL_LUMINANCE12_EXT = $8041;
- {$EXTERNALSYM GL_LUMINANCE12_EXT}
- GL_LUMINANCE16_EXT = $8042;
- {$EXTERNALSYM GL_LUMINANCE16_EXT}
- GL_LUMINANCE4_ALPHA4_EXT = $8043;
- {$EXTERNALSYM GL_LUMINANCE4_ALPHA4_EXT}
- GL_LUMINANCE6_ALPHA2_EXT = $8044;
- {$EXTERNALSYM GL_LUMINANCE6_ALPHA2_EXT}
- GL_LUMINANCE8_ALPHA8_EXT = $8045;
- {$EXTERNALSYM GL_LUMINANCE8_ALPHA8_EXT}
- GL_LUMINANCE12_ALPHA4_EXT = $8046;
- {$EXTERNALSYM GL_LUMINANCE12_ALPHA4_EXT}
- GL_LUMINANCE12_ALPHA12_EXT = $8047;
- {$EXTERNALSYM GL_LUMINANCE12_ALPHA12_EXT}
- GL_LUMINANCE16_ALPHA16_EXT = $8048;
- {$EXTERNALSYM GL_LUMINANCE16_ALPHA16_EXT}
- GL_INTENSITY_EXT = $8049;
- {$EXTERNALSYM GL_INTENSITY_EXT}
- GL_INTENSITY4_EXT = $804A;
- {$EXTERNALSYM GL_INTENSITY4_EXT}
- GL_INTENSITY8_EXT = $804B;
- {$EXTERNALSYM GL_INTENSITY8_EXT}
- GL_INTENSITY12_EXT = $804C;
- {$EXTERNALSYM GL_INTENSITY12_EXT}
- GL_INTENSITY16_EXT = $804D;
- {$EXTERNALSYM GL_INTENSITY16_EXT}
- GL_RGB2_EXT = $804E;
- {$EXTERNALSYM GL_RGB2_EXT}
- GL_RGB4_EXT = $804F;
- {$EXTERNALSYM GL_RGB4_EXT}
- GL_RGB5_EXT = $8050;
- {$EXTERNALSYM GL_RGB5_EXT}
- GL_RGB8_EXT = $8051;
- {$EXTERNALSYM GL_RGB8_EXT}
- GL_RGB10_EXT = $8052;
- {$EXTERNALSYM GL_RGB10_EXT}
- GL_RGB12_EXT = $8053;
- {$EXTERNALSYM GL_RGB12_EXT}
- GL_RGB16_EXT = $8054;
- {$EXTERNALSYM GL_RGB16_EXT}
- GL_RGBA2_EXT = $8055;
- {$EXTERNALSYM GL_RGBA2_EXT}
- GL_RGBA4_EXT = $8056;
- {$EXTERNALSYM GL_RGBA4_EXT}
- GL_RGB5_A1_EXT = $8057;
- {$EXTERNALSYM GL_RGB5_A1_EXT}
- GL_RGBA8_EXT = $8058;
- {$EXTERNALSYM GL_RGBA8_EXT}
- GL_RGB10_A2_EXT = $8059;
- {$EXTERNALSYM GL_RGB10_A2_EXT}
- GL_RGBA12_EXT = $805A;
- {$EXTERNALSYM GL_RGBA12_EXT}
- GL_RGBA16_EXT = $805B;
- {$EXTERNALSYM GL_RGBA16_EXT}
- GL_TEXTURE_RED_SIZE_EXT = $805C;
- {$EXTERNALSYM GL_TEXTURE_RED_SIZE_EXT}
- GL_TEXTURE_GREEN_SIZE_EXT = $805D;
- {$EXTERNALSYM GL_TEXTURE_GREEN_SIZE_EXT}
- GL_TEXTURE_BLUE_SIZE_EXT = $805E;
- {$EXTERNALSYM GL_TEXTURE_BLUE_SIZE_EXT}
- GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
- {$EXTERNALSYM GL_TEXTURE_ALPHA_SIZE_EXT}
- GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
- {$EXTERNALSYM GL_TEXTURE_LUMINANCE_SIZE_EXT}
- GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
- {$EXTERNALSYM GL_TEXTURE_INTENSITY_SIZE_EXT}
- GL_REPLACE_EXT = $8062;
- {$EXTERNALSYM GL_REPLACE_EXT}
- GL_PROXY_TEXTURE_1D_EXT = $8063;
- {$EXTERNALSYM GL_PROXY_TEXTURE_1D_EXT}
- GL_PROXY_TEXTURE_2D_EXT = $8064;
- {$EXTERNALSYM GL_PROXY_TEXTURE_2D_EXT}
- GL_TEXTURE_TOO_LARGE_EXT = $8065;
- {$EXTERNALSYM GL_TEXTURE_TOO_LARGE_EXT}
-
- // EXT_texture_object
- GL_TEXTURE_PRIORITY_EXT = $8066;
- {$EXTERNALSYM GL_TEXTURE_PRIORITY_EXT}
- GL_TEXTURE_RESIDENT_EXT = $8067;
- {$EXTERNALSYM GL_TEXTURE_RESIDENT_EXT}
- GL_TEXTURE_1D_BINDING_EXT = $8068;
- {$EXTERNALSYM GL_TEXTURE_1D_BINDING_EXT}
- GL_TEXTURE_2D_BINDING_EXT = $8069;
- {$EXTERNALSYM GL_TEXTURE_2D_BINDING_EXT}
- GL_TEXTURE_3D_BINDING_EXT = $806A;
- {$EXTERNALSYM GL_TEXTURE_3D_BINDING_EXT}
-
- // EXT_texture3D
- GL_PACK_SKIP_IMAGES_EXT = $806B;
- {$EXTERNALSYM GL_PACK_SKIP_IMAGES_EXT}
- GL_PACK_IMAGE_HEIGHT_EXT = $806C;
- {$EXTERNALSYM GL_PACK_IMAGE_HEIGHT_EXT}
- GL_UNPACK_SKIP_IMAGES_EXT = $806D;
- {$EXTERNALSYM GL_UNPACK_SKIP_IMAGES_EXT}
- GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
- {$EXTERNALSYM GL_UNPACK_IMAGE_HEIGHT_EXT}
- GL_TEXTURE_3D_EXT = $806F;
- {$EXTERNALSYM GL_TEXTURE_3D_EXT}
- GL_PROXY_TEXTURE_3D_EXT = $8070;
- {$EXTERNALSYM GL_PROXY_TEXTURE_3D_EXT}
- GL_TEXTURE_DEPTH_EXT = $8071;
- {$EXTERNALSYM GL_TEXTURE_DEPTH_EXT}
- GL_TEXTURE_WRAP_R_EXT = $8072;
- {$EXTERNALSYM GL_TEXTURE_WRAP_R_EXT}
- GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
- {$EXTERNALSYM GL_MAX_3D_TEXTURE_SIZE_EXT}
-
- // SGI_color_matrix
- GL_COLOR_MATRIX_SGI = $80B1;
- {$EXTERNALSYM GL_COLOR_MATRIX_SGI}
- GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
- {$EXTERNALSYM GL_COLOR_MATRIX_STACK_DEPTH_SGI}
- GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
- {$EXTERNALSYM GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI}
- GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_RED_SCALE_SGI}
- GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI}
- GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI}
- GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI}
- GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_RED_BIAS_SGI}
- GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI}
- GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI}
- GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI}
-
- // SGI_texture_color_table
- GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
- {$EXTERNALSYM GL_TEXTURE_COLOR_TABLE_SGI}
- GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
- {$EXTERNALSYM GL_PROXY_TEXTURE_COLOR_TABLE_SGI}
- GL_TEXTURE_COLOR_TABLE_BIAS_SGI = $80BE;
- {$EXTERNALSYM GL_TEXTURE_COLOR_TABLE_BIAS_SGI}
- GL_TEXTURE_COLOR_TABLE_SCALE_SGI = $80BF;
- {$EXTERNALSYM GL_TEXTURE_COLOR_TABLE_SCALE_SGI}
-
- // SGI_color_table
- GL_COLOR_TABLE_SGI = $80D0;
- {$EXTERNALSYM GL_COLOR_TABLE_SGI}
- GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
- {$EXTERNALSYM GL_POST_CONVOLUTION_COLOR_TABLE_SGI}
- GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
- {$EXTERNALSYM GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI}
- GL_PROXY_COLOR_TABLE_SGI = $80D3;
- {$EXTERNALSYM GL_PROXY_COLOR_TABLE_SGI}
- GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
- {$EXTERNALSYM GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI}
- GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
- {$EXTERNALSYM GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI}
- GL_COLOR_TABLE_SCALE_SGI = $80D6;
- {$EXTERNALSYM GL_COLOR_TABLE_SCALE_SGI}
- GL_COLOR_TABLE_BIAS_SGI = $80D7;
- {$EXTERNALSYM GL_COLOR_TABLE_BIAS_SGI}
- GL_COLOR_TABLE_FORMAT_SGI = $80D8;
- {$EXTERNALSYM GL_COLOR_TABLE_FORMAT_SGI}
- GL_COLOR_TABLE_WIDTH_SGI = $80D9;
- {$EXTERNALSYM GL_COLOR_TABLE_WIDTH_SGI}
- GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
- {$EXTERNALSYM GL_COLOR_TABLE_RED_SIZE_SGI}
- GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
- {$EXTERNALSYM GL_COLOR_TABLE_GREEN_SIZE_SGI}
- GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
- {$EXTERNALSYM GL_COLOR_TABLE_BLUE_SIZE_SGI}
- GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
- {$EXTERNALSYM GL_COLOR_TABLE_ALPHA_SIZE_SGI}
- GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
- {$EXTERNALSYM GL_COLOR_TABLE_LUMINANCE_SIZE_SGI}
- GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
- {$EXTERNALSYM GL_COLOR_TABLE_INTENSITY_SIZE_SGI}
-
- // EXT_cmyka
- GL_CMYK_EXT = $800C;
- {$EXTERNALSYM GL_CMYK_EXT}
- GL_CMYKA_EXT = $800D;
- {$EXTERNALSYM GL_CMYKA_EXT}
- GL_PACK_CMYK_HINT_EXT = $800E;
- {$EXTERNALSYM GL_PACK_CMYK_HINT_EXT}
- GL_UNPACK_CMYK_HINT_EXT = $800F;
- {$EXTERNALSYM GL_UNPACK_CMYK_HINT_EXT}
-
- // EXT_rescale_normal
- GL_RESCALE_NORMAL_EXT = $803A;
- {$EXTERNALSYM GL_RESCALE_NORMAL_EXT}
-
- // EXT_clip_volume_hint
- GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
- {$EXTERNALSYM GL_CLIP_VOLUME_CLIPPING_HINT_EXT}
-
- // EXT_cull_vertex
- GL_CULL_VERTEX_EXT = $81AA;
- {$EXTERNALSYM GL_CULL_VERTEX_EXT}
- GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
- {$EXTERNALSYM GL_CULL_VERTEX_EYE_POSITION_EXT}
- GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
- {$EXTERNALSYM GL_CULL_VERTEX_OBJECT_POSITION_EXT}
-
- // EXT_index_array_formats
- GL_IUI_V2F_EXT = $81AD;
- {$EXTERNALSYM GL_IUI_V2F_EXT}
- GL_IUI_V3F_EXT = $81AE;
- {$EXTERNALSYM GL_IUI_V3F_EXT}
- GL_IUI_N3F_V2F_EXT = $81AF;
- {$EXTERNALSYM GL_IUI_N3F_V2F_EXT}
- GL_IUI_N3F_V3F_EXT = $81B0;
- {$EXTERNALSYM GL_IUI_N3F_V3F_EXT}
- GL_T2F_IUI_V2F_EXT = $81B1;
- {$EXTERNALSYM GL_T2F_IUI_V2F_EXT}
- GL_T2F_IUI_V3F_EXT = $81B2;
- {$EXTERNALSYM GL_T2F_IUI_V3F_EXT}
- GL_T2F_IUI_N3F_V2F_EXT = $81B3;
- {$EXTERNALSYM GL_T2F_IUI_N3F_V2F_EXT}
- GL_T2F_IUI_N3F_V3F_EXT = $81B4;
- {$EXTERNALSYM GL_T2F_IUI_N3F_V3F_EXT}
-
- // EXT_index_func
- GL_INDEX_TEST_EXT = $81B5;
- {$EXTERNALSYM GL_INDEX_TEST_EXT}
- GL_INDEX_TEST_FUNC_EXT = $81B6;
- {$EXTERNALSYM GL_INDEX_TEST_FUNC_EXT}
- GL_INDEX_TEST_REF_EXT = $81B7;
- {$EXTERNALSYM GL_INDEX_TEST_REF_EXT}
-
- // EXT_index_material
- GL_INDEX_MATERIAL_EXT = $81B8;
- {$EXTERNALSYM GL_INDEX_MATERIAL_EXT}
- GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
- {$EXTERNALSYM GL_INDEX_MATERIAL_PARAMETER_EXT}
- GL_INDEX_MATERIAL_FACE_EXT = $81BA;
- {$EXTERNALSYM GL_INDEX_MATERIAL_FACE_EXT}
-
- // EXT_misc_attribute
- GL_MISC_BIT_EXT = 0; // not yet defined
- {$EXTERNALSYM GL_MISC_BIT_EXT}
-
- // EXT_scene_marker
- GL_SCENE_REQUIRED_EXT = 0; // not yet defined
- {$EXTERNALSYM GL_SCENE_REQUIRED_EXT}
-
- // EXT_shared_texture_palette
- GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
- {$EXTERNALSYM GL_SHARED_TEXTURE_PALETTE_EXT}
-
- // EXT_nurbs_tessellator
- GLU_NURBS_MODE_EXT = 100160;
- {$EXTERNALSYM GLU_NURBS_MODE_EXT}
- GLU_NURBS_TESSELLATOR_EXT = 100161;
- {$EXTERNALSYM GLU_NURBS_TESSELLATOR_EXT}
- GLU_NURBS_RENDERER_EXT = 100162;
- {$EXTERNALSYM GLU_NURBS_RENDERER_EXT}
- GLU_NURBS_BEGIN_EXT = 100164;
- {$EXTERNALSYM GLU_NURBS_BEGIN_EXT}
- GLU_NURBS_VERTEX_EXT = 100165;
- {$EXTERNALSYM GLU_NURBS_VERTEX_EXT}
- GLU_NURBS_NORMAL_EXT = 100166;
- {$EXTERNALSYM GLU_NURBS_NORMAL_EXT}
- GLU_NURBS_COLOR_EXT = 100167;
- {$EXTERNALSYM GLU_NURBS_COLOR_EXT}
- GLU_NURBS_TEX_COORD_EXT = 100168;
- {$EXTERNALSYM GLU_NURBS_TEX_COORD_EXT}
- GLU_NURBS_END_EXT = 100169;
- {$EXTERNALSYM GLU_NURBS_END_EXT}
- GLU_NURBS_BEGIN_DATA_EXT = 100170;
- {$EXTERNALSYM GLU_NURBS_BEGIN_DATA_EXT}
- GLU_NURBS_VERTEX_DATA_EXT = 100171;
- {$EXTERNALSYM GLU_NURBS_VERTEX_DATA_EXT}
- GLU_NURBS_NORMAL_DATA_EXT = 100172;
- {$EXTERNALSYM GLU_NURBS_NORMAL_DATA_EXT}
- GLU_NURBS_COLOR_DATA_EXT = 100173;
- {$EXTERNALSYM GLU_NURBS_COLOR_DATA_EXT}
- GLU_NURBS_TEX_COORD_DATA_EXT = 100174;
- {$EXTERNALSYM GLU_NURBS_TEX_COORD_DATA_EXT}
- GLU_NURBS_END_DATA_EXT = 100175;
- {$EXTERNALSYM GLU_NURBS_END_DATA_EXT}
-
- // EXT_object_space_tess
- GLU_OBJECT_PARAMETRIC_ERROR_EXT = 100208;
- {$EXTERNALSYM GLU_OBJECT_PARAMETRIC_ERROR_EXT}
- GLU_OBJECT_PATH_LENGTH_EXT = 100209;
- {$EXTERNALSYM GLU_OBJECT_PATH_LENGTH_EXT}
-
- // EXT_point_parameters
- GL_POINT_SIZE_MIN_EXT = $8126;
- {$EXTERNALSYM GL_POINT_SIZE_MIN_EXT}
- GL_POINT_SIZE_MAX_EXT = $8127;
- {$EXTERNALSYM GL_POINT_SIZE_MAX_EXT}
- GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
- {$EXTERNALSYM GL_POINT_FADE_THRESHOLD_SIZE_EXT}
- GL_DISTANCE_ATTENUATION_EXT = $8129;
- {$EXTERNALSYM GL_DISTANCE_ATTENUATION_EXT}
-
- // EXT_compiled_vertex_array
- GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
- {$EXTERNALSYM GL_ARRAY_ELEMENT_LOCK_FIRST_EXT}
- GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
- {$EXTERNALSYM GL_ARRAY_ELEMENT_LOCK_COUNT_EXT}
-
- // ARB_multitexture
- GL_ACTIVE_TEXTURE_ARB = $84E0;
- {$EXTERNALSYM GL_ACTIVE_TEXTURE_ARB}
- GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
- {$EXTERNALSYM GL_CLIENT_ACTIVE_TEXTURE_ARB}
- GL_MAX_TEXTURE_UNITS_ARB = $84E2;
- {$EXTERNALSYM GL_MAX_TEXTURE_UNITS_ARB}
- GL_TEXTURE0_ARB = $84C0;
- {$EXTERNALSYM GL_TEXTURE0_ARB}
- GL_TEXTURE1_ARB = $84C1;
- {$EXTERNALSYM GL_TEXTURE1_ARB}
- GL_TEXTURE2_ARB = $84C2;
- {$EXTERNALSYM GL_TEXTURE2_ARB}
- GL_TEXTURE3_ARB = $84C3;
- {$EXTERNALSYM GL_TEXTURE3_ARB}
- GL_TEXTURE4_ARB = $84C4;
- {$EXTERNALSYM GL_TEXTURE4_ARB}
- GL_TEXTURE5_ARB = $84C5;
- {$EXTERNALSYM GL_TEXTURE5_ARB}
- GL_TEXTURE6_ARB = $84C6;
- {$EXTERNALSYM GL_TEXTURE6_ARB}
- GL_TEXTURE7_ARB = $84C7;
- {$EXTERNALSYM GL_TEXTURE7_ARB}
- GL_TEXTURE8_ARB = $84C8;
- {$EXTERNALSYM GL_TEXTURE8_ARB}
- GL_TEXTURE9_ARB = $84C9;
- {$EXTERNALSYM GL_TEXTURE9_ARB}
- GL_TEXTURE10_ARB = $84CA;
- {$EXTERNALSYM GL_TEXTURE10_ARB}
- GL_TEXTURE11_ARB = $84CB;
- {$EXTERNALSYM GL_TEXTURE11_ARB}
- GL_TEXTURE12_ARB = $84CC;
- {$EXTERNALSYM GL_TEXTURE12_ARB}
- GL_TEXTURE13_ARB = $84CD;
- {$EXTERNALSYM GL_TEXTURE13_ARB}
- GL_TEXTURE14_ARB = $84CE;
- {$EXTERNALSYM GL_TEXTURE14_ARB}
- GL_TEXTURE15_ARB = $84CF;
- {$EXTERNALSYM GL_TEXTURE15_ARB}
- GL_TEXTURE16_ARB = $84D0;
- {$EXTERNALSYM GL_TEXTURE16_ARB}
- GL_TEXTURE17_ARB = $84D1;
- {$EXTERNALSYM GL_TEXTURE17_ARB}
- GL_TEXTURE18_ARB = $84D2;
- {$EXTERNALSYM GL_TEXTURE18_ARB}
- GL_TEXTURE19_ARB = $84D3;
- {$EXTERNALSYM GL_TEXTURE19_ARB}
- GL_TEXTURE20_ARB = $84D4;
- {$EXTERNALSYM GL_TEXTURE20_ARB}
- GL_TEXTURE21_ARB = $84D5;
- {$EXTERNALSYM GL_TEXTURE21_ARB}
- GL_TEXTURE22_ARB = $84D6;
- {$EXTERNALSYM GL_TEXTURE22_ARB}
- GL_TEXTURE23_ARB = $84D7;
- {$EXTERNALSYM GL_TEXTURE23_ARB}
- GL_TEXTURE24_ARB = $84D8;
- {$EXTERNALSYM GL_TEXTURE24_ARB}
- GL_TEXTURE25_ARB = $84D9;
- {$EXTERNALSYM GL_TEXTURE25_ARB}
- GL_TEXTURE26_ARB = $84DA;
- {$EXTERNALSYM GL_TEXTURE26_ARB}
- GL_TEXTURE27_ARB = $84DB;
- {$EXTERNALSYM GL_TEXTURE27_ARB}
- GL_TEXTURE28_ARB = $84DC;
- {$EXTERNALSYM GL_TEXTURE28_ARB}
- GL_TEXTURE29_ARB = $84DD;
- {$EXTERNALSYM GL_TEXTURE29_ARB}
- GL_TEXTURE30_ARB = $84DE;
- {$EXTERNALSYM GL_TEXTURE30_ARB}
- GL_TEXTURE31_ARB = $84DF;
- {$EXTERNALSYM GL_TEXTURE31_ARB}
-
- // EXT_stencil_wrap
- GL_INCR_WRAP_EXT = $8507;
- {$EXTERNALSYM GL_INCR_WRAP_EXT}
- GL_DECR_WRAP_EXT = $8508;
- {$EXTERNALSYM GL_DECR_WRAP_EXT}
-
- // NV_texgen_reflection
- GL_NORMAL_MAP_NV = $8511;
- {$EXTERNALSYM GL_NORMAL_MAP_NV}
- GL_REFLECTION_MAP_NV = $8512;
- {$EXTERNALSYM GL_REFLECTION_MAP_NV}
-
- // EXT_texture_env_combine
- GL_COMBINE_EXT = $8570;
- {$EXTERNALSYM GL_COMBINE_EXT}
- GL_COMBINE_RGB_EXT = $8571;
- {$EXTERNALSYM GL_COMBINE_RGB_EXT}
- GL_COMBINE_ALPHA_EXT = $8572;
- {$EXTERNALSYM GL_COMBINE_ALPHA_EXT}
- GL_RGB_SCALE_EXT = $8573;
- {$EXTERNALSYM GL_RGB_SCALE_EXT}
- GL_ADD_SIGNED_EXT = $8574;
- {$EXTERNALSYM GL_ADD_SIGNED_EXT}
- GL_INTERPOLATE_EXT = $8575;
- {$EXTERNALSYM GL_INTERPOLATE_EXT}
- GL_CONSTANT_EXT = $8576;
- {$EXTERNALSYM GL_CONSTANT_EXT}
- GL_PRIMARY_COLOR_EXT = $8577;
- {$EXTERNALSYM GL_PRIMARY_COLOR_EXT}
- GL_PREVIOUS_EXT = $8578;
- {$EXTERNALSYM GL_PREVIOUS_EXT}
- GL_SOURCE0_RGB_EXT = $8580;
- {$EXTERNALSYM GL_SOURCE0_RGB_EXT}
- GL_SOURCE1_RGB_EXT = $8581;
- {$EXTERNALSYM GL_SOURCE1_RGB_EXT}
- GL_SOURCE2_RGB_EXT = $8582;
- {$EXTERNALSYM GL_SOURCE2_RGB_EXT}
- GL_SOURCE0_ALPHA_EXT = $8588;
- {$EXTERNALSYM GL_SOURCE0_ALPHA_EXT}
- GL_SOURCE1_ALPHA_EXT = $8589;
- {$EXTERNALSYM GL_SOURCE1_ALPHA_EXT}
- GL_SOURCE2_ALPHA_EXT = $858A;
- {$EXTERNALSYM GL_SOURCE2_ALPHA_EXT}
- GL_OPERAND0_RGB_EXT = $8590;
- {$EXTERNALSYM GL_OPERAND0_RGB_EXT}
- GL_OPERAND1_RGB_EXT = $8591;
- {$EXTERNALSYM GL_OPERAND1_RGB_EXT}
- GL_OPERAND2_RGB_EXT = $8592;
- {$EXTERNALSYM GL_OPERAND2_RGB_EXT}
- GL_OPERAND0_ALPHA_EXT = $8598;
- {$EXTERNALSYM GL_OPERAND0_ALPHA_EXT}
- GL_OPERAND1_ALPHA_EXT = $8599;
- {$EXTERNALSYM GL_OPERAND1_ALPHA_EXT}
- GL_OPERAND2_ALPHA_EXT = $859A;
- {$EXTERNALSYM GL_OPERAND2_ALPHA_EXT}
-
- // NV_texture_env_combine4
- GL_COMBINE4_NV = $8503;
- {$EXTERNALSYM GL_COMBINE4_NV}
- GL_SOURCE3_RGB_NV = $8583;
- {$EXTERNALSYM GL_SOURCE3_RGB_NV}
- GL_SOURCE3_ALPHA_NV = $858B;
- {$EXTERNALSYM GL_SOURCE3_ALPHA_NV}
- GL_OPERAND3_RGB_NV = $8593;
- {$EXTERNALSYM GL_OPERAND3_RGB_NV}
- GL_OPERAND3_ALPHA_NV = $859B;
- {$EXTERNALSYM GL_OPERAND3_ALPHA_NV}
-
- GL_BLEND_EQUATION = $8009;
- {$EXTERNALSYM GL_BLEND_EQUATION}
- GL_TABLE_TOO_LARGE = $8031;
- {$EXTERNALSYM GL_TABLE_TOO_LARGE}
- GL_UNSIGNED_BYTE_3_3_2 = $8032;
- {$EXTERNALSYM GL_UNSIGNED_BYTE_3_3_2}
- GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
- {$EXTERNALSYM GL_UNSIGNED_SHORT_4_4_4_4}
- GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
- {$EXTERNALSYM GL_UNSIGNED_SHORT_5_5_5_1}
- GL_UNSIGNED_INT_8_8_8_8 = $8035;
- {$EXTERNALSYM GL_UNSIGNED_INT_8_8_8_8}
- GL_UNSIGNED_INT_10_10_10_2 = $8036;
- {$EXTERNALSYM GL_UNSIGNED_INT_10_10_10_2}
- GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
- {$EXTERNALSYM GL_UNSIGNED_BYTE_2_3_3_REV}
- GL_UNSIGNED_SHORT_5_6_5 = $8363;
- {$EXTERNALSYM GL_UNSIGNED_SHORT_5_6_5}
- GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
- {$EXTERNALSYM GL_UNSIGNED_SHORT_5_6_5_REV}
- GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
- {$EXTERNALSYM GL_UNSIGNED_SHORT_4_4_4_4_REV}
- GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
- {$EXTERNALSYM GL_UNSIGNED_SHORT_1_5_5_5_REV}
- GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
- {$EXTERNALSYM GL_UNSIGNED_INT_8_8_8_8_REV}
- GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
- {$EXTERNALSYM GL_UNSIGNED_INT_2_10_10_10_REV}
-
- // GL_ARB_transpose_matrix
- GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
- {$EXTERNALSYM GL_TRANSPOSE_MODELVIEW_MATRIX_ARB}
- GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
- {$EXTERNALSYM GL_TRANSPOSE_PROJECTION_MATRIX_ARB}
- GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
- {$EXTERNALSYM GL_TRANSPOSE_TEXTURE_MATRIX_ARB}
- GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
- {$EXTERNALSYM GL_TRANSPOSE_COLOR_MATRIX_ARB}
-
- // GL_ARB_multisample
- GL_MULTISAMPLE_ARB = $809D;
- {$EXTERNALSYM GL_MULTISAMPLE_ARB}
- GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
- {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_COVERAGE_ARB}
- GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
- {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_ONE_ARB}
- GL_SAMPLE_COVERAGE_ARB = $80A0;
- {$EXTERNALSYM GL_SAMPLE_COVERAGE_ARB}
- GL_SAMPLE_BUFFERS_ARB = $80A8;
- {$EXTERNALSYM GL_SAMPLE_BUFFERS_ARB}
- GL_SAMPLES_ARB = $80A9;
- {$EXTERNALSYM GL_SAMPLES_ARB}
- GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
- {$EXTERNALSYM GL_SAMPLE_COVERAGE_VALUE_ARB}
- GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
- {$EXTERNALSYM GL_SAMPLE_COVERAGE_INVERT_ARB}
- GL_MULTISAMPLE_BIT_ARB = $20000000;
- {$EXTERNALSYM GL_MULTISAMPLE_BIT_ARB}
- GLX_SAMPLE_BUFFERS_ARB = 100000;
- {$EXTERNALSYM GLX_SAMPLE_BUFFERS_ARB}
- GLX_SAMPLES_ARB = 100001;
- {$EXTERNALSYM GLX_SAMPLES_ARB}
- WGL_SAMPLE_BUFFERS_ARB = $2041;
- {$EXTERNALSYM WGL_SAMPLE_BUFFERS_ARB}
- WGL_SAMPLES_ARB = $2042;
- {$EXTERNALSYM WGL_SAMPLES_ARB}
-
- // GL_ARB_texture_cube_map
- GL_NORMAL_MAP_ARB = $8511;
- {$EXTERNALSYM GL_NORMAL_MAP_ARB}
- GL_REFLECTION_MAP_ARB = $8512;
- {$EXTERNALSYM GL_REFLECTION_MAP_ARB}
- GL_TEXTURE_CUBE_MAP_ARB = $8513;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_ARB}
- GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
- {$EXTERNALSYM GL_TEXTURE_BINDING_CUBE_MAP_ARB}
- GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB}
- GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB}
- GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB}
- GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB}
- GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB}
- GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB}
- GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
- {$EXTERNALSYM GL_PROXY_TEXTURE_CUBE_MAP_ARB}
- GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
- {$EXTERNALSYM GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB}
-
- // GL_ARB_texture_compression
- GL_COMPRESSED_ALPHA_ARB = $84E9;
- {$EXTERNALSYM GL_COMPRESSED_ALPHA_ARB}
- GL_COMPRESSED_LUMINANCE_ARB = $84EA;
- {$EXTERNALSYM GL_COMPRESSED_LUMINANCE_ARB}
- GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
- {$EXTERNALSYM GL_COMPRESSED_LUMINANCE_ALPHA_ARB}
- GL_COMPRESSED_INTENSITY_ARB = $84EC;
- {$EXTERNALSYM GL_COMPRESSED_INTENSITY_ARB}
- GL_COMPRESSED_RGB_ARB = $84ED;
- {$EXTERNALSYM GL_COMPRESSED_RGB_ARB}
- GL_COMPRESSED_RGBA_ARB = $84EE;
- {$EXTERNALSYM GL_COMPRESSED_RGBA_ARB}
- GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
- {$EXTERNALSYM GL_TEXTURE_COMPRESSION_HINT_ARB}
- GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
- {$EXTERNALSYM GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB}
- GL_TEXTURE_COMPRESSED_ARB = $86A1;
- {$EXTERNALSYM GL_TEXTURE_COMPRESSED_ARB}
- GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
- {$EXTERNALSYM GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB}
- GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
- {$EXTERNALSYM GL_COMPRESSED_TEXTURE_FORMATS_ARB}
-
- // GL_ARB_vertex_blend
- GL_MAX_VERTEX_UNITS_ARB = $86A4;
- {$EXTERNALSYM GL_MAX_VERTEX_UNITS_ARB}
- GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
- {$EXTERNALSYM GL_ACTIVE_VERTEX_UNITS_ARB}
- GL_WEIGHT_SUM_UNITY_ARB = $86A6;
- {$EXTERNALSYM GL_WEIGHT_SUM_UNITY_ARB}
- GL_VERTEX_BLEND_ARB = $86A7;
- {$EXTERNALSYM GL_VERTEX_BLEND_ARB}
- GL_CURRENT_WEIGHT_ARB = $86A8;
- {$EXTERNALSYM GL_CURRENT_WEIGHT_ARB}
- GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
- {$EXTERNALSYM GL_WEIGHT_ARRAY_TYPE_ARB}
- GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
- {$EXTERNALSYM GL_WEIGHT_ARRAY_STRIDE_ARB}
- GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
- {$EXTERNALSYM GL_WEIGHT_ARRAY_SIZE_ARB}
- GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
- {$EXTERNALSYM GL_WEIGHT_ARRAY_POINTER_ARB}
- GL_WEIGHT_ARRAY_ARB = $86AD;
- {$EXTERNALSYM GL_WEIGHT_ARRAY_ARB}
- GL_MODELVIEW0_ARB = $1700;
- {$EXTERNALSYM GL_MODELVIEW0_ARB}
- GL_MODELVIEW1_ARB = $850A;
- {$EXTERNALSYM GL_MODELVIEW1_ARB}
- GL_MODELVIEW2_ARB = $8722;
- {$EXTERNALSYM GL_MODELVIEW2_ARB}
- GL_MODELVIEW3_ARB = $8723;
- {$EXTERNALSYM GL_MODELVIEW3_ARB}
- GL_MODELVIEW4_ARB = $8724;
- {$EXTERNALSYM GL_MODELVIEW4_ARB}
- GL_MODELVIEW5_ARB = $8725;
- {$EXTERNALSYM GL_MODELVIEW5_ARB}
- GL_MODELVIEW6_ARB = $8726;
- {$EXTERNALSYM GL_MODELVIEW6_ARB}
- GL_MODELVIEW7_ARB = $8727;
- {$EXTERNALSYM GL_MODELVIEW7_ARB}
- GL_MODELVIEW8_ARB = $8728;
- {$EXTERNALSYM GL_MODELVIEW8_ARB}
- GL_MODELVIEW9_ARB = $8729;
- {$EXTERNALSYM GL_MODELVIEW9_ARB}
- GL_MODELVIEW10_ARB = $872A;
- {$EXTERNALSYM GL_MODELVIEW10_ARB}
- GL_MODELVIEW11_ARB = $872B;
- {$EXTERNALSYM GL_MODELVIEW11_ARB}
- GL_MODELVIEW12_ARB = $872C;
- {$EXTERNALSYM GL_MODELVIEW12_ARB}
- GL_MODELVIEW13_ARB = $872D;
- {$EXTERNALSYM GL_MODELVIEW13_ARB}
- GL_MODELVIEW14_ARB = $872E;
- {$EXTERNALSYM GL_MODELVIEW14_ARB}
- GL_MODELVIEW15_ARB = $872F;
- {$EXTERNALSYM GL_MODELVIEW15_ARB}
- GL_MODELVIEW16_ARB = $8730;
- {$EXTERNALSYM GL_MODELVIEW16_ARB}
- GL_MODELVIEW17_ARB = $8731;
- {$EXTERNALSYM GL_MODELVIEW17_ARB}
- GL_MODELVIEW18_ARB = $8732;
- {$EXTERNALSYM GL_MODELVIEW18_ARB}
- GL_MODELVIEW19_ARB = $8733;
- {$EXTERNALSYM GL_MODELVIEW19_ARB}
- GL_MODELVIEW20_ARB = $8734;
- {$EXTERNALSYM GL_MODELVIEW20_ARB}
- GL_MODELVIEW21_ARB = $8735;
- {$EXTERNALSYM GL_MODELVIEW21_ARB}
- GL_MODELVIEW22_ARB = $8736;
- {$EXTERNALSYM GL_MODELVIEW22_ARB}
- GL_MODELVIEW23_ARB = $8737;
- {$EXTERNALSYM GL_MODELVIEW23_ARB}
- GL_MODELVIEW24_ARB = $8738;
- {$EXTERNALSYM GL_MODELVIEW24_ARB}
- GL_MODELVIEW25_ARB = $8739;
- {$EXTERNALSYM GL_MODELVIEW25_ARB}
- GL_MODELVIEW26_ARB = $873A;
- {$EXTERNALSYM GL_MODELVIEW26_ARB}
- GL_MODELVIEW27_ARB = $873B;
- {$EXTERNALSYM GL_MODELVIEW27_ARB}
- GL_MODELVIEW28_ARB = $873C;
- {$EXTERNALSYM GL_MODELVIEW28_ARB}
- GL_MODELVIEW29_ARB = $873D;
- {$EXTERNALSYM GL_MODELVIEW29_ARB}
- GL_MODELVIEW30_ARB = $873E;
- {$EXTERNALSYM GL_MODELVIEW30_ARB}
- GL_MODELVIEW31_ARB = $873F;
- {$EXTERNALSYM GL_MODELVIEW31_ARB}
-
- // GL_SGIS_texture_filter4
- GL_FILTER4_SGIS = $8146;
- {$EXTERNALSYM GL_FILTER4_SGIS}
- GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
- {$EXTERNALSYM GL_TEXTURE_FILTER4_SIZE_SGIS}
-
- // GL_SGIS_pixel_texture
- GL_PIXEL_TEXTURE_SGIS = $8353;
- {$EXTERNALSYM GL_PIXEL_TEXTURE_SGIS}
- GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
- {$EXTERNALSYM GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS}
- GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
- {$EXTERNALSYM GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS}
- GL_PIXEL_GROUP_COLOR_SGIS = $8356;
- {$EXTERNALSYM GL_PIXEL_GROUP_COLOR_SGIS}
-
- // GL_SGIX_pixel_texture
- GL_PIXEL_TEX_GEN_SGIX = $8139;
- {$EXTERNALSYM GL_PIXEL_TEX_GEN_SGIX}
- GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
- {$EXTERNALSYM GL_PIXEL_TEX_GEN_MODE_SGIX}
-
- // GL_SGIS_texture4D
- GL_PACK_SKIP_VOLUMES_SGIS = $8130;
- {$EXTERNALSYM GL_PACK_SKIP_VOLUMES_SGIS}
- GL_PACK_IMAGE_DEPTH_SGIS = $8131;
- {$EXTERNALSYM GL_PACK_IMAGE_DEPTH_SGIS}
- GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
- {$EXTERNALSYM GL_UNPACK_SKIP_VOLUMES_SGIS}
- GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
- {$EXTERNALSYM GL_UNPACK_IMAGE_DEPTH_SGIS}
- GL_TEXTURE_4D_SGIS = $8134;
- {$EXTERNALSYM GL_TEXTURE_4D_SGIS}
- GL_PROXY_TEXTURE_4D_SGIS = $8135;
- {$EXTERNALSYM GL_PROXY_TEXTURE_4D_SGIS}
- GL_TEXTURE_4DSIZE_SGIS = $8136;
- {$EXTERNALSYM GL_TEXTURE_4DSIZE_SGIS}
- GL_TEXTURE_WRAP_Q_SGIS = $8137;
- {$EXTERNALSYM GL_TEXTURE_WRAP_Q_SGIS}
- GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
- {$EXTERNALSYM GL_MAX_4D_TEXTURE_SIZE_SGIS}
- GL_TEXTURE_4D_BINDING_SGIS = $814F;
- {$EXTERNALSYM GL_TEXTURE_4D_BINDING_SGIS}
-
- // GL_SGIS_detail_texture
- GL_DETAIL_TEXTURE_2D_SGIS = $8095;
- {$EXTERNALSYM GL_DETAIL_TEXTURE_2D_SGIS}
- GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
- {$EXTERNALSYM GL_DETAIL_TEXTURE_2D_BINDING_SGIS}
- GL_LINEAR_DETAIL_SGIS = $8097;
- {$EXTERNALSYM GL_LINEAR_DETAIL_SGIS}
- GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
- {$EXTERNALSYM GL_LINEAR_DETAIL_ALPHA_SGIS}
- GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
- {$EXTERNALSYM GL_LINEAR_DETAIL_COLOR_SGIS}
- GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
- {$EXTERNALSYM GL_DETAIL_TEXTURE_LEVEL_SGIS}
- GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
- {$EXTERNALSYM GL_DETAIL_TEXTURE_MODE_SGIS}
- GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
- {$EXTERNALSYM GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS}
-
- // GL_SGIS_sharpen_texture
- GL_LINEAR_SHARPEN_SGIS = $80AD;
- {$EXTERNALSYM GL_LINEAR_SHARPEN_SGIS}
- GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
- {$EXTERNALSYM GL_LINEAR_SHARPEN_ALPHA_SGIS}
- GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
- {$EXTERNALSYM GL_LINEAR_SHARPEN_COLOR_SGIS}
- GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
- {$EXTERNALSYM GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS}
-
- // GL_SGIS_texture_lod
- GL_TEXTURE_MIN_LOD_SGIS = $813A;
- {$EXTERNALSYM GL_TEXTURE_MIN_LOD_SGIS}
- GL_TEXTURE_MAX_LOD_SGIS = $813B;
- {$EXTERNALSYM GL_TEXTURE_MAX_LOD_SGIS}
- GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
- {$EXTERNALSYM GL_TEXTURE_BASE_LEVEL_SGIS}
- GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
- {$EXTERNALSYM GL_TEXTURE_MAX_LEVEL_SGIS}
-
- // GL_SGIS_multisample
- GL_MULTISAMPLE_SGIS = $809D;
- {$EXTERNALSYM GL_MULTISAMPLE_SGIS}
- GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
- {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_MASK_SGIS}
- GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
- {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_ONE_SGIS}
- GL_SAMPLE_MASK_SGIS = $80A0;
- {$EXTERNALSYM GL_SAMPLE_MASK_SGIS}
- GL_1PASS_SGIS = $80A1;
- {$EXTERNALSYM GL_1PASS_SGIS}
- GL_2PASS_0_SGIS = $80A2;
- {$EXTERNALSYM GL_2PASS_0_SGIS}
- GL_2PASS_1_SGIS = $80A3;
- {$EXTERNALSYM GL_2PASS_1_SGIS}
- GL_4PASS_0_SGIS = $80A4;
- {$EXTERNALSYM GL_4PASS_0_SGIS}
- GL_4PASS_1_SGIS = $80A5;
- {$EXTERNALSYM GL_4PASS_1_SGIS}
- GL_4PASS_2_SGIS = $80A6;
- {$EXTERNALSYM GL_4PASS_2_SGIS}
- GL_4PASS_3_SGIS = $80A7;
- {$EXTERNALSYM GL_4PASS_3_SGIS}
- GL_SAMPLE_BUFFERS_SGIS = $80A8;
- {$EXTERNALSYM GL_SAMPLE_BUFFERS_SGIS}
- GL_SAMPLES_SGIS = $80A9;
- {$EXTERNALSYM GL_SAMPLES_SGIS}
- GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
- {$EXTERNALSYM GL_SAMPLE_MASK_VALUE_SGIS}
- GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
- {$EXTERNALSYM GL_SAMPLE_MASK_INVERT_SGIS}
- GL_SAMPLE_PATTERN_SGIS = $80AC;
- {$EXTERNALSYM GL_SAMPLE_PATTERN_SGIS}
-
- // GL_SGIS_generate_mipmap
- GL_GENERATE_MIPMAP_SGIS = $8191;
- {$EXTERNALSYM GL_GENERATE_MIPMAP_SGIS}
- GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
- {$EXTERNALSYM GL_GENERATE_MIPMAP_HINT_SGIS}
-
- // GL_SGIX_clipmap
- GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
- {$EXTERNALSYM GL_LINEAR_CLIPMAP_LINEAR_SGIX}
- GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
- {$EXTERNALSYM GL_TEXTURE_CLIPMAP_CENTER_SGIX}
- GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
- {$EXTERNALSYM GL_TEXTURE_CLIPMAP_FRAME_SGIX}
- GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
- {$EXTERNALSYM GL_TEXTURE_CLIPMAP_OFFSET_SGIX}
- GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
- {$EXTERNALSYM GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX}
- GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
- {$EXTERNALSYM GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX}
- GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
- {$EXTERNALSYM GL_TEXTURE_CLIPMAP_DEPTH_SGIX}
- GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
- {$EXTERNALSYM GL_MAX_CLIPMAP_DEPTH_SGIX}
- GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
- {$EXTERNALSYM GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX}
- GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
- {$EXTERNALSYM GL_NEAREST_CLIPMAP_NEAREST_SGIX}
- GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
- {$EXTERNALSYM GL_NEAREST_CLIPMAP_LINEAR_SGIX}
- GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
- {$EXTERNALSYM GL_LINEAR_CLIPMAP_NEAREST_SGIX}
-
- // GL_SGIX_shadow
- GL_TEXTURE_COMPARE_SGIX = $819A;
- {$EXTERNALSYM GL_TEXTURE_COMPARE_SGIX}
- GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
- {$EXTERNALSYM GL_TEXTURE_COMPARE_OPERATOR_SGIX}
- GL_TEXTURE_LEQUAL_R_SGIX = $819C;
- {$EXTERNALSYM GL_TEXTURE_LEQUAL_R_SGIX}
- GL_TEXTURE_GEQUAL_R_SGIX = $819D;
- {$EXTERNALSYM GL_TEXTURE_GEQUAL_R_SGIX}
-
- // GL_SGIS_texture_edge_clamp
- GL_CLAMP_TO_EDGE_SGIS = $812F;
- {$EXTERNALSYM GL_CLAMP_TO_EDGE_SGIS}
-
- // GL_SGIS_texture_border_clamp
- GL_CLAMP_TO_BORDER_SGIS = $812D;
- {$EXTERNALSYM GL_CLAMP_TO_BORDER_SGIS}
-
- // GL_SGIX_interlace
- GL_INTERLACE_SGIX = $8094;
- {$EXTERNALSYM GL_INTERLACE_SGIX}
-
- // GL_SGIX_pixel_tiles
- GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
- {$EXTERNALSYM GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX}
- GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
- {$EXTERNALSYM GL_PIXEL_TILE_CACHE_INCREMENT_SGIX}
- GL_PIXEL_TILE_WIDTH_SGIX = $8140;
- {$EXTERNALSYM GL_PIXEL_TILE_WIDTH_SGIX}
- GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
- {$EXTERNALSYM GL_PIXEL_TILE_HEIGHT_SGIX}
- GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
- {$EXTERNALSYM GL_PIXEL_TILE_GRID_WIDTH_SGIX}
- GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
- {$EXTERNALSYM GL_PIXEL_TILE_GRID_HEIGHT_SGIX}
- GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
- {$EXTERNALSYM GL_PIXEL_TILE_GRID_DEPTH_SGIX}
- GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
- {$EXTERNALSYM GL_PIXEL_TILE_CACHE_SIZE_SGIX}
-
- // GL_SGIS_texture_select
- GL_DUAL_ALPHA4_SGIS = $8110;
- {$EXTERNALSYM GL_DUAL_ALPHA4_SGIS}
- GL_DUAL_ALPHA8_SGIS = $8111;
- {$EXTERNALSYM GL_DUAL_ALPHA8_SGIS}
- GL_DUAL_ALPHA12_SGIS = $8112;
- {$EXTERNALSYM GL_DUAL_ALPHA12_SGIS}
- GL_DUAL_ALPHA16_SGIS = $8113;
- {$EXTERNALSYM GL_DUAL_ALPHA16_SGIS}
- GL_DUAL_LUMINANCE4_SGIS = $8114;
- {$EXTERNALSYM GL_DUAL_LUMINANCE4_SGIS}
- GL_DUAL_LUMINANCE8_SGIS = $8115;
- {$EXTERNALSYM GL_DUAL_LUMINANCE8_SGIS}
- GL_DUAL_LUMINANCE12_SGIS = $8116;
- {$EXTERNALSYM GL_DUAL_LUMINANCE12_SGIS}
- GL_DUAL_LUMINANCE16_SGIS = $8117;
- {$EXTERNALSYM GL_DUAL_LUMINANCE16_SGIS}
- GL_DUAL_INTENSITY4_SGIS = $8118;
- {$EXTERNALSYM GL_DUAL_INTENSITY4_SGIS}
- GL_DUAL_INTENSITY8_SGIS = $8119;
- {$EXTERNALSYM GL_DUAL_INTENSITY8_SGIS}
- GL_DUAL_INTENSITY12_SGIS = $811A;
- {$EXTERNALSYM GL_DUAL_INTENSITY12_SGIS}
- GL_DUAL_INTENSITY16_SGIS = $811B;
- {$EXTERNALSYM GL_DUAL_INTENSITY16_SGIS}
- GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
- {$EXTERNALSYM GL_DUAL_LUMINANCE_ALPHA4_SGIS}
- GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
- {$EXTERNALSYM GL_DUAL_LUMINANCE_ALPHA8_SGIS}
- GL_QUAD_ALPHA4_SGIS = $811E;
- {$EXTERNALSYM GL_QUAD_ALPHA4_SGIS}
- GL_QUAD_ALPHA8_SGIS = $811F;
- {$EXTERNALSYM GL_QUAD_ALPHA8_SGIS}
- GL_QUAD_LUMINANCE4_SGIS = $8120;
- {$EXTERNALSYM GL_QUAD_LUMINANCE4_SGIS}
- GL_QUAD_LUMINANCE8_SGIS = $8121;
- {$EXTERNALSYM GL_QUAD_LUMINANCE8_SGIS}
- GL_QUAD_INTENSITY4_SGIS = $8122;
- {$EXTERNALSYM GL_QUAD_INTENSITY4_SGIS}
- GL_QUAD_INTENSITY8_SGIS = $8123;
- {$EXTERNALSYM GL_QUAD_INTENSITY8_SGIS}
- GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
- {$EXTERNALSYM GL_DUAL_TEXTURE_SELECT_SGIS}
- GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
- {$EXTERNALSYM GL_QUAD_TEXTURE_SELECT_SGIS}
-
- // GL_SGIX_sprite
- GL_SPRITE_SGIX = $8148;
- {$EXTERNALSYM GL_SPRITE_SGIX}
- GL_SPRITE_MODE_SGIX = $8149;
- {$EXTERNALSYM GL_SPRITE_MODE_SGIX}
- GL_SPRITE_AXIS_SGIX = $814A;
- {$EXTERNALSYM GL_SPRITE_AXIS_SGIX}
- GL_SPRITE_TRANSLATION_SGIX = $814B;
- {$EXTERNALSYM GL_SPRITE_TRANSLATION_SGIX}
- GL_SPRITE_AXIAL_SGIX = $814C;
- {$EXTERNALSYM GL_SPRITE_AXIAL_SGIX}
- GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
- {$EXTERNALSYM GL_SPRITE_OBJECT_ALIGNED_SGIX}
- GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
- {$EXTERNALSYM GL_SPRITE_EYE_ALIGNED_SGIX}
-
- // GL_SGIX_texture_multi_buffer
- GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
- {$EXTERNALSYM GL_TEXTURE_MULTI_BUFFER_HINT_SGIX}
-
- // GL_SGIS_point_parameters
- GL_POINT_SIZE_MIN_SGIS = $8126;
- {$EXTERNALSYM GL_POINT_SIZE_MIN_SGIS}
- GL_POINT_SIZE_MAX_SGIS = $8127;
- {$EXTERNALSYM GL_POINT_SIZE_MAX_SGIS}
- GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
- {$EXTERNALSYM GL_POINT_FADE_THRESHOLD_SIZE_SGIS}
- GL_DISTANCE_ATTENUATION_SGIS = $8129;
- {$EXTERNALSYM GL_DISTANCE_ATTENUATION_SGIS}
-
- // GL_SGIX_instruments
- GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
- {$EXTERNALSYM GL_INSTRUMENT_BUFFER_POINTER_SGIX}
- GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
- {$EXTERNALSYM GL_INSTRUMENT_MEASUREMENTS_SGIX}
-
- // GL_SGIX_texture_scale_bias
- GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
- {$EXTERNALSYM GL_POST_TEXTURE_FILTER_BIAS_SGIX}
- GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
- {$EXTERNALSYM GL_POST_TEXTURE_FILTER_SCALE_SGIX}
- GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
- {$EXTERNALSYM GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX}
- GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
- {$EXTERNALSYM GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX}
-
- // GL_SGIX_framezoom
- GL_FRAMEZOOM_SGIX = $818B;
- {$EXTERNALSYM GL_FRAMEZOOM_SGIX}
- GL_FRAMEZOOM_FACTOR_SGIX = $818C;
- {$EXTERNALSYM GL_FRAMEZOOM_FACTOR_SGIX}
- GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
- {$EXTERNALSYM GL_MAX_FRAMEZOOM_FACTOR_SGIX}
-
- // GL_FfdMaskSGIX
- GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
- {$EXTERNALSYM GL_TEXTURE_DEFORMATION_BIT_SGIX}
- GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
- {$EXTERNALSYM GL_GEOMETRY_DEFORMATION_BIT_SGIX}
-
- // GL_SGIX_polynomial_ffd
- GL_GEOMETRY_DEFORMATION_SGIX = $8194;
- {$EXTERNALSYM GL_GEOMETRY_DEFORMATION_SGIX}
- GL_TEXTURE_DEFORMATION_SGIX = $8195;
- {$EXTERNALSYM GL_TEXTURE_DEFORMATION_SGIX}
- GL_DEFORMATIONS_MASK_SGIX = $8196;
- {$EXTERNALSYM GL_DEFORMATIONS_MASK_SGIX}
- GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
- {$EXTERNALSYM GL_MAX_DEFORMATION_ORDER_SGIX}
-
- // GL_SGIX_reference_plane
- GL_REFERENCE_PLANE_SGIX = $817D;
- {$EXTERNALSYM GL_REFERENCE_PLANE_SGIX}
- GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
- {$EXTERNALSYM GL_REFERENCE_PLANE_EQUATION_SGIX}
-
- // GL_SGIX_depth_texture
- GL_DEPTH_COMPONENT16_SGIX = $81A5;
- {$EXTERNALSYM GL_DEPTH_COMPONENT16_SGIX}
- GL_DEPTH_COMPONENT24_SGIX = $81A6;
- {$EXTERNALSYM GL_DEPTH_COMPONENT24_SGIX}
- GL_DEPTH_COMPONENT32_SGIX = $81A7;
- {$EXTERNALSYM GL_DEPTH_COMPONENT32_SGIX}
-
- // GL_SGIS_fog_function
- GL_FOG_FUNC_SGIS = $812A;
- {$EXTERNALSYM GL_FOG_FUNC_SGIS}
- GL_FOG_FUNC_POINTS_SGIS = $812B;
- {$EXTERNALSYM GL_FOG_FUNC_POINTS_SGIS}
- GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
- {$EXTERNALSYM GL_MAX_FOG_FUNC_POINTS_SGIS}
-
- // GL_SGIX_fog_offset
- GL_FOG_OFFSET_SGIX = $8198;
- {$EXTERNALSYM GL_FOG_OFFSET_SGIX}
- GL_FOG_OFFSET_VALUE_SGIX = $8199;
- {$EXTERNALSYM GL_FOG_OFFSET_VALUE_SGIX}
-
- // GL_HP_image_transform
- GL_IMAGE_SCALE_X_HP = $8155;
- {$EXTERNALSYM GL_IMAGE_SCALE_X_HP}
- GL_IMAGE_SCALE_Y_HP = $8156;
- {$EXTERNALSYM GL_IMAGE_SCALE_Y_HP}
- GL_IMAGE_TRANSLATE_X_HP = $8157;
- {$EXTERNALSYM GL_IMAGE_TRANSLATE_X_HP}
- GL_IMAGE_TRANSLATE_Y_HP = $8158;
- {$EXTERNALSYM GL_IMAGE_TRANSLATE_Y_HP}
- GL_IMAGE_ROTATE_ANGLE_HP = $8159;
- {$EXTERNALSYM GL_IMAGE_ROTATE_ANGLE_HP}
- GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
- {$EXTERNALSYM GL_IMAGE_ROTATE_ORIGIN_X_HP}
- GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
- {$EXTERNALSYM GL_IMAGE_ROTATE_ORIGIN_Y_HP}
- GL_IMAGE_MAG_FILTER_HP = $815C;
- {$EXTERNALSYM GL_IMAGE_MAG_FILTER_HP}
- GL_IMAGE_MIN_FILTER_HP = $815D;
- {$EXTERNALSYM GL_IMAGE_MIN_FILTER_HP}
- GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
- {$EXTERNALSYM GL_IMAGE_CUBIC_WEIGHT_HP}
- GL_CUBIC_HP = $815F;
- {$EXTERNALSYM GL_CUBIC_HP}
- GL_AVERAGE_HP = $8160;
- {$EXTERNALSYM GL_AVERAGE_HP}
- GL_IMAGE_TRANSFORM_2D_HP = $8161;
- {$EXTERNALSYM GL_IMAGE_TRANSFORM_2D_HP}
- GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
- {$EXTERNALSYM GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP}
- GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
- {$EXTERNALSYM GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP}
-
- // GL_HP_convolution_border_modes
- GL_IGNORE_BORDER_HP = $8150;
- {$EXTERNALSYM GL_IGNORE_BORDER_HP}
- GL_CONSTANT_BORDER_HP = $8151;
- {$EXTERNALSYM GL_CONSTANT_BORDER_HP}
- GL_REPLICATE_BORDER_HP = $8153;
- {$EXTERNALSYM GL_REPLICATE_BORDER_HP}
- GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
- {$EXTERNALSYM GL_CONVOLUTION_BORDER_COLOR_HP}
-
- // GL_SGIX_texture_add_env
- GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
- {$EXTERNALSYM GL_TEXTURE_ENV_BIAS_SGIX}
-
- // GL_PGI_vertex_hints
- GL_VERTEX_DATA_HINT_PGI = $1A22A;
- {$EXTERNALSYM GL_VERTEX_DATA_HINT_PGI}
- GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
- {$EXTERNALSYM GL_VERTEX_CONSISTENT_HINT_PGI}
- GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
- {$EXTERNALSYM GL_MATERIAL_SIDE_HINT_PGI}
- GL_MAX_VERTEX_HINT_PGI = $1A22D;
- {$EXTERNALSYM GL_MAX_VERTEX_HINT_PGI}
- GL_COLOR3_BIT_PGI = $00010000;
- {$EXTERNALSYM GL_COLOR3_BIT_PGI}
- GL_COLOR4_BIT_PGI = $00020000;
- {$EXTERNALSYM GL_COLOR4_BIT_PGI}
- GL_EDGEFLAG_BIT_PGI = $00040000;
- {$EXTERNALSYM GL_EDGEFLAG_BIT_PGI}
- GL_INDEX_BIT_PGI = $00080000;
- {$EXTERNALSYM GL_INDEX_BIT_PGI}
- GL_MAT_AMBIENT_BIT_PGI = $00100000;
- {$EXTERNALSYM GL_MAT_AMBIENT_BIT_PGI}
- GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
- {$EXTERNALSYM GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI}
- GL_MAT_DIFFUSE_BIT_PGI = $00400000;
- {$EXTERNALSYM GL_MAT_DIFFUSE_BIT_PGI}
- GL_MAT_EMISSION_BIT_PGI = $00800000;
- {$EXTERNALSYM GL_MAT_EMISSION_BIT_PGI}
- GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
- {$EXTERNALSYM GL_MAT_COLOR_INDEXES_BIT_PGI}
- GL_MAT_SHININESS_BIT_PGI = $02000000;
- {$EXTERNALSYM GL_MAT_SHININESS_BIT_PGI}
- GL_MAT_SPECULAR_BIT_PGI = $04000000;
- {$EXTERNALSYM GL_MAT_SPECULAR_BIT_PGI}
- GL_NORMAL_BIT_PGI = $08000000;
- {$EXTERNALSYM GL_NORMAL_BIT_PGI}
- GL_TEXCOORD1_BIT_PGI = $10000000;
- {$EXTERNALSYM GL_TEXCOORD1_BIT_PGI}
- GL_TEXCOORD2_BIT_PGI = $20000000;
- {$EXTERNALSYM GL_TEXCOORD2_BIT_PGI}
- GL_TEXCOORD3_BIT_PGI = $40000000;
- {$EXTERNALSYM GL_TEXCOORD3_BIT_PGI}
- GL_TEXCOORD4_BIT_PGI = $80000000;
- {$EXTERNALSYM GL_TEXCOORD4_BIT_PGI}
- GL_VERTEX23_BIT_PGI = $00000004;
- {$EXTERNALSYM GL_VERTEX23_BIT_PGI}
- GL_VERTEX4_BIT_PGI = $00000008;
- {$EXTERNALSYM GL_VERTEX4_BIT_PGI}
-
- // GL_PGI_misc_hints
- GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
- {$EXTERNALSYM GL_PREFER_DOUBLEBUFFER_HINT_PGI}
- GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
- {$EXTERNALSYM GL_CONSERVE_MEMORY_HINT_PGI}
- GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
- {$EXTERNALSYM GL_RECLAIM_MEMORY_HINT_PGI}
- GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
- {$EXTERNALSYM GL_NATIVE_GRAPHICS_HANDLE_PGI}
- GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
- {$EXTERNALSYM GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI}
- GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
- {$EXTERNALSYM GL_NATIVE_GRAPHICS_END_HINT_PGI}
- GL_ALWAYS_FAST_HINT_PGI = $1A20C;
- {$EXTERNALSYM GL_ALWAYS_FAST_HINT_PGI}
- GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
- {$EXTERNALSYM GL_ALWAYS_SOFT_HINT_PGI}
- GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
- {$EXTERNALSYM GL_ALLOW_DRAW_OBJ_HINT_PGI}
- GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
- {$EXTERNALSYM GL_ALLOW_DRAW_WIN_HINT_PGI}
- GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
- {$EXTERNALSYM GL_ALLOW_DRAW_FRG_HINT_PGI}
- GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
- {$EXTERNALSYM GL_ALLOW_DRAW_MEM_HINT_PGI}
- GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
- {$EXTERNALSYM GL_STRICT_DEPTHFUNC_HINT_PGI}
- GL_STRICT_LIGHTING_HINT_PGI = $1A217;
- {$EXTERNALSYM GL_STRICT_LIGHTING_HINT_PGI}
- GL_STRICT_SCISSOR_HINT_PGI = $1A218;
- {$EXTERNALSYM GL_STRICT_SCISSOR_HINT_PGI}
- GL_FULL_STIPPLE_HINT_PGI = $1A219;
- {$EXTERNALSYM GL_FULL_STIPPLE_HINT_PGI}
- GL_CLIP_NEAR_HINT_PGI = $1A220;
- {$EXTERNALSYM GL_CLIP_NEAR_HINT_PGI}
- GL_CLIP_FAR_HINT_PGI = $1A221;
- {$EXTERNALSYM GL_CLIP_FAR_HINT_PGI}
- GL_WIDE_LINE_HINT_PGI = $1A222;
- {$EXTERNALSYM GL_WIDE_LINE_HINT_PGI}
- GL_BACK_NORMALS_HINT_PGI = $1A223;
- {$EXTERNALSYM GL_BACK_NORMALS_HINT_PGI}
-
- // GL_EXT_paletted_texture
- GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
- {$EXTERNALSYM GL_TEXTURE_INDEX_SIZE_EXT}
-
- // GL_SGIX_list_priority
- GL_LIST_PRIORITY_SGIX = $8182;
- {$EXTERNALSYM GL_LIST_PRIORITY_SGIX}
-
- // GL_SGIX_ir_instrument1
- GL_IR_INSTRUMENT1_SGIX = $817F;
- {$EXTERNALSYM GL_IR_INSTRUMENT1_SGIX}
-
- // GL_SGIX_calligraphic_fragment
- GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
- {$EXTERNALSYM GL_CALLIGRAPHIC_FRAGMENT_SGIX}
-
- // GL_SGIX_texture_lod_bias
- GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
- {$EXTERNALSYM GL_TEXTURE_LOD_BIAS_S_SGIX}
- GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
- {$EXTERNALSYM GL_TEXTURE_LOD_BIAS_T_SGIX}
- GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
- {$EXTERNALSYM GL_TEXTURE_LOD_BIAS_R_SGIX}
-
- // GL_SGIX_shadow_ambient
- GL_SHADOW_AMBIENT_SGIX = $80BF;
- {$EXTERNALSYM GL_SHADOW_AMBIENT_SGIX}
-
- // GL_SGIX_ycrcb
- GL_YCRCB_422_SGIX = $81BB;
- {$EXTERNALSYM GL_YCRCB_422_SGIX}
- GL_YCRCB_444_SGIX = $81BC;
- {$EXTERNALSYM GL_YCRCB_444_SGIX}
-
- // GL_SGIX_fragment_lighting
- GL_FRAGMENT_LIGHTING_SGIX = $8400;
- {$EXTERNALSYM GL_FRAGMENT_LIGHTING_SGIX}
- GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
- {$EXTERNALSYM GL_FRAGMENT_COLOR_MATERIAL_SGIX}
- GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
- {$EXTERNALSYM GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX}
- GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
- {$EXTERNALSYM GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX}
- GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
- {$EXTERNALSYM GL_MAX_FRAGMENT_LIGHTS_SGIX}
- GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
- {$EXTERNALSYM GL_MAX_ACTIVE_LIGHTS_SGIX}
- GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
- {$EXTERNALSYM GL_CURRENT_RASTER_NORMAL_SGIX}
- GL_LIGHT_ENV_MODE_SGIX = $8407;
- {$EXTERNALSYM GL_LIGHT_ENV_MODE_SGIX}
- GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX}
- GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX}
- GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX}
- GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX}
- GL_FRAGMENT_LIGHT0_SGIX = $840C;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT0_SGIX}
- GL_FRAGMENT_LIGHT1_SGIX = $840D;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT1_SGIX}
- GL_FRAGMENT_LIGHT2_SGIX = $840E;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT2_SGIX}
- GL_FRAGMENT_LIGHT3_SGIX = $840F;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT3_SGIX}
- GL_FRAGMENT_LIGHT4_SGIX = $8410;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT4_SGIX}
- GL_FRAGMENT_LIGHT5_SGIX = $8411;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT5_SGIX}
- GL_FRAGMENT_LIGHT6_SGIX = $8412;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT6_SGIX}
- GL_FRAGMENT_LIGHT7_SGIX = $8413;
- {$EXTERNALSYM GL_FRAGMENT_LIGHT7_SGIX}
-
- // GL_IBM_rasterpos_clip
- GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
- {$EXTERNALSYM GL_RASTER_POSITION_UNCLIPPED_IBM}
-
- // GL_HP_texture_lighting
- GL_TEXTURE_LIGHTING_MODE_HP = $8167;
- {$EXTERNALSYM GL_TEXTURE_LIGHTING_MODE_HP}
- GL_TEXTURE_POST_SPECULAR_HP = $8168;
- {$EXTERNALSYM GL_TEXTURE_POST_SPECULAR_HP}
- GL_TEXTURE_PRE_SPECULAR_HP = $8169;
- {$EXTERNALSYM GL_TEXTURE_PRE_SPECULAR_HP}
-
- // GL_EXT_draw_range_elements
- GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
- {$EXTERNALSYM GL_MAX_ELEMENTS_VERTICES_EXT}
- GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
- {$EXTERNALSYM GL_MAX_ELEMENTS_INDICES_EXT}
-
- // GL_WIN_phong_shading
- GL_PHONG_WIN = $80EA;
- {$EXTERNALSYM GL_PHONG_WIN}
- GL_PHONG_HINT_WIN = $80EB;
- {$EXTERNALSYM GL_PHONG_HINT_WIN}
-
- // GL_WIN_specular_fog
- GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
- {$EXTERNALSYM GL_FOG_SPECULAR_TEXTURE_WIN}
-
- // GL_EXT_light_texture
- GL_FRAGMENT_MATERIAL_EXT = $8349;
- {$EXTERNALSYM GL_FRAGMENT_MATERIAL_EXT}
- GL_FRAGMENT_NORMAL_EXT = $834A;
- {$EXTERNALSYM GL_FRAGMENT_NORMAL_EXT}
- GL_FRAGMENT_COLOR_EXT = $834C;
- {$EXTERNALSYM GL_FRAGMENT_COLOR_EXT}
- GL_ATTENUATION_EXT = $834D;
- {$EXTERNALSYM GL_ATTENUATION_EXT}
- GL_SHADOW_ATTENUATION_EXT = $834E;
- {$EXTERNALSYM GL_SHADOW_ATTENUATION_EXT}
- GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
- {$EXTERNALSYM GL_TEXTURE_APPLICATION_MODE_EXT}
- GL_TEXTURE_LIGHT_EXT = $8350;
- {$EXTERNALSYM GL_TEXTURE_LIGHT_EXT}
- GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
- {$EXTERNALSYM GL_TEXTURE_MATERIAL_FACE_EXT}
- GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
- {$EXTERNALSYM GL_TEXTURE_MATERIAL_PARAMETER_EXT}
-
- // GL_SGIX_blend_alpha_minmax
- GL_ALPHA_MIN_SGIX = $8320;
- {$EXTERNALSYM GL_ALPHA_MIN_SGIX}
- GL_ALPHA_MAX_SGIX = $8321;
- {$EXTERNALSYM GL_ALPHA_MAX_SGIX}
-
- // GL_SGIX_async
- GL_ASYNC_MARKER_SGIX = $8329;
- {$EXTERNALSYM GL_ASYNC_MARKER_SGIX}
-
- // GL_SGIX_async_pixel
- GL_ASYNC_TEX_IMAGE_SGIX = $835C;
- {$EXTERNALSYM GL_ASYNC_TEX_IMAGE_SGIX}
- GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
- {$EXTERNALSYM GL_ASYNC_DRAW_PIXELS_SGIX}
- GL_ASYNC_READ_PIXELS_SGIX = $835E;
- {$EXTERNALSYM GL_ASYNC_READ_PIXELS_SGIX}
- GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
- {$EXTERNALSYM GL_MAX_ASYNC_TEX_IMAGE_SGIX}
- GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
- {$EXTERNALSYM GL_MAX_ASYNC_DRAW_PIXELS_SGIX}
- GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
- {$EXTERNALSYM GL_MAX_ASYNC_READ_PIXELS_SGIX}
-
- // GL_SGIX_async_histogram
- GL_ASYNC_HISTOGRAM_SGIX = $832C;
- {$EXTERNALSYM GL_ASYNC_HISTOGRAM_SGIX}
- GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
- {$EXTERNALSYM GL_MAX_ASYNC_HISTOGRAM_SGIX}
-
- // GL_INTEL_parallel_arrays
- GL_PARALLEL_ARRAYS_INTEL = $83F4;
- {$EXTERNALSYM GL_PARALLEL_ARRAYS_INTEL}
- GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
- {$EXTERNALSYM GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL}
- GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
- {$EXTERNALSYM GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL}
- GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
- {$EXTERNALSYM GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL}
- GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL}
-
- // GL_HP_occlusion_test
- GL_OCCLUSION_TEST_HP = $8165;
- {$EXTERNALSYM GL_OCCLUSION_TEST_HP}
- GL_OCCLUSION_TEST_RESULT_HP = $8166;
- {$EXTERNALSYM GL_OCCLUSION_TEST_RESULT_HP}
-
- // GL_EXT_pixel_transform
- GL_PIXEL_TRANSFORM_2D_EXT = $8330;
- {$EXTERNALSYM GL_PIXEL_TRANSFORM_2D_EXT}
- GL_PIXEL_MAG_FILTER_EXT = $8331;
- {$EXTERNALSYM GL_PIXEL_MAG_FILTER_EXT}
- GL_PIXEL_MIN_FILTER_EXT = $8332;
- {$EXTERNALSYM GL_PIXEL_MIN_FILTER_EXT}
- GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
- {$EXTERNALSYM GL_PIXEL_CUBIC_WEIGHT_EXT}
- GL_CUBIC_EXT = $8334;
- {$EXTERNALSYM GL_CUBIC_EXT}
- GL_AVERAGE_EXT = $8335;
- {$EXTERNALSYM GL_AVERAGE_EXT}
- GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
- {$EXTERNALSYM GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT}
- GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
- {$EXTERNALSYM GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT}
- GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
- {$EXTERNALSYM GL_PIXEL_TRANSFORM_2D_MATRIX_EXT}
-
- // GL_EXT_separate_specular_color
- GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
- {$EXTERNALSYM GL_LIGHT_MODEL_COLOR_CONTROL_EXT}
- GL_SINGLE_COLOR_EXT = $81F9;
- {$EXTERNALSYM GL_SINGLE_COLOR_EXT}
- GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
- {$EXTERNALSYM GL_SEPARATE_SPECULAR_COLOR_EXT}
-
- // GL_EXT_secondary_color
- GL_COLOR_SUM_EXT = $8458;
- {$EXTERNALSYM GL_COLOR_SUM_EXT}
- GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
- {$EXTERNALSYM GL_CURRENT_SECONDARY_COLOR_EXT}
- GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
- {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_SIZE_EXT}
- GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
- {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_TYPE_EXT}
- GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
- {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT}
- GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
- {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_POINTER_EXT}
- GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
- {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_EXT}
-
- // GL_EXT_texture_perturb_normal
- GL_PERTURB_EXT = $85AE;
- {$EXTERNALSYM GL_PERTURB_EXT}
- GL_TEXTURE_NORMAL_EXT = $85AF;
- {$EXTERNALSYM GL_TEXTURE_NORMAL_EXT}
-
- // GL_EXT_fog_coord
- GL_FOG_COORDINATE_SOURCE_EXT = $8450;
- {$EXTERNALSYM GL_FOG_COORDINATE_SOURCE_EXT}
- GL_FOG_COORDINATE_EXT = $8451;
- {$EXTERNALSYM GL_FOG_COORDINATE_EXT}
- GL_FRAGMENT_DEPTH_EXT = $8452;
- {$EXTERNALSYM GL_FRAGMENT_DEPTH_EXT}
- GL_CURRENT_FOG_COORDINATE_EXT = $8453;
- {$EXTERNALSYM GL_CURRENT_FOG_COORDINATE_EXT}
- GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
- {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_TYPE_EXT}
- GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
- {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_STRIDE_EXT}
- GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
- {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_POINTER_EXT}
- GL_FOG_COORDINATE_ARRAY_EXT = $8457;
- {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_EXT}
-
- // GL_REND_screen_coordinates
- GL_SCREEN_COORDINATES_REND = $8490;
- {$EXTERNALSYM GL_SCREEN_COORDINATES_REND}
- GL_INVERTED_SCREEN_W_REND = $8491;
- {$EXTERNALSYM GL_INVERTED_SCREEN_W_REND}
-
- // GL_EXT_coordinate_frame
- GL_TANGENT_ARRAY_EXT = $8439;
- {$EXTERNALSYM GL_TANGENT_ARRAY_EXT}
- GL_BINORMAL_ARRAY_EXT = $843A;
- {$EXTERNALSYM GL_BINORMAL_ARRAY_EXT}
- GL_CURRENT_TANGENT_EXT = $843B;
- {$EXTERNALSYM GL_CURRENT_TANGENT_EXT}
- GL_CURRENT_BINORMAL_EXT = $843C;
- {$EXTERNALSYM GL_CURRENT_BINORMAL_EXT}
- GL_TANGENT_ARRAY_TYPE_EXT = $843E;
- {$EXTERNALSYM GL_TANGENT_ARRAY_TYPE_EXT}
- GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
- {$EXTERNALSYM GL_TANGENT_ARRAY_STRIDE_EXT}
- GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
- {$EXTERNALSYM GL_BINORMAL_ARRAY_TYPE_EXT}
- GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
- {$EXTERNALSYM GL_BINORMAL_ARRAY_STRIDE_EXT}
- GL_TANGENT_ARRAY_POINTER_EXT = $8442;
- {$EXTERNALSYM GL_TANGENT_ARRAY_POINTER_EXT}
- GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
- {$EXTERNALSYM GL_BINORMAL_ARRAY_POINTER_EXT}
- GL_MAP1_TANGENT_EXT = $8444;
- {$EXTERNALSYM GL_MAP1_TANGENT_EXT}
- GL_MAP2_TANGENT_EXT = $8445;
- {$EXTERNALSYM GL_MAP2_TANGENT_EXT}
- GL_MAP1_BINORMAL_EXT = $8446;
- {$EXTERNALSYM GL_MAP1_BINORMAL_EXT}
- GL_MAP2_BINORMAL_EXT = $8447;
- {$EXTERNALSYM GL_MAP2_BINORMAL_EXT}
-
- // GL_EXT_texture_env_combine
- GL_SOURCE3_RGB_EXT = $8583;
- {$EXTERNALSYM GL_SOURCE3_RGB_EXT}
- GL_SOURCE4_RGB_EXT = $8584;
- {$EXTERNALSYM GL_SOURCE4_RGB_EXT}
- GL_SOURCE5_RGB_EXT = $8585;
- {$EXTERNALSYM GL_SOURCE5_RGB_EXT}
- GL_SOURCE6_RGB_EXT = $8586;
- {$EXTERNALSYM GL_SOURCE6_RGB_EXT}
- GL_SOURCE7_RGB_EXT = $8587;
- {$EXTERNALSYM GL_SOURCE7_RGB_EXT}
- GL_SOURCE3_ALPHA_EXT = $858B;
- {$EXTERNALSYM GL_SOURCE3_ALPHA_EXT}
- GL_SOURCE4_ALPHA_EXT = $858C;
- {$EXTERNALSYM GL_SOURCE4_ALPHA_EXT}
- GL_SOURCE5_ALPHA_EXT = $858D;
- {$EXTERNALSYM GL_SOURCE5_ALPHA_EXT}
- GL_SOURCE6_ALPHA_EXT = $858E;
- {$EXTERNALSYM GL_SOURCE6_ALPHA_EXT}
- GL_SOURCE7_ALPHA_EXT = $858F;
- {$EXTERNALSYM GL_SOURCE7_ALPHA_EXT}
- GL_OPERAND3_RGB_EXT = $8593;
- {$EXTERNALSYM GL_OPERAND3_RGB_EXT}
- GL_OPERAND4_RGB_EXT = $8594;
- {$EXTERNALSYM GL_OPERAND4_RGB_EXT}
- GL_OPERAND5_RGB_EXT = $8595;
- {$EXTERNALSYM GL_OPERAND5_RGB_EXT}
- GL_OPERAND6_RGB_EXT = $8596;
- {$EXTERNALSYM GL_OPERAND6_RGB_EXT}
- GL_OPERAND7_RGB_EXT = $8597;
- {$EXTERNALSYM GL_OPERAND7_RGB_EXT}
- GL_OPERAND3_ALPHA_EXT = $859B;
- {$EXTERNALSYM GL_OPERAND3_ALPHA_EXT}
- GL_OPERAND4_ALPHA_EXT = $859C;
- {$EXTERNALSYM GL_OPERAND4_ALPHA_EXT}
- GL_OPERAND5_ALPHA_EXT = $859D;
- {$EXTERNALSYM GL_OPERAND5_ALPHA_EXT}
- GL_OPERAND6_ALPHA_EXT = $859E;
- {$EXTERNALSYM GL_OPERAND6_ALPHA_EXT}
- GL_OPERAND7_ALPHA_EXT = $859F;
- {$EXTERNALSYM GL_OPERAND7_ALPHA_EXT}
-
- // GL_APPLE_specular_vector
- GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
- {$EXTERNALSYM GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE}
-
- // GL_APPLE_transform_hint
- GL_TRANSFORM_HINT_APPLE = $85B1;
- {$EXTERNALSYM GL_TRANSFORM_HINT_APPLE}
-
- // GL_SGIX_fog_scale
- GL_FOG_SCALE_SGIX = $81FC;
- {$EXTERNALSYM GL_FOG_SCALE_SGIX}
- GL_FOG_SCALE_VALUE_SGIX = $81FD;
- {$EXTERNALSYM GL_FOG_SCALE_VALUE_SGIX}
-
- // GL_SUNX_constant_data
- GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
- {$EXTERNALSYM GL_UNPACK_CONSTANT_DATA_SUNX}
- GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
- {$EXTERNALSYM GL_TEXTURE_CONSTANT_DATA_SUNX}
-
- // GL_SUN_global_alpha
- GL_GLOBAL_ALPHA_SUN = $81D9;
- {$EXTERNALSYM GL_GLOBAL_ALPHA_SUN}
- GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
- {$EXTERNALSYM GL_GLOBAL_ALPHA_FACTOR_SUN}
-
- // GL_SUN_triangle_list
- GL_RESTART_SUN = $01;
- {$EXTERNALSYM GL_RESTART_SUN}
- GL_REPLACE_MIDDLE_SUN = $02;
- {$EXTERNALSYM GL_REPLACE_MIDDLE_SUN}
- GL_REPLACE_OLDEST_SUN = $03;
- {$EXTERNALSYM GL_REPLACE_OLDEST_SUN}
- GL_TRIANGLE_LIST_SUN = $81D7;
- {$EXTERNALSYM GL_TRIANGLE_LIST_SUN}
- GL_REPLACEMENT_CODE_SUN = $81D8;
- {$EXTERNALSYM GL_REPLACEMENT_CODE_SUN}
- GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
- {$EXTERNALSYM GL_REPLACEMENT_CODE_ARRAY_SUN}
- GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
- {$EXTERNALSYM GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN}
- GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
- {$EXTERNALSYM GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN}
- GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
- {$EXTERNALSYM GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN}
- GL_R1UI_V3F_SUN = $85C4;
- {$EXTERNALSYM GL_R1UI_V3F_SUN}
- GL_R1UI_C4UB_V3F_SUN = $85C5;
- {$EXTERNALSYM GL_R1UI_C4UB_V3F_SUN}
- GL_R1UI_C3F_V3F_SUN = $85C6;
- {$EXTERNALSYM GL_R1UI_C3F_V3F_SUN}
- GL_R1UI_N3F_V3F_SUN = $85C7;
- {$EXTERNALSYM GL_R1UI_N3F_V3F_SUN}
- GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
- {$EXTERNALSYM GL_R1UI_C4F_N3F_V3F_SUN}
- GL_R1UI_T2F_V3F_SUN = $85C9;
- {$EXTERNALSYM GL_R1UI_T2F_V3F_SUN}
- GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
- {$EXTERNALSYM GL_R1UI_T2F_N3F_V3F_SUN}
- GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
- {$EXTERNALSYM GL_R1UI_T2F_C4F_N3F_V3F_SUN}
-
- // GL_EXT_blend_func_separate
- GL_BLEND_DST_RGB_EXT = $80C8;
- {$EXTERNALSYM GL_BLEND_DST_RGB_EXT}
- GL_BLEND_SRC_RGB_EXT = $80C9;
- {$EXTERNALSYM GL_BLEND_SRC_RGB_EXT}
- GL_BLEND_DST_ALPHA_EXT = $80CA;
- {$EXTERNALSYM GL_BLEND_DST_ALPHA_EXT}
- GL_BLEND_SRC_ALPHA_EXT = $80CB;
- {$EXTERNALSYM GL_BLEND_SRC_ALPHA_EXT}
-
- // GL_INGR_color_clamp
- GL_RED_MIN_CLAMP_INGR = $8560;
- {$EXTERNALSYM GL_RED_MIN_CLAMP_INGR}
- GL_GREEN_MIN_CLAMP_INGR = $8561;
- {$EXTERNALSYM GL_GREEN_MIN_CLAMP_INGR}
- GL_BLUE_MIN_CLAMP_INGR = $8562;
- {$EXTERNALSYM GL_BLUE_MIN_CLAMP_INGR}
- GL_ALPHA_MIN_CLAMP_INGR = $8563;
- {$EXTERNALSYM GL_ALPHA_MIN_CLAMP_INGR}
- GL_RED_MAX_CLAMP_INGR = $8564;
- {$EXTERNALSYM GL_RED_MAX_CLAMP_INGR}
- GL_GREEN_MAX_CLAMP_INGR = $8565;
- {$EXTERNALSYM GL_GREEN_MAX_CLAMP_INGR}
- GL_BLUE_MAX_CLAMP_INGR = $8566;
- {$EXTERNALSYM GL_BLUE_MAX_CLAMP_INGR}
- GL_ALPHA_MAX_CLAMP_INGR = $8567;
- {$EXTERNALSYM GL_ALPHA_MAX_CLAMP_INGR}
-
- // GL_INGR_interlace_read
- GL_INTERLACE_READ_INGR = $8568;
- {$EXTERNALSYM GL_INTERLACE_READ_INGR}
-
- // GL_EXT_422_pixels
- GL_422_EXT = $80CC;
- {$EXTERNALSYM GL_422_EXT}
- GL_422_REV_EXT = $80CD;
- {$EXTERNALSYM GL_422_REV_EXT}
- GL_422_AVERAGE_EXT = $80CE;
- {$EXTERNALSYM GL_422_AVERAGE_EXT}
- GL_422_REV_AVERAGE_EXT = $80CF;
- {$EXTERNALSYM GL_422_REV_AVERAGE_EXT}
-
- // GL_EXT_texture_cube_map
- GL_NORMAL_MAP_EXT = $8511;
- {$EXTERNALSYM GL_NORMAL_MAP_EXT}
- GL_REFLECTION_MAP_EXT = $8512;
- {$EXTERNALSYM GL_REFLECTION_MAP_EXT}
- GL_TEXTURE_CUBE_MAP_EXT = $8513;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_EXT}
- GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
- {$EXTERNALSYM GL_TEXTURE_BINDING_CUBE_MAP_EXT}
- GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT}
- GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT}
- GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT}
- GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT}
- GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT}
- GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
- {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT}
- GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
- {$EXTERNALSYM GL_PROXY_TEXTURE_CUBE_MAP_EXT}
- GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
- {$EXTERNALSYM GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT}
-
- // GL_SUN_convolution_border_modes
- GL_WRAP_BORDER_SUN = $81D4;
- {$EXTERNALSYM GL_WRAP_BORDER_SUN}
-
- // GL_EXT_texture_lod_bias
- GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
- {$EXTERNALSYM GL_MAX_TEXTURE_LOD_BIAS_EXT}
- GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
- {$EXTERNALSYM GL_TEXTURE_FILTER_CONTROL_EXT}
- GL_TEXTURE_LOD_BIAS_EXT = $8501;
- {$EXTERNALSYM GL_TEXTURE_LOD_BIAS_EXT}
-
- // GL_EXT_texture_filter_anisotropic
- GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
- {$EXTERNALSYM GL_TEXTURE_MAX_ANISOTROPY_EXT}
- GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
- {$EXTERNALSYM GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT}
-
- // GL_EXT_vertex_weighting
- GL_MODELVIEW0_STACK_DEPTH_EXT = GL_MODELVIEW_STACK_DEPTH;
- {$EXTERNALSYM GL_MODELVIEW0_STACK_DEPTH_EXT}
- GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
- {$EXTERNALSYM GL_MODELVIEW1_STACK_DEPTH_EXT}
- GL_MODELVIEW0_MATRIX_EXT = GL_MODELVIEW_MATRIX;
- {$EXTERNALSYM GL_MODELVIEW0_MATRIX_EXT}
- GL_MODELVIEW_MATRIX1_EXT = $8506;
- {$EXTERNALSYM GL_MODELVIEW_MATRIX1_EXT}
- GL_VERTEX_WEIGHTING_EXT = $8509;
- {$EXTERNALSYM GL_VERTEX_WEIGHTING_EXT}
- GL_MODELVIEW0_EXT = GL_MODELVIEW;
- {$EXTERNALSYM GL_MODELVIEW0_EXT}
- GL_MODELVIEW1_EXT = $850A;
- {$EXTERNALSYM GL_MODELVIEW1_EXT}
- GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
- {$EXTERNALSYM GL_CURRENT_VERTEX_WEIGHT_EXT}
- GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
- {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_EXT}
- GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
- {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT}
- GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
- {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT}
- GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
- {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT}
- GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
- {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT}
-
- // GL_NV_light_max_exponent
- GL_MAX_SHININESS_NV = $8504;
- {$EXTERNALSYM GL_MAX_SHININESS_NV}
- GL_MAX_SPOT_EXPONENT_NV = $8505;
- {$EXTERNALSYM GL_MAX_SPOT_EXPONENT_NV}
-
- // GL_NV_vertex_array_range
- GL_VERTEX_ARRAY_RANGE_NV = $851D;
- {$EXTERNALSYM GL_VERTEX_ARRAY_RANGE_NV}
- GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
- {$EXTERNALSYM GL_VERTEX_ARRAY_RANGE_LENGTH_NV}
- GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
- {$EXTERNALSYM GL_VERTEX_ARRAY_RANGE_VALID_NV}
- GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
- {$EXTERNALSYM GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV}
- GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
- {$EXTERNALSYM GL_VERTEX_ARRAY_RANGE_POINTER_NV}
-
- // GL_NV_register_combiners
- GL_REGISTER_COMBINERS_NV = $8522;
- {$EXTERNALSYM GL_REGISTER_COMBINERS_NV}
- GL_VARIABLE_A_NV = $8523;
- {$EXTERNALSYM GL_VARIABLE_A_NV}
- GL_VARIABLE_B_NV = $8524;
- {$EXTERNALSYM GL_VARIABLE_B_NV}
- GL_VARIABLE_C_NV = $8525;
- {$EXTERNALSYM GL_VARIABLE_C_NV}
- GL_VARIABLE_D_NV = $8526;
- {$EXTERNALSYM GL_VARIABLE_D_NV}
- GL_VARIABLE_E_NV = $8527;
- {$EXTERNALSYM GL_VARIABLE_E_NV}
- GL_VARIABLE_F_NV = $8528;
- {$EXTERNALSYM GL_VARIABLE_F_NV}
- GL_VARIABLE_G_NV = $8529;
- {$EXTERNALSYM GL_VARIABLE_G_NV}
- GL_CONSTANT_COLOR0_NV = $852A;
- {$EXTERNALSYM GL_CONSTANT_COLOR0_NV}
- GL_CONSTANT_COLOR1_NV = $852B;
- {$EXTERNALSYM GL_CONSTANT_COLOR1_NV}
- GL_PRIMARY_COLOR_NV = $852C;
- {$EXTERNALSYM GL_PRIMARY_COLOR_NV}
- GL_SECONDARY_COLOR_NV = $852D;
- {$EXTERNALSYM GL_SECONDARY_COLOR_NV}
- GL_SPARE0_NV = $852E;
- {$EXTERNALSYM GL_SPARE0_NV}
- GL_SPARE1_NV = $852F;
- {$EXTERNALSYM GL_SPARE1_NV}
- GL_DISCARD_NV = $8530;
- {$EXTERNALSYM GL_DISCARD_NV}
- GL_E_TIMES_F_NV = $8531;
- {$EXTERNALSYM GL_E_TIMES_F_NV}
- GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
- {$EXTERNALSYM GL_SPARE0_PLUS_SECONDARY_COLOR_NV}
- GL_UNSIGNED_IDENTITY_NV = $8536;
- {$EXTERNALSYM GL_UNSIGNED_IDENTITY_NV}
- GL_UNSIGNED_INVERT_NV = $8537;
- {$EXTERNALSYM GL_UNSIGNED_INVERT_NV}
- GL_EXPAND_NORMAL_NV = $8538;
- {$EXTERNALSYM GL_EXPAND_NORMAL_NV}
- GL_EXPAND_NEGATE_NV = $8539;
- {$EXTERNALSYM GL_EXPAND_NEGATE_NV}
- GL_HALF_BIAS_NORMAL_NV = $853A;
- {$EXTERNALSYM GL_HALF_BIAS_NORMAL_NV}
- GL_HALF_BIAS_NEGATE_NV = $853B;
- {$EXTERNALSYM GL_HALF_BIAS_NEGATE_NV}
- GL_SIGNED_IDENTITY_NV = $853C;
- {$EXTERNALSYM GL_SIGNED_IDENTITY_NV}
- GL_SIGNED_NEGATE_NV = $853D;
- {$EXTERNALSYM GL_SIGNED_NEGATE_NV}
- GL_SCALE_BY_TWO_NV = $853E;
- {$EXTERNALSYM GL_SCALE_BY_TWO_NV}
- GL_SCALE_BY_FOUR_NV = $853F;
- {$EXTERNALSYM GL_SCALE_BY_FOUR_NV}
- GL_SCALE_BY_ONE_HALF_NV = $8540;
- {$EXTERNALSYM GL_SCALE_BY_ONE_HALF_NV}
- GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
- {$EXTERNALSYM GL_BIAS_BY_NEGATIVE_ONE_HALF_NV}
- GL_COMBINER_INPUT_NV = $8542;
- {$EXTERNALSYM GL_COMBINER_INPUT_NV}
- GL_COMBINER_MAPPING_NV = $8543;
- {$EXTERNALSYM GL_COMBINER_MAPPING_NV}
- GL_COMBINER_COMPONENT_USAGE_NV = $8544;
- {$EXTERNALSYM GL_COMBINER_COMPONENT_USAGE_NV}
- GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
- {$EXTERNALSYM GL_COMBINER_AB_DOT_PRODUCT_NV}
- GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
- {$EXTERNALSYM GL_COMBINER_CD_DOT_PRODUCT_NV}
- GL_COMBINER_MUX_SUM_NV = $8547;
- {$EXTERNALSYM GL_COMBINER_MUX_SUM_NV}
- GL_COMBINER_SCALE_NV = $8548;
- {$EXTERNALSYM GL_COMBINER_SCALE_NV}
- GL_COMBINER_BIAS_NV = $8549;
- {$EXTERNALSYM GL_COMBINER_BIAS_NV}
- GL_COMBINER_AB_OUTPUT_NV = $854A;
- {$EXTERNALSYM GL_COMBINER_AB_OUTPUT_NV}
- GL_COMBINER_CD_OUTPUT_NV = $854B;
- {$EXTERNALSYM GL_COMBINER_CD_OUTPUT_NV}
- GL_COMBINER_SUM_OUTPUT_NV = $854C;
- {$EXTERNALSYM GL_COMBINER_SUM_OUTPUT_NV}
- GL_MAX_GENERAL_COMBINERS_NV = $854D;
- {$EXTERNALSYM GL_MAX_GENERAL_COMBINERS_NV}
- GL_NUM_GENERAL_COMBINERS_NV = $854E;
- {$EXTERNALSYM GL_NUM_GENERAL_COMBINERS_NV}
- GL_COLOR_SUM_CLAMP_NV = $854F;
- {$EXTERNALSYM GL_COLOR_SUM_CLAMP_NV}
- GL_COMBINER0_NV = $8550;
- {$EXTERNALSYM GL_COMBINER0_NV}
- GL_COMBINER1_NV = $8551;
- {$EXTERNALSYM GL_COMBINER1_NV}
- GL_COMBINER2_NV = $8552;
- {$EXTERNALSYM GL_COMBINER2_NV}
- GL_COMBINER3_NV = $8553;
- {$EXTERNALSYM GL_COMBINER3_NV}
- GL_COMBINER4_NV = $8554;
- {$EXTERNALSYM GL_COMBINER4_NV}
- GL_COMBINER5_NV = $8555;
- {$EXTERNALSYM GL_COMBINER5_NV}
- GL_COMBINER6_NV = $8556;
- {$EXTERNALSYM GL_COMBINER6_NV}
- GL_COMBINER7_NV = $8557;
- {$EXTERNALSYM GL_COMBINER7_NV}
-
- // GL_NV_fog_distance
- GL_FOG_DISTANCE_MODE_NV = $855A;
- {$EXTERNALSYM GL_FOG_DISTANCE_MODE_NV}
- GL_EYE_RADIAL_NV = $855B;
- {$EXTERNALSYM GL_EYE_RADIAL_NV}
- GL_EYE_PLANE_ABSOLUTE_NV = $855C;
- {$EXTERNALSYM GL_EYE_PLANE_ABSOLUTE_NV}
-
- // GL_NV_texgen_emboss
- GL_EMBOSS_LIGHT_NV = $855D;
- {$EXTERNALSYM GL_EMBOSS_LIGHT_NV}
- GL_EMBOSS_CONSTANT_NV = $855E;
- {$EXTERNALSYM GL_EMBOSS_CONSTANT_NV}
- GL_EMBOSS_MAP_NV = $855F;
- {$EXTERNALSYM GL_EMBOSS_MAP_NV}
-
- // GL_EXT_texture_compression_s3tc
- GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
- {$EXTERNALSYM GL_COMPRESSED_RGB_S3TC_DXT1_EXT}
- GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
- {$EXTERNALSYM GL_COMPRESSED_RGBA_S3TC_DXT1_EXT}
- GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
- {$EXTERNALSYM GL_COMPRESSED_RGBA_S3TC_DXT3_EXT}
- GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
- {$EXTERNALSYM GL_COMPRESSED_RGBA_S3TC_DXT5_EXT}
-
- // GL_IBM_cull_vertex
- GL_CULL_VERTEX_IBM = 103050;
- {$EXTERNALSYM GL_CULL_VERTEX_IBM}
-
- // GL_IBM_vertex_array_lists
- GL_VERTEX_ARRAY_LIST_IBM = 103070;
- {$EXTERNALSYM GL_VERTEX_ARRAY_LIST_IBM}
- GL_NORMAL_ARRAY_LIST_IBM = 103071;
- {$EXTERNALSYM GL_NORMAL_ARRAY_LIST_IBM}
- GL_COLOR_ARRAY_LIST_IBM = 103072;
- {$EXTERNALSYM GL_COLOR_ARRAY_LIST_IBM}
- GL_INDEX_ARRAY_LIST_IBM = 103073;
- {$EXTERNALSYM GL_INDEX_ARRAY_LIST_IBM}
- GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_LIST_IBM}
- GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_LIST_IBM}
- GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
- {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_LIST_IBM}
- GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
- {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_LIST_IBM}
- GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
- {$EXTERNALSYM GL_VERTEX_ARRAY_LIST_STRIDE_IBM}
- GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
- {$EXTERNALSYM GL_NORMAL_ARRAY_LIST_STRIDE_IBM}
- GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
- {$EXTERNALSYM GL_COLOR_ARRAY_LIST_STRIDE_IBM}
- GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
- {$EXTERNALSYM GL_INDEX_ARRAY_LIST_STRIDE_IBM}
- GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
- {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM}
- GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
- {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM}
- GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
- {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM}
- GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
- {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM}
-
- // GL_SGIX_subsample
- GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
- {$EXTERNALSYM GL_PACK_SUBSAMPLE_RATE_SGIX}
- GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
- {$EXTERNALSYM GL_UNPACK_SUBSAMPLE_RATE_SGIX}
- GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
- {$EXTERNALSYM GL_PIXEL_SUBSAMPLE_4444_SGIX}
- GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
- {$EXTERNALSYM GL_PIXEL_SUBSAMPLE_2424_SGIX}
- GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
- {$EXTERNALSYM GL_PIXEL_SUBSAMPLE_4242_SGIX}
-
- // GL_SGIX_ycrcba
- GL_YCRCB_SGIX = $8318;
- {$EXTERNALSYM GL_YCRCB_SGIX}
- GL_YCRCBA_SGIX = $8319;
- {$EXTERNALSYM GL_YCRCBA_SGIX}
-
- // GL_SGI_depth_pass_instrument
- GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
- {$EXTERNALSYM GL_DEPTH_PASS_INSTRUMENT_SGIX}
- GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
- {$EXTERNALSYM GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX}
- GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
- {$EXTERNALSYM GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX}
-
- // GL_3DFX_texture_compression_FXT1
- GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
- {$EXTERNALSYM GL_COMPRESSED_RGB_FXT1_3DFX}
- GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
- {$EXTERNALSYM GL_COMPRESSED_RGBA_FXT1_3DFX}
-
- // GL_3DFX_multisample
- GL_MULTISAMPLE_3DFX = $86B2;
- {$EXTERNALSYM GL_MULTISAMPLE_3DFX}
- GL_SAMPLE_BUFFERS_3DFX = $86B3;
- {$EXTERNALSYM GL_SAMPLE_BUFFERS_3DFX}
- GL_SAMPLES_3DFX = $86B4;
- {$EXTERNALSYM GL_SAMPLES_3DFX}
- GL_MULTISAMPLE_BIT_3DFX = $20000000;
- {$EXTERNALSYM GL_MULTISAMPLE_BIT_3DFX}
-
- // GL_EXT_multisample
- GL_MULTISAMPLE_EXT = $809D;
- {$EXTERNALSYM GL_MULTISAMPLE_EXT}
- GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
- {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_MASK_EXT}
- GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
- {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_ONE_EXT}
- GL_SAMPLE_MASK_EXT = $80A0;
- {$EXTERNALSYM GL_SAMPLE_MASK_EXT}
- GL_1PASS_EXT = $80A1;
- {$EXTERNALSYM GL_1PASS_EXT}
- GL_2PASS_0_EXT = $80A2;
- {$EXTERNALSYM GL_2PASS_0_EXT}
- GL_2PASS_1_EXT = $80A3;
- {$EXTERNALSYM GL_2PASS_1_EXT}
- GL_4PASS_0_EXT = $80A4;
- {$EXTERNALSYM GL_4PASS_0_EXT}
- GL_4PASS_1_EXT = $80A5;
- {$EXTERNALSYM GL_4PASS_1_EXT}
- GL_4PASS_2_EXT = $80A6;
- {$EXTERNALSYM GL_4PASS_2_EXT}
- GL_4PASS_3_EXT = $80A7;
- {$EXTERNALSYM GL_4PASS_3_EXT}
- GL_SAMPLE_BUFFERS_EXT = $80A8;
- {$EXTERNALSYM GL_SAMPLE_BUFFERS_EXT}
- GL_SAMPLES_EXT = $80A9;
- {$EXTERNALSYM GL_SAMPLES_EXT}
- GL_SAMPLE_MASK_VALUE_EXT = $80AA;
- {$EXTERNALSYM GL_SAMPLE_MASK_VALUE_EXT}
- GL_SAMPLE_MASK_INVERT_EXT = $80AB;
- {$EXTERNALSYM GL_SAMPLE_MASK_INVERT_EXT}
- GL_SAMPLE_PATTERN_EXT = $80AC;
- {$EXTERNALSYM GL_SAMPLE_PATTERN_EXT}
-
- // GL_SGIX_vertex_preclip
- GL_VERTEX_PRECLIP_SGIX = $83EE;
- {$EXTERNALSYM GL_VERTEX_PRECLIP_SGIX}
- GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
- {$EXTERNALSYM GL_VERTEX_PRECLIP_HINT_SGIX}
-
- // GL_SGIX_convolution_accuracy
- GL_CONVOLUTION_HINT_SGIX = $8316;
- {$EXTERNALSYM GL_CONVOLUTION_HINT_SGIX}
-
- // GL_SGIX_resample
- GL_PACK_RESAMPLE_SGIX = $842C;
- {$EXTERNALSYM GL_PACK_RESAMPLE_SGIX}
- GL_UNPACK_RESAMPLE_SGIX = $842D;
- {$EXTERNALSYM GL_UNPACK_RESAMPLE_SGIX}
- GL_RESAMPLE_REPLICATE_SGIX = $842E;
- {$EXTERNALSYM GL_RESAMPLE_REPLICATE_SGIX}
- GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
- {$EXTERNALSYM GL_RESAMPLE_ZERO_FILL_SGIX}
- GL_RESAMPLE_DECIMATE_SGIX = $8430;
- {$EXTERNALSYM GL_RESAMPLE_DECIMATE_SGIX}
-
- // GL_SGIS_point_line_texgen
- GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
- {$EXTERNALSYM GL_EYE_DISTANCE_TO_POINT_SGIS}
- GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
- {$EXTERNALSYM GL_OBJECT_DISTANCE_TO_POINT_SGIS}
- GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
- {$EXTERNALSYM GL_EYE_DISTANCE_TO_LINE_SGIS}
- GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
- {$EXTERNALSYM GL_OBJECT_DISTANCE_TO_LINE_SGIS}
- GL_EYE_POINT_SGIS = $81F4;
- {$EXTERNALSYM GL_EYE_POINT_SGIS}
- GL_OBJECT_POINT_SGIS = $81F5;
- {$EXTERNALSYM GL_OBJECT_POINT_SGIS}
- GL_EYE_LINE_SGIS = $81F6;
- {$EXTERNALSYM GL_EYE_LINE_SGIS}
- GL_OBJECT_LINE_SGIS = $81F7;
- {$EXTERNALSYM GL_OBJECT_LINE_SGIS}
-
- // GL_SGIS_texture_color_mask
- GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
- {$EXTERNALSYM GL_TEXTURE_COLOR_WRITEMASK_SGIS}
-
- // GL_NV_vertex_program
- GL_VERTEX_PROGRAM_NV = $8620;
- {$EXTERNALSYM GL_VERTEX_PROGRAM_NV}
- GL_VERTEX_STATE_PROGRAM_NV = $8621;
- {$EXTERNALSYM GL_VERTEX_STATE_PROGRAM_NV}
- GL_ATTRIB_ARRAY_SIZE_NV = $8623;
- {$EXTERNALSYM GL_ATTRIB_ARRAY_SIZE_NV}
- GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
- {$EXTERNALSYM GL_ATTRIB_ARRAY_STRIDE_NV}
- GL_ATTRIB_ARRAY_TYPE_NV = $8625;
- {$EXTERNALSYM GL_ATTRIB_ARRAY_TYPE_NV}
- GL_CURRENT_ATTRIB_NV = $8626;
- {$EXTERNALSYM GL_CURRENT_ATTRIB_NV}
- GL_PROGRAM_LENGTH_NV = $8627;
- {$EXTERNALSYM GL_PROGRAM_LENGTH_NV}
- GL_PROGRAM_STRING_NV = $8628;
- {$EXTERNALSYM GL_PROGRAM_STRING_NV}
- GL_MODELVIEW_PROJECTION_NV = $8629;
- {$EXTERNALSYM GL_MODELVIEW_PROJECTION_NV}
- GL_IDENTITY_NV = $862A;
- {$EXTERNALSYM GL_IDENTITY_NV}
- GL_INVERSE_NV = $862B;
- {$EXTERNALSYM GL_INVERSE_NV}
- GL_TRANSPOSE_NV = $862C;
- {$EXTERNALSYM GL_TRANSPOSE_NV}
- GL_INVERSE_TRANSPOSE_NV = $862D;
- {$EXTERNALSYM GL_INVERSE_TRANSPOSE_NV}
- GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
- {$EXTERNALSYM GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV}
- GL_MAX_TRACK_MATRICES_NV = $862F;
- {$EXTERNALSYM GL_MAX_TRACK_MATRICES_NV}
- GL_MATRIX0_NV = $8630;
- {$EXTERNALSYM GL_MATRIX0_NV}
- GL_MATRIX1_NV = $8631;
- {$EXTERNALSYM GL_MATRIX1_NV}
- GL_MATRIX2_NV = $8632;
- {$EXTERNALSYM GL_MATRIX2_NV}
- GL_MATRIX3_NV = $8633;
- {$EXTERNALSYM GL_MATRIX3_NV}
- GL_MATRIX4_NV = $8634;
- {$EXTERNALSYM GL_MATRIX4_NV}
- GL_MATRIX5_NV = $8635;
- {$EXTERNALSYM GL_MATRIX5_NV}
- GL_MATRIX6_NV = $8636;
- {$EXTERNALSYM GL_MATRIX6_NV}
- GL_MATRIX7_NV = $8637;
- {$EXTERNALSYM GL_MATRIX7_NV}
- GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
- {$EXTERNALSYM GL_CURRENT_MATRIX_STACK_DEPTH_NV}
- GL_CURRENT_MATRIX_NV = $8641;
- {$EXTERNALSYM GL_CURRENT_MATRIX_NV}
- GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
- {$EXTERNALSYM GL_VERTEX_PROGRAM_POINT_SIZE_NV}
- GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
- {$EXTERNALSYM GL_VERTEX_PROGRAM_TWO_SIDE_NV}
- GL_PROGRAM_PARAMETER_NV = $8644;
- {$EXTERNALSYM GL_PROGRAM_PARAMETER_NV}
- GL_ATTRIB_ARRAY_POINTER_NV = $8645;
- {$EXTERNALSYM GL_ATTRIB_ARRAY_POINTER_NV}
- GL_PROGRAM_TARGET_NV = $8646;
- {$EXTERNALSYM GL_PROGRAM_TARGET_NV}
- GL_PROGRAM_RESIDENT_NV = $8647;
- {$EXTERNALSYM GL_PROGRAM_RESIDENT_NV}
- GL_TRACK_MATRIX_NV = $8648;
- {$EXTERNALSYM GL_TRACK_MATRIX_NV}
- GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
- {$EXTERNALSYM GL_TRACK_MATRIX_TRANSFORM_NV}
- GL_VERTEX_PROGRAM_BINDING_NV = $864A;
- {$EXTERNALSYM GL_VERTEX_PROGRAM_BINDING_NV}
- GL_PROGRAM_ERROR_POSITION_NV = $864B;
- {$EXTERNALSYM GL_PROGRAM_ERROR_POSITION_NV}
- GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY0_NV}
- GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY1_NV}
- GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY2_NV}
- GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY3_NV}
- GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY4_NV}
- GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY5_NV}
- GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY6_NV}
- GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY7_NV}
- GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY8_NV}
- GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY9_NV}
- GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY10_NV}
- GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY11_NV}
- GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY12_NV}
- GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY13_NV}
- GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY14_NV}
- GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
- {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY15_NV}
- GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB0_4_NV}
- GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB1_4_NV}
- GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB2_4_NV}
- GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB3_4_NV}
- GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB4_4_NV}
- GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB5_4_NV}
- GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB6_4_NV}
- GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB7_4_NV}
- GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB8_4_NV}
- GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB9_4_NV}
- GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB10_4_NV}
- GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB11_4_NV}
- GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB12_4_NV}
- GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB13_4_NV}
- GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB14_4_NV}
- GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
- {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB15_4_NV}
- GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB0_4_NV}
- GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB1_4_NV}
- GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB2_4_NV}
- GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB3_4_NV}
- GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB4_4_NV}
- GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB5_4_NV}
- GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB6_4_NV}
- GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB7_4_NV}
- GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB8_4_NV}
- GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB9_4_NV}
- GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB10_4_NV}
- GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB11_4_NV}
- GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB12_4_NV}
- GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB13_4_NV}
- GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB14_4_NV}
- GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
- {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB15_4_NV}
-
- // WGL_ARB_pixel_format
- WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
- {$EXTERNALSYM WGL_NUMBER_PIXEL_FORMATS_ARB}
- WGL_DRAW_TO_WINDOW_ARB = $2001;
- {$EXTERNALSYM WGL_DRAW_TO_WINDOW_ARB}
- WGL_DRAW_TO_BITMAP_ARB = $2002;
- {$EXTERNALSYM WGL_DRAW_TO_BITMAP_ARB}
- WGL_ACCELERATION_ARB = $2003;
- {$EXTERNALSYM WGL_ACCELERATION_ARB}
- WGL_NEED_PALETTE_ARB = $2004;
- {$EXTERNALSYM WGL_NEED_PALETTE_ARB}
- WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
- {$EXTERNALSYM WGL_NEED_SYSTEM_PALETTE_ARB}
- WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
- {$EXTERNALSYM WGL_SWAP_LAYER_BUFFERS_ARB}
- WGL_SWAP_METHOD_ARB = $2007;
- {$EXTERNALSYM WGL_SWAP_METHOD_ARB}
- WGL_NUMBER_OVERLAYS_ARB = $2008;
- {$EXTERNALSYM WGL_NUMBER_OVERLAYS_ARB}
- WGL_NUMBER_UNDERLAYS_ARB = $2009;
- {$EXTERNALSYM WGL_NUMBER_UNDERLAYS_ARB}
- WGL_TRANSPARENT_ARB = $200A;
- {$EXTERNALSYM WGL_TRANSPARENT_ARB}
- WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
- {$EXTERNALSYM WGL_TRANSPARENT_RED_VALUE_ARB}
- WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
- {$EXTERNALSYM WGL_TRANSPARENT_GREEN_VALUE_ARB}
- WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
- {$EXTERNALSYM WGL_TRANSPARENT_BLUE_VALUE_ARB}
- WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
- {$EXTERNALSYM WGL_TRANSPARENT_ALPHA_VALUE_ARB}
- WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
- {$EXTERNALSYM WGL_TRANSPARENT_INDEX_VALUE_ARB}
- WGL_SHARE_DEPTH_ARB = $200C;
- {$EXTERNALSYM WGL_SHARE_DEPTH_ARB}
- WGL_SHARE_STENCIL_ARB = $200D;
- {$EXTERNALSYM WGL_SHARE_STENCIL_ARB}
- WGL_SHARE_ACCUM_ARB = $200E;
- {$EXTERNALSYM WGL_SHARE_ACCUM_ARB}
- WGL_SUPPORT_GDI_ARB = $200F;
- {$EXTERNALSYM WGL_SUPPORT_GDI_ARB}
- WGL_SUPPORT_OPENGL_ARB = $2010;
- {$EXTERNALSYM WGL_SUPPORT_OPENGL_ARB}
- WGL_DOUBLE_BUFFER_ARB = $2011;
- {$EXTERNALSYM WGL_DOUBLE_BUFFER_ARB}
- WGL_STEREO_ARB = $2012;
- {$EXTERNALSYM WGL_STEREO_ARB}
- WGL_PIXEL_TYPE_ARB = $2013;
- {$EXTERNALSYM WGL_PIXEL_TYPE_ARB}
- WGL_COLOR_BITS_ARB = $2014;
- {$EXTERNALSYM WGL_COLOR_BITS_ARB}
- WGL_RED_BITS_ARB = $2015;
- {$EXTERNALSYM WGL_RED_BITS_ARB}
- WGL_RED_SHIFT_ARB = $2016;
- {$EXTERNALSYM WGL_RED_SHIFT_ARB}
- WGL_GREEN_BITS_ARB = $2017;
- {$EXTERNALSYM WGL_GREEN_BITS_ARB}
- WGL_GREEN_SHIFT_ARB = $2018;
- {$EXTERNALSYM WGL_GREEN_SHIFT_ARB}
- WGL_BLUE_BITS_ARB = $2019;
- {$EXTERNALSYM WGL_BLUE_BITS_ARB}
- WGL_BLUE_SHIFT_ARB = $201A;
- {$EXTERNALSYM WGL_BLUE_SHIFT_ARB}
- WGL_ALPHA_BITS_ARB = $201B;
- {$EXTERNALSYM WGL_ALPHA_BITS_ARB}
- WGL_ALPHA_SHIFT_ARB = $201C;
- {$EXTERNALSYM WGL_ALPHA_SHIFT_ARB}
- WGL_ACCUM_BITS_ARB = $201D;
- {$EXTERNALSYM WGL_ACCUM_BITS_ARB}
- WGL_ACCUM_RED_BITS_ARB = $201E;
- {$EXTERNALSYM WGL_ACCUM_RED_BITS_ARB}
- WGL_ACCUM_GREEN_BITS_ARB = $201F;
- {$EXTERNALSYM WGL_ACCUM_GREEN_BITS_ARB}
- WGL_ACCUM_BLUE_BITS_ARB = $2020;
- {$EXTERNALSYM WGL_ACCUM_BLUE_BITS_ARB}
- WGL_ACCUM_ALPHA_BITS_ARB = $2021;
- {$EXTERNALSYM WGL_ACCUM_ALPHA_BITS_ARB}
- WGL_DEPTH_BITS_ARB = $2022;
- {$EXTERNALSYM WGL_DEPTH_BITS_ARB}
- WGL_STENCIL_BITS_ARB = $2023;
- {$EXTERNALSYM WGL_STENCIL_BITS_ARB}
- WGL_AUX_BUFFERS_ARB = $2024;
- {$EXTERNALSYM WGL_AUX_BUFFERS_ARB}
- WGL_NO_ACCELERATION_ARB = $2025;
- {$EXTERNALSYM WGL_NO_ACCELERATION_ARB}
- WGL_GENERIC_ACCELERATION_ARB = $2026;
- {$EXTERNALSYM WGL_GENERIC_ACCELERATION_ARB}
- WGL_FULL_ACCELERATION_ARB = $2027;
- {$EXTERNALSYM WGL_FULL_ACCELERATION_ARB}
- WGL_SWAP_EXCHANGE_ARB = $2028;
- {$EXTERNALSYM WGL_SWAP_EXCHANGE_ARB}
- WGL_SWAP_COPY_ARB = $2029;
- {$EXTERNALSYM WGL_SWAP_COPY_ARB}
- WGL_SWAP_UNDEFINED_ARB = $202A;
- {$EXTERNALSYM WGL_SWAP_UNDEFINED_ARB}
- WGL_TYPE_RGBA_ARB = $202B;
- {$EXTERNALSYM WGL_TYPE_RGBA_ARB}
- WGL_TYPE_COLORINDEX_ARB = $202C;
- {$EXTERNALSYM WGL_TYPE_COLORINDEX_ARB}
-
-
- // ********** GLU generic constants **********
-
- // Errors: (return value 0 = no error)
- GLU_INVALID_ENUM = 100900;
- {$EXTERNALSYM GLU_INVALID_ENUM}
- GLU_INVALID_VALUE = 100901;
- {$EXTERNALSYM GLU_INVALID_VALUE}
- GLU_OUT_OF_MEMORY = 100902;
- {$EXTERNALSYM GLU_OUT_OF_MEMORY}
- GLU_INCOMPATIBLE_GL_VERSION = 100903;
- {$EXTERNALSYM GLU_INCOMPATIBLE_GL_VERSION}
-
- // StringName
- GLU_VERSION = 100800;
- {$EXTERNALSYM GLU_VERSION}
- GLU_EXTENSIONS = 100801;
- {$EXTERNALSYM GLU_EXTENSIONS}
-
- // Boolean
- GLU_TRUE = GL_TRUE;
- {$EXTERNALSYM GLU_TRUE}
- GLU_FALSE = GL_FALSE;
- {$EXTERNALSYM GLU_FALSE}
-
- // Quadric constants
- // QuadricNormal
- GLU_SMOOTH = 100000;
- {$EXTERNALSYM GLU_SMOOTH}
- GLU_FLAT = 100001;
- {$EXTERNALSYM GLU_FLAT}
- GLU_NONE = 100002;
- {$EXTERNALSYM GLU_NONE}
-
- // QuadricDrawStyle
- GLU_POINT = 100010;
- {$EXTERNALSYM GLU_POINT}
- GLU_LINE = 100011;
- {$EXTERNALSYM GLU_LINE}
- GLU_FILL = 100012;
- {$EXTERNALSYM GLU_FILL}
- GLU_SILHOUETTE = 100013;
- {$EXTERNALSYM GLU_SILHOUETTE}
-
- // QuadricOrientation
- GLU_OUTSIDE = 100020;
- {$EXTERNALSYM GLU_OUTSIDE}
- GLU_INSIDE = 100021;
- {$EXTERNALSYM GLU_INSIDE}
-
- // Tesselation constants
- GLU_TESS_MAX_COORD = 1.0e150;
- {$EXTERNALSYM GLU_TESS_MAX_COORD}
-
- // TessProperty
- GLU_TESS_WINDING_RULE = 100140;
- {$EXTERNALSYM GLU_TESS_WINDING_RULE}
- GLU_TESS_BOUNDARY_ONLY = 100141;
- {$EXTERNALSYM GLU_TESS_BOUNDARY_ONLY}
- GLU_TESS_TOLERANCE = 100142;
- {$EXTERNALSYM GLU_TESS_TOLERANCE}
-
- // TessWinding
- GLU_TESS_WINDING_ODD = 100130;
- {$EXTERNALSYM GLU_TESS_WINDING_ODD}
- GLU_TESS_WINDING_NONZERO = 100131;
- {$EXTERNALSYM GLU_TESS_WINDING_NONZERO}
- GLU_TESS_WINDING_POSITIVE = 100132;
- {$EXTERNALSYM GLU_TESS_WINDING_POSITIVE}
- GLU_TESS_WINDING_NEGATIVE = 100133;
- {$EXTERNALSYM GLU_TESS_WINDING_NEGATIVE}
- GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
- {$EXTERNALSYM GLU_TESS_WINDING_ABS_GEQ_TWO}
-
- // TessCallback
- GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
- {$EXTERNALSYM GLU_TESS_BEGIN}
- GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
- {$EXTERNALSYM GLU_TESS_VERTEX}
- GLU_TESS_END = 100102; // TGLUTessEndProc
- {$EXTERNALSYM GLU_TESS_END}
- GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
- {$EXTERNALSYM GLU_TESS_ERROR}
- GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
- {$EXTERNALSYM GLU_TESS_EDGE_FLAG}
- GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
- {$EXTERNALSYM GLU_TESS_COMBINE}
- GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
- {$EXTERNALSYM GLU_TESS_BEGIN_DATA}
- GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
- {$EXTERNALSYM GLU_TESS_VERTEX_DATA}
- GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
- {$EXTERNALSYM GLU_TESS_END_DATA}
- GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
- {$EXTERNALSYM GLU_TESS_ERROR_DATA}
- GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
- {$EXTERNALSYM GLU_TESS_EDGE_FLAG_DATA}
- GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
- {$EXTERNALSYM GLU_TESS_COMBINE_DATA}
-
- // TessError
- GLU_TESS_ERROR1 = 100151;
- {$EXTERNALSYM GLU_TESS_ERROR1}
- GLU_TESS_ERROR2 = 100152;
- {$EXTERNALSYM GLU_TESS_ERROR2}
- GLU_TESS_ERROR3 = 100153;
- {$EXTERNALSYM GLU_TESS_ERROR3}
- GLU_TESS_ERROR4 = 100154;
- {$EXTERNALSYM GLU_TESS_ERROR4}
- GLU_TESS_ERROR5 = 100155;
- {$EXTERNALSYM GLU_TESS_ERROR5}
- GLU_TESS_ERROR6 = 100156;
- {$EXTERNALSYM GLU_TESS_ERROR6}
- GLU_TESS_ERROR7 = 100157;
- {$EXTERNALSYM GLU_TESS_ERROR7}
- GLU_TESS_ERROR8 = 100158;
- {$EXTERNALSYM GLU_TESS_ERROR8}
-
- GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
- {$EXTERNALSYM GLU_TESS_MISSING_BEGIN_POLYGON}
- GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
- {$EXTERNALSYM GLU_TESS_MISSING_BEGIN_CONTOUR}
- GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
- {$EXTERNALSYM GLU_TESS_MISSING_END_POLYGON}
- GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
- {$EXTERNALSYM GLU_TESS_MISSING_END_CONTOUR}
- GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
- {$EXTERNALSYM GLU_TESS_COORD_TOO_LARGE}
- GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
- {$EXTERNALSYM GLU_TESS_NEED_COMBINE_CALLBACK}
-
- // NURBS constants
-
- // NurbsProperty
- GLU_AUTO_LOAD_MATRIX = 100200;
- {$EXTERNALSYM GLU_AUTO_LOAD_MATRIX}
- GLU_CULLING = 100201;
- {$EXTERNALSYM GLU_CULLING}
- GLU_SAMPLING_TOLERANCE = 100203;
- {$EXTERNALSYM GLU_SAMPLING_TOLERANCE}
- GLU_DISPLAY_MODE = 100204;
- {$EXTERNALSYM GLU_DISPLAY_MODE}
- GLU_PARAMETRIC_TOLERANCE = 100202;
- {$EXTERNALSYM GLU_PARAMETRIC_TOLERANCE}
- GLU_SAMPLING_METHOD = 100205;
- {$EXTERNALSYM GLU_SAMPLING_METHOD}
- GLU_U_STEP = 100206;
- {$EXTERNALSYM GLU_U_STEP}
- GLU_V_STEP = 100207;
- {$EXTERNALSYM GLU_V_STEP}
-
- // NurbsSampling
- GLU_PATH_LENGTH = 100215;
- {$EXTERNALSYM GLU_PATH_LENGTH}
- GLU_PARAMETRIC_ERROR = 100216;
- {$EXTERNALSYM GLU_PARAMETRIC_ERROR}
- GLU_DOMAIN_DISTANCE = 100217;
- {$EXTERNALSYM GLU_DOMAIN_DISTANCE}
-
- // NurbsTrim
- GLU_MAP1_TRIM_2 = 100210;
- {$EXTERNALSYM GLU_MAP1_TRIM_2}
- GLU_MAP1_TRIM_3 = 100211;
- {$EXTERNALSYM GLU_MAP1_TRIM_3}
-
- // NurbsDisplay
- GLU_OUTLINE_POLYGON = 100240;
- {$EXTERNALSYM GLU_OUTLINE_POLYGON}
- GLU_OUTLINE_PATCH = 100241;
- {$EXTERNALSYM GLU_OUTLINE_PATCH}
-
- // NurbsErrors
- GLU_NURBS_ERROR1 = 100251;
- {$EXTERNALSYM GLU_NURBS_ERROR1}
- GLU_NURBS_ERROR2 = 100252;
- {$EXTERNALSYM GLU_NURBS_ERROR2}
- GLU_NURBS_ERROR3 = 100253;
- {$EXTERNALSYM GLU_NURBS_ERROR3}
- GLU_NURBS_ERROR4 = 100254;
- {$EXTERNALSYM GLU_NURBS_ERROR4}
- GLU_NURBS_ERROR5 = 100255;
- {$EXTERNALSYM GLU_NURBS_ERROR5}
- GLU_NURBS_ERROR6 = 100256;
- {$EXTERNALSYM GLU_NURBS_ERROR6}
- GLU_NURBS_ERROR7 = 100257;
- {$EXTERNALSYM GLU_NURBS_ERROR7}
- GLU_NURBS_ERROR8 = 100258;
- {$EXTERNALSYM GLU_NURBS_ERROR8}
- GLU_NURBS_ERROR9 = 100259;
- {$EXTERNALSYM GLU_NURBS_ERROR9}
- GLU_NURBS_ERROR10 = 100260;
- {$EXTERNALSYM GLU_NURBS_ERROR10}
- GLU_NURBS_ERROR11 = 100261;
- {$EXTERNALSYM GLU_NURBS_ERROR11}
- GLU_NURBS_ERROR12 = 100262;
- {$EXTERNALSYM GLU_NURBS_ERROR12}
- GLU_NURBS_ERROR13 = 100263;
- {$EXTERNALSYM GLU_NURBS_ERROR13}
- GLU_NURBS_ERROR14 = 100264;
- {$EXTERNALSYM GLU_NURBS_ERROR14}
- GLU_NURBS_ERROR15 = 100265;
- {$EXTERNALSYM GLU_NURBS_ERROR15}
- GLU_NURBS_ERROR16 = 100266;
- {$EXTERNALSYM GLU_NURBS_ERROR16}
- GLU_NURBS_ERROR17 = 100267;
- {$EXTERNALSYM GLU_NURBS_ERROR17}
- GLU_NURBS_ERROR18 = 100268;
- {$EXTERNALSYM GLU_NURBS_ERROR18}
- GLU_NURBS_ERROR19 = 100269;
- {$EXTERNALSYM GLU_NURBS_ERROR19}
- GLU_NURBS_ERROR20 = 100270;
- {$EXTERNALSYM GLU_NURBS_ERROR20}
- GLU_NURBS_ERROR21 = 100271;
- {$EXTERNALSYM GLU_NURBS_ERROR21}
- GLU_NURBS_ERROR22 = 100272;
- {$EXTERNALSYM GLU_NURBS_ERROR22}
- GLU_NURBS_ERROR23 = 100273;
- {$EXTERNALSYM GLU_NURBS_ERROR23}
- GLU_NURBS_ERROR24 = 100274;
- {$EXTERNALSYM GLU_NURBS_ERROR24}
- GLU_NURBS_ERROR25 = 100275;
- {$EXTERNALSYM GLU_NURBS_ERROR25}
- GLU_NURBS_ERROR26 = 100276;
- {$EXTERNALSYM GLU_NURBS_ERROR26}
- GLU_NURBS_ERROR27 = 100277;
- {$EXTERNALSYM GLU_NURBS_ERROR27}
- GLU_NURBS_ERROR28 = 100278;
- {$EXTERNALSYM GLU_NURBS_ERROR28}
- GLU_NURBS_ERROR29 = 100279;
- {$EXTERNALSYM GLU_NURBS_ERROR29}
- GLU_NURBS_ERROR30 = 100280;
- {$EXTERNALSYM GLU_NURBS_ERROR30}
- GLU_NURBS_ERROR31 = 100281;
- {$EXTERNALSYM GLU_NURBS_ERROR31}
- GLU_NURBS_ERROR32 = 100282;
- {$EXTERNALSYM GLU_NURBS_ERROR32}
- GLU_NURBS_ERROR33 = 100283;
- {$EXTERNALSYM GLU_NURBS_ERROR33}
- GLU_NURBS_ERROR34 = 100284;
- {$EXTERNALSYM GLU_NURBS_ERROR34}
- GLU_NURBS_ERROR35 = 100285;
- {$EXTERNALSYM GLU_NURBS_ERROR35}
- GLU_NURBS_ERROR36 = 100286;
- {$EXTERNALSYM GLU_NURBS_ERROR36}
- GLU_NURBS_ERROR37 = 100287;
- {$EXTERNALSYM GLU_NURBS_ERROR37}
-
- // Contours types -- obsolete!
- GLU_CW = 100120;
- {$EXTERNALSYM GLU_CW}
- GLU_CCW = 100121;
- {$EXTERNALSYM GLU_CCW}
- GLU_INTERIOR = 100122;
- {$EXTERNALSYM GLU_INTERIOR}
- GLU_EXTERIOR = 100123;
- {$EXTERNALSYM GLU_EXTERIOR}
- GLU_UNKNOWN = 100124;
- {$EXTERNALSYM GLU_UNKNOWN}
-
- // Names without "TESS_" prefix
- GLU_BEGIN = GLU_TESS_BEGIN;
- {$EXTERNALSYM GLU_BEGIN}
- GLU_VERTEX = GLU_TESS_VERTEX;
- {$EXTERNALSYM GLU_VERTEX}
- GLU_END = GLU_TESS_END;
- {$EXTERNALSYM GLU_END}
- GLU_ERROR = GLU_TESS_ERROR;
- {$EXTERNALSYM GLU_ERROR}
- GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
- {$EXTERNALSYM GLU_EDGE_FLAG}
-
- GLX_VERSION_1_1 = 1;
- GLX_VERSION_1_2 = 1;
- GLX_VERSION_1_3 = 1;
- GLX_EXTENSION_NAME = 'GLX';
- {$EXTERNALSYM GLX_EXTENSION_NAME}
- GLX_USE_GL = 1;
- {$EXTERNALSYM GLX_USE_GL}
- GLX_BUFFER_SIZE = 2;
- {$EXTERNALSYM GLX_BUFFER_SIZE}
- GLX_LEVEL = 3;
- {$EXTERNALSYM GLX_LEVEL}
- GLX_RGBA = 4;
- {$EXTERNALSYM GLX_RGBA}
- GLX_DOUBLEBUFFER = 5;
- {$EXTERNALSYM GLX_DOUBLEBUFFER}
- GLX_STEREO = 6;
- {$EXTERNALSYM GLX_STEREO}
- GLX_AUX_BUFFERS = 7;
- {$EXTERNALSYM GLX_AUX_BUFFERS}
- GLX_RED_SIZE = 8;
- {$EXTERNALSYM GLX_RED_SIZE}
- GLX_GREEN_SIZE = 9;
- {$EXTERNALSYM GLX_GREEN_SIZE}
- GLX_BLUE_SIZE = 10;
- {$EXTERNALSYM GLX_BLUE_SIZE}
- GLX_ALPHA_SIZE = 11;
- {$EXTERNALSYM GLX_ALPHA_SIZE}
- GLX_DEPTH_SIZE = 12;
- {$EXTERNALSYM GLX_DEPTH_SIZE}
- GLX_STENCIL_SIZE = 13;
- {$EXTERNALSYM GLX_STENCIL_SIZE}
- GLX_ACCUM_RED_SIZE = 14;
- {$EXTERNALSYM GLX_ACCUM_RED_SIZE}
- GLX_ACCUM_GREEN_SIZE = 15;
- {$EXTERNALSYM GLX_ACCUM_GREEN_SIZE}
- GLX_ACCUM_BLUE_SIZE = 16;
- {$EXTERNALSYM GLX_ACCUM_BLUE_SIZE}
- GLX_ACCUM_ALPHA_SIZE = 17;
- {$EXTERNALSYM GLX_ACCUM_ALPHA_SIZE}
-
- // Error codes returned by glXGetConfig:
- GLX_BAD_SCREEN = 1;
- {$EXTERNALSYM GLX_BAD_SCREEN}
- GLX_BAD_ATTRIBUTE = 2;
- {$EXTERNALSYM GLX_BAD_ATTRIBUTE}
- GLX_NO_EXTENSION = 3;
- {$EXTERNALSYM GLX_NO_EXTENSION}
- GLX_BAD_VISUAL = 4;
- {$EXTERNALSYM GLX_BAD_VISUAL}
- GLX_BAD_CONTEXT = 5;
- {$EXTERNALSYM GLX_BAD_CONTEXT}
- GLX_BAD_VALUE = 6;
- {$EXTERNALSYM GLX_BAD_VALUE}
- GLX_BAD_ENUM = 7;
- {$EXTERNALSYM GLX_BAD_ENUM}
-
- // GLX 1.1 and later:
- GLX_VENDOR = 1;
- {$EXTERNALSYM GLX_VENDOR}
- GLX_VERSION = 2;
- {$EXTERNALSYM GLX_VERSION}
- GLX_EXTENSIONS = 3;
- {$EXTERNALSYM GLX_EXTENSIONS}
-
- // GLX 1.3 and later:
- GLX_CONFIG_CAVEAT = $20;
- {$EXTERNALSYM GLX_CONFIG_CAVEAT}
- GLX_DONT_CARE = $FFFFFFFF;
- {$EXTERNALSYM GLX_DONT_CARE}
- GLX_SLOW_CONFIG = $8001;
- {$EXTERNALSYM GLX_SLOW_CONFIG}
- GLX_NON_CONFORMANT_CONFIG = $800D;
- {$EXTERNALSYM GLX_NON_CONFORMANT_CONFIG}
- GLX_X_VISUAL_TYPE = $22;
- {$EXTERNALSYM GLX_X_VISUAL_TYPE}
- GLX_TRANSPARENT_TYPE = $23;
- {$EXTERNALSYM GLX_TRANSPARENT_TYPE}
- GLX_TRANSPARENT_INDEX_VALUE = $24;
- {$EXTERNALSYM GLX_TRANSPARENT_INDEX_VALUE}
- GLX_TRANSPARENT_RED_VALUE = $25;
- {$EXTERNALSYM GLX_TRANSPARENT_RED_VALUE}
- GLX_TRANSPARENT_GREEN_VALUE = $26;
- {$EXTERNALSYM GLX_TRANSPARENT_GREEN_VALUE}
- GLX_TRANSPARENT_BLUE_VALUE = $27;
- {$EXTERNALSYM GLX_TRANSPARENT_BLUE_VALUE}
- GLX_TRANSPARENT_ALPHA_VALUE = $28;
- {$EXTERNALSYM GLX_TRANSPARENT_ALPHA_VALUE}
- GLX_MAX_PBUFFER_WIDTH = $8016;
- {$EXTERNALSYM GLX_MAX_PBUFFER_WIDTH}
- GLX_MAX_PBUFFER_HEIGHT = $8017;
- {$EXTERNALSYM GLX_MAX_PBUFFER_HEIGHT}
- GLX_MAX_PBUFFER_PIXELS = $8018;
- {$EXTERNALSYM GLX_MAX_PBUFFER_PIXELS}
- GLX_PRESERVED_CONTENTS = $801B;
- {$EXTERNALSYM GLX_PRESERVED_CONTENTS}
- GLX_LARGEST_BUFFER = $801C;
- {$EXTERNALSYM GLX_LARGEST_BUFFER}
- GLX_DRAWABLE_TYPE = $8010;
- {$EXTERNALSYM GLX_DRAWABLE_TYPE}
- GLX_FBCONFIG_ID = $8013;
- {$EXTERNALSYM GLX_FBCONFIG_ID}
- GLX_VISUAL_ID = $800B;
- {$EXTERNALSYM GLX_VISUAL_ID}
- GLX_WINDOW_BIT = $00000001;
- {$EXTERNALSYM GLX_WINDOW_BIT}
- GLX_PIXMAP_BIT = $00000002;
- {$EXTERNALSYM GLX_PIXMAP_BIT}
- GLX_PBUFFER_BIT = $00000004;
- {$EXTERNALSYM GLX_PBUFFER_BIT}
- GLX_AUX_BUFFERS_BIT = $00000010;
- {$EXTERNALSYM GLX_AUX_BUFFERS_BIT}
- GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
- {$EXTERNALSYM GLX_FRONT_LEFT_BUFFER_BIT}
- GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
- {$EXTERNALSYM GLX_FRONT_RIGHT_BUFFER_BIT}
- GLX_BACK_LEFT_BUFFER_BIT = $00000004;
- {$EXTERNALSYM GLX_BACK_LEFT_BUFFER_BIT}
- GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
- {$EXTERNALSYM GLX_BACK_RIGHT_BUFFER_BIT}
- GLX_DEPTH_BUFFER_BIT = $00000020;
- {$EXTERNALSYM GLX_DEPTH_BUFFER_BIT}
- GLX_STENCIL_BUFFER_BIT = $00000040;
- {$EXTERNALSYM GLX_STENCIL_BUFFER_BIT}
- GLX_ACCUM_BUFFER_BIT = $00000080;
- {$EXTERNALSYM GLX_ACCUM_BUFFER_BIT}
- GLX_RENDER_TYPE = $8011;
- {$EXTERNALSYM GLX_RENDER_TYPE}
- GLX_X_RENDERABLE = $8012;
- {$EXTERNALSYM GLX_X_RENDERABLE}
- GLX_NONE = $8000;
- {$EXTERNALSYM GLX_NONE}
- GLX_TRUE_COLOR = $8002;
- {$EXTERNALSYM GLX_TRUE_COLOR}
- GLX_DIRECT_COLOR = $8003;
- {$EXTERNALSYM GLX_DIRECT_COLOR}
- GLX_PSEUDO_COLOR = $8004;
- {$EXTERNALSYM GLX_PSEUDO_COLOR}
- GLX_STATIC_COLOR = $8005;
- {$EXTERNALSYM GLX_STATIC_COLOR}
- GLX_GRAY_SCALE = $8006;
- {$EXTERNALSYM GLX_GRAY_SCALE}
- GLX_STATIC_GRAY = $8007;
- {$EXTERNALSYM GLX_STATIC_GRAY}
- GLX_TRANSPARENT_INDEX = $8009;
- {$EXTERNALSYM GLX_TRANSPARENT_INDEX}
- GLX_COLOR_INDEX_TYPE = $8015;
- {$EXTERNALSYM GLX_COLOR_INDEX_TYPE}
- GLX_COLOR_INDEX_BIT = $00000002;
- {$EXTERNALSYM GLX_COLOR_INDEX_BIT}
- GLX_SCREEN = $800C;
- {$EXTERNALSYM GLX_SCREEN}
- GLX_PBUFFER_CLOBBER_MASK = $08000000;
- {$EXTERNALSYM GLX_PBUFFER_CLOBBER_MASK}
- GLX_DAMAGED = $8020;
- {$EXTERNALSYM GLX_DAMAGED}
- GLX_SAVED = $8021;
- {$EXTERNALSYM GLX_SAVED}
- GLX_WINDOW = $8022;
- {$EXTERNALSYM GLX_WINDOW}
- GLX_PBUFFER = $8023;
- {$EXTERNALSYM GLX_PBUFFER}
- GLX_EXT_visual_info = 1;
- {$EXTERNALSYM GLX_EXT_visual_info}
- GLX_X_VISUAL_TYPE_EXT = $22;
- {$EXTERNALSYM GLX_X_VISUAL_TYPE_EXT}
- GLX_TRANSPARENT_TYPE_EXT = $23;
- {$EXTERNALSYM GLX_TRANSPARENT_TYPE_EXT}
- GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
- {$EXTERNALSYM GLX_TRANSPARENT_INDEX_VALUE_EXT}
- GLX_TRANSPARENT_RED_VALUE_EXT = $25;
- {$EXTERNALSYM GLX_TRANSPARENT_RED_VALUE_EXT}
- GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
- {$EXTERNALSYM GLX_TRANSPARENT_GREEN_VALUE_EXT}
- GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
- {$EXTERNALSYM GLX_TRANSPARENT_BLUE_VALUE_EXT}
- GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
- {$EXTERNALSYM GLX_TRANSPARENT_ALPHA_VALUE_EXT}
- GLX_TRUE_COLOR_EXT = $8002;
- {$EXTERNALSYM GLX_TRUE_COLOR_EXT}
- GLX_DIRECT_COLOR_EXT = $8003;
- {$EXTERNALSYM GLX_DIRECT_COLOR_EXT}
- GLX_PSEUDO_COLOR_EXT = $8004;
- {$EXTERNALSYM GLX_PSEUDO_COLOR_EXT}
- GLX_STATIC_COLOR_EXT = $8005;
- {$EXTERNALSYM GLX_STATIC_COLOR_EXT}
- GLX_GRAY_SCALE_EXT = $8006;
- {$EXTERNALSYM GLX_GRAY_SCALE_EXT}
- GLX_STATIC_GRAY_EXT = $8007;
- {$EXTERNALSYM GLX_STATIC_GRAY_EXT}
- GLX_NONE_EXT = $8000;
- {$EXTERNALSYM GLX_NONE_EXT}
- GLX_TRANSPARENT_RGB_EXT = $8008;
- {$EXTERNALSYM GLX_TRANSPARENT_RGB_EXT}
- GLX_TRANSPARENT_INDEX_EXT = $8009;
- {$EXTERNALSYM GLX_TRANSPARENT_INDEX_EXT}
- GLX_VISUAL_CAVEAT_EXT = $20;
- {$EXTERNALSYM GLX_VISUAL_CAVEAT_EXT}
- GLX_SLOW_VISUAL_EXT = $8001;
- {$EXTERNALSYM GLX_SLOW_VISUAL_EXT}
- GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
- {$EXTERNALSYM GLX_NON_CONFORMANT_VISUAL_EXT}
- GLX_SHARE_CONTEXT_EXT = $800A;
- {$EXTERNALSYM GLX_SHARE_CONTEXT_EXT}
- GLX_VISUAL_ID_EXT = $800B;
- {$EXTERNALSYM GLX_VISUAL_ID_EXT}
- GLX_SCREEN_EXT = $800C;
- {$EXTERNALSYM GLX_SCREEN_EXT}
- GLX_3DFX_WINDOW_MODE_MESA = $1;
- {$EXTERNALSYM GLX_3DFX_WINDOW_MODE_MESA}
- GLX_3DFX_FULLSCREEN_MODE_MESA = $2;
- {$EXTERNALSYM GLX_3DFX_FULLSCREEN_MODE_MESA}
-
-
-type
- // GLU types
- TGLUNurbs = record end;
- TGLUQuadric = record end;
- TGLUTesselator = record end;
-
- PGLUNurbs = ^TGLUNurbs;
- PGLUQuadric = ^TGLUQuadric;
- PGLUTesselator = ^TGLUTesselator;
-
- // backwards compatibility
- TGLUNurbsObj = TGLUNurbs;
- TGLUQuadricObj = TGLUQuadric;
- TGLUTesselatorObj = TGLUTesselator;
- TGLUTriangulatorObj = TGLUTesselator;
-
- PGLUNurbsObj = PGLUNurbs;
- PGLUQuadricObj = PGLUQuadric;
- PGLUTesselatorObj = PGLUTesselator;
- PGLUTriangulatorObj = PGLUTesselator;
-
- {$ifdef FPC}
- PMaxLogPalette = ^TMaxLogPalette;
- TMaxLogPalette = packed record
- palversion : word;
- palnumentries : word;
- palpalentry : array[byte] of TPaletteEntry;
- end;
- {$endif}
-
- {$ifdef VER100, Delphi 3 compatibility}
- PWGLSwap = ^TWGLSwap;
- {$EXTERNALSYM _WGLSWAP}
- _WGLSWAP = packed record
- hdc: HDC;
- uiFlags: UINT;
- end;
- TWGLSwap = _WGLSWAP;
- {$EXTERNALSYM WGLSWAP}
- WGLSWAP = _WGLSWAP;
- {$endif VER100}
-
- // Callback function prototypes
- // GLUQuadricCallback
- TGLUQuadricErrorProc = procedure(errorCode: TGLEnum); {$ifdef MSWINDOWS} stdcall; {$endif} {$ifdef LINUX} cdecl; {$endif}
-
- // GLUTessCallback
- TGLUTessBeginProc = procedure(AType: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessEdgeFlagProc = procedure(Flag: TGLboolean); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessEndProc = procedure; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessErrorProc = procedure(ErrNo: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessCombineProc = procedure(Coords: TVector3d; VertexData: TVector4p; Weight: TVector4f; OutData: PPointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessBeginDataProc = procedure(AType: TGLEnum; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessEdgeFlagDataProc = procedure(Flag: TGLboolean; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessErrorDataProc = procedure(ErrNo: TGLEnum; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- TGLUTessCombineDataProc = procedure(Coords: TVector3d; VertexData: TVector4p; Weight: TVector4f; OutData: PPointer; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
-
- // GLUNurbsCallback
- TGLUNurbsErrorProc = procedure(ErrorCode: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
-
- // GL functions
- procedure glBindTexture(target: TGLEnum; texture: TGLuint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glTexParameteri(target, pname: TGLEnum; param: TGLint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glTexImage2D(target: TGLEnum; level, internalformat: TGLint; width, height: TGLsizei; border: TGLint; format, atype: TGLEnum; Pixels:Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glDeleteTextures(n: TGLsizei; textures: PGLuint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glGenTextures(n: GLsizei; var textures: GLuint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glColor3f(red, green, blue: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glBegin(mode: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glEnd; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glVertex2f(x, y: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glColor4f(red, green, blue, alpha: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glEnable(cap: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glDisable(cap: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glDepthRange(zNear, zFar: TGLclampd); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glDepthFunc(func: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glBlendFunc(sfactor: TGLEnum; dfactor: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glTexCoord2f(s, t: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glVertex3f(x, y, z: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glClearColor(red, green, blue, alpha: TGLclampf); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glClear(mask: TGLbitfield); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glMatrixMode(mode: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glLoadIdentity; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glOrtho(left, right, bottom, top, zNear, zFar: TGLdouble); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glViewport(x, y: TGLint; width, height: TGLsizei); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glReadPixels(x, y: TGLint; width, height: TGLsizei; format, atype: TGLEnum; pixels: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glPixelStorei(pname: TGLEnum; param: TGLint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- function glGetError:TGLuint; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure glTexSubImage2D(target: TGLEnum; level, xoffset, yoffset: TGLint; width, height: TGLsizei; format, atype: TGLEnum; pixels: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
- procedure gluOrtho2D(left, right, bottom, top: TGLdouble); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
-
- // GLU functions
- function gluBuild2DMipmaps(target: TGLEnum; components, width, height: TGLint; format, atype: TGLEnum; Data: Pointer): TGLint; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external glu32;
- function gluScaleImage(format: TGLEnum; widthin, heightin: TGLint; typein: TGLEnum; datain: Pointer; widthout, heightout: TGLint; typeout: TGLEnum; dataout: Pointer): TGLint; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external glu32;
-
- Procedure LoadOpenGL;
- Procedure UnloadOpenGL;
-
-implementation
-
-Procedure LoadOpenGL;
-begin
-end;
-
-Procedure UnloadOpenGL;
-begin
-end;
-
-end.
+unit OpenGL12;
+
+{$I switches.inc}
+
+interface
+
+uses Windows;
+
+const
+ glu32 = 'OpenGL';
+
+type
+
+ TRCOptions = set of (
+ opDoubleBuffered,
+ opGDI,
+ opStereo
+ );
+
+ UINT = Cardinal;
+
+ {$EXTERNALSYM GLenum}
+ GLenum = UINT;
+ TGLenum = UINT;
+ PGLenum = ^TGLenum;
+
+ {$EXTERNALSYM GLboolean}
+ GLboolean = BYTEBOOL;
+ TGLboolean = BYTEBOOL;
+ PGLboolean = ^TGLboolean;
+
+ {$EXTERNALSYM GLbitfield}
+ GLbitfield = UINT;
+ TGLbitfield = UINT;
+ PGLbitfield = ^TGLbitfield;
+
+ {$EXTERNALSYM GLbyte}
+ GLbyte = ShortInt;
+ TGLbyte = ShortInt;
+ PGLbyte = ^TGLbyte;
+
+ {$EXTERNALSYM GLshort}
+ GLshort = SmallInt;
+ TGLshort = SmallInt;
+ PGLshort = ^TGLshort;
+
+ {$EXTERNALSYM GLint}
+ GLint = Integer;
+ TGLint = Integer;
+ PGLint = ^TGLint;
+
+ {$EXTERNALSYM GLsizei}
+ GLsizei = Integer;
+ TGLsizei = Integer;
+ PGLsizei = ^TGLsizei;
+
+ {$EXTERNALSYM GLubyte}
+ UCHAR = Byte;
+ GLubyte = UCHAR;
+ TGLubyte = UCHAR;
+ PGLubyte = ^TGLubyte;
+
+ {$EXTERNALSYM GLushort}
+ GLushort = Word;
+ TGLushort = Word;
+ PGLushort = ^TGLushort;
+
+ {$EXTERNALSYM GLuint}
+ GLuint = UINT;
+ TGLuint = UINT;
+ PGLuint = ^TGLuint;
+
+ {$EXTERNALSYM GLfloat}
+ GLfloat = Single;
+ TGLfloat = Single;
+ PGLfloat = ^TGLfloat;
+
+ {$EXTERNALSYM GLclampf}
+ GLclampf = Single;
+ TGLclampf = Single;
+ PGLclampf = ^TGLclampf;
+
+ {$EXTERNALSYM GLdouble}
+ GLdouble = Double;
+ TGLdouble = Double;
+ PGLdouble = ^TGLdouble;
+
+ {$EXTERNALSYM GLclampd}
+ GLclampd = Double;
+ TGLclampd = Double;
+ PGLclampd = ^TGLclampd;
+
+ TVector3d = array[0..2] of GLdouble;
+
+ TVector4i = array[0..3] of GLint;
+ TVector4f = array[0..3] of GLfloat;
+ TVector4p = array[0..3] of Pointer;
+
+ TMatrix4f = array[0..3, 0..3] of GLfloat;
+ TMatrix4d = array[0..3, 0..3] of GLdouble;
+
+ PPointer = ^Pointer;
+
+{$ifdef FPC}
+ var
+{$else}
+ {$ifdef MULTITHREADOPENGL}
+ threadvar
+ {$else}
+ var
+ {$endif}
+{$endif}
+
+ GL_VERSION_1_0,
+ GL_VERSION_1_1,
+ GL_VERSION_1_2,
+ GLU_VERSION_1_1,
+ GLU_VERSION_1_2,
+ GLU_VERSION_1_3: Boolean;
+
+ // Extensions (gl)
+ GL_3DFX_multisample,
+ GL_3DFX_tbuffer,
+ GL_3DFX_texture_compression_FXT1,
+
+ GL_APPLE_specular_vector,
+ GL_APPLE_transform_hint,
+
+ GL_ARB_imaging,
+ GL_ARB_multisample,
+ GL_ARB_multitexture,
+ GL_ARB_texture_compression,
+ GL_ARB_texture_cube_map,
+ GL_ARB_transpose_matrix,
+ GL_ARB_vertex_blend,
+
+ GL_EXT_422_pixels,
+ GL_EXT_abgr,
+ GL_EXT_bgra,
+ GL_EXT_blend_color,
+ GL_EXT_blend_func_separate,
+ GL_EXT_blend_logic_op,
+ GL_EXT_blend_minmax,
+ GL_EXT_blend_subtract,
+ GL_EXT_clip_volume_hint,
+ GL_EXT_cmyka,
+ GL_EXT_color_subtable,
+ GL_EXT_compiled_vertex_array,
+ GL_EXT_convolution,
+ GL_EXT_coordinate_frame,
+ GL_EXT_copy_texture,
+ GL_EXT_cull_vertex,
+ GL_EXT_draw_range_elements,
+ GL_EXT_fog_coord,
+ GL_EXT_histogram,
+ GL_EXT_index_array_formats,
+ GL_EXT_index_func,
+ GL_EXT_index_material,
+ GL_EXT_index_texture,
+ GL_EXT_light_max_exponent,
+ GL_EXT_light_texture,
+ GL_EXT_misc_attribute,
+ GL_EXT_multi_draw_arrays,
+ GL_EXT_multisample,
+ GL_EXT_packed_pixels,
+ GL_EXT_paletted_texture,
+ GL_EXT_pixel_transform,
+ GL_EXT_point_parameters,
+ GL_EXT_polygon_offset,
+ GL_EXT_rescale_normal,
+ GL_EXT_scene_marker,
+ GL_EXT_secondary_color,
+ GL_EXT_separate_specular_color,
+ GL_EXT_shared_texture_palette,
+ GL_EXT_stencil_wrap,
+ GL_EXT_subtexture,
+ GL_EXT_texture_color_table,
+ GL_EXT_texture_compression_s3tc,
+ GL_EXT_texture_cube_map,
+ GL_EXT_texture_edge_clamp,
+ GL_EXT_texture_env_add,
+ GL_EXT_texture_env_combine,
+ GL_EXT_texture_filter_anisotropic,
+ GL_EXT_texture_lod_bias,
+ GL_EXT_texture_object,
+ GL_EXT_texture_perturb_normal,
+ GL_EXT_texture3D,
+ GL_EXT_vertex_array,
+ GL_EXT_vertex_weighting,
+
+ GL_FfdMaskSGIX,
+ GL_HP_convolution_border_modes,
+ GL_HP_image_transform,
+ GL_HP_occlusion_test,
+ GL_HP_texture_lighting,
+
+ GL_IBM_cull_vertex,
+ GL_IBM_multimode_draw_arrays,
+ GL_IBM_rasterpos_clip,
+ GL_IBM_vertex_array_lists,
+
+ GL_INGR_color_clamp,
+ GL_INGR_interlace_read,
+
+ GL_INTEL_parallel_arrays,
+
+ GL_KTX_buffer_region,
+
+ GL_MESA_resize_buffers,
+ GL_MESA_window_pos,
+
+ GL_NV_blend_square,
+ GL_NV_fog_distance,
+ GL_NV_light_max_exponent,
+ GL_NV_register_combiners,
+ GL_NV_texgen_emboss,
+ GL_NV_texgen_reflection,
+ GL_NV_texture_env_combine4,
+ GL_NV_vertex_array_range,
+ GL_NV_vertex_program,
+
+ GL_PGI_misc_hints,
+ GL_PGI_vertex_hints,
+
+ GL_REND_screen_coordinates,
+
+ GL_SGI_color_matrix,
+ GL_SGI_color_table,
+ GL_SGI_depth_pass_instrument,
+
+ GL_SGIS_detail_texture,
+ GL_SGIS_fog_function,
+ GL_SGIS_generate_mipmap,
+ GL_SGIS_multisample,
+ GL_SGIS_multitexture,
+ GL_SGIS_pixel_texture,
+ GL_SGIS_point_line_texgen,
+ GL_SGIS_point_parameters,
+ GL_SGIS_sharpen_texture,
+ GL_SGIS_texture_border_clamp,
+ GL_SGIS_texture_color_mask,
+ GL_SGIS_texture_edge_clamp,
+ GL_SGIS_texture_filter4,
+ GL_SGIS_texture_lod,
+ GL_SGIS_texture_select,
+ GL_SGIS_texture4D,
+
+ GL_SGIX_async,
+ GL_SGIX_async_histogram,
+ GL_SGIX_async_pixel,
+ GL_SGIX_blend_alpha_minmax,
+ GL_SGIX_calligraphic_fragment,
+ GL_SGIX_clipmap,
+ GL_SGIX_convolution_accuracy,
+ GL_SGIX_depth_texture,
+ GL_SGIX_flush_raster,
+ GL_SGIX_fog_offset,
+ GL_SGIX_fog_scale,
+ GL_SGIX_fragment_lighting,
+ GL_SGIX_framezoom,
+ GL_SGIX_igloo_interface,
+ GL_SGIX_instruments,
+ GL_SGIX_interlace,
+ GL_SGIX_ir_instrument1,
+ GL_SGIX_list_priority,
+ GL_SGIX_pixel_texture,
+ GL_SGIX_pixel_tiles,
+ GL_SGIX_polynomial_ffd,
+ GL_SGIX_reference_plane,
+ GL_SGIX_resample,
+ GL_SGIX_shadow,
+ GL_SGIX_shadow_ambient,
+ GL_SGIX_sprite,
+ GL_SGIX_subsample,
+ GL_SGIX_tag_sample_buffer,
+ GL_SGIX_texture_add_env,
+ GL_SGIX_texture_lod_bias,
+ GL_SGIX_texture_multi_buffer,
+ GL_SGIX_texture_scale_bias,
+ GL_SGIX_vertex_preclip,
+ GL_SGIX_ycrcb,
+ GL_SGIX_ycrcba,
+
+ GL_SUN_convolution_border_modes,
+ GL_SUN_global_alpha,
+ GL_SUN_triangle_list,
+ GL_SUN_vertex,
+
+ GL_SUNX_constant_data,
+
+ GL_WIN_phong_shading,
+ GL_WIN_specular_fog,
+ GL_WIN_swap_hint,
+
+ WGL_EXT_swap_control,
+ WGL_ARB_extensions_string,
+ WGL_ARB_pixel_format,
+
+ // Extensions (glu)
+ GLU_EXT_Texture,
+ GLU_EXT_object_space_tess,
+ GLU_EXT_nurbs_tessellator: Boolean;
+
+const
+ // ********** GL generic constants **********
+
+ // errors
+ GL_NO_ERROR = 0;
+ {$EXTERNALSYM GL_NO_ERROR}
+ GL_INVALID_ENUM = $0500;
+ {$EXTERNALSYM GL_INVALID_ENUM}
+ GL_INVALID_VALUE = $0501;
+ {$EXTERNALSYM GL_INVALID_VALUE}
+ GL_INVALID_OPERATION = $0502;
+ {$EXTERNALSYM GL_INVALID_OPERATION}
+ GL_STACK_OVERFLOW = $0503;
+ {$EXTERNALSYM GL_STACK_OVERFLOW}
+ GL_STACK_UNDERFLOW = $0504;
+ {$EXTERNALSYM GL_STACK_UNDERFLOW}
+ GL_OUT_OF_MEMORY = $0505;
+ {$EXTERNALSYM GL_STACK_UNDERFLOW}
+
+ // attribute bits
+ GL_CURRENT_BIT = $00000001;
+ {$EXTERNALSYM GL_CURRENT_BIT}
+ GL_POINT_BIT = $00000002;
+ {$EXTERNALSYM GL_POINT_BIT}
+ GL_LINE_BIT = $00000004;
+ {$EXTERNALSYM GL_LINE_BIT}
+ GL_POLYGON_BIT = $00000008;
+ {$EXTERNALSYM GL_POLYGON_BIT}
+ GL_POLYGON_STIPPLE_BIT = $00000010;
+ {$EXTERNALSYM GL_POLYGON_STIPPLE_BIT}
+ GL_PIXEL_MODE_BIT = $00000020;
+ {$EXTERNALSYM GL_PIXEL_MODE_BIT}
+ GL_LIGHTING_BIT = $00000040;
+ {$EXTERNALSYM GL_LIGHTING_BIT}
+ GL_FOG_BIT = $00000080;
+ {$EXTERNALSYM GL_FOG_BIT}
+ GL_DEPTH_BUFFER_BIT = $00000100;
+ {$EXTERNALSYM GL_DEPTH_BUFFER_BIT}
+ GL_ACCUM_BUFFER_BIT = $00000200;
+ {$EXTERNALSYM GL_ACCUM_BUFFER_BIT}
+ GL_STENCIL_BUFFER_BIT = $00000400;
+ {$EXTERNALSYM GL_STENCIL_BUFFER_BIT}
+ GL_VIEWPORT_BIT = $00000800;
+ {$EXTERNALSYM GL_VIEWPORT_BIT}
+ GL_TRANSFORM_BIT = $00001000;
+ {$EXTERNALSYM GL_TRANSFORM_BIT}
+ GL_ENABLE_BIT = $00002000;
+ {$EXTERNALSYM GL_ENABLE_BIT}
+ GL_COLOR_BUFFER_BIT = $00004000;
+ {$EXTERNALSYM GL_COLOR_BUFFER_BIT}
+ GL_HINT_BIT = $00008000;
+ {$EXTERNALSYM GL_HINT_BIT}
+ GL_EVAL_BIT = $00010000;
+ {$EXTERNALSYM GL_EVAL_BIT}
+ GL_LIST_BIT = $00020000;
+ {$EXTERNALSYM GL_LIST_BIT}
+ GL_TEXTURE_BIT = $00040000;
+ {$EXTERNALSYM GL_TEXTURE_BIT}
+ GL_SCISSOR_BIT = $00080000;
+ {$EXTERNALSYM GL_SCISSOR_BIT}
+ GL_ALL_ATTRIB_BITS = $000FFFFF;
+ {$EXTERNALSYM GL_ALL_ATTRIB_BITS}
+
+ // client attribute bits
+ GL_CLIENT_PIXEL_STORE_BIT = $00000001;
+ {$EXTERNALSYM GL_CLIENT_PIXEL_STORE_BIT}
+ GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
+ {$EXTERNALSYM GL_CLIENT_VERTEX_ARRAY_BIT}
+ GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
+ {$EXTERNALSYM GL_CLIENT_ALL_ATTRIB_BITS}
+
+ // boolean values
+ GL_FALSE = Boolean(0);
+ {$EXTERNALSYM GL_FALSE}
+ GL_TRUE = Boolean(1);
+ {$EXTERNALSYM GL_TRUE}
+
+ // primitives
+ GL_POINTS = $0000;
+ {$EXTERNALSYM GL_POINTS}
+ GL_LINES = $0001;
+ {$EXTERNALSYM GL_LINES}
+ GL_LINE_LOOP = $0002;
+ {$EXTERNALSYM GL_LINE_LOOP}
+ GL_LINE_STRIP = $0003;
+ {$EXTERNALSYM GL_LINE_STRIP}
+ GL_TRIANGLES = $0004;
+ {$EXTERNALSYM GL_TRIANGLES}
+ GL_TRIANGLE_STRIP = $0005;
+ {$EXTERNALSYM GL_TRIANGLE_STRIP}
+ GL_TRIANGLE_FAN = $0006;
+ {$EXTERNALSYM GL_TRIANGLE_FAN}
+ GL_QUADS = $0007;
+ {$EXTERNALSYM GL_QUADS}
+ GL_QUAD_STRIP = $0008;
+ {$EXTERNALSYM GL_QUAD_STRIP}
+ GL_POLYGON = $0009;
+ {$EXTERNALSYM GL_POLYGON}
+
+ // blending
+ GL_ZERO = 0;
+ {$EXTERNALSYM GL_ZERO}
+ GL_ONE = 1;
+ {$EXTERNALSYM GL_ONE}
+ GL_SRC_COLOR = $0300;
+ {$EXTERNALSYM GL_SRC_COLOR}
+ GL_ONE_MINUS_SRC_COLOR = $0301;
+ {$EXTERNALSYM GL_ONE_MINUS_SRC_COLOR}
+ GL_SRC_ALPHA = $0302;
+ {$EXTERNALSYM GL_SRC_ALPHA}
+ GL_ONE_MINUS_SRC_ALPHA = $0303;
+ {$EXTERNALSYM GL_ONE_MINUS_SRC_ALPHA}
+ GL_DST_ALPHA = $0304;
+ {$EXTERNALSYM GL_DST_ALPHA}
+ GL_ONE_MINUS_DST_ALPHA = $0305;
+ {$EXTERNALSYM GL_ONE_MINUS_DST_ALPHA}
+ GL_DST_COLOR = $0306;
+ {$EXTERNALSYM GL_DST_COLOR}
+ GL_ONE_MINUS_DST_COLOR = $0307;
+ {$EXTERNALSYM GL_ONE_MINUS_DST_COLOR}
+ GL_SRC_ALPHA_SATURATE = $0308;
+ {$EXTERNALSYM GL_SRC_ALPHA_SATURATE}
+ GL_BLEND_DST = $0BE0;
+ {$EXTERNALSYM GL_BLEND_DST}
+ GL_BLEND_SRC = $0BE1;
+ {$EXTERNALSYM GL_BLEND_SRC}
+ GL_BLEND = $0BE2;
+ {$EXTERNALSYM GL_BLEND}
+
+ // blending (GL 1.2 ARB imaging)
+ GL_BLEND_COLOR = $8005;
+ {$EXTERNALSYM GL_BLEND_COLOR}
+ GL_CONSTANT_COLOR = $8001;
+ {$EXTERNALSYM GL_CONSTANT_COLOR}
+ GL_ONE_MINUS_CONSTANT_COLOR = $8002;
+ {$EXTERNALSYM GL_ONE_MINUS_CONSTANT_COLOR}
+ GL_CONSTANT_ALPHA = $8003;
+ {$EXTERNALSYM GL_CONSTANT_ALPHA}
+ GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
+ {$EXTERNALSYM GL_ONE_MINUS_CONSTANT_ALPHA}
+ GL_FUNC_ADD = $8006;
+ {$EXTERNALSYM GL_FUNC_ADD}
+ GL_MIN = $8007;
+ {$EXTERNALSYM GL_MIN}
+ GL_MAX = $8008;
+ {$EXTERNALSYM GL_MAX}
+ GL_FUNC_SUBTRACT = $800A;
+ {$EXTERNALSYM GL_FUNC_SUBTRACT}
+ GL_FUNC_REVERSE_SUBTRACT = $800B;
+ {$EXTERNALSYM GL_FUNC_REVERSE_SUBTRACT}
+
+ // color table GL 1.2 ARB imaging
+ GL_COLOR_TABLE = $80D0;
+ {$EXTERNALSYM GL_COLOR_TABLE}
+ GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_COLOR_TABLE}
+ GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_COLOR_TABLE}
+ GL_PROXY_COLOR_TABLE = $80D3;
+ {$EXTERNALSYM GL_PROXY_COLOR_TABLE}
+ GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
+ {$EXTERNALSYM GL_PROXY_POST_CONVOLUTION_COLOR_TABLE}
+ GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
+ {$EXTERNALSYM GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE}
+ GL_COLOR_TABLE_SCALE = $80D6;
+ {$EXTERNALSYM GL_COLOR_TABLE_SCALE}
+ GL_COLOR_TABLE_BIAS = $80D7;
+ {$EXTERNALSYM GL_COLOR_TABLE_BIAS}
+ GL_COLOR_TABLE_FORMAT = $80D8;
+ {$EXTERNALSYM GL_COLOR_TABLE_FORMAT}
+ GL_COLOR_TABLE_WIDTH = $80D9;
+ {$EXTERNALSYM GL_COLOR_TABLE_WIDTH}
+ GL_COLOR_TABLE_RED_SIZE = $80DA;
+ {$EXTERNALSYM GL_COLOR_TABLE_RED_SIZE}
+ GL_COLOR_TABLE_GREEN_SIZE = $80DB;
+ {$EXTERNALSYM GL_COLOR_TABLE_GREEN_SIZE}
+ GL_COLOR_TABLE_BLUE_SIZE = $80DC;
+ {$EXTERNALSYM GL_COLOR_TABLE_BLUE_SIZE}
+ GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
+ {$EXTERNALSYM GL_COLOR_TABLE_ALPHA_SIZE}
+ GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
+ {$EXTERNALSYM GL_COLOR_TABLE_LUMINANCE_SIZE}
+ GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
+ {$EXTERNALSYM GL_COLOR_TABLE_INTENSITY_SIZE}
+
+ // convolutions GL 1.2 ARB imaging
+ GL_CONVOLUTION_1D = $8010;
+ {$EXTERNALSYM GL_CONVOLUTION_1D}
+ GL_CONVOLUTION_2D = $8011;
+ {$EXTERNALSYM GL_CONVOLUTION_2D}
+ GL_SEPARABLE_2D = $8012;
+ {$EXTERNALSYM GL_SEPARABLE_2D}
+ GL_CONVOLUTION_BORDER_MODE = $8013;
+ {$EXTERNALSYM GL_CONVOLUTION_BORDER_MODE}
+ GL_CONVOLUTION_FILTER_SCALE = $8014;
+ {$EXTERNALSYM GL_CONVOLUTION_FILTER_SCALE}
+ GL_CONVOLUTION_FILTER_BIAS = $8015;
+ {$EXTERNALSYM GL_CONVOLUTION_FILTER_BIAS}
+ GL_REDUCE = $8016;
+ {$EXTERNALSYM GL_REDUCE}
+ GL_CONVOLUTION_FORMAT = $8017;
+ {$EXTERNALSYM GL_CONVOLUTION_FORMAT}
+ GL_CONVOLUTION_WIDTH = $8018;
+ {$EXTERNALSYM GL_CONVOLUTION_WIDTH}
+ GL_CONVOLUTION_HEIGHT = $8019;
+ {$EXTERNALSYM GL_CONVOLUTION_HEIGHT}
+ GL_MAX_CONVOLUTION_WIDTH = $801A;
+ {$EXTERNALSYM GL_MAX_CONVOLUTION_WIDTH}
+ GL_MAX_CONVOLUTION_HEIGHT = $801B;
+ {$EXTERNALSYM GL_MAX_CONVOLUTION_HEIGHT}
+ GL_POST_CONVOLUTION_RED_SCALE = $801C;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_RED_SCALE}
+ GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_GREEN_SCALE}
+ GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_BLUE_SCALE}
+ GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_ALPHA_SCALE}
+ GL_POST_CONVOLUTION_RED_BIAS = $8020;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_RED_BIAS}
+ GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_GREEN_BIAS}
+ GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_BLUE_BIAS}
+ GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_ALPHA_BIAS}
+
+ // histogram GL 1.2 ARB imaging
+ GL_HISTOGRAM = $8024;
+ {$EXTERNALSYM GL_HISTOGRAM}
+ GL_PROXY_HISTOGRAM = $8025;
+ {$EXTERNALSYM GL_PROXY_HISTOGRAM}
+ GL_HISTOGRAM_WIDTH = $8026;
+ {$EXTERNALSYM GL_HISTOGRAM_WIDTH}
+ GL_HISTOGRAM_FORMAT = $8027;
+ {$EXTERNALSYM GL_HISTOGRAM_FORMAT}
+ GL_HISTOGRAM_RED_SIZE = $8028;
+ {$EXTERNALSYM GL_HISTOGRAM_RED_SIZE}
+ GL_HISTOGRAM_GREEN_SIZE = $8029;
+ {$EXTERNALSYM GL_HISTOGRAM_GREEN_SIZE}
+ GL_HISTOGRAM_BLUE_SIZE = $802A;
+ {$EXTERNALSYM GL_HISTOGRAM_BLUE_SIZE}
+ GL_HISTOGRAM_ALPHA_SIZE = $802B;
+ {$EXTERNALSYM GL_HISTOGRAM_ALPHA_SIZE}
+ GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
+ {$EXTERNALSYM GL_HISTOGRAM_LUMINANCE_SIZE}
+ GL_HISTOGRAM_SINK = $802D;
+ {$EXTERNALSYM GL_HISTOGRAM_SINK}
+ GL_MINMAX = $802E;
+ {$EXTERNALSYM GL_MINMAX}
+ GL_MINMAX_FORMAT = $802F;
+ {$EXTERNALSYM GL_MINMAX_FORMAT}
+ GL_MINMAX_SINK = $8030;
+ {$EXTERNALSYM GL_MINMAX_SINK}
+
+ // buffers
+ GL_NONE = 0;
+ {$EXTERNALSYM GL_NONE}
+ GL_FRONT_LEFT = $0400;
+ {$EXTERNALSYM GL_FRONT_LEFT}
+ GL_FRONT_RIGHT = $0401;
+ {$EXTERNALSYM GL_FRONT_RIGHT}
+ GL_BACK_LEFT = $0402;
+ {$EXTERNALSYM GL_BACK_LEFT}
+ GL_BACK_RIGHT = $0403;
+ {$EXTERNALSYM GL_BACK_RIGHT}
+ GL_FRONT = $0404;
+ {$EXTERNALSYM GL_FRONT}
+ GL_BACK = $0405;
+ {$EXTERNALSYM GL_BACK}
+ GL_LEFT = $0406;
+ {$EXTERNALSYM GL_LEFT}
+ GL_RIGHT = $0407;
+ {$EXTERNALSYM GL_RIGHT}
+ GL_FRONT_AND_BACK = $0408;
+ {$EXTERNALSYM GL_FRONT_AND_BACK}
+ GL_AUX0 = $0409;
+ {$EXTERNALSYM GL_AUX0}
+ GL_AUX1 = $040A;
+ {$EXTERNALSYM GL_AUX1}
+ GL_AUX2 = $040B;
+ {$EXTERNALSYM GL_AUX2}
+ GL_AUX3 = $040C;
+ {$EXTERNALSYM GL_AUX3}
+ GL_AUX_BUFFERS = $0C00;
+ {$EXTERNALSYM GL_AUX_BUFFERS}
+ GL_DRAW_BUFFER = $0C01;
+ {$EXTERNALSYM GL_DRAW_BUFFER}
+ GL_READ_BUFFER = $0C02;
+ {$EXTERNALSYM GL_READ_BUFFER}
+ GL_DOUBLEBUFFER = $0C32;
+ {$EXTERNALSYM GL_DOUBLEBUFFER}
+ GL_STEREO = $0C33;
+ {$EXTERNALSYM GL_STEREO}
+
+ // depth buffer
+ GL_DEPTH_RANGE = $0B70;
+ {$EXTERNALSYM GL_DEPTH_RANGE}
+ GL_DEPTH_TEST = $0B71;
+ {$EXTERNALSYM GL_DEPTH_TEST}
+ GL_DEPTH_WRITEMASK = $0B72;
+ {$EXTERNALSYM GL_DEPTH_WRITEMASK}
+ GL_DEPTH_CLEAR_VALUE = $0B73;
+ {$EXTERNALSYM GL_DEPTH_CLEAR_VALUE}
+ GL_DEPTH_FUNC = $0B74;
+ {$EXTERNALSYM GL_DEPTH_FUNC}
+ GL_NEVER = $0200;
+ {$EXTERNALSYM GL_NEVER}
+ GL_LESS = $0201;
+ {$EXTERNALSYM GL_LESS}
+ GL_EQUAL = $0202;
+ {$EXTERNALSYM GL_EQUAL}
+ GL_LEQUAL = $0203;
+ {$EXTERNALSYM GL_LEQUAL}
+ GL_GREATER = $0204;
+ {$EXTERNALSYM GL_GREATER}
+ GL_NOTEQUAL = $0205;
+ {$EXTERNALSYM GL_NOTEQUAL}
+ GL_GEQUAL = $0206;
+ {$EXTERNALSYM GL_GEQUAL}
+ GL_ALWAYS = $0207;
+ {$EXTERNALSYM GL_ALWAYS}
+
+ // accumulation buffer
+ GL_ACCUM = $0100;
+ {$EXTERNALSYM GL_ACCUM}
+ GL_LOAD = $0101;
+ {$EXTERNALSYM GL_LOAD}
+ GL_RETURN = $0102;
+ {$EXTERNALSYM GL_RETURN}
+ GL_MULT = $0103;
+ {$EXTERNALSYM GL_MULT}
+ GL_ADD = $0104;
+ {$EXTERNALSYM GL_ADD}
+ GL_ACCUM_CLEAR_VALUE = $0B80;
+ {$EXTERNALSYM GL_ACCUM_CLEAR_VALUE}
+
+ // feedback buffer
+ GL_FEEDBACK_BUFFER_POINTER = $0DF0;
+ {$EXTERNALSYM GL_FEEDBACK_BUFFER_POINTER}
+ GL_FEEDBACK_BUFFER_SIZE = $0DF1;
+ {$EXTERNALSYM GL_FEEDBACK_BUFFER_SIZE}
+ GL_FEEDBACK_BUFFER_TYPE = $0DF2;
+ {$EXTERNALSYM GL_FEEDBACK_BUFFER_TYPE}
+
+ // feedback types
+ GL_2D = $0600;
+ {$EXTERNALSYM GL_2D}
+ GL_3D = $0601;
+ {$EXTERNALSYM GL_3D}
+ GL_3D_COLOR = $0602;
+ {$EXTERNALSYM GL_3D_COLOR}
+ GL_3D_COLOR_TEXTURE = $0603;
+ {$EXTERNALSYM GL_3D_COLOR_TEXTURE}
+ GL_4D_COLOR_TEXTURE = $0604;
+ {$EXTERNALSYM GL_4D_COLOR_TEXTURE}
+
+ // feedback tokens
+ GL_PASS_THROUGH_TOKEN = $0700;
+ {$EXTERNALSYM GL_PASS_THROUGH_TOKEN}
+ GL_POINT_TOKEN = $0701;
+ {$EXTERNALSYM GL_POINT_TOKEN}
+ GL_LINE_TOKEN = $0702;
+ {$EXTERNALSYM GL_LINE_TOKEN}
+ GL_POLYGON_TOKEN = $0703;
+ {$EXTERNALSYM GL_POLYGON_TOKEN}
+ GL_BITMAP_TOKEN = $0704;
+ {$EXTERNALSYM GL_BITMAP_TOKEN}
+ GL_DRAW_PIXEL_TOKEN = $0705;
+ {$EXTERNALSYM GL_DRAW_PIXEL_TOKEN}
+ GL_COPY_PIXEL_TOKEN = $0706;
+ {$EXTERNALSYM GL_COPY_PIXEL_TOKEN}
+ GL_LINE_RESET_TOKEN = $0707;
+ {$EXTERNALSYM GL_LINE_RESET_TOKEN}
+
+ // fog
+ GL_EXP = $0800;
+ {$EXTERNALSYM GL_EXP}
+ GL_EXP2 = $0801;
+ {$EXTERNALSYM GL_EXP2}
+ GL_FOG = $0B60;
+ {$EXTERNALSYM GL_FOG}
+ GL_FOG_INDEX = $0B61;
+ {$EXTERNALSYM GL_FOG_INDEX}
+ GL_FOG_DENSITY = $0B62;
+ {$EXTERNALSYM GL_FOG_DENSITY}
+ GL_FOG_START = $0B63;
+ {$EXTERNALSYM GL_FOG_START}
+ GL_FOG_END = $0B64;
+ {$EXTERNALSYM GL_FOG_END}
+ GL_FOG_MODE = $0B65;
+ {$EXTERNALSYM GL_FOG_MODE}
+ GL_FOG_COLOR = $0B66;
+ {$EXTERNALSYM GL_FOG_COLOR}
+
+ // pixel mode, transfer
+ GL_PIXEL_MAP_I_TO_I = $0C70;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_I}
+ GL_PIXEL_MAP_S_TO_S = $0C71;
+ {$EXTERNALSYM GL_PIXEL_MAP_S_TO_S}
+ GL_PIXEL_MAP_I_TO_R = $0C72;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_R}
+ GL_PIXEL_MAP_I_TO_G = $0C73;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_G}
+ GL_PIXEL_MAP_I_TO_B = $0C74;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_B}
+ GL_PIXEL_MAP_I_TO_A = $0C75;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_A}
+ GL_PIXEL_MAP_R_TO_R = $0C76;
+ {$EXTERNALSYM GL_PIXEL_MAP_R_TO_R}
+ GL_PIXEL_MAP_G_TO_G = $0C77;
+ {$EXTERNALSYM GL_PIXEL_MAP_G_TO_G}
+ GL_PIXEL_MAP_B_TO_B = $0C78;
+ {$EXTERNALSYM GL_PIXEL_MAP_B_TO_B}
+ GL_PIXEL_MAP_A_TO_A = $0C79;
+ {$EXTERNALSYM GL_PIXEL_MAP_A_TO_A}
+
+ // vertex arrays
+ GL_VERTEX_ARRAY_POINTER = $808E;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_POINTER}
+ GL_NORMAL_ARRAY_POINTER = $808F;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_POINTER}
+ GL_COLOR_ARRAY_POINTER = $8090;
+ {$EXTERNALSYM GL_COLOR_ARRAY_POINTER}
+ GL_INDEX_ARRAY_POINTER = $8091;
+ {$EXTERNALSYM GL_INDEX_ARRAY_POINTER}
+ GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_POINTER}
+ GL_EDGE_FLAG_ARRAY_POINTER = $8093;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_POINTER}
+
+ // stenciling
+ GL_STENCIL_TEST = $0B90;
+ {$EXTERNALSYM GL_STENCIL_TEST}
+ GL_STENCIL_CLEAR_VALUE = $0B91;
+ {$EXTERNALSYM GL_STENCIL_CLEAR_VALUE}
+ GL_STENCIL_FUNC = $0B92;
+ {$EXTERNALSYM GL_STENCIL_FUNC}
+ GL_STENCIL_VALUE_MASK = $0B93;
+ {$EXTERNALSYM GL_STENCIL_VALUE_MASK}
+ GL_STENCIL_FAIL = $0B94;
+ {$EXTERNALSYM GL_STENCIL_FAIL}
+ GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
+ {$EXTERNALSYM GL_STENCIL_PASS_DEPTH_FAIL}
+ GL_STENCIL_PASS_DEPTH_PASS = $0B96;
+ {$EXTERNALSYM GL_STENCIL_PASS_DEPTH_PASS}
+ GL_STENCIL_REF = $0B97;
+ {$EXTERNALSYM GL_STENCIL_REF}
+ GL_STENCIL_WRITEMASK = $0B98;
+ {$EXTERNALSYM GL_STENCIL_WRITEMASK}
+ GL_KEEP = $1E00;
+ {$EXTERNALSYM GL_KEEP}
+ GL_REPLACE = $1E01;
+ {$EXTERNALSYM GL_REPLACE}
+ GL_INCR = $1E02;
+ {$EXTERNALSYM GL_INCR}
+ GL_DECR = $1E03;
+ {$EXTERNALSYM GL_DECR}
+
+ // color material
+ GL_COLOR_MATERIAL_FACE = $0B55;
+ {$EXTERNALSYM GL_COLOR_MATERIAL_FACE}
+ GL_COLOR_MATERIAL_PARAMETER = $0B56;
+ {$EXTERNALSYM GL_COLOR_MATERIAL_PARAMETER}
+ GL_COLOR_MATERIAL = $0B57;
+ {$EXTERNALSYM GL_COLOR_MATERIAL}
+
+ // points
+ GL_POINT_SMOOTH = $0B10;
+ {$EXTERNALSYM GL_POINT_SMOOTH}
+ GL_POINT_SIZE = $0B11;
+ {$EXTERNALSYM GL_POINT_SIZE}
+ GL_POINT_SIZE_RANGE = $0B12;
+ {$EXTERNALSYM GL_POINT_SIZE_RANGE}
+ GL_POINT_SIZE_GRANULARITY = $0B13;
+ {$EXTERNALSYM GL_POINT_SIZE_GRANULARITY}
+
+ // lines
+ GL_LINE_SMOOTH = $0B20;
+ {$EXTERNALSYM GL_LINE_SMOOTH}
+ GL_LINE_WIDTH = $0B21;
+ {$EXTERNALSYM GL_LINE_WIDTH}
+ GL_LINE_WIDTH_RANGE = $0B22;
+ {$EXTERNALSYM GL_LINE_WIDTH_RANGE}
+ GL_LINE_WIDTH_GRANULARITY = $0B23;
+ {$EXTERNALSYM GL_LINE_WIDTH_GRANULARITY}
+ GL_LINE_STIPPLE = $0B24;
+ {$EXTERNALSYM GL_LINE_STIPPLE}
+ GL_LINE_STIPPLE_PATTERN = $0B25;
+ {$EXTERNALSYM GL_LINE_STIPPLE_PATTERN}
+ GL_LINE_STIPPLE_REPEAT = $0B26;
+ {$EXTERNALSYM GL_LINE_STIPPLE_REPEAT}
+
+ // polygons
+ GL_POLYGON_MODE = $0B40;
+ {$EXTERNALSYM GL_POLYGON_MODE}
+ GL_POLYGON_SMOOTH = $0B41;
+ {$EXTERNALSYM GL_POLYGON_SMOOTH}
+ GL_POLYGON_STIPPLE = $0B42;
+ {$EXTERNALSYM GL_POLYGON_STIPPLE}
+ GL_EDGE_FLAG = $0B43;
+ {$EXTERNALSYM GL_EDGE_FLAG}
+ GL_CULL_FACE = $0B44;
+ {$EXTERNALSYM GL_CULL_FACE}
+ GL_CULL_FACE_MODE = $0B45;
+ {$EXTERNALSYM GL_CULL_FACE_MODE}
+ GL_FRONT_FACE = $0B46;
+ {$EXTERNALSYM GL_FRONT_FACE}
+ GL_CW = $0900;
+ {$EXTERNALSYM GL_CW}
+ GL_CCW = $0901;
+ {$EXTERNALSYM GL_CCW}
+ GL_POINT = $1B00;
+ {$EXTERNALSYM GL_POINT}
+ GL_LINE = $1B01;
+ {$EXTERNALSYM GL_LINE}
+ GL_FILL = $1B02;
+ {$EXTERNALSYM GL_FILL}
+
+ // display lists
+ GL_LIST_MODE = $0B30;
+ {$EXTERNALSYM GL_LIST_MODE}
+ GL_LIST_BASE = $0B32;
+ {$EXTERNALSYM GL_LIST_BASE}
+ GL_LIST_INDEX = $0B33;
+ {$EXTERNALSYM GL_LIST_INDEX}
+ GL_COMPILE = $1300;
+ {$EXTERNALSYM GL_COMPILE}
+ GL_COMPILE_AND_EXECUTE = $1301;
+ {$EXTERNALSYM GL_COMPILE_AND_EXECUTE}
+
+ // lighting
+ GL_LIGHTING = $0B50;
+ {$EXTERNALSYM GL_LIGHTING}
+ GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
+ {$EXTERNALSYM GL_LIGHT_MODEL_LOCAL_VIEWER}
+ GL_LIGHT_MODEL_TWO_SIDE = $0B52;
+ {$EXTERNALSYM GL_LIGHT_MODEL_TWO_SIDE}
+ GL_LIGHT_MODEL_AMBIENT = $0B53;
+ {$EXTERNALSYM GL_LIGHT_MODEL_AMBIENT}
+ GL_LIGHT_MODEL_COLOR_CONTROL = $81F8; // GL 1.2
+ {$EXTERNALSYM GL_LIGHT_MODEL_COLOR_CONTROL}
+ GL_SHADE_MODEL = $0B54;
+ {$EXTERNALSYM GL_SHADE_MODEL}
+ GL_NORMALIZE = $0BA1;
+ {$EXTERNALSYM GL_NORMALIZE}
+ GL_AMBIENT = $1200;
+ {$EXTERNALSYM GL_AMBIENT}
+ GL_DIFFUSE = $1201;
+ {$EXTERNALSYM GL_DIFFUSE}
+ GL_SPECULAR = $1202;
+ {$EXTERNALSYM GL_SPECULAR}
+ GL_POSITION = $1203;
+ {$EXTERNALSYM GL_POSITION}
+ GL_SPOT_DIRECTION = $1204;
+ {$EXTERNALSYM GL_SPOT_DIRECTION}
+ GL_SPOT_EXPONENT = $1205;
+ {$EXTERNALSYM GL_SPOT_EXPONENT}
+ GL_SPOT_CUTOFF = $1206;
+ {$EXTERNALSYM GL_SPOT_CUTOFF}
+ GL_CONSTANT_ATTENUATION = $1207;
+ {$EXTERNALSYM GL_CONSTANT_ATTENUATION}
+ GL_LINEAR_ATTENUATION = $1208;
+ {$EXTERNALSYM GL_LINEAR_ATTENUATION}
+ GL_QUADRATIC_ATTENUATION = $1209;
+ {$EXTERNALSYM GL_QUADRATIC_ATTENUATION}
+ GL_EMISSION = $1600;
+ {$EXTERNALSYM GL_EMISSION}
+ GL_SHININESS = $1601;
+ {$EXTERNALSYM GL_SHININESS}
+ GL_AMBIENT_AND_DIFFUSE = $1602;
+ {$EXTERNALSYM GL_AMBIENT_AND_DIFFUSE}
+ GL_COLOR_INDEXES = $1603;
+ {$EXTERNALSYM GL_COLOR_INDEXES}
+ GL_FLAT = $1D00;
+ {$EXTERNALSYM GL_FLAT}
+ GL_SMOOTH = $1D01;
+ {$EXTERNALSYM GL_SMOOTH}
+ GL_LIGHT0 = $4000;
+ {$EXTERNALSYM GL_LIGHT0}
+ GL_LIGHT1 = $4001;
+ {$EXTERNALSYM GL_LIGHT1}
+ GL_LIGHT2 = $4002;
+ {$EXTERNALSYM GL_LIGHT2}
+ GL_LIGHT3 = $4003;
+ {$EXTERNALSYM GL_LIGHT3}
+ GL_LIGHT4 = $4004;
+ {$EXTERNALSYM GL_LIGHT4}
+ GL_LIGHT5 = $4005;
+ {$EXTERNALSYM GL_LIGHT5}
+ GL_LIGHT6 = $4006;
+ {$EXTERNALSYM GL_LIGHT6}
+ GL_LIGHT7 = $4007;
+ {$EXTERNALSYM GL_LIGHT7}
+
+ // matrix modes
+ GL_MATRIX_MODE = $0BA0;
+ {$EXTERNALSYM GL_MATRIX_MODE}
+ GL_MODELVIEW = $1700;
+ {$EXTERNALSYM GL_MODELVIEW}
+ GL_PROJECTION = $1701;
+ {$EXTERNALSYM GL_PROJECTION}
+ GL_TEXTURE = $1702;
+ {$EXTERNALSYM GL_TEXTURE}
+
+ // gets
+ GL_CURRENT_COLOR = $0B00;
+ {$EXTERNALSYM GL_CURRENT_COLOR}
+ GL_CURRENT_INDEX = $0B01;
+ {$EXTERNALSYM GL_CURRENT_INDEX}
+ GL_CURRENT_NORMAL = $0B02;
+ {$EXTERNALSYM GL_CURRENT_NORMAL}
+ GL_CURRENT_TEXTURE_COORDS = $0B03;
+ {$EXTERNALSYM GL_CURRENT_TEXTURE_COORDS}
+ GL_CURRENT_RASTER_COLOR = $0B04;
+ {$EXTERNALSYM GL_CURRENT_RASTER_COLOR}
+ GL_CURRENT_RASTER_INDEX = $0B05;
+ {$EXTERNALSYM GL_CURRENT_RASTER_INDEX}
+ GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
+ {$EXTERNALSYM GL_CURRENT_RASTER_TEXTURE_COORDS}
+ GL_CURRENT_RASTER_POSITION = $0B07;
+ {$EXTERNALSYM GL_CURRENT_RASTER_POSITION}
+ GL_CURRENT_RASTER_POSITION_VALID = $0B08;
+ {$EXTERNALSYM GL_CURRENT_RASTER_POSITION_VALID}
+ GL_CURRENT_RASTER_DISTANCE = $0B09;
+ {$EXTERNALSYM GL_CURRENT_RASTER_DISTANCE}
+ GL_MAX_LIST_NESTING = $0B31;
+ {$EXTERNALSYM GL_MAX_LIST_NESTING}
+ GL_VIEWPORT = $0BA2;
+ {$EXTERNALSYM GL_VIEWPORT}
+ GL_MODELVIEW_STACK_DEPTH = $0BA3;
+ {$EXTERNALSYM GL_MODELVIEW_STACK_DEPTH}
+ GL_PROJECTION_STACK_DEPTH = $0BA4;
+ {$EXTERNALSYM GL_PROJECTION_STACK_DEPTH}
+ GL_TEXTURE_STACK_DEPTH = $0BA5;
+ {$EXTERNALSYM GL_TEXTURE_STACK_DEPTH}
+ GL_MODELVIEW_MATRIX = $0BA6;
+ {$EXTERNALSYM GL_MODELVIEW_MATRIX}
+ GL_PROJECTION_MATRIX = $0BA7;
+ {$EXTERNALSYM GL_PROJECTION_MATRIX}
+ GL_TEXTURE_MATRIX = $0BA8;
+ {$EXTERNALSYM GL_TEXTURE_MATRIX}
+ GL_ATTRIB_STACK_DEPTH = $0BB0;
+ {$EXTERNALSYM GL_ATTRIB_STACK_DEPTH}
+ GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
+ {$EXTERNALSYM GL_CLIENT_ATTRIB_STACK_DEPTH}
+
+ GL_SINGLE_COLOR = $81F9; // GL 1.2
+ {$EXTERNALSYM GL_SINGLE_COLOR}
+ GL_SEPARATE_SPECULAR_COLOR = $81FA; // GL 1.2
+ {$EXTERNALSYM GL_SEPARATE_SPECULAR_COLOR}
+
+ // alpha testing
+ GL_ALPHA_TEST = $0BC0;
+ {$EXTERNALSYM GL_ALPHA_TEST}
+ GL_ALPHA_TEST_FUNC = $0BC1;
+ {$EXTERNALSYM GL_ALPHA_TEST_FUNC}
+ GL_ALPHA_TEST_REF = $0BC2;
+ {$EXTERNALSYM GL_ALPHA_TEST_REF}
+
+ GL_LOGIC_OP_MODE = $0BF0;
+ {$EXTERNALSYM GL_LOGIC_OP_MODE}
+ GL_INDEX_LOGIC_OP = $0BF1;
+ {$EXTERNALSYM GL_INDEX_LOGIC_OP}
+ GL_LOGIC_OP = $0BF1;
+ {$EXTERNALSYM GL_LOGIC_OP}
+ GL_COLOR_LOGIC_OP = $0BF2;
+ {$EXTERNALSYM GL_COLOR_LOGIC_OP}
+ GL_SCISSOR_BOX = $0C10;
+ {$EXTERNALSYM GL_SCISSOR_BOX}
+ GL_SCISSOR_TEST = $0C11;
+ {$EXTERNALSYM GL_SCISSOR_TEST}
+ GL_INDEX_CLEAR_VALUE = $0C20;
+ {$EXTERNALSYM GL_INDEX_CLEAR_VALUE}
+ GL_INDEX_WRITEMASK = $0C21;
+ {$EXTERNALSYM GL_INDEX_WRITEMASK}
+ GL_COLOR_CLEAR_VALUE = $0C22;
+ {$EXTERNALSYM GL_COLOR_CLEAR_VALUE}
+ GL_COLOR_WRITEMASK = $0C23;
+ {$EXTERNALSYM GL_COLOR_WRITEMASK}
+ GL_INDEX_MODE = $0C30;
+ {$EXTERNALSYM GL_INDEX_MODE}
+ GL_RGBA_MODE = $0C31;
+ {$EXTERNALSYM GL_RGBA_MODE}
+ GL_RENDER_MODE = $0C40;
+ {$EXTERNALSYM GL_RENDER_MODE}
+ GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
+ {$EXTERNALSYM GL_PERSPECTIVE_CORRECTION_HINT}
+ GL_POINT_SMOOTH_HINT = $0C51;
+ {$EXTERNALSYM GL_POINT_SMOOTH_HINT}
+ GL_LINE_SMOOTH_HINT = $0C52;
+ {$EXTERNALSYM GL_LINE_SMOOTH_HINT}
+ GL_POLYGON_SMOOTH_HINT = $0C53;
+ {$EXTERNALSYM GL_POLYGON_SMOOTH_HINT}
+ GL_FOG_HINT = $0C54;
+ {$EXTERNALSYM GL_FOG_HINT}
+ GL_TEXTURE_GEN_S = $0C60;
+ {$EXTERNALSYM GL_TEXTURE_GEN_S}
+ GL_TEXTURE_GEN_T = $0C61;
+ {$EXTERNALSYM GL_TEXTURE_GEN_T}
+ GL_TEXTURE_GEN_R = $0C62;
+ {$EXTERNALSYM GL_TEXTURE_GEN_R}
+ GL_TEXTURE_GEN_Q = $0C63;
+ {$EXTERNALSYM GL_TEXTURE_GEN_Q}
+ GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_I_SIZE}
+ GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
+ {$EXTERNALSYM GL_PIXEL_MAP_S_TO_S_SIZE}
+ GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_R_SIZE}
+ GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_G_SIZE}
+ GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_B_SIZE}
+ GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
+ {$EXTERNALSYM GL_PIXEL_MAP_I_TO_A_SIZE}
+ GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
+ {$EXTERNALSYM GL_PIXEL_MAP_R_TO_R_SIZE}
+ GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
+ {$EXTERNALSYM GL_PIXEL_MAP_G_TO_G_SIZE}
+ GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
+ {$EXTERNALSYM GL_PIXEL_MAP_B_TO_B_SIZE}
+ GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
+ {$EXTERNALSYM GL_PIXEL_MAP_A_TO_A_SIZE}
+ GL_UNPACK_SWAP_BYTES = $0CF0;
+ {$EXTERNALSYM GL_UNPACK_SWAP_BYTES}
+ GL_UNPACK_LSB_FIRST = $0CF1;
+ {$EXTERNALSYM GL_UNPACK_LSB_FIRST}
+ GL_UNPACK_ROW_LENGTH = $0CF2;
+ {$EXTERNALSYM GL_UNPACK_ROW_LENGTH}
+ GL_UNPACK_SKIP_ROWS = $0CF3;
+ {$EXTERNALSYM GL_UNPACK_SKIP_ROWS}
+ GL_UNPACK_SKIP_PIXELS = $0CF4;
+ {$EXTERNALSYM GL_UNPACK_SKIP_PIXELS}
+ GL_UNPACK_ALIGNMENT = $0CF5;
+ {$EXTERNALSYM GL_UNPACK_ALIGNMENT}
+ GL_PACK_SWAP_BYTES = $0D00;
+ {$EXTERNALSYM GL_PACK_SWAP_BYTES}
+ GL_PACK_LSB_FIRST = $0D01;
+ {$EXTERNALSYM GL_PACK_LSB_FIRST}
+ GL_PACK_ROW_LENGTH = $0D02;
+ {$EXTERNALSYM GL_PACK_ROW_LENGTH}
+ GL_PACK_SKIP_ROWS = $0D03;
+ {$EXTERNALSYM GL_PACK_SKIP_ROWS}
+ GL_PACK_SKIP_PIXELS = $0D04;
+ {$EXTERNALSYM GL_PACK_SKIP_PIXELS}
+ GL_PACK_ALIGNMENT = $0D05;
+ {$EXTERNALSYM GL_PACK_ALIGNMENT}
+ GL_PACK_SKIP_IMAGES = $806B; // GL 1.2
+ {$EXTERNALSYM GL_PACK_SKIP_IMAGES}
+ GL_PACK_IMAGE_HEIGHT = $806C; // GL 1.2
+ {$EXTERNALSYM GL_PACK_IMAGE_HEIGHT}
+ GL_UNPACK_SKIP_IMAGES = $806D; // GL 1.2
+ {$EXTERNALSYM GL_UNPACK_SKIP_IMAGES}
+ GL_UNPACK_IMAGE_HEIGHT = $806E; // GL 1.2
+ {$EXTERNALSYM GL_UNPACK_IMAGE_HEIGHT}
+ GL_MAP_COLOR = $0D10;
+ {$EXTERNALSYM GL_MAP_COLOR}
+ GL_MAP_STENCIL = $0D11;
+ {$EXTERNALSYM GL_MAP_STENCIL}
+ GL_INDEX_SHIFT = $0D12;
+ {$EXTERNALSYM GL_INDEX_SHIFT}
+ GL_INDEX_OFFSET = $0D13;
+ {$EXTERNALSYM GL_INDEX_OFFSET}
+ GL_RED_SCALE = $0D14;
+ {$EXTERNALSYM GL_RED_SCALE}
+ GL_RED_BIAS = $0D15;
+ {$EXTERNALSYM GL_RED_BIAS}
+ GL_ZOOM_X = $0D16;
+ {$EXTERNALSYM GL_ZOOM_X}
+ GL_ZOOM_Y = $0D17;
+ {$EXTERNALSYM GL_ZOOM_Y}
+ GL_GREEN_SCALE = $0D18;
+ {$EXTERNALSYM GL_GREEN_SCALE}
+ GL_GREEN_BIAS = $0D19;
+ {$EXTERNALSYM GL_GREEN_BIAS}
+ GL_BLUE_SCALE = $0D1A;
+ {$EXTERNALSYM GL_BLUE_SCALE}
+ GL_BLUE_BIAS = $0D1B;
+ {$EXTERNALSYM GL_BLUE_BIAS}
+ GL_ALPHA_SCALE = $0D1C;
+ {$EXTERNALSYM GL_ALPHA_SCALE}
+ GL_ALPHA_BIAS = $0D1D;
+ {$EXTERNALSYM GL_ALPHA_BIAS}
+ GL_DEPTH_SCALE = $0D1E;
+ {$EXTERNALSYM GL_DEPTH_SCALE}
+ GL_DEPTH_BIAS = $0D1F;
+ {$EXTERNALSYM GL_DEPTH_BIAS}
+ GL_MAX_EVAL_ORDER = $0D30;
+ {$EXTERNALSYM GL_MAX_EVAL_ORDER}
+ GL_MAX_LIGHTS = $0D31;
+ {$EXTERNALSYM GL_MAX_LIGHTS}
+ GL_MAX_CLIP_PLANES = $0D32;
+ {$EXTERNALSYM GL_MAX_CLIP_PLANES}
+ GL_MAX_TEXTURE_SIZE = $0D33;
+ {$EXTERNALSYM GL_MAX_TEXTURE_SIZE}
+ GL_MAX_3D_TEXTURE_SIZE = $8073; // GL 1.2
+ {$EXTERNALSYM GL_MAX_3D_TEXTURE_SIZE}
+ GL_MAX_PIXEL_MAP_TABLE = $0D34;
+ {$EXTERNALSYM GL_MAX_PIXEL_MAP_TABLE}
+ GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
+ {$EXTERNALSYM GL_MAX_ATTRIB_STACK_DEPTH}
+ GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
+ {$EXTERNALSYM GL_MAX_MODELVIEW_STACK_DEPTH}
+ GL_MAX_NAME_STACK_DEPTH = $0D37;
+ {$EXTERNALSYM GL_MAX_NAME_STACK_DEPTH}
+ GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
+ {$EXTERNALSYM GL_MAX_PROJECTION_STACK_DEPTH}
+ GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
+ {$EXTERNALSYM GL_MAX_TEXTURE_STACK_DEPTH}
+ GL_MAX_VIEWPORT_DIMS = $0D3A;
+ {$EXTERNALSYM GL_MAX_VIEWPORT_DIMS}
+ GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
+ {$EXTERNALSYM GL_MAX_CLIENT_ATTRIB_STACK_DEPTH}
+ GL_MAX_ELEMENTS_VERTICES = $80E8; // GL 1.2
+ {$EXTERNALSYM GL_MAX_ELEMENTS_VERTICES}
+ GL_MAX_ELEMENTS_INDICES = $80E9; // GL 1.2
+ {$EXTERNALSYM GL_MAX_ELEMENTS_INDICES}
+ GL_RESCALE_NORMAL = $803A; // GL 1.2
+ {$EXTERNALSYM GL_RESCALE_NORMAL}
+ GL_SUBPIXEL_BITS = $0D50;
+ {$EXTERNALSYM GL_SUBPIXEL_BITS}
+ GL_INDEX_BITS = $0D51;
+ {$EXTERNALSYM GL_INDEX_BITS}
+ GL_RED_BITS = $0D52;
+ {$EXTERNALSYM GL_RED_BITS}
+ GL_GREEN_BITS = $0D53;
+ {$EXTERNALSYM GL_GREEN_BITS}
+ GL_BLUE_BITS = $0D54;
+ {$EXTERNALSYM GL_BLUE_BITS}
+ GL_ALPHA_BITS = $0D55;
+ {$EXTERNALSYM GL_ALPHA_BITS}
+ GL_DEPTH_BITS = $0D56;
+ {$EXTERNALSYM GL_DEPTH_BITS}
+ GL_STENCIL_BITS = $0D57;
+ {$EXTERNALSYM GL_STENCIL_BITS}
+ GL_ACCUM_RED_BITS = $0D58;
+ {$EXTERNALSYM GL_ACCUM_RED_BITS}
+ GL_ACCUM_GREEN_BITS = $0D59;
+ {$EXTERNALSYM GL_ACCUM_GREEN_BITS}
+ GL_ACCUM_BLUE_BITS = $0D5A;
+ {$EXTERNALSYM GL_ACCUM_BLUE_BITS}
+ GL_ACCUM_ALPHA_BITS = $0D5B;
+ {$EXTERNALSYM GL_ACCUM_ALPHA_BITS}
+ GL_NAME_STACK_DEPTH = $0D70;
+ {$EXTERNALSYM GL_NAME_STACK_DEPTH}
+ GL_AUTO_NORMAL = $0D80;
+ {$EXTERNALSYM GL_AUTO_NORMAL}
+ GL_MAP1_COLOR_4 = $0D90;
+ {$EXTERNALSYM GL_MAP1_COLOR_4}
+ GL_MAP1_INDEX = $0D91;
+ {$EXTERNALSYM GL_MAP1_INDEX}
+ GL_MAP1_NORMAL = $0D92;
+ {$EXTERNALSYM GL_MAP1_NORMAL}
+ GL_MAP1_TEXTURE_COORD_1 = $0D93;
+ {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_1}
+ GL_MAP1_TEXTURE_COORD_2 = $0D94;
+ {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_2}
+ GL_MAP1_TEXTURE_COORD_3 = $0D95;
+ {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_3}
+ GL_MAP1_TEXTURE_COORD_4 = $0D96;
+ {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_4}
+ GL_MAP1_VERTEX_3 = $0D97;
+ {$EXTERNALSYM GL_MAP1_VERTEX_3}
+ GL_MAP1_VERTEX_4 = $0D98;
+ {$EXTERNALSYM GL_MAP1_VERTEX_4}
+ GL_MAP2_COLOR_4 = $0DB0;
+ {$EXTERNALSYM GL_MAP2_COLOR_4}
+ GL_MAP2_INDEX = $0DB1;
+ {$EXTERNALSYM GL_MAP2_INDEX}
+ GL_MAP2_NORMAL = $0DB2;
+ {$EXTERNALSYM GL_MAP2_NORMAL}
+ GL_MAP2_TEXTURE_COORD_1 = $0DB3;
+ {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_1}
+ GL_MAP2_TEXTURE_COORD_2 = $0DB4;
+ {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_2}
+ GL_MAP2_TEXTURE_COORD_3 = $0DB5;
+ {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_3}
+ GL_MAP2_TEXTURE_COORD_4 = $0DB6;
+ {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_4}
+ GL_MAP2_VERTEX_3 = $0DB7;
+ {$EXTERNALSYM GL_MAP2_VERTEX_3}
+ GL_MAP2_VERTEX_4 = $0DB8;
+ {$EXTERNALSYM GL_MAP2_VERTEX_4}
+ GL_MAP1_GRID_DOMAIN = $0DD0;
+ {$EXTERNALSYM GL_MAP1_GRID_DOMAIN}
+ GL_MAP1_GRID_SEGMENTS = $0DD1;
+ {$EXTERNALSYM GL_MAP1_GRID_SEGMENTS}
+ GL_MAP2_GRID_DOMAIN = $0DD2;
+ {$EXTERNALSYM GL_MAP2_GRID_DOMAIN}
+ GL_MAP2_GRID_SEGMENTS = $0DD3;
+ {$EXTERNALSYM GL_MAP2_GRID_SEGMENTS}
+ GL_TEXTURE_1D = $0DE0;
+ {$EXTERNALSYM GL_TEXTURE_1D}
+ GL_TEXTURE_2D = $0DE1;
+ {$EXTERNALSYM GL_TEXTURE_2D}
+ GL_TEXTURE_3D = $806F; // GL 1.2
+ {$EXTERNALSYM GL_TEXTURE_3D}
+ GL_SELECTION_BUFFER_POINTER = $0DF3;
+ {$EXTERNALSYM GL_SELECTION_BUFFER_POINTER}
+ GL_SELECTION_BUFFER_SIZE = $0DF4;
+ {$EXTERNALSYM GL_SELECTION_BUFFER_SIZE}
+ GL_POLYGON_OFFSET_UNITS = $2A00;
+ {$EXTERNALSYM GL_POLYGON_OFFSET_UNITS}
+ GL_POLYGON_OFFSET_POINT = $2A01;
+ {$EXTERNALSYM GL_POLYGON_OFFSET_POINT}
+ GL_POLYGON_OFFSET_LINE = $2A02;
+ {$EXTERNALSYM GL_POLYGON_OFFSET_LINE}
+ GL_POLYGON_OFFSET_FILL = $8037;
+ {$EXTERNALSYM GL_POLYGON_OFFSET_FILL}
+ GL_POLYGON_OFFSET_FACTOR = $8038;
+ {$EXTERNALSYM GL_POLYGON_OFFSET_FACTOR}
+ GL_TEXTURE_BINDING_1D = $8068;
+ {$EXTERNALSYM GL_TEXTURE_BINDING_1D}
+ GL_TEXTURE_BINDING_2D = $8069;
+ {$EXTERNALSYM GL_TEXTURE_BINDING_2D}
+ GL_VERTEX_ARRAY = $8074;
+ {$EXTERNALSYM GL_VERTEX_ARRAY}
+ GL_NORMAL_ARRAY = $8075;
+ {$EXTERNALSYM GL_NORMAL_ARRAY}
+ GL_COLOR_ARRAY = $8076;
+ {$EXTERNALSYM GL_COLOR_ARRAY}
+ GL_INDEX_ARRAY = $8077;
+ {$EXTERNALSYM GL_INDEX_ARRAY}
+ GL_TEXTURE_COORD_ARRAY = $8078;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY}
+ GL_EDGE_FLAG_ARRAY = $8079;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY}
+ GL_VERTEX_ARRAY_SIZE = $807A;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_SIZE}
+ GL_VERTEX_ARRAY_TYPE = $807B;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_TYPE}
+ GL_VERTEX_ARRAY_STRIDE = $807C;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_STRIDE}
+ GL_NORMAL_ARRAY_TYPE = $807E;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_TYPE}
+ GL_NORMAL_ARRAY_STRIDE = $807F;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_STRIDE}
+ GL_COLOR_ARRAY_SIZE = $8081;
+ {$EXTERNALSYM GL_COLOR_ARRAY_SIZE}
+ GL_COLOR_ARRAY_TYPE = $8082;
+ {$EXTERNALSYM GL_COLOR_ARRAY_TYPE}
+ GL_COLOR_ARRAY_STRIDE = $8083;
+ {$EXTERNALSYM GL_COLOR_ARRAY_STRIDE}
+ GL_INDEX_ARRAY_TYPE = $8085;
+ {$EXTERNALSYM GL_INDEX_ARRAY_TYPE}
+ GL_INDEX_ARRAY_STRIDE = $8086;
+ {$EXTERNALSYM GL_INDEX_ARRAY_STRIDE}
+ GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_SIZE}
+ GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_TYPE}
+ GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_STRIDE}
+ GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_STRIDE}
+ GL_COLOR_MATRIX = $80B1; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_COLOR_MATRIX}
+ GL_COLOR_MATRIX_STACK_DEPTH = $80B2; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_COLOR_MATRIX_STACK_DEPTH}
+ GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_MAX_COLOR_MATRIX_STACK_DEPTH}
+ GL_POST_COLOR_MATRIX_RED_SCALE = $80B4; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_RED_SCALE}
+ GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_GREEN_SCALE}
+ GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_BLUE_SCALE}
+ GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_ALPHA_SCALE}
+ GL_POST_COLOR_MATRIX_RED_BIAS = $80B8; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_RED_BIAS}
+ GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_GREEN_BIAS}
+ GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_BLUE_BIAS}
+ GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB; // GL 1.2 ARB imaging
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_ALPHA_BIAS}
+
+ // evaluators
+ GL_COEFF = $0A00;
+ {$EXTERNALSYM GL_COEFF}
+ GL_ORDER = $0A01;
+ {$EXTERNALSYM GL_ORDER}
+ GL_DOMAIN = $0A02;
+ {$EXTERNALSYM GL_DOMAIN}
+
+ // texture mapping
+ GL_TEXTURE_WIDTH = $1000;
+ {$EXTERNALSYM GL_TEXTURE_WIDTH}
+ GL_TEXTURE_HEIGHT = $1001;
+ {$EXTERNALSYM GL_TEXTURE_HEIGHT}
+ GL_TEXTURE_INTERNAL_FORMAT = $1003;
+ {$EXTERNALSYM GL_TEXTURE_INTERNAL_FORMAT}
+ GL_TEXTURE_COMPONENTS = $1003;
+ {$EXTERNALSYM GL_TEXTURE_COMPONENTS}
+ GL_TEXTURE_BORDER_COLOR = $1004;
+ {$EXTERNALSYM GL_TEXTURE_BORDER_COLOR}
+ GL_TEXTURE_BORDER = $1005;
+ {$EXTERNALSYM GL_TEXTURE_BORDER}
+ GL_TEXTURE_RED_SIZE = $805C;
+ {$EXTERNALSYM GL_TEXTURE_RED_SIZE}
+ GL_TEXTURE_GREEN_SIZE = $805D;
+ {$EXTERNALSYM GL_TEXTURE_GREEN_SIZE}
+ GL_TEXTURE_BLUE_SIZE = $805E;
+ {$EXTERNALSYM GL_TEXTURE_BLUE_SIZE}
+ GL_TEXTURE_ALPHA_SIZE = $805F;
+ {$EXTERNALSYM GL_TEXTURE_ALPHA_SIZE}
+ GL_TEXTURE_LUMINANCE_SIZE = $8060;
+ {$EXTERNALSYM GL_TEXTURE_LUMINANCE_SIZE}
+ GL_TEXTURE_INTENSITY_SIZE = $8061;
+ {$EXTERNALSYM GL_TEXTURE_INTENSITY_SIZE}
+ GL_TEXTURE_PRIORITY = $8066;
+ {$EXTERNALSYM GL_TEXTURE_PRIORITY}
+ GL_TEXTURE_RESIDENT = $8067;
+ {$EXTERNALSYM GL_TEXTURE_RESIDENT}
+ GL_BGR = $80E0; // v 1.2
+ {$EXTERNALSYM GL_BGR}
+ GL_BGRA = $80E1; // v 1.2
+ {$EXTERNALSYM GL_BGRA}
+ GL_S = $2000;
+ {$EXTERNALSYM GL_S}
+ GL_T = $2001;
+ {$EXTERNALSYM GL_T}
+ GL_R = $2002;
+ {$EXTERNALSYM GL_R}
+ GL_Q = $2003;
+ {$EXTERNALSYM GL_Q}
+ GL_MODULATE = $2100;
+ {$EXTERNALSYM GL_MODULATE}
+ GL_DECAL = $2101;
+ {$EXTERNALSYM GL_DECAL}
+ GL_TEXTURE_ENV_MODE = $2200;
+ {$EXTERNALSYM GL_TEXTURE_ENV_MODE}
+ GL_TEXTURE_ENV_COLOR = $2201;
+ {$EXTERNALSYM GL_TEXTURE_ENV_COLOR}
+ GL_TEXTURE_ENV = $2300;
+ {$EXTERNALSYM GL_TEXTURE_ENV}
+ GL_EYE_LINEAR = $2400;
+ {$EXTERNALSYM GL_EYE_LINEAR}
+ GL_OBJECT_LINEAR = $2401;
+ {$EXTERNALSYM GL_OBJECT_LINEAR}
+ GL_SPHERE_MAP = $2402;
+ {$EXTERNALSYM GL_SPHERE_MAP}
+ GL_TEXTURE_GEN_MODE = $2500;
+ {$EXTERNALSYM GL_TEXTURE_GEN_MODE}
+ GL_OBJECT_PLANE = $2501;
+ {$EXTERNALSYM GL_OBJECT_PLANE}
+ GL_EYE_PLANE = $2502;
+ {$EXTERNALSYM GL_EYE_PLANE}
+ GL_NEAREST = $2600;
+ {$EXTERNALSYM GL_NEAREST}
+ GL_LINEAR = $2601;
+ {$EXTERNALSYM GL_LINEAR}
+ GL_NEAREST_MIPMAP_NEAREST = $2700;
+ {$EXTERNALSYM GL_NEAREST_MIPMAP_NEAREST}
+ GL_LINEAR_MIPMAP_NEAREST = $2701;
+ {$EXTERNALSYM GL_LINEAR_MIPMAP_NEAREST}
+ GL_NEAREST_MIPMAP_LINEAR = $2702;
+ {$EXTERNALSYM GL_NEAREST_MIPMAP_LINEAR}
+ GL_LINEAR_MIPMAP_LINEAR = $2703;
+ {$EXTERNALSYM GL_LINEAR_MIPMAP_LINEAR}
+ GL_TEXTURE_MAG_FILTER = $2800;
+ {$EXTERNALSYM GL_TEXTURE_MAG_FILTER}
+ GL_TEXTURE_MIN_FILTER = $2801;
+ {$EXTERNALSYM GL_TEXTURE_MIN_FILTER}
+ GL_TEXTURE_WRAP_R = $8072; // GL 1.2
+ {$EXTERNALSYM GL_TEXTURE_WRAP_R}
+ GL_TEXTURE_WRAP_S = $2802;
+ {$EXTERNALSYM GL_TEXTURE_WRAP_S}
+ GL_TEXTURE_WRAP_T = $2803;
+ {$EXTERNALSYM GL_TEXTURE_WRAP_T}
+ GL_CLAMP_TO_EDGE = $812F; // GL 1.2
+ {$EXTERNALSYM GL_CLAMP_TO_EDGE}
+ GL_TEXTURE_MIN_LOD = $813A; // GL 1.2
+ {$EXTERNALSYM GL_TEXTURE_MIN_LOD}
+ GL_TEXTURE_MAX_LOD = $813B; // GL 1.2
+ {$EXTERNALSYM GL_TEXTURE_MAX_LOD}
+ GL_TEXTURE_BASE_LEVEL = $813C; // GL 1.2
+ {$EXTERNALSYM GL_TEXTURE_BASE_LEVEL}
+ GL_TEXTURE_MAX_LEVEL = $813D; // GL 1.2
+ {$EXTERNALSYM GL_TEXTURE_MAX_LEVEL}
+ GL_TEXTURE_DEPTH = $8071; // GL 1.2
+ {$EXTERNALSYM GL_TEXTURE_DEPTH}
+ GL_PROXY_TEXTURE_1D = $8063;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_1D}
+ GL_PROXY_TEXTURE_2D = $8064;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_2D}
+ GL_PROXY_TEXTURE_3D = $8070; // GL 1.2
+ {$EXTERNALSYM GL_PROXY_TEXTURE_3D}
+ GL_CLAMP = $2900;
+ {$EXTERNALSYM GL_CLAMP}
+ GL_REPEAT = $2901;
+ {$EXTERNALSYM GL_REPEAT}
+
+ // hints
+ GL_DONT_CARE = $1100;
+ {$EXTERNALSYM GL_DONT_CARE}
+ GL_FASTEST = $1101;
+ {$EXTERNALSYM GL_FASTEST}
+ GL_NICEST = $1102;
+ {$EXTERNALSYM GL_NICEST}
+
+ // data types
+ GL_BYTE = $1400;
+ {$EXTERNALSYM GL_BYTE}
+ GL_UNSIGNED_BYTE = $1401;
+ {$EXTERNALSYM GL_UNSIGNED_BYTE}
+ GL_SHORT = $1402;
+ {$EXTERNALSYM GL_SHORT}
+ GL_UNSIGNED_SHORT = $1403;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT}
+ GL_INT = $1404;
+ {$EXTERNALSYM GL_INT}
+ GL_UNSIGNED_INT = $1405;
+ {$EXTERNALSYM GL_UNSIGNED_INT}
+ GL_FLOAT = $1406;
+ {$EXTERNALSYM GL_FLOAT}
+ GL_2_BYTES = $1407;
+ {$EXTERNALSYM GL_2_BYTES}
+ GL_3_BYTES = $1408;
+ {$EXTERNALSYM GL_3_BYTES}
+ GL_4_BYTES = $1409;
+ {$EXTERNALSYM GL_4_BYTES}
+ GL_DOUBLE = $140A;
+ {$EXTERNALSYM GL_DOUBLE}
+ GL_DOUBLE_EXT = $140A;
+ {$EXTERNALSYM GL_DOUBLE_EXT}
+
+ // logic operations
+ GL_CLEAR = $1500;
+ {$EXTERNALSYM GL_CLEAR}
+ GL_AND = $1501;
+ {$EXTERNALSYM GL_AND}
+ GL_AND_REVERSE = $1502;
+ {$EXTERNALSYM GL_AND_REVERSE}
+ GL_COPY = $1503;
+ {$EXTERNALSYM GL_COPY}
+ GL_AND_INVERTED = $1504;
+ {$EXTERNALSYM GL_AND_INVERTED}
+ GL_NOOP = $1505;
+ {$EXTERNALSYM GL_NOOP}
+ GL_XOR = $1506;
+ {$EXTERNALSYM GL_XOR}
+ GL_OR = $1507;
+ {$EXTERNALSYM GL_OR}
+ GL_NOR = $1508;
+ {$EXTERNALSYM GL_NOR}
+ GL_EQUIV = $1509;
+ {$EXTERNALSYM GL_EQUIV}
+ GL_INVERT = $150A;
+ {$EXTERNALSYM GL_INVERT}
+ GL_OR_REVERSE = $150B;
+ {$EXTERNALSYM GL_OR_REVERSE}
+ GL_COPY_INVERTED = $150C;
+ {$EXTERNALSYM GL_COPY_INVERTED}
+ GL_OR_INVERTED = $150D;
+ {$EXTERNALSYM GL_OR_INVERTED}
+ GL_NAND = $150E;
+ {$EXTERNALSYM GL_NAND}
+ GL_SET = $150F;
+ {$EXTERNALSYM GL_SET}
+
+ // PixelCopyType
+ GL_COLOR = $1800;
+ {$EXTERNALSYM GL_COLOR}
+ GL_DEPTH = $1801;
+ {$EXTERNALSYM GL_DEPTH}
+ GL_STENCIL = $1802;
+ {$EXTERNALSYM GL_STENCIL}
+
+ // pixel formats
+ GL_COLOR_INDEX = $1900;
+ {$EXTERNALSYM GL_COLOR_INDEX}
+ GL_STENCIL_INDEX = $1901;
+ {$EXTERNALSYM GL_STENCIL_INDEX}
+ GL_DEPTH_COMPONENT = $1902;
+ {$EXTERNALSYM GL_DEPTH_COMPONENT}
+ GL_RED = $1903;
+ {$EXTERNALSYM GL_RED}
+ GL_GREEN = $1904;
+ {$EXTERNALSYM GL_GREEN}
+ GL_BLUE = $1905;
+ {$EXTERNALSYM GL_BLUE}
+ GL_ALPHA = $1906;
+ {$EXTERNALSYM GL_ALPHA}
+ GL_RGB = $1907;
+ {$EXTERNALSYM GL_RGB}
+ GL_RGBA = $1908;
+ {$EXTERNALSYM GL_RGBA}
+ GL_LUMINANCE = $1909;
+ {$EXTERNALSYM GL_LUMINANCE}
+ GL_LUMINANCE_ALPHA = $190A;
+ {$EXTERNALSYM GL_LUMINANCE_ALPHA}
+
+ // pixel type
+ GL_BITMAP = $1A00;
+ {$EXTERNALSYM GL_BITMAP}
+
+ // rendering modes
+ GL_RENDER = $1C00;
+ {$EXTERNALSYM GL_RENDER}
+ GL_FEEDBACK = $1C01;
+ {$EXTERNALSYM GL_FEEDBACK}
+ GL_SELECT = $1C02;
+ {$EXTERNALSYM GL_SELECT}
+
+ // implementation strings
+ GL_VENDOR = $1F00;
+ {$EXTERNALSYM GL_VENDOR}
+ GL_RENDERER = $1F01;
+ {$EXTERNALSYM GL_RENDERER}
+ GL_VERSION = $1F02;
+ {$EXTERNALSYM GL_VERSION}
+ GL_EXTENSIONS = $1F03;
+ {$EXTERNALSYM GL_EXTENSIONS}
+
+ // pixel formats
+ GL_R3_G3_B2 = $2A10;
+ {$EXTERNALSYM GL_R3_G3_B2}
+ GL_ALPHA4 = $803B;
+ {$EXTERNALSYM GL_ALPHA4}
+ GL_ALPHA8 = $803C;
+ {$EXTERNALSYM GL_ALPHA8}
+ GL_ALPHA12 = $803D;
+ {$EXTERNALSYM GL_ALPHA12}
+ GL_ALPHA16 = $803E;
+ {$EXTERNALSYM GL_ALPHA16}
+ GL_LUMINANCE4 = $803F;
+ {$EXTERNALSYM GL_LUMINANCE4}
+ GL_LUMINANCE8 = $8040;
+ {$EXTERNALSYM GL_LUMINANCE8}
+ GL_LUMINANCE12 = $8041;
+ {$EXTERNALSYM GL_LUMINANCE12}
+ GL_LUMINANCE16 = $8042;
+ {$EXTERNALSYM GL_LUMINANCE16}
+ GL_LUMINANCE4_ALPHA4 = $8043;
+ {$EXTERNALSYM GL_LUMINANCE4_ALPHA4}
+ GL_LUMINANCE6_ALPHA2 = $8044;
+ {$EXTERNALSYM GL_LUMINANCE6_ALPHA2}
+ GL_LUMINANCE8_ALPHA8 = $8045;
+ {$EXTERNALSYM GL_LUMINANCE8_ALPHA8}
+ GL_LUMINANCE12_ALPHA4 = $8046;
+ {$EXTERNALSYM GL_LUMINANCE12_ALPHA4}
+ GL_LUMINANCE12_ALPHA12 = $8047;
+ {$EXTERNALSYM GL_LUMINANCE12_ALPHA12}
+ GL_LUMINANCE16_ALPHA16 = $8048;
+ {$EXTERNALSYM GL_LUMINANCE16_ALPHA16}
+ GL_INTENSITY = $8049;
+ {$EXTERNALSYM GL_INTENSITY}
+ GL_INTENSITY4 = $804A;
+ {$EXTERNALSYM GL_INTENSITY4}
+ GL_INTENSITY8 = $804B;
+ {$EXTERNALSYM GL_INTENSITY8}
+ GL_INTENSITY12 = $804C;
+ {$EXTERNALSYM GL_INTENSITY12}
+ GL_INTENSITY16 = $804D;
+ {$EXTERNALSYM GL_INTENSITY16}
+ GL_RGB4 = $804F;
+ {$EXTERNALSYM GL_RGB4}
+ GL_RGB5 = $8050;
+ {$EXTERNALSYM GL_RGB5}
+ GL_RGB8 = $8051;
+ {$EXTERNALSYM GL_RGB8}
+ GL_RGB10 = $8052;
+ {$EXTERNALSYM GL_RGB10}
+ GL_RGB12 = $8053;
+ {$EXTERNALSYM GL_RGB12}
+ GL_RGB16 = $8054;
+ {$EXTERNALSYM GL_RGB16}
+ GL_RGBA2 = $8055;
+ {$EXTERNALSYM GL_RGBA2}
+ GL_RGBA4 = $8056;
+ {$EXTERNALSYM GL_RGBA4}
+ GL_RGB5_A1 = $8057;
+ {$EXTERNALSYM GL_RGB5_A1}
+ GL_RGBA8 = $8058;
+ {$EXTERNALSYM GL_RGBA8}
+ GL_RGB10_A2 = $8059;
+ {$EXTERNALSYM GL_RGB10_A2}
+ GL_RGBA12 = $805A;
+ {$EXTERNALSYM GL_RGBA12}
+ GL_RGBA16 = $805B;
+ {$EXTERNALSYM GL_RGBA16}
+ UNSIGNED_BYTE_3_3_2 = $8032; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_BYTE_3_3_2}
+ UNSIGNED_BYTE_2_3_3_REV = $8362; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_BYTE_2_3_3_REV}
+ UNSIGNED_SHORT_5_6_5 = $8363; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_SHORT_5_6_5}
+ UNSIGNED_SHORT_5_6_5_REV = $8364; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_SHORT_5_6_5_REV}
+ UNSIGNED_SHORT_4_4_4_4 = $8033; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_SHORT_4_4_4_4}
+ UNSIGNED_SHORT_4_4_4_4_REV = $8365; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_SHORT_4_4_4_4_REV}
+ UNSIGNED_SHORT_5_5_5_1 = $8034; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_SHORT_5_5_5_1}
+ UNSIGNED_SHORT_1_5_5_5_REV = $8366; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_SHORT_1_5_5_5_REV}
+ UNSIGNED_INT_8_8_8_8 = $8035; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_INT_8_8_8_8}
+ UNSIGNED_INT_8_8_8_8_REV = $8367; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_INT_8_8_8_8_REV}
+ UNSIGNED_INT_10_10_10_2 = $8036; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_INT_10_10_10_2}
+ UNSIGNED_INT_2_10_10_10_REV = $8368; // GL 1.2
+ {$EXTERNALSYM UNSIGNED_INT_2_10_10_10_REV}
+
+ // interleaved arrays formats
+ GL_V2F = $2A20;
+ {$EXTERNALSYM GL_V2F}
+ GL_V3F = $2A21;
+ {$EXTERNALSYM GL_V3F}
+ GL_C4UB_V2F = $2A22;
+ {$EXTERNALSYM GL_C4UB_V2F}
+ GL_C4UB_V3F = $2A23;
+ {$EXTERNALSYM GL_C4UB_V3F}
+ GL_C3F_V3F = $2A24;
+ {$EXTERNALSYM GL_C3F_V3F}
+ GL_N3F_V3F = $2A25;
+ {$EXTERNALSYM GL_N3F_V3F}
+ GL_C4F_N3F_V3F = $2A26;
+ {$EXTERNALSYM GL_C4F_N3F_V3F}
+ GL_T2F_V3F = $2A27;
+ {$EXTERNALSYM GL_T2F_V3F}
+ GL_T4F_V4F = $2A28;
+ {$EXTERNALSYM GL_T4F_V4F}
+ GL_T2F_C4UB_V3F = $2A29;
+ {$EXTERNALSYM GL_T2F_C4UB_V3F}
+ GL_T2F_C3F_V3F = $2A2A;
+ {$EXTERNALSYM GL_T2F_C3F_V3F}
+ GL_T2F_N3F_V3F = $2A2B;
+ {$EXTERNALSYM GL_T2F_N3F_V3F}
+ GL_T2F_C4F_N3F_V3F = $2A2C;
+ {$EXTERNALSYM GL_T2F_C4F_N3F_V3F}
+ GL_T4F_C4F_N3F_V4F = $2A2D;
+ {$EXTERNALSYM GL_T4F_C4F_N3F_V4F}
+
+ // clip planes
+ GL_CLIP_PLANE0 = $3000;
+ {$EXTERNALSYM GL_CLIP_PLANE0}
+ GL_CLIP_PLANE1 = $3001;
+ {$EXTERNALSYM GL_CLIP_PLANE1}
+ GL_CLIP_PLANE2 = $3002;
+ {$EXTERNALSYM GL_CLIP_PLANE2}
+ GL_CLIP_PLANE3 = $3003;
+ {$EXTERNALSYM GL_CLIP_PLANE3}
+ GL_CLIP_PLANE4 = $3004;
+ {$EXTERNALSYM GL_CLIP_PLANE4}
+ GL_CLIP_PLANE5 = $3005;
+ {$EXTERNALSYM GL_CLIP_PLANE5}
+
+ // miscellaneous
+ GL_DITHER = $0BD0;
+ {$EXTERNALSYM GL_DITHER}
+
+ // ----- extensions enumerants -----
+ // EXT_abgr
+ GL_ABGR_EXT = $8000;
+ {$EXTERNALSYM GL_ABGR_EXT}
+
+ // EXT_packed_pixels
+ GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
+ {$EXTERNALSYM GL_UNSIGNED_BYTE_3_3_2_EXT}
+ GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT_4_4_4_4_EXT}
+ GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT_5_5_5_1_EXT}
+ GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
+ {$EXTERNALSYM GL_UNSIGNED_INT_8_8_8_8_EXT}
+ GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
+ {$EXTERNALSYM GL_UNSIGNED_INT_10_10_10_2_EXT}
+
+ // EXT_vertex_array
+ GL_VERTEX_ARRAY_EXT = $8074;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_EXT}
+ GL_NORMAL_ARRAY_EXT = $8075;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_EXT}
+ GL_COLOR_ARRAY_EXT = $8076;
+ {$EXTERNALSYM GL_COLOR_ARRAY_EXT}
+ GL_INDEX_ARRAY_EXT = $8077;
+ {$EXTERNALSYM GL_INDEX_ARRAY_EXT}
+ GL_TEXTURE_COORD_ARRAY_EXT = $8078;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_EXT}
+ GL_EDGE_FLAG_ARRAY_EXT = $8079;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_EXT}
+ GL_VERTEX_ARRAY_SIZE_EXT = $807A;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_SIZE_EXT}
+ GL_VERTEX_ARRAY_TYPE_EXT = $807B;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_TYPE_EXT}
+ GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_STRIDE_EXT}
+ GL_VERTEX_ARRAY_COUNT_EXT = $807D;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_COUNT_EXT}
+ GL_NORMAL_ARRAY_TYPE_EXT = $807E;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_TYPE_EXT}
+ GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_STRIDE_EXT}
+ GL_NORMAL_ARRAY_COUNT_EXT = $8080;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_COUNT_EXT}
+ GL_COLOR_ARRAY_SIZE_EXT = $8081;
+ {$EXTERNALSYM GL_COLOR_ARRAY_SIZE_EXT}
+ GL_COLOR_ARRAY_TYPE_EXT = $8082;
+ {$EXTERNALSYM GL_COLOR_ARRAY_TYPE_EXT}
+ GL_COLOR_ARRAY_STRIDE_EXT = $8083;
+ {$EXTERNALSYM GL_COLOR_ARRAY_STRIDE_EXT}
+ GL_COLOR_ARRAY_COUNT_EXT = $8084;
+ {$EXTERNALSYM GL_COLOR_ARRAY_COUNT_EXT}
+ GL_INDEX_ARRAY_TYPE_EXT = $8085;
+ {$EXTERNALSYM GL_INDEX_ARRAY_TYPE_EXT}
+ GL_INDEX_ARRAY_STRIDE_EXT = $8086;
+ {$EXTERNALSYM GL_INDEX_ARRAY_STRIDE_EXT}
+ GL_INDEX_ARRAY_COUNT_EXT = $8087;
+ {$EXTERNALSYM GL_INDEX_ARRAY_COUNT_EXT}
+ GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_SIZE_EXT}
+ GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_TYPE_EXT}
+ GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_STRIDE_EXT}
+ GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_COUNT_EXT}
+ GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_STRIDE_EXT}
+ GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_COUNT_EXT}
+ GL_VERTEX_ARRAY_POINTER_EXT = $808E;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_POINTER_EXT}
+ GL_NORMAL_ARRAY_POINTER_EXT = $808F;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_POINTER_EXT}
+ GL_COLOR_ARRAY_POINTER_EXT = $8090;
+ {$EXTERNALSYM GL_COLOR_ARRAY_POINTER_EXT}
+ GL_INDEX_ARRAY_POINTER_EXT = $8091;
+ {$EXTERNALSYM GL_INDEX_ARRAY_POINTER_EXT}
+ GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_POINTER_EXT}
+ GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_POINTER_EXT}
+
+ // EXT_color_table
+ GL_TABLE_TOO_LARGE_EXT = $8031;
+ {$EXTERNALSYM GL_TABLE_TOO_LARGE_EXT}
+ GL_COLOR_TABLE_EXT = $80D0;
+ {$EXTERNALSYM GL_COLOR_TABLE_EXT}
+ GL_POST_CONVOLUTION_COLOR_TABLE_EXT = $80D1;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_COLOR_TABLE_EXT}
+ GL_POST_COLOR_MATRIX_COLOR_TABLE_EXT = $80D2;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_COLOR_TABLE_EXT}
+ GL_PROXY_COLOR_TABLE_EXT = $80D3;
+ {$EXTERNALSYM GL_PROXY_COLOR_TABLE_EXT}
+ GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_EXT = $80D4;
+ {$EXTERNALSYM GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_EXT}
+ GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_EXT = $80D5;
+ {$EXTERNALSYM GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_EXT}
+ GL_COLOR_TABLE_SCALE_EXT = $80D6;
+ {$EXTERNALSYM GL_COLOR_TABLE_SCALE_EXT}
+ GL_COLOR_TABLE_BIAS_EXT = $80D7;
+ {$EXTERNALSYM GL_COLOR_TABLE_BIAS_EXT}
+ GL_COLOR_TABLE_FORMAT_EXT = $80D8;
+ {$EXTERNALSYM GL_COLOR_TABLE_FORMAT_EXT}
+ GL_COLOR_TABLE_WIDTH_EXT = $80D9;
+ {$EXTERNALSYM GL_COLOR_TABLE_WIDTH_EXT}
+ GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
+ {$EXTERNALSYM GL_COLOR_TABLE_RED_SIZE_EXT}
+ GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
+ {$EXTERNALSYM GL_COLOR_TABLE_GREEN_SIZE_EXT}
+ GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
+ {$EXTERNALSYM GL_COLOR_TABLE_BLUE_SIZE_EXT}
+ GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
+ {$EXTERNALSYM GL_COLOR_TABLE_ALPHA_SIZE_EXT}
+ GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
+ {$EXTERNALSYM GL_COLOR_TABLE_LUMINANCE_SIZE_EXT}
+ GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
+ {$EXTERNALSYM GL_COLOR_TABLE_INTENSITY_SIZE_EXT}
+
+ // EXT_bgra
+ GL_BGR_EXT = $80E0;
+ {$EXTERNALSYM GL_BGR_EXT}
+ GL_BGRA_EXT = $80E1;
+ {$EXTERNALSYM GL_BGRA_EXT}
+
+ // EXT_paletted_texture
+ GL_COLOR_INDEX1_EXT = $80E2;
+ {$EXTERNALSYM GL_COLOR_INDEX1_EXT}
+ GL_COLOR_INDEX2_EXT = $80E3;
+ {$EXTERNALSYM GL_COLOR_INDEX2_EXT}
+ GL_COLOR_INDEX4_EXT = $80E4;
+ {$EXTERNALSYM GL_COLOR_INDEX4_EXT}
+ GL_COLOR_INDEX8_EXT = $80E5;
+ {$EXTERNALSYM GL_COLOR_INDEX8_EXT}
+ GL_COLOR_INDEX12_EXT = $80E6;
+ {$EXTERNALSYM GL_COLOR_INDEX12_EXT}
+ GL_COLOR_INDEX16_EXT = $80E7;
+ {$EXTERNALSYM GL_COLOR_INDEX16_EXT}
+
+ // EXT_blend_color
+ GL_CONSTANT_COLOR_EXT = $8001;
+ {$EXTERNALSYM GL_CONSTANT_COLOR_EXT}
+ GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
+ {$EXTERNALSYM GL_ONE_MINUS_CONSTANT_COLOR_EXT}
+ GL_CONSTANT_ALPHA_EXT = $8003;
+ {$EXTERNALSYM GL_CONSTANT_ALPHA_EXT}
+ GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
+ {$EXTERNALSYM GL_ONE_MINUS_CONSTANT_ALPHA_EXT}
+ GL_BLEND_COLOR_EXT = $8005;
+ {$EXTERNALSYM GL_BLEND_COLOR_EXT}
+
+ // EXT_blend_minmax
+ GL_FUNC_ADD_EXT = $8006;
+ {$EXTERNALSYM GL_FUNC_ADD_EXT}
+ GL_MIN_EXT = $8007;
+ {$EXTERNALSYM GL_MIN_EXT}
+ GL_MAX_EXT = $8008;
+ {$EXTERNALSYM GL_MAX_EXT}
+ GL_BLEND_EQUATION_EXT = $8009;
+ {$EXTERNALSYM GL_BLEND_EQUATION_EXT}
+
+ // EXT_blend_subtract
+ GL_FUNC_SUBTRACT_EXT = $800A;
+ {$EXTERNALSYM GL_FUNC_SUBTRACT_EXT}
+ GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
+ {$EXTERNALSYM GL_FUNC_REVERSE_SUBTRACT_EXT}
+
+ // EXT_convolution
+ GL_CONVOLUTION_1D_EXT = $8010;
+ {$EXTERNALSYM GL_CONVOLUTION_1D_EXT}
+ GL_CONVOLUTION_2D_EXT = $8011;
+ {$EXTERNALSYM GL_CONVOLUTION_2D_EXT}
+ GL_SEPARABLE_2D_EXT = $8012;
+ {$EXTERNALSYM GL_SEPARABLE_2D_EXT}
+ GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
+ {$EXTERNALSYM GL_CONVOLUTION_BORDER_MODE_EXT}
+ GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
+ {$EXTERNALSYM GL_CONVOLUTION_FILTER_SCALE_EXT}
+ GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
+ {$EXTERNALSYM GL_CONVOLUTION_FILTER_BIAS_EXT}
+ GL_REDUCE_EXT = $8016;
+ {$EXTERNALSYM GL_REDUCE_EXT}
+ GL_CONVOLUTION_FORMAT_EXT = $8017;
+ {$EXTERNALSYM GL_CONVOLUTION_FORMAT_EXT}
+ GL_CONVOLUTION_WIDTH_EXT = $8018;
+ {$EXTERNALSYM GL_CONVOLUTION_WIDTH_EXT}
+ GL_CONVOLUTION_HEIGHT_EXT = $8019;
+ {$EXTERNALSYM GL_CONVOLUTION_HEIGHT_EXT}
+ GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
+ {$EXTERNALSYM GL_MAX_CONVOLUTION_WIDTH_EXT}
+ GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
+ {$EXTERNALSYM GL_MAX_CONVOLUTION_HEIGHT_EXT}
+ GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_RED_SCALE_EXT}
+ GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_GREEN_SCALE_EXT}
+ GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_BLUE_SCALE_EXT}
+ GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_ALPHA_SCALE_EXT}
+ GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_RED_BIAS_EXT}
+ GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_GREEN_BIAS_EXT}
+ GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_BLUE_BIAS_EXT}
+ GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_ALPHA_BIAS_EXT}
+
+ // EXT_histogram
+ GL_HISTOGRAM_EXT = $8024;
+ {$EXTERNALSYM GL_HISTOGRAM_EXT}
+ GL_PROXY_HISTOGRAM_EXT = $8025;
+ {$EXTERNALSYM GL_PROXY_HISTOGRAM_EXT}
+ GL_HISTOGRAM_WIDTH_EXT = $8026;
+ {$EXTERNALSYM GL_HISTOGRAM_WIDTH_EXT}
+ GL_HISTOGRAM_FORMAT_EXT = $8027;
+ {$EXTERNALSYM GL_HISTOGRAM_FORMAT_EXT}
+ GL_HISTOGRAM_RED_SIZE_EXT = $8028;
+ {$EXTERNALSYM GL_HISTOGRAM_RED_SIZE_EXT}
+ GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
+ {$EXTERNALSYM GL_HISTOGRAM_GREEN_SIZE_EXT}
+ GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
+ {$EXTERNALSYM GL_HISTOGRAM_BLUE_SIZE_EXT}
+ GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
+ {$EXTERNALSYM GL_HISTOGRAM_ALPHA_SIZE_EXT}
+ GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
+ {$EXTERNALSYM GL_HISTOGRAM_LUMINANCE_SIZE_EXT}
+ GL_HISTOGRAM_SINK_EXT = $802D;
+ {$EXTERNALSYM GL_HISTOGRAM_SINK_EXT}
+ GL_MINMAX_EXT = $802E;
+ {$EXTERNALSYM GL_MINMAX_EXT}
+ GL_MINMAX_FORMAT_EXT = $802F;
+ {$EXTERNALSYM GL_MINMAX_FORMAT_EXT}
+ GL_MINMAX_SINK_EXT = $8030;
+ {$EXTERNALSYM GL_MINMAX_SINK_EXT}
+
+ // EXT_polygon_offset
+ GL_POLYGON_OFFSET_EXT = $8037;
+ {$EXTERNALSYM GL_POLYGON_OFFSET_EXT}
+ GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
+ {$EXTERNALSYM GL_POLYGON_OFFSET_FACTOR_EXT}
+ GL_POLYGON_OFFSET_BIAS_EXT = $8039;
+ {$EXTERNALSYM GL_POLYGON_OFFSET_BIAS_EXT}
+
+ // EXT_texture
+ GL_ALPHA4_EXT = $803B;
+ {$EXTERNALSYM GL_ALPHA4_EXT}
+ GL_ALPHA8_EXT = $803C;
+ {$EXTERNALSYM GL_ALPHA8_EXT}
+ GL_ALPHA12_EXT = $803D;
+ {$EXTERNALSYM GL_ALPHA12_EXT}
+ GL_ALPHA16_EXT = $803E;
+ {$EXTERNALSYM GL_ALPHA16_EXT}
+ GL_LUMINANCE4_EXT = $803F;
+ {$EXTERNALSYM GL_LUMINANCE4_EXT}
+ GL_LUMINANCE8_EXT = $8040;
+ {$EXTERNALSYM GL_LUMINANCE8_EXT}
+ GL_LUMINANCE12_EXT = $8041;
+ {$EXTERNALSYM GL_LUMINANCE12_EXT}
+ GL_LUMINANCE16_EXT = $8042;
+ {$EXTERNALSYM GL_LUMINANCE16_EXT}
+ GL_LUMINANCE4_ALPHA4_EXT = $8043;
+ {$EXTERNALSYM GL_LUMINANCE4_ALPHA4_EXT}
+ GL_LUMINANCE6_ALPHA2_EXT = $8044;
+ {$EXTERNALSYM GL_LUMINANCE6_ALPHA2_EXT}
+ GL_LUMINANCE8_ALPHA8_EXT = $8045;
+ {$EXTERNALSYM GL_LUMINANCE8_ALPHA8_EXT}
+ GL_LUMINANCE12_ALPHA4_EXT = $8046;
+ {$EXTERNALSYM GL_LUMINANCE12_ALPHA4_EXT}
+ GL_LUMINANCE12_ALPHA12_EXT = $8047;
+ {$EXTERNALSYM GL_LUMINANCE12_ALPHA12_EXT}
+ GL_LUMINANCE16_ALPHA16_EXT = $8048;
+ {$EXTERNALSYM GL_LUMINANCE16_ALPHA16_EXT}
+ GL_INTENSITY_EXT = $8049;
+ {$EXTERNALSYM GL_INTENSITY_EXT}
+ GL_INTENSITY4_EXT = $804A;
+ {$EXTERNALSYM GL_INTENSITY4_EXT}
+ GL_INTENSITY8_EXT = $804B;
+ {$EXTERNALSYM GL_INTENSITY8_EXT}
+ GL_INTENSITY12_EXT = $804C;
+ {$EXTERNALSYM GL_INTENSITY12_EXT}
+ GL_INTENSITY16_EXT = $804D;
+ {$EXTERNALSYM GL_INTENSITY16_EXT}
+ GL_RGB2_EXT = $804E;
+ {$EXTERNALSYM GL_RGB2_EXT}
+ GL_RGB4_EXT = $804F;
+ {$EXTERNALSYM GL_RGB4_EXT}
+ GL_RGB5_EXT = $8050;
+ {$EXTERNALSYM GL_RGB5_EXT}
+ GL_RGB8_EXT = $8051;
+ {$EXTERNALSYM GL_RGB8_EXT}
+ GL_RGB10_EXT = $8052;
+ {$EXTERNALSYM GL_RGB10_EXT}
+ GL_RGB12_EXT = $8053;
+ {$EXTERNALSYM GL_RGB12_EXT}
+ GL_RGB16_EXT = $8054;
+ {$EXTERNALSYM GL_RGB16_EXT}
+ GL_RGBA2_EXT = $8055;
+ {$EXTERNALSYM GL_RGBA2_EXT}
+ GL_RGBA4_EXT = $8056;
+ {$EXTERNALSYM GL_RGBA4_EXT}
+ GL_RGB5_A1_EXT = $8057;
+ {$EXTERNALSYM GL_RGB5_A1_EXT}
+ GL_RGBA8_EXT = $8058;
+ {$EXTERNALSYM GL_RGBA8_EXT}
+ GL_RGB10_A2_EXT = $8059;
+ {$EXTERNALSYM GL_RGB10_A2_EXT}
+ GL_RGBA12_EXT = $805A;
+ {$EXTERNALSYM GL_RGBA12_EXT}
+ GL_RGBA16_EXT = $805B;
+ {$EXTERNALSYM GL_RGBA16_EXT}
+ GL_TEXTURE_RED_SIZE_EXT = $805C;
+ {$EXTERNALSYM GL_TEXTURE_RED_SIZE_EXT}
+ GL_TEXTURE_GREEN_SIZE_EXT = $805D;
+ {$EXTERNALSYM GL_TEXTURE_GREEN_SIZE_EXT}
+ GL_TEXTURE_BLUE_SIZE_EXT = $805E;
+ {$EXTERNALSYM GL_TEXTURE_BLUE_SIZE_EXT}
+ GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
+ {$EXTERNALSYM GL_TEXTURE_ALPHA_SIZE_EXT}
+ GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
+ {$EXTERNALSYM GL_TEXTURE_LUMINANCE_SIZE_EXT}
+ GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
+ {$EXTERNALSYM GL_TEXTURE_INTENSITY_SIZE_EXT}
+ GL_REPLACE_EXT = $8062;
+ {$EXTERNALSYM GL_REPLACE_EXT}
+ GL_PROXY_TEXTURE_1D_EXT = $8063;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_1D_EXT}
+ GL_PROXY_TEXTURE_2D_EXT = $8064;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_2D_EXT}
+ GL_TEXTURE_TOO_LARGE_EXT = $8065;
+ {$EXTERNALSYM GL_TEXTURE_TOO_LARGE_EXT}
+
+ // EXT_texture_object
+ GL_TEXTURE_PRIORITY_EXT = $8066;
+ {$EXTERNALSYM GL_TEXTURE_PRIORITY_EXT}
+ GL_TEXTURE_RESIDENT_EXT = $8067;
+ {$EXTERNALSYM GL_TEXTURE_RESIDENT_EXT}
+ GL_TEXTURE_1D_BINDING_EXT = $8068;
+ {$EXTERNALSYM GL_TEXTURE_1D_BINDING_EXT}
+ GL_TEXTURE_2D_BINDING_EXT = $8069;
+ {$EXTERNALSYM GL_TEXTURE_2D_BINDING_EXT}
+ GL_TEXTURE_3D_BINDING_EXT = $806A;
+ {$EXTERNALSYM GL_TEXTURE_3D_BINDING_EXT}
+
+ // EXT_texture3D
+ GL_PACK_SKIP_IMAGES_EXT = $806B;
+ {$EXTERNALSYM GL_PACK_SKIP_IMAGES_EXT}
+ GL_PACK_IMAGE_HEIGHT_EXT = $806C;
+ {$EXTERNALSYM GL_PACK_IMAGE_HEIGHT_EXT}
+ GL_UNPACK_SKIP_IMAGES_EXT = $806D;
+ {$EXTERNALSYM GL_UNPACK_SKIP_IMAGES_EXT}
+ GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
+ {$EXTERNALSYM GL_UNPACK_IMAGE_HEIGHT_EXT}
+ GL_TEXTURE_3D_EXT = $806F;
+ {$EXTERNALSYM GL_TEXTURE_3D_EXT}
+ GL_PROXY_TEXTURE_3D_EXT = $8070;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_3D_EXT}
+ GL_TEXTURE_DEPTH_EXT = $8071;
+ {$EXTERNALSYM GL_TEXTURE_DEPTH_EXT}
+ GL_TEXTURE_WRAP_R_EXT = $8072;
+ {$EXTERNALSYM GL_TEXTURE_WRAP_R_EXT}
+ GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
+ {$EXTERNALSYM GL_MAX_3D_TEXTURE_SIZE_EXT}
+
+ // SGI_color_matrix
+ GL_COLOR_MATRIX_SGI = $80B1;
+ {$EXTERNALSYM GL_COLOR_MATRIX_SGI}
+ GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
+ {$EXTERNALSYM GL_COLOR_MATRIX_STACK_DEPTH_SGI}
+ GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
+ {$EXTERNALSYM GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI}
+ GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_RED_SCALE_SGI}
+ GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI}
+ GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI}
+ GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI}
+ GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_RED_BIAS_SGI}
+ GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI}
+ GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI}
+ GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI}
+
+ // SGI_texture_color_table
+ GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
+ {$EXTERNALSYM GL_TEXTURE_COLOR_TABLE_SGI}
+ GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_COLOR_TABLE_SGI}
+ GL_TEXTURE_COLOR_TABLE_BIAS_SGI = $80BE;
+ {$EXTERNALSYM GL_TEXTURE_COLOR_TABLE_BIAS_SGI}
+ GL_TEXTURE_COLOR_TABLE_SCALE_SGI = $80BF;
+ {$EXTERNALSYM GL_TEXTURE_COLOR_TABLE_SCALE_SGI}
+
+ // SGI_color_table
+ GL_COLOR_TABLE_SGI = $80D0;
+ {$EXTERNALSYM GL_COLOR_TABLE_SGI}
+ GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
+ {$EXTERNALSYM GL_POST_CONVOLUTION_COLOR_TABLE_SGI}
+ GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
+ {$EXTERNALSYM GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI}
+ GL_PROXY_COLOR_TABLE_SGI = $80D3;
+ {$EXTERNALSYM GL_PROXY_COLOR_TABLE_SGI}
+ GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
+ {$EXTERNALSYM GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI}
+ GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
+ {$EXTERNALSYM GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI}
+ GL_COLOR_TABLE_SCALE_SGI = $80D6;
+ {$EXTERNALSYM GL_COLOR_TABLE_SCALE_SGI}
+ GL_COLOR_TABLE_BIAS_SGI = $80D7;
+ {$EXTERNALSYM GL_COLOR_TABLE_BIAS_SGI}
+ GL_COLOR_TABLE_FORMAT_SGI = $80D8;
+ {$EXTERNALSYM GL_COLOR_TABLE_FORMAT_SGI}
+ GL_COLOR_TABLE_WIDTH_SGI = $80D9;
+ {$EXTERNALSYM GL_COLOR_TABLE_WIDTH_SGI}
+ GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
+ {$EXTERNALSYM GL_COLOR_TABLE_RED_SIZE_SGI}
+ GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
+ {$EXTERNALSYM GL_COLOR_TABLE_GREEN_SIZE_SGI}
+ GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
+ {$EXTERNALSYM GL_COLOR_TABLE_BLUE_SIZE_SGI}
+ GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
+ {$EXTERNALSYM GL_COLOR_TABLE_ALPHA_SIZE_SGI}
+ GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
+ {$EXTERNALSYM GL_COLOR_TABLE_LUMINANCE_SIZE_SGI}
+ GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
+ {$EXTERNALSYM GL_COLOR_TABLE_INTENSITY_SIZE_SGI}
+
+ // EXT_cmyka
+ GL_CMYK_EXT = $800C;
+ {$EXTERNALSYM GL_CMYK_EXT}
+ GL_CMYKA_EXT = $800D;
+ {$EXTERNALSYM GL_CMYKA_EXT}
+ GL_PACK_CMYK_HINT_EXT = $800E;
+ {$EXTERNALSYM GL_PACK_CMYK_HINT_EXT}
+ GL_UNPACK_CMYK_HINT_EXT = $800F;
+ {$EXTERNALSYM GL_UNPACK_CMYK_HINT_EXT}
+
+ // EXT_rescale_normal
+ GL_RESCALE_NORMAL_EXT = $803A;
+ {$EXTERNALSYM GL_RESCALE_NORMAL_EXT}
+
+ // EXT_clip_volume_hint
+ GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
+ {$EXTERNALSYM GL_CLIP_VOLUME_CLIPPING_HINT_EXT}
+
+ // EXT_cull_vertex
+ GL_CULL_VERTEX_EXT = $81AA;
+ {$EXTERNALSYM GL_CULL_VERTEX_EXT}
+ GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
+ {$EXTERNALSYM GL_CULL_VERTEX_EYE_POSITION_EXT}
+ GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
+ {$EXTERNALSYM GL_CULL_VERTEX_OBJECT_POSITION_EXT}
+
+ // EXT_index_array_formats
+ GL_IUI_V2F_EXT = $81AD;
+ {$EXTERNALSYM GL_IUI_V2F_EXT}
+ GL_IUI_V3F_EXT = $81AE;
+ {$EXTERNALSYM GL_IUI_V3F_EXT}
+ GL_IUI_N3F_V2F_EXT = $81AF;
+ {$EXTERNALSYM GL_IUI_N3F_V2F_EXT}
+ GL_IUI_N3F_V3F_EXT = $81B0;
+ {$EXTERNALSYM GL_IUI_N3F_V3F_EXT}
+ GL_T2F_IUI_V2F_EXT = $81B1;
+ {$EXTERNALSYM GL_T2F_IUI_V2F_EXT}
+ GL_T2F_IUI_V3F_EXT = $81B2;
+ {$EXTERNALSYM GL_T2F_IUI_V3F_EXT}
+ GL_T2F_IUI_N3F_V2F_EXT = $81B3;
+ {$EXTERNALSYM GL_T2F_IUI_N3F_V2F_EXT}
+ GL_T2F_IUI_N3F_V3F_EXT = $81B4;
+ {$EXTERNALSYM GL_T2F_IUI_N3F_V3F_EXT}
+
+ // EXT_index_func
+ GL_INDEX_TEST_EXT = $81B5;
+ {$EXTERNALSYM GL_INDEX_TEST_EXT}
+ GL_INDEX_TEST_FUNC_EXT = $81B6;
+ {$EXTERNALSYM GL_INDEX_TEST_FUNC_EXT}
+ GL_INDEX_TEST_REF_EXT = $81B7;
+ {$EXTERNALSYM GL_INDEX_TEST_REF_EXT}
+
+ // EXT_index_material
+ GL_INDEX_MATERIAL_EXT = $81B8;
+ {$EXTERNALSYM GL_INDEX_MATERIAL_EXT}
+ GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
+ {$EXTERNALSYM GL_INDEX_MATERIAL_PARAMETER_EXT}
+ GL_INDEX_MATERIAL_FACE_EXT = $81BA;
+ {$EXTERNALSYM GL_INDEX_MATERIAL_FACE_EXT}
+
+ // EXT_misc_attribute
+ GL_MISC_BIT_EXT = 0; // not yet defined
+ {$EXTERNALSYM GL_MISC_BIT_EXT}
+
+ // EXT_scene_marker
+ GL_SCENE_REQUIRED_EXT = 0; // not yet defined
+ {$EXTERNALSYM GL_SCENE_REQUIRED_EXT}
+
+ // EXT_shared_texture_palette
+ GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
+ {$EXTERNALSYM GL_SHARED_TEXTURE_PALETTE_EXT}
+
+ // EXT_nurbs_tessellator
+ GLU_NURBS_MODE_EXT = 100160;
+ {$EXTERNALSYM GLU_NURBS_MODE_EXT}
+ GLU_NURBS_TESSELLATOR_EXT = 100161;
+ {$EXTERNALSYM GLU_NURBS_TESSELLATOR_EXT}
+ GLU_NURBS_RENDERER_EXT = 100162;
+ {$EXTERNALSYM GLU_NURBS_RENDERER_EXT}
+ GLU_NURBS_BEGIN_EXT = 100164;
+ {$EXTERNALSYM GLU_NURBS_BEGIN_EXT}
+ GLU_NURBS_VERTEX_EXT = 100165;
+ {$EXTERNALSYM GLU_NURBS_VERTEX_EXT}
+ GLU_NURBS_NORMAL_EXT = 100166;
+ {$EXTERNALSYM GLU_NURBS_NORMAL_EXT}
+ GLU_NURBS_COLOR_EXT = 100167;
+ {$EXTERNALSYM GLU_NURBS_COLOR_EXT}
+ GLU_NURBS_TEX_COORD_EXT = 100168;
+ {$EXTERNALSYM GLU_NURBS_TEX_COORD_EXT}
+ GLU_NURBS_END_EXT = 100169;
+ {$EXTERNALSYM GLU_NURBS_END_EXT}
+ GLU_NURBS_BEGIN_DATA_EXT = 100170;
+ {$EXTERNALSYM GLU_NURBS_BEGIN_DATA_EXT}
+ GLU_NURBS_VERTEX_DATA_EXT = 100171;
+ {$EXTERNALSYM GLU_NURBS_VERTEX_DATA_EXT}
+ GLU_NURBS_NORMAL_DATA_EXT = 100172;
+ {$EXTERNALSYM GLU_NURBS_NORMAL_DATA_EXT}
+ GLU_NURBS_COLOR_DATA_EXT = 100173;
+ {$EXTERNALSYM GLU_NURBS_COLOR_DATA_EXT}
+ GLU_NURBS_TEX_COORD_DATA_EXT = 100174;
+ {$EXTERNALSYM GLU_NURBS_TEX_COORD_DATA_EXT}
+ GLU_NURBS_END_DATA_EXT = 100175;
+ {$EXTERNALSYM GLU_NURBS_END_DATA_EXT}
+
+ // EXT_object_space_tess
+ GLU_OBJECT_PARAMETRIC_ERROR_EXT = 100208;
+ {$EXTERNALSYM GLU_OBJECT_PARAMETRIC_ERROR_EXT}
+ GLU_OBJECT_PATH_LENGTH_EXT = 100209;
+ {$EXTERNALSYM GLU_OBJECT_PATH_LENGTH_EXT}
+
+ // EXT_point_parameters
+ GL_POINT_SIZE_MIN_EXT = $8126;
+ {$EXTERNALSYM GL_POINT_SIZE_MIN_EXT}
+ GL_POINT_SIZE_MAX_EXT = $8127;
+ {$EXTERNALSYM GL_POINT_SIZE_MAX_EXT}
+ GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
+ {$EXTERNALSYM GL_POINT_FADE_THRESHOLD_SIZE_EXT}
+ GL_DISTANCE_ATTENUATION_EXT = $8129;
+ {$EXTERNALSYM GL_DISTANCE_ATTENUATION_EXT}
+
+ // EXT_compiled_vertex_array
+ GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
+ {$EXTERNALSYM GL_ARRAY_ELEMENT_LOCK_FIRST_EXT}
+ GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
+ {$EXTERNALSYM GL_ARRAY_ELEMENT_LOCK_COUNT_EXT}
+
+ // ARB_multitexture
+ GL_ACTIVE_TEXTURE_ARB = $84E0;
+ {$EXTERNALSYM GL_ACTIVE_TEXTURE_ARB}
+ GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
+ {$EXTERNALSYM GL_CLIENT_ACTIVE_TEXTURE_ARB}
+ GL_MAX_TEXTURE_UNITS_ARB = $84E2;
+ {$EXTERNALSYM GL_MAX_TEXTURE_UNITS_ARB}
+ GL_TEXTURE0_ARB = $84C0;
+ {$EXTERNALSYM GL_TEXTURE0_ARB}
+ GL_TEXTURE1_ARB = $84C1;
+ {$EXTERNALSYM GL_TEXTURE1_ARB}
+ GL_TEXTURE2_ARB = $84C2;
+ {$EXTERNALSYM GL_TEXTURE2_ARB}
+ GL_TEXTURE3_ARB = $84C3;
+ {$EXTERNALSYM GL_TEXTURE3_ARB}
+ GL_TEXTURE4_ARB = $84C4;
+ {$EXTERNALSYM GL_TEXTURE4_ARB}
+ GL_TEXTURE5_ARB = $84C5;
+ {$EXTERNALSYM GL_TEXTURE5_ARB}
+ GL_TEXTURE6_ARB = $84C6;
+ {$EXTERNALSYM GL_TEXTURE6_ARB}
+ GL_TEXTURE7_ARB = $84C7;
+ {$EXTERNALSYM GL_TEXTURE7_ARB}
+ GL_TEXTURE8_ARB = $84C8;
+ {$EXTERNALSYM GL_TEXTURE8_ARB}
+ GL_TEXTURE9_ARB = $84C9;
+ {$EXTERNALSYM GL_TEXTURE9_ARB}
+ GL_TEXTURE10_ARB = $84CA;
+ {$EXTERNALSYM GL_TEXTURE10_ARB}
+ GL_TEXTURE11_ARB = $84CB;
+ {$EXTERNALSYM GL_TEXTURE11_ARB}
+ GL_TEXTURE12_ARB = $84CC;
+ {$EXTERNALSYM GL_TEXTURE12_ARB}
+ GL_TEXTURE13_ARB = $84CD;
+ {$EXTERNALSYM GL_TEXTURE13_ARB}
+ GL_TEXTURE14_ARB = $84CE;
+ {$EXTERNALSYM GL_TEXTURE14_ARB}
+ GL_TEXTURE15_ARB = $84CF;
+ {$EXTERNALSYM GL_TEXTURE15_ARB}
+ GL_TEXTURE16_ARB = $84D0;
+ {$EXTERNALSYM GL_TEXTURE16_ARB}
+ GL_TEXTURE17_ARB = $84D1;
+ {$EXTERNALSYM GL_TEXTURE17_ARB}
+ GL_TEXTURE18_ARB = $84D2;
+ {$EXTERNALSYM GL_TEXTURE18_ARB}
+ GL_TEXTURE19_ARB = $84D3;
+ {$EXTERNALSYM GL_TEXTURE19_ARB}
+ GL_TEXTURE20_ARB = $84D4;
+ {$EXTERNALSYM GL_TEXTURE20_ARB}
+ GL_TEXTURE21_ARB = $84D5;
+ {$EXTERNALSYM GL_TEXTURE21_ARB}
+ GL_TEXTURE22_ARB = $84D6;
+ {$EXTERNALSYM GL_TEXTURE22_ARB}
+ GL_TEXTURE23_ARB = $84D7;
+ {$EXTERNALSYM GL_TEXTURE23_ARB}
+ GL_TEXTURE24_ARB = $84D8;
+ {$EXTERNALSYM GL_TEXTURE24_ARB}
+ GL_TEXTURE25_ARB = $84D9;
+ {$EXTERNALSYM GL_TEXTURE25_ARB}
+ GL_TEXTURE26_ARB = $84DA;
+ {$EXTERNALSYM GL_TEXTURE26_ARB}
+ GL_TEXTURE27_ARB = $84DB;
+ {$EXTERNALSYM GL_TEXTURE27_ARB}
+ GL_TEXTURE28_ARB = $84DC;
+ {$EXTERNALSYM GL_TEXTURE28_ARB}
+ GL_TEXTURE29_ARB = $84DD;
+ {$EXTERNALSYM GL_TEXTURE29_ARB}
+ GL_TEXTURE30_ARB = $84DE;
+ {$EXTERNALSYM GL_TEXTURE30_ARB}
+ GL_TEXTURE31_ARB = $84DF;
+ {$EXTERNALSYM GL_TEXTURE31_ARB}
+
+ // EXT_stencil_wrap
+ GL_INCR_WRAP_EXT = $8507;
+ {$EXTERNALSYM GL_INCR_WRAP_EXT}
+ GL_DECR_WRAP_EXT = $8508;
+ {$EXTERNALSYM GL_DECR_WRAP_EXT}
+
+ // NV_texgen_reflection
+ GL_NORMAL_MAP_NV = $8511;
+ {$EXTERNALSYM GL_NORMAL_MAP_NV}
+ GL_REFLECTION_MAP_NV = $8512;
+ {$EXTERNALSYM GL_REFLECTION_MAP_NV}
+
+ // EXT_texture_env_combine
+ GL_COMBINE_EXT = $8570;
+ {$EXTERNALSYM GL_COMBINE_EXT}
+ GL_COMBINE_RGB_EXT = $8571;
+ {$EXTERNALSYM GL_COMBINE_RGB_EXT}
+ GL_COMBINE_ALPHA_EXT = $8572;
+ {$EXTERNALSYM GL_COMBINE_ALPHA_EXT}
+ GL_RGB_SCALE_EXT = $8573;
+ {$EXTERNALSYM GL_RGB_SCALE_EXT}
+ GL_ADD_SIGNED_EXT = $8574;
+ {$EXTERNALSYM GL_ADD_SIGNED_EXT}
+ GL_INTERPOLATE_EXT = $8575;
+ {$EXTERNALSYM GL_INTERPOLATE_EXT}
+ GL_CONSTANT_EXT = $8576;
+ {$EXTERNALSYM GL_CONSTANT_EXT}
+ GL_PRIMARY_COLOR_EXT = $8577;
+ {$EXTERNALSYM GL_PRIMARY_COLOR_EXT}
+ GL_PREVIOUS_EXT = $8578;
+ {$EXTERNALSYM GL_PREVIOUS_EXT}
+ GL_SOURCE0_RGB_EXT = $8580;
+ {$EXTERNALSYM GL_SOURCE0_RGB_EXT}
+ GL_SOURCE1_RGB_EXT = $8581;
+ {$EXTERNALSYM GL_SOURCE1_RGB_EXT}
+ GL_SOURCE2_RGB_EXT = $8582;
+ {$EXTERNALSYM GL_SOURCE2_RGB_EXT}
+ GL_SOURCE0_ALPHA_EXT = $8588;
+ {$EXTERNALSYM GL_SOURCE0_ALPHA_EXT}
+ GL_SOURCE1_ALPHA_EXT = $8589;
+ {$EXTERNALSYM GL_SOURCE1_ALPHA_EXT}
+ GL_SOURCE2_ALPHA_EXT = $858A;
+ {$EXTERNALSYM GL_SOURCE2_ALPHA_EXT}
+ GL_OPERAND0_RGB_EXT = $8590;
+ {$EXTERNALSYM GL_OPERAND0_RGB_EXT}
+ GL_OPERAND1_RGB_EXT = $8591;
+ {$EXTERNALSYM GL_OPERAND1_RGB_EXT}
+ GL_OPERAND2_RGB_EXT = $8592;
+ {$EXTERNALSYM GL_OPERAND2_RGB_EXT}
+ GL_OPERAND0_ALPHA_EXT = $8598;
+ {$EXTERNALSYM GL_OPERAND0_ALPHA_EXT}
+ GL_OPERAND1_ALPHA_EXT = $8599;
+ {$EXTERNALSYM GL_OPERAND1_ALPHA_EXT}
+ GL_OPERAND2_ALPHA_EXT = $859A;
+ {$EXTERNALSYM GL_OPERAND2_ALPHA_EXT}
+
+ // NV_texture_env_combine4
+ GL_COMBINE4_NV = $8503;
+ {$EXTERNALSYM GL_COMBINE4_NV}
+ GL_SOURCE3_RGB_NV = $8583;
+ {$EXTERNALSYM GL_SOURCE3_RGB_NV}
+ GL_SOURCE3_ALPHA_NV = $858B;
+ {$EXTERNALSYM GL_SOURCE3_ALPHA_NV}
+ GL_OPERAND3_RGB_NV = $8593;
+ {$EXTERNALSYM GL_OPERAND3_RGB_NV}
+ GL_OPERAND3_ALPHA_NV = $859B;
+ {$EXTERNALSYM GL_OPERAND3_ALPHA_NV}
+
+ GL_BLEND_EQUATION = $8009;
+ {$EXTERNALSYM GL_BLEND_EQUATION}
+ GL_TABLE_TOO_LARGE = $8031;
+ {$EXTERNALSYM GL_TABLE_TOO_LARGE}
+ GL_UNSIGNED_BYTE_3_3_2 = $8032;
+ {$EXTERNALSYM GL_UNSIGNED_BYTE_3_3_2}
+ GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT_4_4_4_4}
+ GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT_5_5_5_1}
+ GL_UNSIGNED_INT_8_8_8_8 = $8035;
+ {$EXTERNALSYM GL_UNSIGNED_INT_8_8_8_8}
+ GL_UNSIGNED_INT_10_10_10_2 = $8036;
+ {$EXTERNALSYM GL_UNSIGNED_INT_10_10_10_2}
+ GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
+ {$EXTERNALSYM GL_UNSIGNED_BYTE_2_3_3_REV}
+ GL_UNSIGNED_SHORT_5_6_5 = $8363;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT_5_6_5}
+ GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT_5_6_5_REV}
+ GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT_4_4_4_4_REV}
+ GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
+ {$EXTERNALSYM GL_UNSIGNED_SHORT_1_5_5_5_REV}
+ GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
+ {$EXTERNALSYM GL_UNSIGNED_INT_8_8_8_8_REV}
+ GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
+ {$EXTERNALSYM GL_UNSIGNED_INT_2_10_10_10_REV}
+
+ // GL_ARB_transpose_matrix
+ GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
+ {$EXTERNALSYM GL_TRANSPOSE_MODELVIEW_MATRIX_ARB}
+ GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
+ {$EXTERNALSYM GL_TRANSPOSE_PROJECTION_MATRIX_ARB}
+ GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
+ {$EXTERNALSYM GL_TRANSPOSE_TEXTURE_MATRIX_ARB}
+ GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
+ {$EXTERNALSYM GL_TRANSPOSE_COLOR_MATRIX_ARB}
+
+ // GL_ARB_multisample
+ GL_MULTISAMPLE_ARB = $809D;
+ {$EXTERNALSYM GL_MULTISAMPLE_ARB}
+ GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
+ {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_COVERAGE_ARB}
+ GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
+ {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_ONE_ARB}
+ GL_SAMPLE_COVERAGE_ARB = $80A0;
+ {$EXTERNALSYM GL_SAMPLE_COVERAGE_ARB}
+ GL_SAMPLE_BUFFERS_ARB = $80A8;
+ {$EXTERNALSYM GL_SAMPLE_BUFFERS_ARB}
+ GL_SAMPLES_ARB = $80A9;
+ {$EXTERNALSYM GL_SAMPLES_ARB}
+ GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
+ {$EXTERNALSYM GL_SAMPLE_COVERAGE_VALUE_ARB}
+ GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
+ {$EXTERNALSYM GL_SAMPLE_COVERAGE_INVERT_ARB}
+ GL_MULTISAMPLE_BIT_ARB = $20000000;
+ {$EXTERNALSYM GL_MULTISAMPLE_BIT_ARB}
+ GLX_SAMPLE_BUFFERS_ARB = 100000;
+ {$EXTERNALSYM GLX_SAMPLE_BUFFERS_ARB}
+ GLX_SAMPLES_ARB = 100001;
+ {$EXTERNALSYM GLX_SAMPLES_ARB}
+ WGL_SAMPLE_BUFFERS_ARB = $2041;
+ {$EXTERNALSYM WGL_SAMPLE_BUFFERS_ARB}
+ WGL_SAMPLES_ARB = $2042;
+ {$EXTERNALSYM WGL_SAMPLES_ARB}
+
+ // GL_ARB_texture_cube_map
+ GL_NORMAL_MAP_ARB = $8511;
+ {$EXTERNALSYM GL_NORMAL_MAP_ARB}
+ GL_REFLECTION_MAP_ARB = $8512;
+ {$EXTERNALSYM GL_REFLECTION_MAP_ARB}
+ GL_TEXTURE_CUBE_MAP_ARB = $8513;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_ARB}
+ GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
+ {$EXTERNALSYM GL_TEXTURE_BINDING_CUBE_MAP_ARB}
+ GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB}
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB}
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB}
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB}
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB}
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB}
+ GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_CUBE_MAP_ARB}
+ GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
+ {$EXTERNALSYM GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB}
+
+ // GL_ARB_texture_compression
+ GL_COMPRESSED_ALPHA_ARB = $84E9;
+ {$EXTERNALSYM GL_COMPRESSED_ALPHA_ARB}
+ GL_COMPRESSED_LUMINANCE_ARB = $84EA;
+ {$EXTERNALSYM GL_COMPRESSED_LUMINANCE_ARB}
+ GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
+ {$EXTERNALSYM GL_COMPRESSED_LUMINANCE_ALPHA_ARB}
+ GL_COMPRESSED_INTENSITY_ARB = $84EC;
+ {$EXTERNALSYM GL_COMPRESSED_INTENSITY_ARB}
+ GL_COMPRESSED_RGB_ARB = $84ED;
+ {$EXTERNALSYM GL_COMPRESSED_RGB_ARB}
+ GL_COMPRESSED_RGBA_ARB = $84EE;
+ {$EXTERNALSYM GL_COMPRESSED_RGBA_ARB}
+ GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
+ {$EXTERNALSYM GL_TEXTURE_COMPRESSION_HINT_ARB}
+ GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
+ {$EXTERNALSYM GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB}
+ GL_TEXTURE_COMPRESSED_ARB = $86A1;
+ {$EXTERNALSYM GL_TEXTURE_COMPRESSED_ARB}
+ GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
+ {$EXTERNALSYM GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB}
+ GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
+ {$EXTERNALSYM GL_COMPRESSED_TEXTURE_FORMATS_ARB}
+
+ // GL_ARB_vertex_blend
+ GL_MAX_VERTEX_UNITS_ARB = $86A4;
+ {$EXTERNALSYM GL_MAX_VERTEX_UNITS_ARB}
+ GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
+ {$EXTERNALSYM GL_ACTIVE_VERTEX_UNITS_ARB}
+ GL_WEIGHT_SUM_UNITY_ARB = $86A6;
+ {$EXTERNALSYM GL_WEIGHT_SUM_UNITY_ARB}
+ GL_VERTEX_BLEND_ARB = $86A7;
+ {$EXTERNALSYM GL_VERTEX_BLEND_ARB}
+ GL_CURRENT_WEIGHT_ARB = $86A8;
+ {$EXTERNALSYM GL_CURRENT_WEIGHT_ARB}
+ GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
+ {$EXTERNALSYM GL_WEIGHT_ARRAY_TYPE_ARB}
+ GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
+ {$EXTERNALSYM GL_WEIGHT_ARRAY_STRIDE_ARB}
+ GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
+ {$EXTERNALSYM GL_WEIGHT_ARRAY_SIZE_ARB}
+ GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
+ {$EXTERNALSYM GL_WEIGHT_ARRAY_POINTER_ARB}
+ GL_WEIGHT_ARRAY_ARB = $86AD;
+ {$EXTERNALSYM GL_WEIGHT_ARRAY_ARB}
+ GL_MODELVIEW0_ARB = $1700;
+ {$EXTERNALSYM GL_MODELVIEW0_ARB}
+ GL_MODELVIEW1_ARB = $850A;
+ {$EXTERNALSYM GL_MODELVIEW1_ARB}
+ GL_MODELVIEW2_ARB = $8722;
+ {$EXTERNALSYM GL_MODELVIEW2_ARB}
+ GL_MODELVIEW3_ARB = $8723;
+ {$EXTERNALSYM GL_MODELVIEW3_ARB}
+ GL_MODELVIEW4_ARB = $8724;
+ {$EXTERNALSYM GL_MODELVIEW4_ARB}
+ GL_MODELVIEW5_ARB = $8725;
+ {$EXTERNALSYM GL_MODELVIEW5_ARB}
+ GL_MODELVIEW6_ARB = $8726;
+ {$EXTERNALSYM GL_MODELVIEW6_ARB}
+ GL_MODELVIEW7_ARB = $8727;
+ {$EXTERNALSYM GL_MODELVIEW7_ARB}
+ GL_MODELVIEW8_ARB = $8728;
+ {$EXTERNALSYM GL_MODELVIEW8_ARB}
+ GL_MODELVIEW9_ARB = $8729;
+ {$EXTERNALSYM GL_MODELVIEW9_ARB}
+ GL_MODELVIEW10_ARB = $872A;
+ {$EXTERNALSYM GL_MODELVIEW10_ARB}
+ GL_MODELVIEW11_ARB = $872B;
+ {$EXTERNALSYM GL_MODELVIEW11_ARB}
+ GL_MODELVIEW12_ARB = $872C;
+ {$EXTERNALSYM GL_MODELVIEW12_ARB}
+ GL_MODELVIEW13_ARB = $872D;
+ {$EXTERNALSYM GL_MODELVIEW13_ARB}
+ GL_MODELVIEW14_ARB = $872E;
+ {$EXTERNALSYM GL_MODELVIEW14_ARB}
+ GL_MODELVIEW15_ARB = $872F;
+ {$EXTERNALSYM GL_MODELVIEW15_ARB}
+ GL_MODELVIEW16_ARB = $8730;
+ {$EXTERNALSYM GL_MODELVIEW16_ARB}
+ GL_MODELVIEW17_ARB = $8731;
+ {$EXTERNALSYM GL_MODELVIEW17_ARB}
+ GL_MODELVIEW18_ARB = $8732;
+ {$EXTERNALSYM GL_MODELVIEW18_ARB}
+ GL_MODELVIEW19_ARB = $8733;
+ {$EXTERNALSYM GL_MODELVIEW19_ARB}
+ GL_MODELVIEW20_ARB = $8734;
+ {$EXTERNALSYM GL_MODELVIEW20_ARB}
+ GL_MODELVIEW21_ARB = $8735;
+ {$EXTERNALSYM GL_MODELVIEW21_ARB}
+ GL_MODELVIEW22_ARB = $8736;
+ {$EXTERNALSYM GL_MODELVIEW22_ARB}
+ GL_MODELVIEW23_ARB = $8737;
+ {$EXTERNALSYM GL_MODELVIEW23_ARB}
+ GL_MODELVIEW24_ARB = $8738;
+ {$EXTERNALSYM GL_MODELVIEW24_ARB}
+ GL_MODELVIEW25_ARB = $8739;
+ {$EXTERNALSYM GL_MODELVIEW25_ARB}
+ GL_MODELVIEW26_ARB = $873A;
+ {$EXTERNALSYM GL_MODELVIEW26_ARB}
+ GL_MODELVIEW27_ARB = $873B;
+ {$EXTERNALSYM GL_MODELVIEW27_ARB}
+ GL_MODELVIEW28_ARB = $873C;
+ {$EXTERNALSYM GL_MODELVIEW28_ARB}
+ GL_MODELVIEW29_ARB = $873D;
+ {$EXTERNALSYM GL_MODELVIEW29_ARB}
+ GL_MODELVIEW30_ARB = $873E;
+ {$EXTERNALSYM GL_MODELVIEW30_ARB}
+ GL_MODELVIEW31_ARB = $873F;
+ {$EXTERNALSYM GL_MODELVIEW31_ARB}
+
+ // GL_SGIS_texture_filter4
+ GL_FILTER4_SGIS = $8146;
+ {$EXTERNALSYM GL_FILTER4_SGIS}
+ GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
+ {$EXTERNALSYM GL_TEXTURE_FILTER4_SIZE_SGIS}
+
+ // GL_SGIS_pixel_texture
+ GL_PIXEL_TEXTURE_SGIS = $8353;
+ {$EXTERNALSYM GL_PIXEL_TEXTURE_SGIS}
+ GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
+ {$EXTERNALSYM GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS}
+ GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
+ {$EXTERNALSYM GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS}
+ GL_PIXEL_GROUP_COLOR_SGIS = $8356;
+ {$EXTERNALSYM GL_PIXEL_GROUP_COLOR_SGIS}
+
+ // GL_SGIX_pixel_texture
+ GL_PIXEL_TEX_GEN_SGIX = $8139;
+ {$EXTERNALSYM GL_PIXEL_TEX_GEN_SGIX}
+ GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
+ {$EXTERNALSYM GL_PIXEL_TEX_GEN_MODE_SGIX}
+
+ // GL_SGIS_texture4D
+ GL_PACK_SKIP_VOLUMES_SGIS = $8130;
+ {$EXTERNALSYM GL_PACK_SKIP_VOLUMES_SGIS}
+ GL_PACK_IMAGE_DEPTH_SGIS = $8131;
+ {$EXTERNALSYM GL_PACK_IMAGE_DEPTH_SGIS}
+ GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
+ {$EXTERNALSYM GL_UNPACK_SKIP_VOLUMES_SGIS}
+ GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
+ {$EXTERNALSYM GL_UNPACK_IMAGE_DEPTH_SGIS}
+ GL_TEXTURE_4D_SGIS = $8134;
+ {$EXTERNALSYM GL_TEXTURE_4D_SGIS}
+ GL_PROXY_TEXTURE_4D_SGIS = $8135;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_4D_SGIS}
+ GL_TEXTURE_4DSIZE_SGIS = $8136;
+ {$EXTERNALSYM GL_TEXTURE_4DSIZE_SGIS}
+ GL_TEXTURE_WRAP_Q_SGIS = $8137;
+ {$EXTERNALSYM GL_TEXTURE_WRAP_Q_SGIS}
+ GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
+ {$EXTERNALSYM GL_MAX_4D_TEXTURE_SIZE_SGIS}
+ GL_TEXTURE_4D_BINDING_SGIS = $814F;
+ {$EXTERNALSYM GL_TEXTURE_4D_BINDING_SGIS}
+
+ // GL_SGIS_detail_texture
+ GL_DETAIL_TEXTURE_2D_SGIS = $8095;
+ {$EXTERNALSYM GL_DETAIL_TEXTURE_2D_SGIS}
+ GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
+ {$EXTERNALSYM GL_DETAIL_TEXTURE_2D_BINDING_SGIS}
+ GL_LINEAR_DETAIL_SGIS = $8097;
+ {$EXTERNALSYM GL_LINEAR_DETAIL_SGIS}
+ GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
+ {$EXTERNALSYM GL_LINEAR_DETAIL_ALPHA_SGIS}
+ GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
+ {$EXTERNALSYM GL_LINEAR_DETAIL_COLOR_SGIS}
+ GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
+ {$EXTERNALSYM GL_DETAIL_TEXTURE_LEVEL_SGIS}
+ GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
+ {$EXTERNALSYM GL_DETAIL_TEXTURE_MODE_SGIS}
+ GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
+ {$EXTERNALSYM GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS}
+
+ // GL_SGIS_sharpen_texture
+ GL_LINEAR_SHARPEN_SGIS = $80AD;
+ {$EXTERNALSYM GL_LINEAR_SHARPEN_SGIS}
+ GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
+ {$EXTERNALSYM GL_LINEAR_SHARPEN_ALPHA_SGIS}
+ GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
+ {$EXTERNALSYM GL_LINEAR_SHARPEN_COLOR_SGIS}
+ GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
+ {$EXTERNALSYM GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS}
+
+ // GL_SGIS_texture_lod
+ GL_TEXTURE_MIN_LOD_SGIS = $813A;
+ {$EXTERNALSYM GL_TEXTURE_MIN_LOD_SGIS}
+ GL_TEXTURE_MAX_LOD_SGIS = $813B;
+ {$EXTERNALSYM GL_TEXTURE_MAX_LOD_SGIS}
+ GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
+ {$EXTERNALSYM GL_TEXTURE_BASE_LEVEL_SGIS}
+ GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
+ {$EXTERNALSYM GL_TEXTURE_MAX_LEVEL_SGIS}
+
+ // GL_SGIS_multisample
+ GL_MULTISAMPLE_SGIS = $809D;
+ {$EXTERNALSYM GL_MULTISAMPLE_SGIS}
+ GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
+ {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_MASK_SGIS}
+ GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
+ {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_ONE_SGIS}
+ GL_SAMPLE_MASK_SGIS = $80A0;
+ {$EXTERNALSYM GL_SAMPLE_MASK_SGIS}
+ GL_1PASS_SGIS = $80A1;
+ {$EXTERNALSYM GL_1PASS_SGIS}
+ GL_2PASS_0_SGIS = $80A2;
+ {$EXTERNALSYM GL_2PASS_0_SGIS}
+ GL_2PASS_1_SGIS = $80A3;
+ {$EXTERNALSYM GL_2PASS_1_SGIS}
+ GL_4PASS_0_SGIS = $80A4;
+ {$EXTERNALSYM GL_4PASS_0_SGIS}
+ GL_4PASS_1_SGIS = $80A5;
+ {$EXTERNALSYM GL_4PASS_1_SGIS}
+ GL_4PASS_2_SGIS = $80A6;
+ {$EXTERNALSYM GL_4PASS_2_SGIS}
+ GL_4PASS_3_SGIS = $80A7;
+ {$EXTERNALSYM GL_4PASS_3_SGIS}
+ GL_SAMPLE_BUFFERS_SGIS = $80A8;
+ {$EXTERNALSYM GL_SAMPLE_BUFFERS_SGIS}
+ GL_SAMPLES_SGIS = $80A9;
+ {$EXTERNALSYM GL_SAMPLES_SGIS}
+ GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
+ {$EXTERNALSYM GL_SAMPLE_MASK_VALUE_SGIS}
+ GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
+ {$EXTERNALSYM GL_SAMPLE_MASK_INVERT_SGIS}
+ GL_SAMPLE_PATTERN_SGIS = $80AC;
+ {$EXTERNALSYM GL_SAMPLE_PATTERN_SGIS}
+
+ // GL_SGIS_generate_mipmap
+ GL_GENERATE_MIPMAP_SGIS = $8191;
+ {$EXTERNALSYM GL_GENERATE_MIPMAP_SGIS}
+ GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
+ {$EXTERNALSYM GL_GENERATE_MIPMAP_HINT_SGIS}
+
+ // GL_SGIX_clipmap
+ GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
+ {$EXTERNALSYM GL_LINEAR_CLIPMAP_LINEAR_SGIX}
+ GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
+ {$EXTERNALSYM GL_TEXTURE_CLIPMAP_CENTER_SGIX}
+ GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
+ {$EXTERNALSYM GL_TEXTURE_CLIPMAP_FRAME_SGIX}
+ GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
+ {$EXTERNALSYM GL_TEXTURE_CLIPMAP_OFFSET_SGIX}
+ GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
+ {$EXTERNALSYM GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX}
+ GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
+ {$EXTERNALSYM GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX}
+ GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
+ {$EXTERNALSYM GL_TEXTURE_CLIPMAP_DEPTH_SGIX}
+ GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
+ {$EXTERNALSYM GL_MAX_CLIPMAP_DEPTH_SGIX}
+ GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
+ {$EXTERNALSYM GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX}
+ GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
+ {$EXTERNALSYM GL_NEAREST_CLIPMAP_NEAREST_SGIX}
+ GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
+ {$EXTERNALSYM GL_NEAREST_CLIPMAP_LINEAR_SGIX}
+ GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
+ {$EXTERNALSYM GL_LINEAR_CLIPMAP_NEAREST_SGIX}
+
+ // GL_SGIX_shadow
+ GL_TEXTURE_COMPARE_SGIX = $819A;
+ {$EXTERNALSYM GL_TEXTURE_COMPARE_SGIX}
+ GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
+ {$EXTERNALSYM GL_TEXTURE_COMPARE_OPERATOR_SGIX}
+ GL_TEXTURE_LEQUAL_R_SGIX = $819C;
+ {$EXTERNALSYM GL_TEXTURE_LEQUAL_R_SGIX}
+ GL_TEXTURE_GEQUAL_R_SGIX = $819D;
+ {$EXTERNALSYM GL_TEXTURE_GEQUAL_R_SGIX}
+
+ // GL_SGIS_texture_edge_clamp
+ GL_CLAMP_TO_EDGE_SGIS = $812F;
+ {$EXTERNALSYM GL_CLAMP_TO_EDGE_SGIS}
+
+ // GL_SGIS_texture_border_clamp
+ GL_CLAMP_TO_BORDER_SGIS = $812D;
+ {$EXTERNALSYM GL_CLAMP_TO_BORDER_SGIS}
+
+ // GL_SGIX_interlace
+ GL_INTERLACE_SGIX = $8094;
+ {$EXTERNALSYM GL_INTERLACE_SGIX}
+
+ // GL_SGIX_pixel_tiles
+ GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
+ {$EXTERNALSYM GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX}
+ GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
+ {$EXTERNALSYM GL_PIXEL_TILE_CACHE_INCREMENT_SGIX}
+ GL_PIXEL_TILE_WIDTH_SGIX = $8140;
+ {$EXTERNALSYM GL_PIXEL_TILE_WIDTH_SGIX}
+ GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
+ {$EXTERNALSYM GL_PIXEL_TILE_HEIGHT_SGIX}
+ GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
+ {$EXTERNALSYM GL_PIXEL_TILE_GRID_WIDTH_SGIX}
+ GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
+ {$EXTERNALSYM GL_PIXEL_TILE_GRID_HEIGHT_SGIX}
+ GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
+ {$EXTERNALSYM GL_PIXEL_TILE_GRID_DEPTH_SGIX}
+ GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
+ {$EXTERNALSYM GL_PIXEL_TILE_CACHE_SIZE_SGIX}
+
+ // GL_SGIS_texture_select
+ GL_DUAL_ALPHA4_SGIS = $8110;
+ {$EXTERNALSYM GL_DUAL_ALPHA4_SGIS}
+ GL_DUAL_ALPHA8_SGIS = $8111;
+ {$EXTERNALSYM GL_DUAL_ALPHA8_SGIS}
+ GL_DUAL_ALPHA12_SGIS = $8112;
+ {$EXTERNALSYM GL_DUAL_ALPHA12_SGIS}
+ GL_DUAL_ALPHA16_SGIS = $8113;
+ {$EXTERNALSYM GL_DUAL_ALPHA16_SGIS}
+ GL_DUAL_LUMINANCE4_SGIS = $8114;
+ {$EXTERNALSYM GL_DUAL_LUMINANCE4_SGIS}
+ GL_DUAL_LUMINANCE8_SGIS = $8115;
+ {$EXTERNALSYM GL_DUAL_LUMINANCE8_SGIS}
+ GL_DUAL_LUMINANCE12_SGIS = $8116;
+ {$EXTERNALSYM GL_DUAL_LUMINANCE12_SGIS}
+ GL_DUAL_LUMINANCE16_SGIS = $8117;
+ {$EXTERNALSYM GL_DUAL_LUMINANCE16_SGIS}
+ GL_DUAL_INTENSITY4_SGIS = $8118;
+ {$EXTERNALSYM GL_DUAL_INTENSITY4_SGIS}
+ GL_DUAL_INTENSITY8_SGIS = $8119;
+ {$EXTERNALSYM GL_DUAL_INTENSITY8_SGIS}
+ GL_DUAL_INTENSITY12_SGIS = $811A;
+ {$EXTERNALSYM GL_DUAL_INTENSITY12_SGIS}
+ GL_DUAL_INTENSITY16_SGIS = $811B;
+ {$EXTERNALSYM GL_DUAL_INTENSITY16_SGIS}
+ GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
+ {$EXTERNALSYM GL_DUAL_LUMINANCE_ALPHA4_SGIS}
+ GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
+ {$EXTERNALSYM GL_DUAL_LUMINANCE_ALPHA8_SGIS}
+ GL_QUAD_ALPHA4_SGIS = $811E;
+ {$EXTERNALSYM GL_QUAD_ALPHA4_SGIS}
+ GL_QUAD_ALPHA8_SGIS = $811F;
+ {$EXTERNALSYM GL_QUAD_ALPHA8_SGIS}
+ GL_QUAD_LUMINANCE4_SGIS = $8120;
+ {$EXTERNALSYM GL_QUAD_LUMINANCE4_SGIS}
+ GL_QUAD_LUMINANCE8_SGIS = $8121;
+ {$EXTERNALSYM GL_QUAD_LUMINANCE8_SGIS}
+ GL_QUAD_INTENSITY4_SGIS = $8122;
+ {$EXTERNALSYM GL_QUAD_INTENSITY4_SGIS}
+ GL_QUAD_INTENSITY8_SGIS = $8123;
+ {$EXTERNALSYM GL_QUAD_INTENSITY8_SGIS}
+ GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
+ {$EXTERNALSYM GL_DUAL_TEXTURE_SELECT_SGIS}
+ GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
+ {$EXTERNALSYM GL_QUAD_TEXTURE_SELECT_SGIS}
+
+ // GL_SGIX_sprite
+ GL_SPRITE_SGIX = $8148;
+ {$EXTERNALSYM GL_SPRITE_SGIX}
+ GL_SPRITE_MODE_SGIX = $8149;
+ {$EXTERNALSYM GL_SPRITE_MODE_SGIX}
+ GL_SPRITE_AXIS_SGIX = $814A;
+ {$EXTERNALSYM GL_SPRITE_AXIS_SGIX}
+ GL_SPRITE_TRANSLATION_SGIX = $814B;
+ {$EXTERNALSYM GL_SPRITE_TRANSLATION_SGIX}
+ GL_SPRITE_AXIAL_SGIX = $814C;
+ {$EXTERNALSYM GL_SPRITE_AXIAL_SGIX}
+ GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
+ {$EXTERNALSYM GL_SPRITE_OBJECT_ALIGNED_SGIX}
+ GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
+ {$EXTERNALSYM GL_SPRITE_EYE_ALIGNED_SGIX}
+
+ // GL_SGIX_texture_multi_buffer
+ GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
+ {$EXTERNALSYM GL_TEXTURE_MULTI_BUFFER_HINT_SGIX}
+
+ // GL_SGIS_point_parameters
+ GL_POINT_SIZE_MIN_SGIS = $8126;
+ {$EXTERNALSYM GL_POINT_SIZE_MIN_SGIS}
+ GL_POINT_SIZE_MAX_SGIS = $8127;
+ {$EXTERNALSYM GL_POINT_SIZE_MAX_SGIS}
+ GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
+ {$EXTERNALSYM GL_POINT_FADE_THRESHOLD_SIZE_SGIS}
+ GL_DISTANCE_ATTENUATION_SGIS = $8129;
+ {$EXTERNALSYM GL_DISTANCE_ATTENUATION_SGIS}
+
+ // GL_SGIX_instruments
+ GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
+ {$EXTERNALSYM GL_INSTRUMENT_BUFFER_POINTER_SGIX}
+ GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
+ {$EXTERNALSYM GL_INSTRUMENT_MEASUREMENTS_SGIX}
+
+ // GL_SGIX_texture_scale_bias
+ GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
+ {$EXTERNALSYM GL_POST_TEXTURE_FILTER_BIAS_SGIX}
+ GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
+ {$EXTERNALSYM GL_POST_TEXTURE_FILTER_SCALE_SGIX}
+ GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
+ {$EXTERNALSYM GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX}
+ GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
+ {$EXTERNALSYM GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX}
+
+ // GL_SGIX_framezoom
+ GL_FRAMEZOOM_SGIX = $818B;
+ {$EXTERNALSYM GL_FRAMEZOOM_SGIX}
+ GL_FRAMEZOOM_FACTOR_SGIX = $818C;
+ {$EXTERNALSYM GL_FRAMEZOOM_FACTOR_SGIX}
+ GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
+ {$EXTERNALSYM GL_MAX_FRAMEZOOM_FACTOR_SGIX}
+
+ // GL_FfdMaskSGIX
+ GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
+ {$EXTERNALSYM GL_TEXTURE_DEFORMATION_BIT_SGIX}
+ GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
+ {$EXTERNALSYM GL_GEOMETRY_DEFORMATION_BIT_SGIX}
+
+ // GL_SGIX_polynomial_ffd
+ GL_GEOMETRY_DEFORMATION_SGIX = $8194;
+ {$EXTERNALSYM GL_GEOMETRY_DEFORMATION_SGIX}
+ GL_TEXTURE_DEFORMATION_SGIX = $8195;
+ {$EXTERNALSYM GL_TEXTURE_DEFORMATION_SGIX}
+ GL_DEFORMATIONS_MASK_SGIX = $8196;
+ {$EXTERNALSYM GL_DEFORMATIONS_MASK_SGIX}
+ GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
+ {$EXTERNALSYM GL_MAX_DEFORMATION_ORDER_SGIX}
+
+ // GL_SGIX_reference_plane
+ GL_REFERENCE_PLANE_SGIX = $817D;
+ {$EXTERNALSYM GL_REFERENCE_PLANE_SGIX}
+ GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
+ {$EXTERNALSYM GL_REFERENCE_PLANE_EQUATION_SGIX}
+
+ // GL_SGIX_depth_texture
+ GL_DEPTH_COMPONENT16_SGIX = $81A5;
+ {$EXTERNALSYM GL_DEPTH_COMPONENT16_SGIX}
+ GL_DEPTH_COMPONENT24_SGIX = $81A6;
+ {$EXTERNALSYM GL_DEPTH_COMPONENT24_SGIX}
+ GL_DEPTH_COMPONENT32_SGIX = $81A7;
+ {$EXTERNALSYM GL_DEPTH_COMPONENT32_SGIX}
+
+ // GL_SGIS_fog_function
+ GL_FOG_FUNC_SGIS = $812A;
+ {$EXTERNALSYM GL_FOG_FUNC_SGIS}
+ GL_FOG_FUNC_POINTS_SGIS = $812B;
+ {$EXTERNALSYM GL_FOG_FUNC_POINTS_SGIS}
+ GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
+ {$EXTERNALSYM GL_MAX_FOG_FUNC_POINTS_SGIS}
+
+ // GL_SGIX_fog_offset
+ GL_FOG_OFFSET_SGIX = $8198;
+ {$EXTERNALSYM GL_FOG_OFFSET_SGIX}
+ GL_FOG_OFFSET_VALUE_SGIX = $8199;
+ {$EXTERNALSYM GL_FOG_OFFSET_VALUE_SGIX}
+
+ // GL_HP_image_transform
+ GL_IMAGE_SCALE_X_HP = $8155;
+ {$EXTERNALSYM GL_IMAGE_SCALE_X_HP}
+ GL_IMAGE_SCALE_Y_HP = $8156;
+ {$EXTERNALSYM GL_IMAGE_SCALE_Y_HP}
+ GL_IMAGE_TRANSLATE_X_HP = $8157;
+ {$EXTERNALSYM GL_IMAGE_TRANSLATE_X_HP}
+ GL_IMAGE_TRANSLATE_Y_HP = $8158;
+ {$EXTERNALSYM GL_IMAGE_TRANSLATE_Y_HP}
+ GL_IMAGE_ROTATE_ANGLE_HP = $8159;
+ {$EXTERNALSYM GL_IMAGE_ROTATE_ANGLE_HP}
+ GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
+ {$EXTERNALSYM GL_IMAGE_ROTATE_ORIGIN_X_HP}
+ GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
+ {$EXTERNALSYM GL_IMAGE_ROTATE_ORIGIN_Y_HP}
+ GL_IMAGE_MAG_FILTER_HP = $815C;
+ {$EXTERNALSYM GL_IMAGE_MAG_FILTER_HP}
+ GL_IMAGE_MIN_FILTER_HP = $815D;
+ {$EXTERNALSYM GL_IMAGE_MIN_FILTER_HP}
+ GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
+ {$EXTERNALSYM GL_IMAGE_CUBIC_WEIGHT_HP}
+ GL_CUBIC_HP = $815F;
+ {$EXTERNALSYM GL_CUBIC_HP}
+ GL_AVERAGE_HP = $8160;
+ {$EXTERNALSYM GL_AVERAGE_HP}
+ GL_IMAGE_TRANSFORM_2D_HP = $8161;
+ {$EXTERNALSYM GL_IMAGE_TRANSFORM_2D_HP}
+ GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
+ {$EXTERNALSYM GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP}
+ GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
+ {$EXTERNALSYM GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP}
+
+ // GL_HP_convolution_border_modes
+ GL_IGNORE_BORDER_HP = $8150;
+ {$EXTERNALSYM GL_IGNORE_BORDER_HP}
+ GL_CONSTANT_BORDER_HP = $8151;
+ {$EXTERNALSYM GL_CONSTANT_BORDER_HP}
+ GL_REPLICATE_BORDER_HP = $8153;
+ {$EXTERNALSYM GL_REPLICATE_BORDER_HP}
+ GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
+ {$EXTERNALSYM GL_CONVOLUTION_BORDER_COLOR_HP}
+
+ // GL_SGIX_texture_add_env
+ GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
+ {$EXTERNALSYM GL_TEXTURE_ENV_BIAS_SGIX}
+
+ // GL_PGI_vertex_hints
+ GL_VERTEX_DATA_HINT_PGI = $1A22A;
+ {$EXTERNALSYM GL_VERTEX_DATA_HINT_PGI}
+ GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
+ {$EXTERNALSYM GL_VERTEX_CONSISTENT_HINT_PGI}
+ GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
+ {$EXTERNALSYM GL_MATERIAL_SIDE_HINT_PGI}
+ GL_MAX_VERTEX_HINT_PGI = $1A22D;
+ {$EXTERNALSYM GL_MAX_VERTEX_HINT_PGI}
+ GL_COLOR3_BIT_PGI = $00010000;
+ {$EXTERNALSYM GL_COLOR3_BIT_PGI}
+ GL_COLOR4_BIT_PGI = $00020000;
+ {$EXTERNALSYM GL_COLOR4_BIT_PGI}
+ GL_EDGEFLAG_BIT_PGI = $00040000;
+ {$EXTERNALSYM GL_EDGEFLAG_BIT_PGI}
+ GL_INDEX_BIT_PGI = $00080000;
+ {$EXTERNALSYM GL_INDEX_BIT_PGI}
+ GL_MAT_AMBIENT_BIT_PGI = $00100000;
+ {$EXTERNALSYM GL_MAT_AMBIENT_BIT_PGI}
+ GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
+ {$EXTERNALSYM GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI}
+ GL_MAT_DIFFUSE_BIT_PGI = $00400000;
+ {$EXTERNALSYM GL_MAT_DIFFUSE_BIT_PGI}
+ GL_MAT_EMISSION_BIT_PGI = $00800000;
+ {$EXTERNALSYM GL_MAT_EMISSION_BIT_PGI}
+ GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
+ {$EXTERNALSYM GL_MAT_COLOR_INDEXES_BIT_PGI}
+ GL_MAT_SHININESS_BIT_PGI = $02000000;
+ {$EXTERNALSYM GL_MAT_SHININESS_BIT_PGI}
+ GL_MAT_SPECULAR_BIT_PGI = $04000000;
+ {$EXTERNALSYM GL_MAT_SPECULAR_BIT_PGI}
+ GL_NORMAL_BIT_PGI = $08000000;
+ {$EXTERNALSYM GL_NORMAL_BIT_PGI}
+ GL_TEXCOORD1_BIT_PGI = $10000000;
+ {$EXTERNALSYM GL_TEXCOORD1_BIT_PGI}
+ GL_TEXCOORD2_BIT_PGI = $20000000;
+ {$EXTERNALSYM GL_TEXCOORD2_BIT_PGI}
+ GL_TEXCOORD3_BIT_PGI = $40000000;
+ {$EXTERNALSYM GL_TEXCOORD3_BIT_PGI}
+ GL_TEXCOORD4_BIT_PGI = $80000000;
+ {$EXTERNALSYM GL_TEXCOORD4_BIT_PGI}
+ GL_VERTEX23_BIT_PGI = $00000004;
+ {$EXTERNALSYM GL_VERTEX23_BIT_PGI}
+ GL_VERTEX4_BIT_PGI = $00000008;
+ {$EXTERNALSYM GL_VERTEX4_BIT_PGI}
+
+ // GL_PGI_misc_hints
+ GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
+ {$EXTERNALSYM GL_PREFER_DOUBLEBUFFER_HINT_PGI}
+ GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
+ {$EXTERNALSYM GL_CONSERVE_MEMORY_HINT_PGI}
+ GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
+ {$EXTERNALSYM GL_RECLAIM_MEMORY_HINT_PGI}
+ GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
+ {$EXTERNALSYM GL_NATIVE_GRAPHICS_HANDLE_PGI}
+ GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
+ {$EXTERNALSYM GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI}
+ GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
+ {$EXTERNALSYM GL_NATIVE_GRAPHICS_END_HINT_PGI}
+ GL_ALWAYS_FAST_HINT_PGI = $1A20C;
+ {$EXTERNALSYM GL_ALWAYS_FAST_HINT_PGI}
+ GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
+ {$EXTERNALSYM GL_ALWAYS_SOFT_HINT_PGI}
+ GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
+ {$EXTERNALSYM GL_ALLOW_DRAW_OBJ_HINT_PGI}
+ GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
+ {$EXTERNALSYM GL_ALLOW_DRAW_WIN_HINT_PGI}
+ GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
+ {$EXTERNALSYM GL_ALLOW_DRAW_FRG_HINT_PGI}
+ GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
+ {$EXTERNALSYM GL_ALLOW_DRAW_MEM_HINT_PGI}
+ GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
+ {$EXTERNALSYM GL_STRICT_DEPTHFUNC_HINT_PGI}
+ GL_STRICT_LIGHTING_HINT_PGI = $1A217;
+ {$EXTERNALSYM GL_STRICT_LIGHTING_HINT_PGI}
+ GL_STRICT_SCISSOR_HINT_PGI = $1A218;
+ {$EXTERNALSYM GL_STRICT_SCISSOR_HINT_PGI}
+ GL_FULL_STIPPLE_HINT_PGI = $1A219;
+ {$EXTERNALSYM GL_FULL_STIPPLE_HINT_PGI}
+ GL_CLIP_NEAR_HINT_PGI = $1A220;
+ {$EXTERNALSYM GL_CLIP_NEAR_HINT_PGI}
+ GL_CLIP_FAR_HINT_PGI = $1A221;
+ {$EXTERNALSYM GL_CLIP_FAR_HINT_PGI}
+ GL_WIDE_LINE_HINT_PGI = $1A222;
+ {$EXTERNALSYM GL_WIDE_LINE_HINT_PGI}
+ GL_BACK_NORMALS_HINT_PGI = $1A223;
+ {$EXTERNALSYM GL_BACK_NORMALS_HINT_PGI}
+
+ // GL_EXT_paletted_texture
+ GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
+ {$EXTERNALSYM GL_TEXTURE_INDEX_SIZE_EXT}
+
+ // GL_SGIX_list_priority
+ GL_LIST_PRIORITY_SGIX = $8182;
+ {$EXTERNALSYM GL_LIST_PRIORITY_SGIX}
+
+ // GL_SGIX_ir_instrument1
+ GL_IR_INSTRUMENT1_SGIX = $817F;
+ {$EXTERNALSYM GL_IR_INSTRUMENT1_SGIX}
+
+ // GL_SGIX_calligraphic_fragment
+ GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
+ {$EXTERNALSYM GL_CALLIGRAPHIC_FRAGMENT_SGIX}
+
+ // GL_SGIX_texture_lod_bias
+ GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
+ {$EXTERNALSYM GL_TEXTURE_LOD_BIAS_S_SGIX}
+ GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
+ {$EXTERNALSYM GL_TEXTURE_LOD_BIAS_T_SGIX}
+ GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
+ {$EXTERNALSYM GL_TEXTURE_LOD_BIAS_R_SGIX}
+
+ // GL_SGIX_shadow_ambient
+ GL_SHADOW_AMBIENT_SGIX = $80BF;
+ {$EXTERNALSYM GL_SHADOW_AMBIENT_SGIX}
+
+ // GL_SGIX_ycrcb
+ GL_YCRCB_422_SGIX = $81BB;
+ {$EXTERNALSYM GL_YCRCB_422_SGIX}
+ GL_YCRCB_444_SGIX = $81BC;
+ {$EXTERNALSYM GL_YCRCB_444_SGIX}
+
+ // GL_SGIX_fragment_lighting
+ GL_FRAGMENT_LIGHTING_SGIX = $8400;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHTING_SGIX}
+ GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
+ {$EXTERNALSYM GL_FRAGMENT_COLOR_MATERIAL_SGIX}
+ GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
+ {$EXTERNALSYM GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX}
+ GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
+ {$EXTERNALSYM GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX}
+ GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
+ {$EXTERNALSYM GL_MAX_FRAGMENT_LIGHTS_SGIX}
+ GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
+ {$EXTERNALSYM GL_MAX_ACTIVE_LIGHTS_SGIX}
+ GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
+ {$EXTERNALSYM GL_CURRENT_RASTER_NORMAL_SGIX}
+ GL_LIGHT_ENV_MODE_SGIX = $8407;
+ {$EXTERNALSYM GL_LIGHT_ENV_MODE_SGIX}
+ GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX}
+ GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX}
+ GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX}
+ GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX}
+ GL_FRAGMENT_LIGHT0_SGIX = $840C;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT0_SGIX}
+ GL_FRAGMENT_LIGHT1_SGIX = $840D;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT1_SGIX}
+ GL_FRAGMENT_LIGHT2_SGIX = $840E;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT2_SGIX}
+ GL_FRAGMENT_LIGHT3_SGIX = $840F;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT3_SGIX}
+ GL_FRAGMENT_LIGHT4_SGIX = $8410;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT4_SGIX}
+ GL_FRAGMENT_LIGHT5_SGIX = $8411;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT5_SGIX}
+ GL_FRAGMENT_LIGHT6_SGIX = $8412;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT6_SGIX}
+ GL_FRAGMENT_LIGHT7_SGIX = $8413;
+ {$EXTERNALSYM GL_FRAGMENT_LIGHT7_SGIX}
+
+ // GL_IBM_rasterpos_clip
+ GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
+ {$EXTERNALSYM GL_RASTER_POSITION_UNCLIPPED_IBM}
+
+ // GL_HP_texture_lighting
+ GL_TEXTURE_LIGHTING_MODE_HP = $8167;
+ {$EXTERNALSYM GL_TEXTURE_LIGHTING_MODE_HP}
+ GL_TEXTURE_POST_SPECULAR_HP = $8168;
+ {$EXTERNALSYM GL_TEXTURE_POST_SPECULAR_HP}
+ GL_TEXTURE_PRE_SPECULAR_HP = $8169;
+ {$EXTERNALSYM GL_TEXTURE_PRE_SPECULAR_HP}
+
+ // GL_EXT_draw_range_elements
+ GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
+ {$EXTERNALSYM GL_MAX_ELEMENTS_VERTICES_EXT}
+ GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
+ {$EXTERNALSYM GL_MAX_ELEMENTS_INDICES_EXT}
+
+ // GL_WIN_phong_shading
+ GL_PHONG_WIN = $80EA;
+ {$EXTERNALSYM GL_PHONG_WIN}
+ GL_PHONG_HINT_WIN = $80EB;
+ {$EXTERNALSYM GL_PHONG_HINT_WIN}
+
+ // GL_WIN_specular_fog
+ GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
+ {$EXTERNALSYM GL_FOG_SPECULAR_TEXTURE_WIN}
+
+ // GL_EXT_light_texture
+ GL_FRAGMENT_MATERIAL_EXT = $8349;
+ {$EXTERNALSYM GL_FRAGMENT_MATERIAL_EXT}
+ GL_FRAGMENT_NORMAL_EXT = $834A;
+ {$EXTERNALSYM GL_FRAGMENT_NORMAL_EXT}
+ GL_FRAGMENT_COLOR_EXT = $834C;
+ {$EXTERNALSYM GL_FRAGMENT_COLOR_EXT}
+ GL_ATTENUATION_EXT = $834D;
+ {$EXTERNALSYM GL_ATTENUATION_EXT}
+ GL_SHADOW_ATTENUATION_EXT = $834E;
+ {$EXTERNALSYM GL_SHADOW_ATTENUATION_EXT}
+ GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
+ {$EXTERNALSYM GL_TEXTURE_APPLICATION_MODE_EXT}
+ GL_TEXTURE_LIGHT_EXT = $8350;
+ {$EXTERNALSYM GL_TEXTURE_LIGHT_EXT}
+ GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
+ {$EXTERNALSYM GL_TEXTURE_MATERIAL_FACE_EXT}
+ GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
+ {$EXTERNALSYM GL_TEXTURE_MATERIAL_PARAMETER_EXT}
+
+ // GL_SGIX_blend_alpha_minmax
+ GL_ALPHA_MIN_SGIX = $8320;
+ {$EXTERNALSYM GL_ALPHA_MIN_SGIX}
+ GL_ALPHA_MAX_SGIX = $8321;
+ {$EXTERNALSYM GL_ALPHA_MAX_SGIX}
+
+ // GL_SGIX_async
+ GL_ASYNC_MARKER_SGIX = $8329;
+ {$EXTERNALSYM GL_ASYNC_MARKER_SGIX}
+
+ // GL_SGIX_async_pixel
+ GL_ASYNC_TEX_IMAGE_SGIX = $835C;
+ {$EXTERNALSYM GL_ASYNC_TEX_IMAGE_SGIX}
+ GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
+ {$EXTERNALSYM GL_ASYNC_DRAW_PIXELS_SGIX}
+ GL_ASYNC_READ_PIXELS_SGIX = $835E;
+ {$EXTERNALSYM GL_ASYNC_READ_PIXELS_SGIX}
+ GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
+ {$EXTERNALSYM GL_MAX_ASYNC_TEX_IMAGE_SGIX}
+ GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
+ {$EXTERNALSYM GL_MAX_ASYNC_DRAW_PIXELS_SGIX}
+ GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
+ {$EXTERNALSYM GL_MAX_ASYNC_READ_PIXELS_SGIX}
+
+ // GL_SGIX_async_histogram
+ GL_ASYNC_HISTOGRAM_SGIX = $832C;
+ {$EXTERNALSYM GL_ASYNC_HISTOGRAM_SGIX}
+ GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
+ {$EXTERNALSYM GL_MAX_ASYNC_HISTOGRAM_SGIX}
+
+ // GL_INTEL_parallel_arrays
+ GL_PARALLEL_ARRAYS_INTEL = $83F4;
+ {$EXTERNALSYM GL_PARALLEL_ARRAYS_INTEL}
+ GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL}
+ GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL}
+ GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
+ {$EXTERNALSYM GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL}
+ GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL}
+
+ // GL_HP_occlusion_test
+ GL_OCCLUSION_TEST_HP = $8165;
+ {$EXTERNALSYM GL_OCCLUSION_TEST_HP}
+ GL_OCCLUSION_TEST_RESULT_HP = $8166;
+ {$EXTERNALSYM GL_OCCLUSION_TEST_RESULT_HP}
+
+ // GL_EXT_pixel_transform
+ GL_PIXEL_TRANSFORM_2D_EXT = $8330;
+ {$EXTERNALSYM GL_PIXEL_TRANSFORM_2D_EXT}
+ GL_PIXEL_MAG_FILTER_EXT = $8331;
+ {$EXTERNALSYM GL_PIXEL_MAG_FILTER_EXT}
+ GL_PIXEL_MIN_FILTER_EXT = $8332;
+ {$EXTERNALSYM GL_PIXEL_MIN_FILTER_EXT}
+ GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
+ {$EXTERNALSYM GL_PIXEL_CUBIC_WEIGHT_EXT}
+ GL_CUBIC_EXT = $8334;
+ {$EXTERNALSYM GL_CUBIC_EXT}
+ GL_AVERAGE_EXT = $8335;
+ {$EXTERNALSYM GL_AVERAGE_EXT}
+ GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
+ {$EXTERNALSYM GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT}
+ GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
+ {$EXTERNALSYM GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT}
+ GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
+ {$EXTERNALSYM GL_PIXEL_TRANSFORM_2D_MATRIX_EXT}
+
+ // GL_EXT_separate_specular_color
+ GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
+ {$EXTERNALSYM GL_LIGHT_MODEL_COLOR_CONTROL_EXT}
+ GL_SINGLE_COLOR_EXT = $81F9;
+ {$EXTERNALSYM GL_SINGLE_COLOR_EXT}
+ GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
+ {$EXTERNALSYM GL_SEPARATE_SPECULAR_COLOR_EXT}
+
+ // GL_EXT_secondary_color
+ GL_COLOR_SUM_EXT = $8458;
+ {$EXTERNALSYM GL_COLOR_SUM_EXT}
+ GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
+ {$EXTERNALSYM GL_CURRENT_SECONDARY_COLOR_EXT}
+ GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
+ {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_SIZE_EXT}
+ GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
+ {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_TYPE_EXT}
+ GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
+ {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT}
+ GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
+ {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_POINTER_EXT}
+ GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
+ {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_EXT}
+
+ // GL_EXT_texture_perturb_normal
+ GL_PERTURB_EXT = $85AE;
+ {$EXTERNALSYM GL_PERTURB_EXT}
+ GL_TEXTURE_NORMAL_EXT = $85AF;
+ {$EXTERNALSYM GL_TEXTURE_NORMAL_EXT}
+
+ // GL_EXT_fog_coord
+ GL_FOG_COORDINATE_SOURCE_EXT = $8450;
+ {$EXTERNALSYM GL_FOG_COORDINATE_SOURCE_EXT}
+ GL_FOG_COORDINATE_EXT = $8451;
+ {$EXTERNALSYM GL_FOG_COORDINATE_EXT}
+ GL_FRAGMENT_DEPTH_EXT = $8452;
+ {$EXTERNALSYM GL_FRAGMENT_DEPTH_EXT}
+ GL_CURRENT_FOG_COORDINATE_EXT = $8453;
+ {$EXTERNALSYM GL_CURRENT_FOG_COORDINATE_EXT}
+ GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
+ {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_TYPE_EXT}
+ GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
+ {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_STRIDE_EXT}
+ GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
+ {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_POINTER_EXT}
+ GL_FOG_COORDINATE_ARRAY_EXT = $8457;
+ {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_EXT}
+
+ // GL_REND_screen_coordinates
+ GL_SCREEN_COORDINATES_REND = $8490;
+ {$EXTERNALSYM GL_SCREEN_COORDINATES_REND}
+ GL_INVERTED_SCREEN_W_REND = $8491;
+ {$EXTERNALSYM GL_INVERTED_SCREEN_W_REND}
+
+ // GL_EXT_coordinate_frame
+ GL_TANGENT_ARRAY_EXT = $8439;
+ {$EXTERNALSYM GL_TANGENT_ARRAY_EXT}
+ GL_BINORMAL_ARRAY_EXT = $843A;
+ {$EXTERNALSYM GL_BINORMAL_ARRAY_EXT}
+ GL_CURRENT_TANGENT_EXT = $843B;
+ {$EXTERNALSYM GL_CURRENT_TANGENT_EXT}
+ GL_CURRENT_BINORMAL_EXT = $843C;
+ {$EXTERNALSYM GL_CURRENT_BINORMAL_EXT}
+ GL_TANGENT_ARRAY_TYPE_EXT = $843E;
+ {$EXTERNALSYM GL_TANGENT_ARRAY_TYPE_EXT}
+ GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
+ {$EXTERNALSYM GL_TANGENT_ARRAY_STRIDE_EXT}
+ GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
+ {$EXTERNALSYM GL_BINORMAL_ARRAY_TYPE_EXT}
+ GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
+ {$EXTERNALSYM GL_BINORMAL_ARRAY_STRIDE_EXT}
+ GL_TANGENT_ARRAY_POINTER_EXT = $8442;
+ {$EXTERNALSYM GL_TANGENT_ARRAY_POINTER_EXT}
+ GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
+ {$EXTERNALSYM GL_BINORMAL_ARRAY_POINTER_EXT}
+ GL_MAP1_TANGENT_EXT = $8444;
+ {$EXTERNALSYM GL_MAP1_TANGENT_EXT}
+ GL_MAP2_TANGENT_EXT = $8445;
+ {$EXTERNALSYM GL_MAP2_TANGENT_EXT}
+ GL_MAP1_BINORMAL_EXT = $8446;
+ {$EXTERNALSYM GL_MAP1_BINORMAL_EXT}
+ GL_MAP2_BINORMAL_EXT = $8447;
+ {$EXTERNALSYM GL_MAP2_BINORMAL_EXT}
+
+ // GL_EXT_texture_env_combine
+ GL_SOURCE3_RGB_EXT = $8583;
+ {$EXTERNALSYM GL_SOURCE3_RGB_EXT}
+ GL_SOURCE4_RGB_EXT = $8584;
+ {$EXTERNALSYM GL_SOURCE4_RGB_EXT}
+ GL_SOURCE5_RGB_EXT = $8585;
+ {$EXTERNALSYM GL_SOURCE5_RGB_EXT}
+ GL_SOURCE6_RGB_EXT = $8586;
+ {$EXTERNALSYM GL_SOURCE6_RGB_EXT}
+ GL_SOURCE7_RGB_EXT = $8587;
+ {$EXTERNALSYM GL_SOURCE7_RGB_EXT}
+ GL_SOURCE3_ALPHA_EXT = $858B;
+ {$EXTERNALSYM GL_SOURCE3_ALPHA_EXT}
+ GL_SOURCE4_ALPHA_EXT = $858C;
+ {$EXTERNALSYM GL_SOURCE4_ALPHA_EXT}
+ GL_SOURCE5_ALPHA_EXT = $858D;
+ {$EXTERNALSYM GL_SOURCE5_ALPHA_EXT}
+ GL_SOURCE6_ALPHA_EXT = $858E;
+ {$EXTERNALSYM GL_SOURCE6_ALPHA_EXT}
+ GL_SOURCE7_ALPHA_EXT = $858F;
+ {$EXTERNALSYM GL_SOURCE7_ALPHA_EXT}
+ GL_OPERAND3_RGB_EXT = $8593;
+ {$EXTERNALSYM GL_OPERAND3_RGB_EXT}
+ GL_OPERAND4_RGB_EXT = $8594;
+ {$EXTERNALSYM GL_OPERAND4_RGB_EXT}
+ GL_OPERAND5_RGB_EXT = $8595;
+ {$EXTERNALSYM GL_OPERAND5_RGB_EXT}
+ GL_OPERAND6_RGB_EXT = $8596;
+ {$EXTERNALSYM GL_OPERAND6_RGB_EXT}
+ GL_OPERAND7_RGB_EXT = $8597;
+ {$EXTERNALSYM GL_OPERAND7_RGB_EXT}
+ GL_OPERAND3_ALPHA_EXT = $859B;
+ {$EXTERNALSYM GL_OPERAND3_ALPHA_EXT}
+ GL_OPERAND4_ALPHA_EXT = $859C;
+ {$EXTERNALSYM GL_OPERAND4_ALPHA_EXT}
+ GL_OPERAND5_ALPHA_EXT = $859D;
+ {$EXTERNALSYM GL_OPERAND5_ALPHA_EXT}
+ GL_OPERAND6_ALPHA_EXT = $859E;
+ {$EXTERNALSYM GL_OPERAND6_ALPHA_EXT}
+ GL_OPERAND7_ALPHA_EXT = $859F;
+ {$EXTERNALSYM GL_OPERAND7_ALPHA_EXT}
+
+ // GL_APPLE_specular_vector
+ GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
+ {$EXTERNALSYM GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE}
+
+ // GL_APPLE_transform_hint
+ GL_TRANSFORM_HINT_APPLE = $85B1;
+ {$EXTERNALSYM GL_TRANSFORM_HINT_APPLE}
+
+ // GL_SGIX_fog_scale
+ GL_FOG_SCALE_SGIX = $81FC;
+ {$EXTERNALSYM GL_FOG_SCALE_SGIX}
+ GL_FOG_SCALE_VALUE_SGIX = $81FD;
+ {$EXTERNALSYM GL_FOG_SCALE_VALUE_SGIX}
+
+ // GL_SUNX_constant_data
+ GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
+ {$EXTERNALSYM GL_UNPACK_CONSTANT_DATA_SUNX}
+ GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
+ {$EXTERNALSYM GL_TEXTURE_CONSTANT_DATA_SUNX}
+
+ // GL_SUN_global_alpha
+ GL_GLOBAL_ALPHA_SUN = $81D9;
+ {$EXTERNALSYM GL_GLOBAL_ALPHA_SUN}
+ GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
+ {$EXTERNALSYM GL_GLOBAL_ALPHA_FACTOR_SUN}
+
+ // GL_SUN_triangle_list
+ GL_RESTART_SUN = $01;
+ {$EXTERNALSYM GL_RESTART_SUN}
+ GL_REPLACE_MIDDLE_SUN = $02;
+ {$EXTERNALSYM GL_REPLACE_MIDDLE_SUN}
+ GL_REPLACE_OLDEST_SUN = $03;
+ {$EXTERNALSYM GL_REPLACE_OLDEST_SUN}
+ GL_TRIANGLE_LIST_SUN = $81D7;
+ {$EXTERNALSYM GL_TRIANGLE_LIST_SUN}
+ GL_REPLACEMENT_CODE_SUN = $81D8;
+ {$EXTERNALSYM GL_REPLACEMENT_CODE_SUN}
+ GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
+ {$EXTERNALSYM GL_REPLACEMENT_CODE_ARRAY_SUN}
+ GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
+ {$EXTERNALSYM GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN}
+ GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
+ {$EXTERNALSYM GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN}
+ GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
+ {$EXTERNALSYM GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN}
+ GL_R1UI_V3F_SUN = $85C4;
+ {$EXTERNALSYM GL_R1UI_V3F_SUN}
+ GL_R1UI_C4UB_V3F_SUN = $85C5;
+ {$EXTERNALSYM GL_R1UI_C4UB_V3F_SUN}
+ GL_R1UI_C3F_V3F_SUN = $85C6;
+ {$EXTERNALSYM GL_R1UI_C3F_V3F_SUN}
+ GL_R1UI_N3F_V3F_SUN = $85C7;
+ {$EXTERNALSYM GL_R1UI_N3F_V3F_SUN}
+ GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
+ {$EXTERNALSYM GL_R1UI_C4F_N3F_V3F_SUN}
+ GL_R1UI_T2F_V3F_SUN = $85C9;
+ {$EXTERNALSYM GL_R1UI_T2F_V3F_SUN}
+ GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
+ {$EXTERNALSYM GL_R1UI_T2F_N3F_V3F_SUN}
+ GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
+ {$EXTERNALSYM GL_R1UI_T2F_C4F_N3F_V3F_SUN}
+
+ // GL_EXT_blend_func_separate
+ GL_BLEND_DST_RGB_EXT = $80C8;
+ {$EXTERNALSYM GL_BLEND_DST_RGB_EXT}
+ GL_BLEND_SRC_RGB_EXT = $80C9;
+ {$EXTERNALSYM GL_BLEND_SRC_RGB_EXT}
+ GL_BLEND_DST_ALPHA_EXT = $80CA;
+ {$EXTERNALSYM GL_BLEND_DST_ALPHA_EXT}
+ GL_BLEND_SRC_ALPHA_EXT = $80CB;
+ {$EXTERNALSYM GL_BLEND_SRC_ALPHA_EXT}
+
+ // GL_INGR_color_clamp
+ GL_RED_MIN_CLAMP_INGR = $8560;
+ {$EXTERNALSYM GL_RED_MIN_CLAMP_INGR}
+ GL_GREEN_MIN_CLAMP_INGR = $8561;
+ {$EXTERNALSYM GL_GREEN_MIN_CLAMP_INGR}
+ GL_BLUE_MIN_CLAMP_INGR = $8562;
+ {$EXTERNALSYM GL_BLUE_MIN_CLAMP_INGR}
+ GL_ALPHA_MIN_CLAMP_INGR = $8563;
+ {$EXTERNALSYM GL_ALPHA_MIN_CLAMP_INGR}
+ GL_RED_MAX_CLAMP_INGR = $8564;
+ {$EXTERNALSYM GL_RED_MAX_CLAMP_INGR}
+ GL_GREEN_MAX_CLAMP_INGR = $8565;
+ {$EXTERNALSYM GL_GREEN_MAX_CLAMP_INGR}
+ GL_BLUE_MAX_CLAMP_INGR = $8566;
+ {$EXTERNALSYM GL_BLUE_MAX_CLAMP_INGR}
+ GL_ALPHA_MAX_CLAMP_INGR = $8567;
+ {$EXTERNALSYM GL_ALPHA_MAX_CLAMP_INGR}
+
+ // GL_INGR_interlace_read
+ GL_INTERLACE_READ_INGR = $8568;
+ {$EXTERNALSYM GL_INTERLACE_READ_INGR}
+
+ // GL_EXT_422_pixels
+ GL_422_EXT = $80CC;
+ {$EXTERNALSYM GL_422_EXT}
+ GL_422_REV_EXT = $80CD;
+ {$EXTERNALSYM GL_422_REV_EXT}
+ GL_422_AVERAGE_EXT = $80CE;
+ {$EXTERNALSYM GL_422_AVERAGE_EXT}
+ GL_422_REV_AVERAGE_EXT = $80CF;
+ {$EXTERNALSYM GL_422_REV_AVERAGE_EXT}
+
+ // GL_EXT_texture_cube_map
+ GL_NORMAL_MAP_EXT = $8511;
+ {$EXTERNALSYM GL_NORMAL_MAP_EXT}
+ GL_REFLECTION_MAP_EXT = $8512;
+ {$EXTERNALSYM GL_REFLECTION_MAP_EXT}
+ GL_TEXTURE_CUBE_MAP_EXT = $8513;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_EXT}
+ GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
+ {$EXTERNALSYM GL_TEXTURE_BINDING_CUBE_MAP_EXT}
+ GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT}
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT}
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT}
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT}
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT}
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
+ {$EXTERNALSYM GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT}
+ GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
+ {$EXTERNALSYM GL_PROXY_TEXTURE_CUBE_MAP_EXT}
+ GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
+ {$EXTERNALSYM GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT}
+
+ // GL_SUN_convolution_border_modes
+ GL_WRAP_BORDER_SUN = $81D4;
+ {$EXTERNALSYM GL_WRAP_BORDER_SUN}
+
+ // GL_EXT_texture_lod_bias
+ GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
+ {$EXTERNALSYM GL_MAX_TEXTURE_LOD_BIAS_EXT}
+ GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
+ {$EXTERNALSYM GL_TEXTURE_FILTER_CONTROL_EXT}
+ GL_TEXTURE_LOD_BIAS_EXT = $8501;
+ {$EXTERNALSYM GL_TEXTURE_LOD_BIAS_EXT}
+
+ // GL_EXT_texture_filter_anisotropic
+ GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
+ {$EXTERNALSYM GL_TEXTURE_MAX_ANISOTROPY_EXT}
+ GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
+ {$EXTERNALSYM GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT}
+
+ // GL_EXT_vertex_weighting
+ GL_MODELVIEW0_STACK_DEPTH_EXT = GL_MODELVIEW_STACK_DEPTH;
+ {$EXTERNALSYM GL_MODELVIEW0_STACK_DEPTH_EXT}
+ GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
+ {$EXTERNALSYM GL_MODELVIEW1_STACK_DEPTH_EXT}
+ GL_MODELVIEW0_MATRIX_EXT = GL_MODELVIEW_MATRIX;
+ {$EXTERNALSYM GL_MODELVIEW0_MATRIX_EXT}
+ GL_MODELVIEW_MATRIX1_EXT = $8506;
+ {$EXTERNALSYM GL_MODELVIEW_MATRIX1_EXT}
+ GL_VERTEX_WEIGHTING_EXT = $8509;
+ {$EXTERNALSYM GL_VERTEX_WEIGHTING_EXT}
+ GL_MODELVIEW0_EXT = GL_MODELVIEW;
+ {$EXTERNALSYM GL_MODELVIEW0_EXT}
+ GL_MODELVIEW1_EXT = $850A;
+ {$EXTERNALSYM GL_MODELVIEW1_EXT}
+ GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
+ {$EXTERNALSYM GL_CURRENT_VERTEX_WEIGHT_EXT}
+ GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
+ {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_EXT}
+ GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
+ {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT}
+ GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
+ {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT}
+ GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
+ {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT}
+ GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
+ {$EXTERNALSYM GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT}
+
+ // GL_NV_light_max_exponent
+ GL_MAX_SHININESS_NV = $8504;
+ {$EXTERNALSYM GL_MAX_SHININESS_NV}
+ GL_MAX_SPOT_EXPONENT_NV = $8505;
+ {$EXTERNALSYM GL_MAX_SPOT_EXPONENT_NV}
+
+ // GL_NV_vertex_array_range
+ GL_VERTEX_ARRAY_RANGE_NV = $851D;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_RANGE_NV}
+ GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_RANGE_LENGTH_NV}
+ GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_RANGE_VALID_NV}
+ GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
+ {$EXTERNALSYM GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV}
+ GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_RANGE_POINTER_NV}
+
+ // GL_NV_register_combiners
+ GL_REGISTER_COMBINERS_NV = $8522;
+ {$EXTERNALSYM GL_REGISTER_COMBINERS_NV}
+ GL_VARIABLE_A_NV = $8523;
+ {$EXTERNALSYM GL_VARIABLE_A_NV}
+ GL_VARIABLE_B_NV = $8524;
+ {$EXTERNALSYM GL_VARIABLE_B_NV}
+ GL_VARIABLE_C_NV = $8525;
+ {$EXTERNALSYM GL_VARIABLE_C_NV}
+ GL_VARIABLE_D_NV = $8526;
+ {$EXTERNALSYM GL_VARIABLE_D_NV}
+ GL_VARIABLE_E_NV = $8527;
+ {$EXTERNALSYM GL_VARIABLE_E_NV}
+ GL_VARIABLE_F_NV = $8528;
+ {$EXTERNALSYM GL_VARIABLE_F_NV}
+ GL_VARIABLE_G_NV = $8529;
+ {$EXTERNALSYM GL_VARIABLE_G_NV}
+ GL_CONSTANT_COLOR0_NV = $852A;
+ {$EXTERNALSYM GL_CONSTANT_COLOR0_NV}
+ GL_CONSTANT_COLOR1_NV = $852B;
+ {$EXTERNALSYM GL_CONSTANT_COLOR1_NV}
+ GL_PRIMARY_COLOR_NV = $852C;
+ {$EXTERNALSYM GL_PRIMARY_COLOR_NV}
+ GL_SECONDARY_COLOR_NV = $852D;
+ {$EXTERNALSYM GL_SECONDARY_COLOR_NV}
+ GL_SPARE0_NV = $852E;
+ {$EXTERNALSYM GL_SPARE0_NV}
+ GL_SPARE1_NV = $852F;
+ {$EXTERNALSYM GL_SPARE1_NV}
+ GL_DISCARD_NV = $8530;
+ {$EXTERNALSYM GL_DISCARD_NV}
+ GL_E_TIMES_F_NV = $8531;
+ {$EXTERNALSYM GL_E_TIMES_F_NV}
+ GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
+ {$EXTERNALSYM GL_SPARE0_PLUS_SECONDARY_COLOR_NV}
+ GL_UNSIGNED_IDENTITY_NV = $8536;
+ {$EXTERNALSYM GL_UNSIGNED_IDENTITY_NV}
+ GL_UNSIGNED_INVERT_NV = $8537;
+ {$EXTERNALSYM GL_UNSIGNED_INVERT_NV}
+ GL_EXPAND_NORMAL_NV = $8538;
+ {$EXTERNALSYM GL_EXPAND_NORMAL_NV}
+ GL_EXPAND_NEGATE_NV = $8539;
+ {$EXTERNALSYM GL_EXPAND_NEGATE_NV}
+ GL_HALF_BIAS_NORMAL_NV = $853A;
+ {$EXTERNALSYM GL_HALF_BIAS_NORMAL_NV}
+ GL_HALF_BIAS_NEGATE_NV = $853B;
+ {$EXTERNALSYM GL_HALF_BIAS_NEGATE_NV}
+ GL_SIGNED_IDENTITY_NV = $853C;
+ {$EXTERNALSYM GL_SIGNED_IDENTITY_NV}
+ GL_SIGNED_NEGATE_NV = $853D;
+ {$EXTERNALSYM GL_SIGNED_NEGATE_NV}
+ GL_SCALE_BY_TWO_NV = $853E;
+ {$EXTERNALSYM GL_SCALE_BY_TWO_NV}
+ GL_SCALE_BY_FOUR_NV = $853F;
+ {$EXTERNALSYM GL_SCALE_BY_FOUR_NV}
+ GL_SCALE_BY_ONE_HALF_NV = $8540;
+ {$EXTERNALSYM GL_SCALE_BY_ONE_HALF_NV}
+ GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
+ {$EXTERNALSYM GL_BIAS_BY_NEGATIVE_ONE_HALF_NV}
+ GL_COMBINER_INPUT_NV = $8542;
+ {$EXTERNALSYM GL_COMBINER_INPUT_NV}
+ GL_COMBINER_MAPPING_NV = $8543;
+ {$EXTERNALSYM GL_COMBINER_MAPPING_NV}
+ GL_COMBINER_COMPONENT_USAGE_NV = $8544;
+ {$EXTERNALSYM GL_COMBINER_COMPONENT_USAGE_NV}
+ GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
+ {$EXTERNALSYM GL_COMBINER_AB_DOT_PRODUCT_NV}
+ GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
+ {$EXTERNALSYM GL_COMBINER_CD_DOT_PRODUCT_NV}
+ GL_COMBINER_MUX_SUM_NV = $8547;
+ {$EXTERNALSYM GL_COMBINER_MUX_SUM_NV}
+ GL_COMBINER_SCALE_NV = $8548;
+ {$EXTERNALSYM GL_COMBINER_SCALE_NV}
+ GL_COMBINER_BIAS_NV = $8549;
+ {$EXTERNALSYM GL_COMBINER_BIAS_NV}
+ GL_COMBINER_AB_OUTPUT_NV = $854A;
+ {$EXTERNALSYM GL_COMBINER_AB_OUTPUT_NV}
+ GL_COMBINER_CD_OUTPUT_NV = $854B;
+ {$EXTERNALSYM GL_COMBINER_CD_OUTPUT_NV}
+ GL_COMBINER_SUM_OUTPUT_NV = $854C;
+ {$EXTERNALSYM GL_COMBINER_SUM_OUTPUT_NV}
+ GL_MAX_GENERAL_COMBINERS_NV = $854D;
+ {$EXTERNALSYM GL_MAX_GENERAL_COMBINERS_NV}
+ GL_NUM_GENERAL_COMBINERS_NV = $854E;
+ {$EXTERNALSYM GL_NUM_GENERAL_COMBINERS_NV}
+ GL_COLOR_SUM_CLAMP_NV = $854F;
+ {$EXTERNALSYM GL_COLOR_SUM_CLAMP_NV}
+ GL_COMBINER0_NV = $8550;
+ {$EXTERNALSYM GL_COMBINER0_NV}
+ GL_COMBINER1_NV = $8551;
+ {$EXTERNALSYM GL_COMBINER1_NV}
+ GL_COMBINER2_NV = $8552;
+ {$EXTERNALSYM GL_COMBINER2_NV}
+ GL_COMBINER3_NV = $8553;
+ {$EXTERNALSYM GL_COMBINER3_NV}
+ GL_COMBINER4_NV = $8554;
+ {$EXTERNALSYM GL_COMBINER4_NV}
+ GL_COMBINER5_NV = $8555;
+ {$EXTERNALSYM GL_COMBINER5_NV}
+ GL_COMBINER6_NV = $8556;
+ {$EXTERNALSYM GL_COMBINER6_NV}
+ GL_COMBINER7_NV = $8557;
+ {$EXTERNALSYM GL_COMBINER7_NV}
+
+ // GL_NV_fog_distance
+ GL_FOG_DISTANCE_MODE_NV = $855A;
+ {$EXTERNALSYM GL_FOG_DISTANCE_MODE_NV}
+ GL_EYE_RADIAL_NV = $855B;
+ {$EXTERNALSYM GL_EYE_RADIAL_NV}
+ GL_EYE_PLANE_ABSOLUTE_NV = $855C;
+ {$EXTERNALSYM GL_EYE_PLANE_ABSOLUTE_NV}
+
+ // GL_NV_texgen_emboss
+ GL_EMBOSS_LIGHT_NV = $855D;
+ {$EXTERNALSYM GL_EMBOSS_LIGHT_NV}
+ GL_EMBOSS_CONSTANT_NV = $855E;
+ {$EXTERNALSYM GL_EMBOSS_CONSTANT_NV}
+ GL_EMBOSS_MAP_NV = $855F;
+ {$EXTERNALSYM GL_EMBOSS_MAP_NV}
+
+ // GL_EXT_texture_compression_s3tc
+ GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
+ {$EXTERNALSYM GL_COMPRESSED_RGB_S3TC_DXT1_EXT}
+ GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
+ {$EXTERNALSYM GL_COMPRESSED_RGBA_S3TC_DXT1_EXT}
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
+ {$EXTERNALSYM GL_COMPRESSED_RGBA_S3TC_DXT3_EXT}
+ GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
+ {$EXTERNALSYM GL_COMPRESSED_RGBA_S3TC_DXT5_EXT}
+
+ // GL_IBM_cull_vertex
+ GL_CULL_VERTEX_IBM = 103050;
+ {$EXTERNALSYM GL_CULL_VERTEX_IBM}
+
+ // GL_IBM_vertex_array_lists
+ GL_VERTEX_ARRAY_LIST_IBM = 103070;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_LIST_IBM}
+ GL_NORMAL_ARRAY_LIST_IBM = 103071;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_LIST_IBM}
+ GL_COLOR_ARRAY_LIST_IBM = 103072;
+ {$EXTERNALSYM GL_COLOR_ARRAY_LIST_IBM}
+ GL_INDEX_ARRAY_LIST_IBM = 103073;
+ {$EXTERNALSYM GL_INDEX_ARRAY_LIST_IBM}
+ GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_LIST_IBM}
+ GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_LIST_IBM}
+ GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
+ {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_LIST_IBM}
+ GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
+ {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_LIST_IBM}
+ GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
+ {$EXTERNALSYM GL_VERTEX_ARRAY_LIST_STRIDE_IBM}
+ GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
+ {$EXTERNALSYM GL_NORMAL_ARRAY_LIST_STRIDE_IBM}
+ GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
+ {$EXTERNALSYM GL_COLOR_ARRAY_LIST_STRIDE_IBM}
+ GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
+ {$EXTERNALSYM GL_INDEX_ARRAY_LIST_STRIDE_IBM}
+ GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
+ {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM}
+ GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
+ {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM}
+ GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
+ {$EXTERNALSYM GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM}
+ GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
+ {$EXTERNALSYM GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM}
+
+ // GL_SGIX_subsample
+ GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
+ {$EXTERNALSYM GL_PACK_SUBSAMPLE_RATE_SGIX}
+ GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
+ {$EXTERNALSYM GL_UNPACK_SUBSAMPLE_RATE_SGIX}
+ GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
+ {$EXTERNALSYM GL_PIXEL_SUBSAMPLE_4444_SGIX}
+ GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
+ {$EXTERNALSYM GL_PIXEL_SUBSAMPLE_2424_SGIX}
+ GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
+ {$EXTERNALSYM GL_PIXEL_SUBSAMPLE_4242_SGIX}
+
+ // GL_SGIX_ycrcba
+ GL_YCRCB_SGIX = $8318;
+ {$EXTERNALSYM GL_YCRCB_SGIX}
+ GL_YCRCBA_SGIX = $8319;
+ {$EXTERNALSYM GL_YCRCBA_SGIX}
+
+ // GL_SGI_depth_pass_instrument
+ GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
+ {$EXTERNALSYM GL_DEPTH_PASS_INSTRUMENT_SGIX}
+ GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
+ {$EXTERNALSYM GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX}
+ GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
+ {$EXTERNALSYM GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX}
+
+ // GL_3DFX_texture_compression_FXT1
+ GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
+ {$EXTERNALSYM GL_COMPRESSED_RGB_FXT1_3DFX}
+ GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
+ {$EXTERNALSYM GL_COMPRESSED_RGBA_FXT1_3DFX}
+
+ // GL_3DFX_multisample
+ GL_MULTISAMPLE_3DFX = $86B2;
+ {$EXTERNALSYM GL_MULTISAMPLE_3DFX}
+ GL_SAMPLE_BUFFERS_3DFX = $86B3;
+ {$EXTERNALSYM GL_SAMPLE_BUFFERS_3DFX}
+ GL_SAMPLES_3DFX = $86B4;
+ {$EXTERNALSYM GL_SAMPLES_3DFX}
+ GL_MULTISAMPLE_BIT_3DFX = $20000000;
+ {$EXTERNALSYM GL_MULTISAMPLE_BIT_3DFX}
+
+ // GL_EXT_multisample
+ GL_MULTISAMPLE_EXT = $809D;
+ {$EXTERNALSYM GL_MULTISAMPLE_EXT}
+ GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
+ {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_MASK_EXT}
+ GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
+ {$EXTERNALSYM GL_SAMPLE_ALPHA_TO_ONE_EXT}
+ GL_SAMPLE_MASK_EXT = $80A0;
+ {$EXTERNALSYM GL_SAMPLE_MASK_EXT}
+ GL_1PASS_EXT = $80A1;
+ {$EXTERNALSYM GL_1PASS_EXT}
+ GL_2PASS_0_EXT = $80A2;
+ {$EXTERNALSYM GL_2PASS_0_EXT}
+ GL_2PASS_1_EXT = $80A3;
+ {$EXTERNALSYM GL_2PASS_1_EXT}
+ GL_4PASS_0_EXT = $80A4;
+ {$EXTERNALSYM GL_4PASS_0_EXT}
+ GL_4PASS_1_EXT = $80A5;
+ {$EXTERNALSYM GL_4PASS_1_EXT}
+ GL_4PASS_2_EXT = $80A6;
+ {$EXTERNALSYM GL_4PASS_2_EXT}
+ GL_4PASS_3_EXT = $80A7;
+ {$EXTERNALSYM GL_4PASS_3_EXT}
+ GL_SAMPLE_BUFFERS_EXT = $80A8;
+ {$EXTERNALSYM GL_SAMPLE_BUFFERS_EXT}
+ GL_SAMPLES_EXT = $80A9;
+ {$EXTERNALSYM GL_SAMPLES_EXT}
+ GL_SAMPLE_MASK_VALUE_EXT = $80AA;
+ {$EXTERNALSYM GL_SAMPLE_MASK_VALUE_EXT}
+ GL_SAMPLE_MASK_INVERT_EXT = $80AB;
+ {$EXTERNALSYM GL_SAMPLE_MASK_INVERT_EXT}
+ GL_SAMPLE_PATTERN_EXT = $80AC;
+ {$EXTERNALSYM GL_SAMPLE_PATTERN_EXT}
+
+ // GL_SGIX_vertex_preclip
+ GL_VERTEX_PRECLIP_SGIX = $83EE;
+ {$EXTERNALSYM GL_VERTEX_PRECLIP_SGIX}
+ GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
+ {$EXTERNALSYM GL_VERTEX_PRECLIP_HINT_SGIX}
+
+ // GL_SGIX_convolution_accuracy
+ GL_CONVOLUTION_HINT_SGIX = $8316;
+ {$EXTERNALSYM GL_CONVOLUTION_HINT_SGIX}
+
+ // GL_SGIX_resample
+ GL_PACK_RESAMPLE_SGIX = $842C;
+ {$EXTERNALSYM GL_PACK_RESAMPLE_SGIX}
+ GL_UNPACK_RESAMPLE_SGIX = $842D;
+ {$EXTERNALSYM GL_UNPACK_RESAMPLE_SGIX}
+ GL_RESAMPLE_REPLICATE_SGIX = $842E;
+ {$EXTERNALSYM GL_RESAMPLE_REPLICATE_SGIX}
+ GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
+ {$EXTERNALSYM GL_RESAMPLE_ZERO_FILL_SGIX}
+ GL_RESAMPLE_DECIMATE_SGIX = $8430;
+ {$EXTERNALSYM GL_RESAMPLE_DECIMATE_SGIX}
+
+ // GL_SGIS_point_line_texgen
+ GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
+ {$EXTERNALSYM GL_EYE_DISTANCE_TO_POINT_SGIS}
+ GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
+ {$EXTERNALSYM GL_OBJECT_DISTANCE_TO_POINT_SGIS}
+ GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
+ {$EXTERNALSYM GL_EYE_DISTANCE_TO_LINE_SGIS}
+ GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
+ {$EXTERNALSYM GL_OBJECT_DISTANCE_TO_LINE_SGIS}
+ GL_EYE_POINT_SGIS = $81F4;
+ {$EXTERNALSYM GL_EYE_POINT_SGIS}
+ GL_OBJECT_POINT_SGIS = $81F5;
+ {$EXTERNALSYM GL_OBJECT_POINT_SGIS}
+ GL_EYE_LINE_SGIS = $81F6;
+ {$EXTERNALSYM GL_EYE_LINE_SGIS}
+ GL_OBJECT_LINE_SGIS = $81F7;
+ {$EXTERNALSYM GL_OBJECT_LINE_SGIS}
+
+ // GL_SGIS_texture_color_mask
+ GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
+ {$EXTERNALSYM GL_TEXTURE_COLOR_WRITEMASK_SGIS}
+
+ // GL_NV_vertex_program
+ GL_VERTEX_PROGRAM_NV = $8620;
+ {$EXTERNALSYM GL_VERTEX_PROGRAM_NV}
+ GL_VERTEX_STATE_PROGRAM_NV = $8621;
+ {$EXTERNALSYM GL_VERTEX_STATE_PROGRAM_NV}
+ GL_ATTRIB_ARRAY_SIZE_NV = $8623;
+ {$EXTERNALSYM GL_ATTRIB_ARRAY_SIZE_NV}
+ GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
+ {$EXTERNALSYM GL_ATTRIB_ARRAY_STRIDE_NV}
+ GL_ATTRIB_ARRAY_TYPE_NV = $8625;
+ {$EXTERNALSYM GL_ATTRIB_ARRAY_TYPE_NV}
+ GL_CURRENT_ATTRIB_NV = $8626;
+ {$EXTERNALSYM GL_CURRENT_ATTRIB_NV}
+ GL_PROGRAM_LENGTH_NV = $8627;
+ {$EXTERNALSYM GL_PROGRAM_LENGTH_NV}
+ GL_PROGRAM_STRING_NV = $8628;
+ {$EXTERNALSYM GL_PROGRAM_STRING_NV}
+ GL_MODELVIEW_PROJECTION_NV = $8629;
+ {$EXTERNALSYM GL_MODELVIEW_PROJECTION_NV}
+ GL_IDENTITY_NV = $862A;
+ {$EXTERNALSYM GL_IDENTITY_NV}
+ GL_INVERSE_NV = $862B;
+ {$EXTERNALSYM GL_INVERSE_NV}
+ GL_TRANSPOSE_NV = $862C;
+ {$EXTERNALSYM GL_TRANSPOSE_NV}
+ GL_INVERSE_TRANSPOSE_NV = $862D;
+ {$EXTERNALSYM GL_INVERSE_TRANSPOSE_NV}
+ GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
+ {$EXTERNALSYM GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV}
+ GL_MAX_TRACK_MATRICES_NV = $862F;
+ {$EXTERNALSYM GL_MAX_TRACK_MATRICES_NV}
+ GL_MATRIX0_NV = $8630;
+ {$EXTERNALSYM GL_MATRIX0_NV}
+ GL_MATRIX1_NV = $8631;
+ {$EXTERNALSYM GL_MATRIX1_NV}
+ GL_MATRIX2_NV = $8632;
+ {$EXTERNALSYM GL_MATRIX2_NV}
+ GL_MATRIX3_NV = $8633;
+ {$EXTERNALSYM GL_MATRIX3_NV}
+ GL_MATRIX4_NV = $8634;
+ {$EXTERNALSYM GL_MATRIX4_NV}
+ GL_MATRIX5_NV = $8635;
+ {$EXTERNALSYM GL_MATRIX5_NV}
+ GL_MATRIX6_NV = $8636;
+ {$EXTERNALSYM GL_MATRIX6_NV}
+ GL_MATRIX7_NV = $8637;
+ {$EXTERNALSYM GL_MATRIX7_NV}
+ GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
+ {$EXTERNALSYM GL_CURRENT_MATRIX_STACK_DEPTH_NV}
+ GL_CURRENT_MATRIX_NV = $8641;
+ {$EXTERNALSYM GL_CURRENT_MATRIX_NV}
+ GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
+ {$EXTERNALSYM GL_VERTEX_PROGRAM_POINT_SIZE_NV}
+ GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
+ {$EXTERNALSYM GL_VERTEX_PROGRAM_TWO_SIDE_NV}
+ GL_PROGRAM_PARAMETER_NV = $8644;
+ {$EXTERNALSYM GL_PROGRAM_PARAMETER_NV}
+ GL_ATTRIB_ARRAY_POINTER_NV = $8645;
+ {$EXTERNALSYM GL_ATTRIB_ARRAY_POINTER_NV}
+ GL_PROGRAM_TARGET_NV = $8646;
+ {$EXTERNALSYM GL_PROGRAM_TARGET_NV}
+ GL_PROGRAM_RESIDENT_NV = $8647;
+ {$EXTERNALSYM GL_PROGRAM_RESIDENT_NV}
+ GL_TRACK_MATRIX_NV = $8648;
+ {$EXTERNALSYM GL_TRACK_MATRIX_NV}
+ GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
+ {$EXTERNALSYM GL_TRACK_MATRIX_TRANSFORM_NV}
+ GL_VERTEX_PROGRAM_BINDING_NV = $864A;
+ {$EXTERNALSYM GL_VERTEX_PROGRAM_BINDING_NV}
+ GL_PROGRAM_ERROR_POSITION_NV = $864B;
+ {$EXTERNALSYM GL_PROGRAM_ERROR_POSITION_NV}
+ GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY0_NV}
+ GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY1_NV}
+ GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY2_NV}
+ GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY3_NV}
+ GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY4_NV}
+ GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY5_NV}
+ GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY6_NV}
+ GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY7_NV}
+ GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY8_NV}
+ GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY9_NV}
+ GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY10_NV}
+ GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY11_NV}
+ GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY12_NV}
+ GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY13_NV}
+ GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY14_NV}
+ GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
+ {$EXTERNALSYM GL_VERTEX_ATTRIB_ARRAY15_NV}
+ GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB0_4_NV}
+ GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB1_4_NV}
+ GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB2_4_NV}
+ GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB3_4_NV}
+ GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB4_4_NV}
+ GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB5_4_NV}
+ GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB6_4_NV}
+ GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB7_4_NV}
+ GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB8_4_NV}
+ GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB9_4_NV}
+ GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB10_4_NV}
+ GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB11_4_NV}
+ GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB12_4_NV}
+ GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB13_4_NV}
+ GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB14_4_NV}
+ GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
+ {$EXTERNALSYM GL_MAP1_VERTEX_ATTRIB15_4_NV}
+ GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB0_4_NV}
+ GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB1_4_NV}
+ GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB2_4_NV}
+ GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB3_4_NV}
+ GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB4_4_NV}
+ GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB5_4_NV}
+ GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB6_4_NV}
+ GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB7_4_NV}
+ GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB8_4_NV}
+ GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB9_4_NV}
+ GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB10_4_NV}
+ GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB11_4_NV}
+ GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB12_4_NV}
+ GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB13_4_NV}
+ GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB14_4_NV}
+ GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
+ {$EXTERNALSYM GL_MAP2_VERTEX_ATTRIB15_4_NV}
+
+ // WGL_ARB_pixel_format
+ WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
+ {$EXTERNALSYM WGL_NUMBER_PIXEL_FORMATS_ARB}
+ WGL_DRAW_TO_WINDOW_ARB = $2001;
+ {$EXTERNALSYM WGL_DRAW_TO_WINDOW_ARB}
+ WGL_DRAW_TO_BITMAP_ARB = $2002;
+ {$EXTERNALSYM WGL_DRAW_TO_BITMAP_ARB}
+ WGL_ACCELERATION_ARB = $2003;
+ {$EXTERNALSYM WGL_ACCELERATION_ARB}
+ WGL_NEED_PALETTE_ARB = $2004;
+ {$EXTERNALSYM WGL_NEED_PALETTE_ARB}
+ WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
+ {$EXTERNALSYM WGL_NEED_SYSTEM_PALETTE_ARB}
+ WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
+ {$EXTERNALSYM WGL_SWAP_LAYER_BUFFERS_ARB}
+ WGL_SWAP_METHOD_ARB = $2007;
+ {$EXTERNALSYM WGL_SWAP_METHOD_ARB}
+ WGL_NUMBER_OVERLAYS_ARB = $2008;
+ {$EXTERNALSYM WGL_NUMBER_OVERLAYS_ARB}
+ WGL_NUMBER_UNDERLAYS_ARB = $2009;
+ {$EXTERNALSYM WGL_NUMBER_UNDERLAYS_ARB}
+ WGL_TRANSPARENT_ARB = $200A;
+ {$EXTERNALSYM WGL_TRANSPARENT_ARB}
+ WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
+ {$EXTERNALSYM WGL_TRANSPARENT_RED_VALUE_ARB}
+ WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
+ {$EXTERNALSYM WGL_TRANSPARENT_GREEN_VALUE_ARB}
+ WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
+ {$EXTERNALSYM WGL_TRANSPARENT_BLUE_VALUE_ARB}
+ WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
+ {$EXTERNALSYM WGL_TRANSPARENT_ALPHA_VALUE_ARB}
+ WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
+ {$EXTERNALSYM WGL_TRANSPARENT_INDEX_VALUE_ARB}
+ WGL_SHARE_DEPTH_ARB = $200C;
+ {$EXTERNALSYM WGL_SHARE_DEPTH_ARB}
+ WGL_SHARE_STENCIL_ARB = $200D;
+ {$EXTERNALSYM WGL_SHARE_STENCIL_ARB}
+ WGL_SHARE_ACCUM_ARB = $200E;
+ {$EXTERNALSYM WGL_SHARE_ACCUM_ARB}
+ WGL_SUPPORT_GDI_ARB = $200F;
+ {$EXTERNALSYM WGL_SUPPORT_GDI_ARB}
+ WGL_SUPPORT_OPENGL_ARB = $2010;
+ {$EXTERNALSYM WGL_SUPPORT_OPENGL_ARB}
+ WGL_DOUBLE_BUFFER_ARB = $2011;
+ {$EXTERNALSYM WGL_DOUBLE_BUFFER_ARB}
+ WGL_STEREO_ARB = $2012;
+ {$EXTERNALSYM WGL_STEREO_ARB}
+ WGL_PIXEL_TYPE_ARB = $2013;
+ {$EXTERNALSYM WGL_PIXEL_TYPE_ARB}
+ WGL_COLOR_BITS_ARB = $2014;
+ {$EXTERNALSYM WGL_COLOR_BITS_ARB}
+ WGL_RED_BITS_ARB = $2015;
+ {$EXTERNALSYM WGL_RED_BITS_ARB}
+ WGL_RED_SHIFT_ARB = $2016;
+ {$EXTERNALSYM WGL_RED_SHIFT_ARB}
+ WGL_GREEN_BITS_ARB = $2017;
+ {$EXTERNALSYM WGL_GREEN_BITS_ARB}
+ WGL_GREEN_SHIFT_ARB = $2018;
+ {$EXTERNALSYM WGL_GREEN_SHIFT_ARB}
+ WGL_BLUE_BITS_ARB = $2019;
+ {$EXTERNALSYM WGL_BLUE_BITS_ARB}
+ WGL_BLUE_SHIFT_ARB = $201A;
+ {$EXTERNALSYM WGL_BLUE_SHIFT_ARB}
+ WGL_ALPHA_BITS_ARB = $201B;
+ {$EXTERNALSYM WGL_ALPHA_BITS_ARB}
+ WGL_ALPHA_SHIFT_ARB = $201C;
+ {$EXTERNALSYM WGL_ALPHA_SHIFT_ARB}
+ WGL_ACCUM_BITS_ARB = $201D;
+ {$EXTERNALSYM WGL_ACCUM_BITS_ARB}
+ WGL_ACCUM_RED_BITS_ARB = $201E;
+ {$EXTERNALSYM WGL_ACCUM_RED_BITS_ARB}
+ WGL_ACCUM_GREEN_BITS_ARB = $201F;
+ {$EXTERNALSYM WGL_ACCUM_GREEN_BITS_ARB}
+ WGL_ACCUM_BLUE_BITS_ARB = $2020;
+ {$EXTERNALSYM WGL_ACCUM_BLUE_BITS_ARB}
+ WGL_ACCUM_ALPHA_BITS_ARB = $2021;
+ {$EXTERNALSYM WGL_ACCUM_ALPHA_BITS_ARB}
+ WGL_DEPTH_BITS_ARB = $2022;
+ {$EXTERNALSYM WGL_DEPTH_BITS_ARB}
+ WGL_STENCIL_BITS_ARB = $2023;
+ {$EXTERNALSYM WGL_STENCIL_BITS_ARB}
+ WGL_AUX_BUFFERS_ARB = $2024;
+ {$EXTERNALSYM WGL_AUX_BUFFERS_ARB}
+ WGL_NO_ACCELERATION_ARB = $2025;
+ {$EXTERNALSYM WGL_NO_ACCELERATION_ARB}
+ WGL_GENERIC_ACCELERATION_ARB = $2026;
+ {$EXTERNALSYM WGL_GENERIC_ACCELERATION_ARB}
+ WGL_FULL_ACCELERATION_ARB = $2027;
+ {$EXTERNALSYM WGL_FULL_ACCELERATION_ARB}
+ WGL_SWAP_EXCHANGE_ARB = $2028;
+ {$EXTERNALSYM WGL_SWAP_EXCHANGE_ARB}
+ WGL_SWAP_COPY_ARB = $2029;
+ {$EXTERNALSYM WGL_SWAP_COPY_ARB}
+ WGL_SWAP_UNDEFINED_ARB = $202A;
+ {$EXTERNALSYM WGL_SWAP_UNDEFINED_ARB}
+ WGL_TYPE_RGBA_ARB = $202B;
+ {$EXTERNALSYM WGL_TYPE_RGBA_ARB}
+ WGL_TYPE_COLORINDEX_ARB = $202C;
+ {$EXTERNALSYM WGL_TYPE_COLORINDEX_ARB}
+
+
+ // ********** GLU generic constants **********
+
+ // Errors: (return value 0 = no error)
+ GLU_INVALID_ENUM = 100900;
+ {$EXTERNALSYM GLU_INVALID_ENUM}
+ GLU_INVALID_VALUE = 100901;
+ {$EXTERNALSYM GLU_INVALID_VALUE}
+ GLU_OUT_OF_MEMORY = 100902;
+ {$EXTERNALSYM GLU_OUT_OF_MEMORY}
+ GLU_INCOMPATIBLE_GL_VERSION = 100903;
+ {$EXTERNALSYM GLU_INCOMPATIBLE_GL_VERSION}
+
+ // StringName
+ GLU_VERSION = 100800;
+ {$EXTERNALSYM GLU_VERSION}
+ GLU_EXTENSIONS = 100801;
+ {$EXTERNALSYM GLU_EXTENSIONS}
+
+ // Boolean
+ GLU_TRUE = GL_TRUE;
+ {$EXTERNALSYM GLU_TRUE}
+ GLU_FALSE = GL_FALSE;
+ {$EXTERNALSYM GLU_FALSE}
+
+ // Quadric constants
+ // QuadricNormal
+ GLU_SMOOTH = 100000;
+ {$EXTERNALSYM GLU_SMOOTH}
+ GLU_FLAT = 100001;
+ {$EXTERNALSYM GLU_FLAT}
+ GLU_NONE = 100002;
+ {$EXTERNALSYM GLU_NONE}
+
+ // QuadricDrawStyle
+ GLU_POINT = 100010;
+ {$EXTERNALSYM GLU_POINT}
+ GLU_LINE = 100011;
+ {$EXTERNALSYM GLU_LINE}
+ GLU_FILL = 100012;
+ {$EXTERNALSYM GLU_FILL}
+ GLU_SILHOUETTE = 100013;
+ {$EXTERNALSYM GLU_SILHOUETTE}
+
+ // QuadricOrientation
+ GLU_OUTSIDE = 100020;
+ {$EXTERNALSYM GLU_OUTSIDE}
+ GLU_INSIDE = 100021;
+ {$EXTERNALSYM GLU_INSIDE}
+
+ // Tesselation constants
+ GLU_TESS_MAX_COORD = 1.0e150;
+ {$EXTERNALSYM GLU_TESS_MAX_COORD}
+
+ // TessProperty
+ GLU_TESS_WINDING_RULE = 100140;
+ {$EXTERNALSYM GLU_TESS_WINDING_RULE}
+ GLU_TESS_BOUNDARY_ONLY = 100141;
+ {$EXTERNALSYM GLU_TESS_BOUNDARY_ONLY}
+ GLU_TESS_TOLERANCE = 100142;
+ {$EXTERNALSYM GLU_TESS_TOLERANCE}
+
+ // TessWinding
+ GLU_TESS_WINDING_ODD = 100130;
+ {$EXTERNALSYM GLU_TESS_WINDING_ODD}
+ GLU_TESS_WINDING_NONZERO = 100131;
+ {$EXTERNALSYM GLU_TESS_WINDING_NONZERO}
+ GLU_TESS_WINDING_POSITIVE = 100132;
+ {$EXTERNALSYM GLU_TESS_WINDING_POSITIVE}
+ GLU_TESS_WINDING_NEGATIVE = 100133;
+ {$EXTERNALSYM GLU_TESS_WINDING_NEGATIVE}
+ GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
+ {$EXTERNALSYM GLU_TESS_WINDING_ABS_GEQ_TWO}
+
+ // TessCallback
+ GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
+ {$EXTERNALSYM GLU_TESS_BEGIN}
+ GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
+ {$EXTERNALSYM GLU_TESS_VERTEX}
+ GLU_TESS_END = 100102; // TGLUTessEndProc
+ {$EXTERNALSYM GLU_TESS_END}
+ GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
+ {$EXTERNALSYM GLU_TESS_ERROR}
+ GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
+ {$EXTERNALSYM GLU_TESS_EDGE_FLAG}
+ GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
+ {$EXTERNALSYM GLU_TESS_COMBINE}
+ GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
+ {$EXTERNALSYM GLU_TESS_BEGIN_DATA}
+ GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
+ {$EXTERNALSYM GLU_TESS_VERTEX_DATA}
+ GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
+ {$EXTERNALSYM GLU_TESS_END_DATA}
+ GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
+ {$EXTERNALSYM GLU_TESS_ERROR_DATA}
+ GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
+ {$EXTERNALSYM GLU_TESS_EDGE_FLAG_DATA}
+ GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
+ {$EXTERNALSYM GLU_TESS_COMBINE_DATA}
+
+ // TessError
+ GLU_TESS_ERROR1 = 100151;
+ {$EXTERNALSYM GLU_TESS_ERROR1}
+ GLU_TESS_ERROR2 = 100152;
+ {$EXTERNALSYM GLU_TESS_ERROR2}
+ GLU_TESS_ERROR3 = 100153;
+ {$EXTERNALSYM GLU_TESS_ERROR3}
+ GLU_TESS_ERROR4 = 100154;
+ {$EXTERNALSYM GLU_TESS_ERROR4}
+ GLU_TESS_ERROR5 = 100155;
+ {$EXTERNALSYM GLU_TESS_ERROR5}
+ GLU_TESS_ERROR6 = 100156;
+ {$EXTERNALSYM GLU_TESS_ERROR6}
+ GLU_TESS_ERROR7 = 100157;
+ {$EXTERNALSYM GLU_TESS_ERROR7}
+ GLU_TESS_ERROR8 = 100158;
+ {$EXTERNALSYM GLU_TESS_ERROR8}
+
+ GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
+ {$EXTERNALSYM GLU_TESS_MISSING_BEGIN_POLYGON}
+ GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
+ {$EXTERNALSYM GLU_TESS_MISSING_BEGIN_CONTOUR}
+ GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
+ {$EXTERNALSYM GLU_TESS_MISSING_END_POLYGON}
+ GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
+ {$EXTERNALSYM GLU_TESS_MISSING_END_CONTOUR}
+ GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
+ {$EXTERNALSYM GLU_TESS_COORD_TOO_LARGE}
+ GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
+ {$EXTERNALSYM GLU_TESS_NEED_COMBINE_CALLBACK}
+
+ // NURBS constants
+
+ // NurbsProperty
+ GLU_AUTO_LOAD_MATRIX = 100200;
+ {$EXTERNALSYM GLU_AUTO_LOAD_MATRIX}
+ GLU_CULLING = 100201;
+ {$EXTERNALSYM GLU_CULLING}
+ GLU_SAMPLING_TOLERANCE = 100203;
+ {$EXTERNALSYM GLU_SAMPLING_TOLERANCE}
+ GLU_DISPLAY_MODE = 100204;
+ {$EXTERNALSYM GLU_DISPLAY_MODE}
+ GLU_PARAMETRIC_TOLERANCE = 100202;
+ {$EXTERNALSYM GLU_PARAMETRIC_TOLERANCE}
+ GLU_SAMPLING_METHOD = 100205;
+ {$EXTERNALSYM GLU_SAMPLING_METHOD}
+ GLU_U_STEP = 100206;
+ {$EXTERNALSYM GLU_U_STEP}
+ GLU_V_STEP = 100207;
+ {$EXTERNALSYM GLU_V_STEP}
+
+ // NurbsSampling
+ GLU_PATH_LENGTH = 100215;
+ {$EXTERNALSYM GLU_PATH_LENGTH}
+ GLU_PARAMETRIC_ERROR = 100216;
+ {$EXTERNALSYM GLU_PARAMETRIC_ERROR}
+ GLU_DOMAIN_DISTANCE = 100217;
+ {$EXTERNALSYM GLU_DOMAIN_DISTANCE}
+
+ // NurbsTrim
+ GLU_MAP1_TRIM_2 = 100210;
+ {$EXTERNALSYM GLU_MAP1_TRIM_2}
+ GLU_MAP1_TRIM_3 = 100211;
+ {$EXTERNALSYM GLU_MAP1_TRIM_3}
+
+ // NurbsDisplay
+ GLU_OUTLINE_POLYGON = 100240;
+ {$EXTERNALSYM GLU_OUTLINE_POLYGON}
+ GLU_OUTLINE_PATCH = 100241;
+ {$EXTERNALSYM GLU_OUTLINE_PATCH}
+
+ // NurbsErrors
+ GLU_NURBS_ERROR1 = 100251;
+ {$EXTERNALSYM GLU_NURBS_ERROR1}
+ GLU_NURBS_ERROR2 = 100252;
+ {$EXTERNALSYM GLU_NURBS_ERROR2}
+ GLU_NURBS_ERROR3 = 100253;
+ {$EXTERNALSYM GLU_NURBS_ERROR3}
+ GLU_NURBS_ERROR4 = 100254;
+ {$EXTERNALSYM GLU_NURBS_ERROR4}
+ GLU_NURBS_ERROR5 = 100255;
+ {$EXTERNALSYM GLU_NURBS_ERROR5}
+ GLU_NURBS_ERROR6 = 100256;
+ {$EXTERNALSYM GLU_NURBS_ERROR6}
+ GLU_NURBS_ERROR7 = 100257;
+ {$EXTERNALSYM GLU_NURBS_ERROR7}
+ GLU_NURBS_ERROR8 = 100258;
+ {$EXTERNALSYM GLU_NURBS_ERROR8}
+ GLU_NURBS_ERROR9 = 100259;
+ {$EXTERNALSYM GLU_NURBS_ERROR9}
+ GLU_NURBS_ERROR10 = 100260;
+ {$EXTERNALSYM GLU_NURBS_ERROR10}
+ GLU_NURBS_ERROR11 = 100261;
+ {$EXTERNALSYM GLU_NURBS_ERROR11}
+ GLU_NURBS_ERROR12 = 100262;
+ {$EXTERNALSYM GLU_NURBS_ERROR12}
+ GLU_NURBS_ERROR13 = 100263;
+ {$EXTERNALSYM GLU_NURBS_ERROR13}
+ GLU_NURBS_ERROR14 = 100264;
+ {$EXTERNALSYM GLU_NURBS_ERROR14}
+ GLU_NURBS_ERROR15 = 100265;
+ {$EXTERNALSYM GLU_NURBS_ERROR15}
+ GLU_NURBS_ERROR16 = 100266;
+ {$EXTERNALSYM GLU_NURBS_ERROR16}
+ GLU_NURBS_ERROR17 = 100267;
+ {$EXTERNALSYM GLU_NURBS_ERROR17}
+ GLU_NURBS_ERROR18 = 100268;
+ {$EXTERNALSYM GLU_NURBS_ERROR18}
+ GLU_NURBS_ERROR19 = 100269;
+ {$EXTERNALSYM GLU_NURBS_ERROR19}
+ GLU_NURBS_ERROR20 = 100270;
+ {$EXTERNALSYM GLU_NURBS_ERROR20}
+ GLU_NURBS_ERROR21 = 100271;
+ {$EXTERNALSYM GLU_NURBS_ERROR21}
+ GLU_NURBS_ERROR22 = 100272;
+ {$EXTERNALSYM GLU_NURBS_ERROR22}
+ GLU_NURBS_ERROR23 = 100273;
+ {$EXTERNALSYM GLU_NURBS_ERROR23}
+ GLU_NURBS_ERROR24 = 100274;
+ {$EXTERNALSYM GLU_NURBS_ERROR24}
+ GLU_NURBS_ERROR25 = 100275;
+ {$EXTERNALSYM GLU_NURBS_ERROR25}
+ GLU_NURBS_ERROR26 = 100276;
+ {$EXTERNALSYM GLU_NURBS_ERROR26}
+ GLU_NURBS_ERROR27 = 100277;
+ {$EXTERNALSYM GLU_NURBS_ERROR27}
+ GLU_NURBS_ERROR28 = 100278;
+ {$EXTERNALSYM GLU_NURBS_ERROR28}
+ GLU_NURBS_ERROR29 = 100279;
+ {$EXTERNALSYM GLU_NURBS_ERROR29}
+ GLU_NURBS_ERROR30 = 100280;
+ {$EXTERNALSYM GLU_NURBS_ERROR30}
+ GLU_NURBS_ERROR31 = 100281;
+ {$EXTERNALSYM GLU_NURBS_ERROR31}
+ GLU_NURBS_ERROR32 = 100282;
+ {$EXTERNALSYM GLU_NURBS_ERROR32}
+ GLU_NURBS_ERROR33 = 100283;
+ {$EXTERNALSYM GLU_NURBS_ERROR33}
+ GLU_NURBS_ERROR34 = 100284;
+ {$EXTERNALSYM GLU_NURBS_ERROR34}
+ GLU_NURBS_ERROR35 = 100285;
+ {$EXTERNALSYM GLU_NURBS_ERROR35}
+ GLU_NURBS_ERROR36 = 100286;
+ {$EXTERNALSYM GLU_NURBS_ERROR36}
+ GLU_NURBS_ERROR37 = 100287;
+ {$EXTERNALSYM GLU_NURBS_ERROR37}
+
+ // Contours types -- obsolete!
+ GLU_CW = 100120;
+ {$EXTERNALSYM GLU_CW}
+ GLU_CCW = 100121;
+ {$EXTERNALSYM GLU_CCW}
+ GLU_INTERIOR = 100122;
+ {$EXTERNALSYM GLU_INTERIOR}
+ GLU_EXTERIOR = 100123;
+ {$EXTERNALSYM GLU_EXTERIOR}
+ GLU_UNKNOWN = 100124;
+ {$EXTERNALSYM GLU_UNKNOWN}
+
+ // Names without "TESS_" prefix
+ GLU_BEGIN = GLU_TESS_BEGIN;
+ {$EXTERNALSYM GLU_BEGIN}
+ GLU_VERTEX = GLU_TESS_VERTEX;
+ {$EXTERNALSYM GLU_VERTEX}
+ GLU_END = GLU_TESS_END;
+ {$EXTERNALSYM GLU_END}
+ GLU_ERROR = GLU_TESS_ERROR;
+ {$EXTERNALSYM GLU_ERROR}
+ GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
+ {$EXTERNALSYM GLU_EDGE_FLAG}
+
+ GLX_VERSION_1_1 = 1;
+ GLX_VERSION_1_2 = 1;
+ GLX_VERSION_1_3 = 1;
+ GLX_EXTENSION_NAME = 'GLX';
+ {$EXTERNALSYM GLX_EXTENSION_NAME}
+ GLX_USE_GL = 1;
+ {$EXTERNALSYM GLX_USE_GL}
+ GLX_BUFFER_SIZE = 2;
+ {$EXTERNALSYM GLX_BUFFER_SIZE}
+ GLX_LEVEL = 3;
+ {$EXTERNALSYM GLX_LEVEL}
+ GLX_RGBA = 4;
+ {$EXTERNALSYM GLX_RGBA}
+ GLX_DOUBLEBUFFER = 5;
+ {$EXTERNALSYM GLX_DOUBLEBUFFER}
+ GLX_STEREO = 6;
+ {$EXTERNALSYM GLX_STEREO}
+ GLX_AUX_BUFFERS = 7;
+ {$EXTERNALSYM GLX_AUX_BUFFERS}
+ GLX_RED_SIZE = 8;
+ {$EXTERNALSYM GLX_RED_SIZE}
+ GLX_GREEN_SIZE = 9;
+ {$EXTERNALSYM GLX_GREEN_SIZE}
+ GLX_BLUE_SIZE = 10;
+ {$EXTERNALSYM GLX_BLUE_SIZE}
+ GLX_ALPHA_SIZE = 11;
+ {$EXTERNALSYM GLX_ALPHA_SIZE}
+ GLX_DEPTH_SIZE = 12;
+ {$EXTERNALSYM GLX_DEPTH_SIZE}
+ GLX_STENCIL_SIZE = 13;
+ {$EXTERNALSYM GLX_STENCIL_SIZE}
+ GLX_ACCUM_RED_SIZE = 14;
+ {$EXTERNALSYM GLX_ACCUM_RED_SIZE}
+ GLX_ACCUM_GREEN_SIZE = 15;
+ {$EXTERNALSYM GLX_ACCUM_GREEN_SIZE}
+ GLX_ACCUM_BLUE_SIZE = 16;
+ {$EXTERNALSYM GLX_ACCUM_BLUE_SIZE}
+ GLX_ACCUM_ALPHA_SIZE = 17;
+ {$EXTERNALSYM GLX_ACCUM_ALPHA_SIZE}
+
+ // Error codes returned by glXGetConfig:
+ GLX_BAD_SCREEN = 1;
+ {$EXTERNALSYM GLX_BAD_SCREEN}
+ GLX_BAD_ATTRIBUTE = 2;
+ {$EXTERNALSYM GLX_BAD_ATTRIBUTE}
+ GLX_NO_EXTENSION = 3;
+ {$EXTERNALSYM GLX_NO_EXTENSION}
+ GLX_BAD_VISUAL = 4;
+ {$EXTERNALSYM GLX_BAD_VISUAL}
+ GLX_BAD_CONTEXT = 5;
+ {$EXTERNALSYM GLX_BAD_CONTEXT}
+ GLX_BAD_VALUE = 6;
+ {$EXTERNALSYM GLX_BAD_VALUE}
+ GLX_BAD_ENUM = 7;
+ {$EXTERNALSYM GLX_BAD_ENUM}
+
+ // GLX 1.1 and later:
+ GLX_VENDOR = 1;
+ {$EXTERNALSYM GLX_VENDOR}
+ GLX_VERSION = 2;
+ {$EXTERNALSYM GLX_VERSION}
+ GLX_EXTENSIONS = 3;
+ {$EXTERNALSYM GLX_EXTENSIONS}
+
+ // GLX 1.3 and later:
+ GLX_CONFIG_CAVEAT = $20;
+ {$EXTERNALSYM GLX_CONFIG_CAVEAT}
+ GLX_DONT_CARE = $FFFFFFFF;
+ {$EXTERNALSYM GLX_DONT_CARE}
+ GLX_SLOW_CONFIG = $8001;
+ {$EXTERNALSYM GLX_SLOW_CONFIG}
+ GLX_NON_CONFORMANT_CONFIG = $800D;
+ {$EXTERNALSYM GLX_NON_CONFORMANT_CONFIG}
+ GLX_X_VISUAL_TYPE = $22;
+ {$EXTERNALSYM GLX_X_VISUAL_TYPE}
+ GLX_TRANSPARENT_TYPE = $23;
+ {$EXTERNALSYM GLX_TRANSPARENT_TYPE}
+ GLX_TRANSPARENT_INDEX_VALUE = $24;
+ {$EXTERNALSYM GLX_TRANSPARENT_INDEX_VALUE}
+ GLX_TRANSPARENT_RED_VALUE = $25;
+ {$EXTERNALSYM GLX_TRANSPARENT_RED_VALUE}
+ GLX_TRANSPARENT_GREEN_VALUE = $26;
+ {$EXTERNALSYM GLX_TRANSPARENT_GREEN_VALUE}
+ GLX_TRANSPARENT_BLUE_VALUE = $27;
+ {$EXTERNALSYM GLX_TRANSPARENT_BLUE_VALUE}
+ GLX_TRANSPARENT_ALPHA_VALUE = $28;
+ {$EXTERNALSYM GLX_TRANSPARENT_ALPHA_VALUE}
+ GLX_MAX_PBUFFER_WIDTH = $8016;
+ {$EXTERNALSYM GLX_MAX_PBUFFER_WIDTH}
+ GLX_MAX_PBUFFER_HEIGHT = $8017;
+ {$EXTERNALSYM GLX_MAX_PBUFFER_HEIGHT}
+ GLX_MAX_PBUFFER_PIXELS = $8018;
+ {$EXTERNALSYM GLX_MAX_PBUFFER_PIXELS}
+ GLX_PRESERVED_CONTENTS = $801B;
+ {$EXTERNALSYM GLX_PRESERVED_CONTENTS}
+ GLX_LARGEST_BUFFER = $801C;
+ {$EXTERNALSYM GLX_LARGEST_BUFFER}
+ GLX_DRAWABLE_TYPE = $8010;
+ {$EXTERNALSYM GLX_DRAWABLE_TYPE}
+ GLX_FBCONFIG_ID = $8013;
+ {$EXTERNALSYM GLX_FBCONFIG_ID}
+ GLX_VISUAL_ID = $800B;
+ {$EXTERNALSYM GLX_VISUAL_ID}
+ GLX_WINDOW_BIT = $00000001;
+ {$EXTERNALSYM GLX_WINDOW_BIT}
+ GLX_PIXMAP_BIT = $00000002;
+ {$EXTERNALSYM GLX_PIXMAP_BIT}
+ GLX_PBUFFER_BIT = $00000004;
+ {$EXTERNALSYM GLX_PBUFFER_BIT}
+ GLX_AUX_BUFFERS_BIT = $00000010;
+ {$EXTERNALSYM GLX_AUX_BUFFERS_BIT}
+ GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
+ {$EXTERNALSYM GLX_FRONT_LEFT_BUFFER_BIT}
+ GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
+ {$EXTERNALSYM GLX_FRONT_RIGHT_BUFFER_BIT}
+ GLX_BACK_LEFT_BUFFER_BIT = $00000004;
+ {$EXTERNALSYM GLX_BACK_LEFT_BUFFER_BIT}
+ GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
+ {$EXTERNALSYM GLX_BACK_RIGHT_BUFFER_BIT}
+ GLX_DEPTH_BUFFER_BIT = $00000020;
+ {$EXTERNALSYM GLX_DEPTH_BUFFER_BIT}
+ GLX_STENCIL_BUFFER_BIT = $00000040;
+ {$EXTERNALSYM GLX_STENCIL_BUFFER_BIT}
+ GLX_ACCUM_BUFFER_BIT = $00000080;
+ {$EXTERNALSYM GLX_ACCUM_BUFFER_BIT}
+ GLX_RENDER_TYPE = $8011;
+ {$EXTERNALSYM GLX_RENDER_TYPE}
+ GLX_X_RENDERABLE = $8012;
+ {$EXTERNALSYM GLX_X_RENDERABLE}
+ GLX_NONE = $8000;
+ {$EXTERNALSYM GLX_NONE}
+ GLX_TRUE_COLOR = $8002;
+ {$EXTERNALSYM GLX_TRUE_COLOR}
+ GLX_DIRECT_COLOR = $8003;
+ {$EXTERNALSYM GLX_DIRECT_COLOR}
+ GLX_PSEUDO_COLOR = $8004;
+ {$EXTERNALSYM GLX_PSEUDO_COLOR}
+ GLX_STATIC_COLOR = $8005;
+ {$EXTERNALSYM GLX_STATIC_COLOR}
+ GLX_GRAY_SCALE = $8006;
+ {$EXTERNALSYM GLX_GRAY_SCALE}
+ GLX_STATIC_GRAY = $8007;
+ {$EXTERNALSYM GLX_STATIC_GRAY}
+ GLX_TRANSPARENT_INDEX = $8009;
+ {$EXTERNALSYM GLX_TRANSPARENT_INDEX}
+ GLX_COLOR_INDEX_TYPE = $8015;
+ {$EXTERNALSYM GLX_COLOR_INDEX_TYPE}
+ GLX_COLOR_INDEX_BIT = $00000002;
+ {$EXTERNALSYM GLX_COLOR_INDEX_BIT}
+ GLX_SCREEN = $800C;
+ {$EXTERNALSYM GLX_SCREEN}
+ GLX_PBUFFER_CLOBBER_MASK = $08000000;
+ {$EXTERNALSYM GLX_PBUFFER_CLOBBER_MASK}
+ GLX_DAMAGED = $8020;
+ {$EXTERNALSYM GLX_DAMAGED}
+ GLX_SAVED = $8021;
+ {$EXTERNALSYM GLX_SAVED}
+ GLX_WINDOW = $8022;
+ {$EXTERNALSYM GLX_WINDOW}
+ GLX_PBUFFER = $8023;
+ {$EXTERNALSYM GLX_PBUFFER}
+ GLX_EXT_visual_info = 1;
+ {$EXTERNALSYM GLX_EXT_visual_info}
+ GLX_X_VISUAL_TYPE_EXT = $22;
+ {$EXTERNALSYM GLX_X_VISUAL_TYPE_EXT}
+ GLX_TRANSPARENT_TYPE_EXT = $23;
+ {$EXTERNALSYM GLX_TRANSPARENT_TYPE_EXT}
+ GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
+ {$EXTERNALSYM GLX_TRANSPARENT_INDEX_VALUE_EXT}
+ GLX_TRANSPARENT_RED_VALUE_EXT = $25;
+ {$EXTERNALSYM GLX_TRANSPARENT_RED_VALUE_EXT}
+ GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
+ {$EXTERNALSYM GLX_TRANSPARENT_GREEN_VALUE_EXT}
+ GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
+ {$EXTERNALSYM GLX_TRANSPARENT_BLUE_VALUE_EXT}
+ GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
+ {$EXTERNALSYM GLX_TRANSPARENT_ALPHA_VALUE_EXT}
+ GLX_TRUE_COLOR_EXT = $8002;
+ {$EXTERNALSYM GLX_TRUE_COLOR_EXT}
+ GLX_DIRECT_COLOR_EXT = $8003;
+ {$EXTERNALSYM GLX_DIRECT_COLOR_EXT}
+ GLX_PSEUDO_COLOR_EXT = $8004;
+ {$EXTERNALSYM GLX_PSEUDO_COLOR_EXT}
+ GLX_STATIC_COLOR_EXT = $8005;
+ {$EXTERNALSYM GLX_STATIC_COLOR_EXT}
+ GLX_GRAY_SCALE_EXT = $8006;
+ {$EXTERNALSYM GLX_GRAY_SCALE_EXT}
+ GLX_STATIC_GRAY_EXT = $8007;
+ {$EXTERNALSYM GLX_STATIC_GRAY_EXT}
+ GLX_NONE_EXT = $8000;
+ {$EXTERNALSYM GLX_NONE_EXT}
+ GLX_TRANSPARENT_RGB_EXT = $8008;
+ {$EXTERNALSYM GLX_TRANSPARENT_RGB_EXT}
+ GLX_TRANSPARENT_INDEX_EXT = $8009;
+ {$EXTERNALSYM GLX_TRANSPARENT_INDEX_EXT}
+ GLX_VISUAL_CAVEAT_EXT = $20;
+ {$EXTERNALSYM GLX_VISUAL_CAVEAT_EXT}
+ GLX_SLOW_VISUAL_EXT = $8001;
+ {$EXTERNALSYM GLX_SLOW_VISUAL_EXT}
+ GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
+ {$EXTERNALSYM GLX_NON_CONFORMANT_VISUAL_EXT}
+ GLX_SHARE_CONTEXT_EXT = $800A;
+ {$EXTERNALSYM GLX_SHARE_CONTEXT_EXT}
+ GLX_VISUAL_ID_EXT = $800B;
+ {$EXTERNALSYM GLX_VISUAL_ID_EXT}
+ GLX_SCREEN_EXT = $800C;
+ {$EXTERNALSYM GLX_SCREEN_EXT}
+ GLX_3DFX_WINDOW_MODE_MESA = $1;
+ {$EXTERNALSYM GLX_3DFX_WINDOW_MODE_MESA}
+ GLX_3DFX_FULLSCREEN_MODE_MESA = $2;
+ {$EXTERNALSYM GLX_3DFX_FULLSCREEN_MODE_MESA}
+
+
+type
+ // GLU types
+ TGLUNurbs = record end;
+ TGLUQuadric = record end;
+ TGLUTesselator = record end;
+
+ PGLUNurbs = ^TGLUNurbs;
+ PGLUQuadric = ^TGLUQuadric;
+ PGLUTesselator = ^TGLUTesselator;
+
+ // backwards compatibility
+ TGLUNurbsObj = TGLUNurbs;
+ TGLUQuadricObj = TGLUQuadric;
+ TGLUTesselatorObj = TGLUTesselator;
+ TGLUTriangulatorObj = TGLUTesselator;
+
+ PGLUNurbsObj = PGLUNurbs;
+ PGLUQuadricObj = PGLUQuadric;
+ PGLUTesselatorObj = PGLUTesselator;
+ PGLUTriangulatorObj = PGLUTesselator;
+
+ {$ifdef FPC}
+ PMaxLogPalette = ^TMaxLogPalette;
+ TMaxLogPalette = packed record
+ palversion : word;
+ palnumentries : word;
+ palpalentry : array[byte] of TPaletteEntry;
+ end;
+ {$endif}
+
+ {$ifdef VER100, Delphi 3 compatibility}
+ PWGLSwap = ^TWGLSwap;
+ {$EXTERNALSYM _WGLSWAP}
+ _WGLSWAP = packed record
+ hdc: HDC;
+ uiFlags: UINT;
+ end;
+ TWGLSwap = _WGLSWAP;
+ {$EXTERNALSYM WGLSWAP}
+ WGLSWAP = _WGLSWAP;
+ {$endif VER100}
+
+ // Callback function prototypes
+ // GLUQuadricCallback
+ TGLUQuadricErrorProc = procedure(errorCode: TGLEnum); {$ifdef MSWINDOWS} stdcall; {$endif} {$ifdef LINUX} cdecl; {$endif}
+
+ // GLUTessCallback
+ TGLUTessBeginProc = procedure(AType: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessEdgeFlagProc = procedure(Flag: TGLboolean); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessEndProc = procedure; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessErrorProc = procedure(ErrNo: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessCombineProc = procedure(Coords: TVector3d; VertexData: TVector4p; Weight: TVector4f; OutData: PPointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessBeginDataProc = procedure(AType: TGLEnum; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessEdgeFlagDataProc = procedure(Flag: TGLboolean; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessErrorDataProc = procedure(ErrNo: TGLEnum; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ TGLUTessCombineDataProc = procedure(Coords: TVector3d; VertexData: TVector4p; Weight: TVector4f; OutData: PPointer; UserData: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+
+ // GLUNurbsCallback
+ TGLUNurbsErrorProc = procedure(ErrorCode: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+
+ // GL functions
+ procedure glBindTexture(target: TGLEnum; texture: TGLuint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glTexParameteri(target, pname: TGLEnum; param: TGLint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glTexImage2D(target: TGLEnum; level, internalformat: TGLint; width, height: TGLsizei; border: TGLint; format, atype: TGLEnum; Pixels:Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glDeleteTextures(n: TGLsizei; textures: PGLuint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glGenTextures(n: GLsizei; textures: PGLuint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glColor3f(red, green, blue: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glBegin(mode: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glEnd; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glVertex2f(x, y: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glColor4f(red, green, blue, alpha: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glEnable(cap: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glDisable(cap: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glDepthRange(zNear, zFar: TGLclampd); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glDepthFunc(func: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glBlendFunc(sfactor: TGLEnum; dfactor: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glTexCoord2f(s, t: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glVertex3f(x, y, z: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glClearColor(red, green, blue, alpha: TGLclampf); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glClear(mask: TGLbitfield); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glMatrixMode(mode: TGLEnum); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glLoadIdentity; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glOrtho(left, right, bottom, top, zNear, zFar: TGLdouble); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glViewport(x, y: TGLint; width, height: TGLsizei); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glReadPixels(x, y: TGLint; width, height: TGLsizei; format, atype: TGLEnum; pixels: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glPixelStorei(pname: TGLEnum; param: TGLint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ function glGetError:TGLuint; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glTexSubImage2D(target: TGLEnum; level, xoffset, yoffset: TGLint; width, height: TGLsizei; format, atype: TGLEnum; pixels: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure gluOrtho2D(left, right, bottom, top: TGLdouble); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glPushMatrix; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glPopMatrix; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glFrustum(left, right, bottom, top, zNear, zFar: TGLdouble); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glTranslatef(x, y, z: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glRotatef(angle, x, y, z: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glScalef(x, y, z: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glTexParameterf(target, pname: TGLEnum; param: TGLfloat); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glCopyTexImage2D(target: TGLEnum; level: TGLint; internalFormat: TGLEnum; x, y: TGLint; width, height: TGLsizei; border: TGLint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glGetIntegerv(pname: TGLEnum; params: PGLint); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+ procedure glFinish; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external opengl32;
+
+ // GLU functions
+ function gluBuild2DMipmaps(target: TGLEnum; components, width, height: TGLint; format, atype: TGLEnum; Data: Pointer): TGLint; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external glu32;
+ function gluScaleImage(format: TGLEnum; widthin, heightin: TGLint; typein: TGLEnum; datain: Pointer; widthout, heightout: TGLint; typeout: TGLEnum; dataout: Pointer): TGLint; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external glu32;
+
+ Procedure LoadOpenGL;
+ Procedure UnloadOpenGL;
+
+implementation
+
+Procedure LoadOpenGL;
+begin
+end;
+
+Procedure UnloadOpenGL;
+begin
+end;
+
+end.
diff --git a/Game/Code/MacOSX/Wrapper/PNGImage.pas b/Game/Code/MacOSX/Wrapper/PNGImage.pas
index 9a82e193..e2454a01 100755
--- a/Game/Code/MacOSX/Wrapper/PNGImage.pas
+++ b/Game/Code/MacOSX/Wrapper/PNGImage.pas
@@ -1,6 +1,6 @@
unit PNGImage;
-{$INCLUDE ../Platform.inc}
+{$I switches.inc}
interface
diff --git a/Game/Code/MacOSX/Wrapper/Windows.pas b/Game/Code/MacOSX/Wrapper/Windows.pas
index 333b08e7..cee75591 100755
--- a/Game/Code/MacOSX/Wrapper/Windows.pas
+++ b/Game/Code/MacOSX/Wrapper/Windows.pas
@@ -1,139 +1,167 @@
-unit Windows;
-
-{$INCLUDE ../Platform.inc}
-
-interface
-
-uses Types;
-
-const
-{$IFDEF MSWINDOWS}
- opengl32 = 'opengl32.dll';
-{$ENDIF}
-{$IFDEF MACOS}
- opengl32 = 'OpenGL';
-{$ENDIF}
-
-type
-
- DWORD = Types.DWORD;
- {$EXTERNALSYM DWORD}
- BOOL = LongBool;
- {$EXTERNALSYM BOOL}
- PBOOL = ^BOOL;
- {$EXTERNALSYM PBOOL}
- PByte = Types.PByte;
- PINT = ^Integer;
- {$EXTERNALSYM PINT}
- PSingle = ^Single;
- PWORD = ^Word;
- {$EXTERNALSYM PWORD}
- PDWORD = ^DWORD;
- {$EXTERNALSYM PDWORD}
- LPDWORD = PDWORD;
- {$EXTERNALSYM LPDWORD}
- HDC = type LongWord;
- {$EXTERNALSYM HDC}
- HGLRC = type LongWord;
- {$EXTERNALSYM HGLRC}
- TLargeInteger = Int64;
- HFONT = type LongWord;
- {$EXTERNALSYM HFONT}
- HWND = type LongWord;
- {$EXTERNALSYM HWND}
-
- PPaletteEntry = ^TPaletteEntry;
- {$EXTERNALSYM tagPALETTEENTRY}
- tagPALETTEENTRY = packed record
- peRed: Byte;
- peGreen: Byte;
- peBlue: Byte;
- peFlags: Byte;
- end;
- TPaletteEntry = tagPALETTEENTRY;
- {$EXTERNALSYM PALETTEENTRY}
- PALETTEENTRY = tagPALETTEENTRY;
-
- PRGBQuad = ^TRGBQuad;
- {$EXTERNALSYM tagRGBQUAD}
- tagRGBQUAD = packed record
- rgbBlue: Byte;
- rgbGreen: Byte;
- rgbRed: Byte;
- rgbReserved: Byte;
- end;
- TRGBQuad = tagRGBQUAD;
- {$EXTERNALSYM RGBQUAD}
- RGBQUAD = tagRGBQUAD;
-
- PBitmapInfoHeader = ^TBitmapInfoHeader;
- {$EXTERNALSYM tagBITMAPINFOHEADER}
- tagBITMAPINFOHEADER = packed record
- biSize: DWORD;
- biWidth: Longint;
- biHeight: Longint;
- biPlanes: Word;
- biBitCount: Word;
- biCompression: DWORD;
- biSizeImage: DWORD;
- biXPelsPerMeter: Longint;
- biYPelsPerMeter: Longint;
- biClrUsed: DWORD;
- biClrImportant: DWORD;
- end;
- TBitmapInfoHeader = tagBITMAPINFOHEADER;
- {$EXTERNALSYM BITMAPINFOHEADER}
- BITMAPINFOHEADER = tagBITMAPINFOHEADER;
-
- PBitmapInfo = ^TBitmapInfo;
- {$EXTERNALSYM tagBITMAPINFO}
- tagBITMAPINFO = packed record
- bmiHeader: TBitmapInfoHeader;
- bmiColors: array[0..0] of TRGBQuad;
- end;
- TBitmapInfo = tagBITMAPINFO;
- {$EXTERNALSYM BITMAPINFO}
- BITMAPINFO = tagBITMAPINFO;
-
- function MakeLong(a, b: Word): Longint;
- procedure ZeroMemory(Destination: Pointer; Length: DWORD);
- function QueryPerformanceFrequency(var lpFrequency: TLargeInteger): BOOL;
- function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL;
-
-implementation
-
-uses SDL {$IFDEF MSWINDOWS}, Windows{$ENDIF};
-
-function MakeLong(A, B: Word): Longint;
-begin
- Result := (LongInt(B) shl 16) + A;
-end;
-
-procedure ZeroMemory(Destination: Pointer; Length: DWORD);
-begin
- FillChar( Destination^, Length, 0);
-end;
-
-function QueryPerformanceFrequency(var lpFrequency: TLargeInteger): BOOL;
-begin
-{$IFDEF MSWINDOWS}
- Result := Windows.QueryPerformanceFrequency(lpFrequency);
-{$ENDIF}
-{$IFDEF MACOS}
- Result := true;
- lpFrequency := 1000;
-{$ENDIF}
-end;
-
-function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL;
-begin
-{$IFDEF MSWINDOWS}
- Result := Windows.QueryPerformanceCounter(lpPerformanceCount);
-{$ENDIF}
-{$IFDEF MACOS}
- Result := true;
- lpPerformanceCount := SDL_GetTicks;
-{$ENDIF}
-end;
-
-end.
+unit Windows;
+
+{$I switches.inc}
+
+interface
+
+uses Types;
+
+const
+ opengl32 = 'OpenGL';
+ MAX_PATH = 260;
+
+type
+
+ DWORD = Types.DWORD;
+ {$EXTERNALSYM DWORD}
+ BOOL = LongBool;
+ {$EXTERNALSYM BOOL}
+ PBOOL = ^BOOL;
+ {$EXTERNALSYM PBOOL}
+ PByte = Types.PByte;
+ PINT = ^Integer;
+ {$EXTERNALSYM PINT}
+ PSingle = ^Single;
+ PWORD = ^Word;
+ {$EXTERNALSYM PWORD}
+ PDWORD = ^DWORD;
+ {$EXTERNALSYM PDWORD}
+ LPDWORD = PDWORD;
+ {$EXTERNALSYM LPDWORD}
+ HDC = type LongWord;
+ {$EXTERNALSYM HDC}
+ HGLRC = type LongWord;
+ {$EXTERNALSYM HGLRC}
+ TLargeInteger = Int64;
+ HFONT = type LongWord;
+ {$EXTERNALSYM HFONT}
+ HWND = type LongWord;
+ {$EXTERNALSYM HWND}
+
+ PPaletteEntry = ^TPaletteEntry;
+ {$EXTERNALSYM tagPALETTEENTRY}
+ tagPALETTEENTRY = packed record
+ peRed: Byte;
+ peGreen: Byte;
+ peBlue: Byte;
+ peFlags: Byte;
+ end;
+ TPaletteEntry = tagPALETTEENTRY;
+ {$EXTERNALSYM PALETTEENTRY}
+ PALETTEENTRY = tagPALETTEENTRY;
+
+ PRGBQuad = ^TRGBQuad;
+ {$EXTERNALSYM tagRGBQUAD}
+ tagRGBQUAD = packed record
+ rgbBlue: Byte;
+ rgbGreen: Byte;
+ rgbRed: Byte;
+ rgbReserved: Byte;
+ end;
+ TRGBQuad = tagRGBQUAD;
+ {$EXTERNALSYM RGBQUAD}
+ RGBQUAD = tagRGBQUAD;
+
+ PBitmapInfoHeader = ^TBitmapInfoHeader;
+ {$EXTERNALSYM tagBITMAPINFOHEADER}
+ tagBITMAPINFOHEADER = packed record
+ biSize: DWORD;
+ biWidth: Longint;
+ biHeight: Longint;
+ biPlanes: Word;
+ biBitCount: Word;
+ biCompression: DWORD;
+ biSizeImage: DWORD;
+ biXPelsPerMeter: Longint;
+ biYPelsPerMeter: Longint;
+ biClrUsed: DWORD;
+ biClrImportant: DWORD;
+ end;
+ TBitmapInfoHeader = tagBITMAPINFOHEADER;
+ {$EXTERNALSYM BITMAPINFOHEADER}
+ BITMAPINFOHEADER = tagBITMAPINFOHEADER;
+
+ PBitmapInfo = ^TBitmapInfo;
+ {$EXTERNALSYM tagBITMAPINFO}
+ tagBITMAPINFO = packed record
+ bmiHeader: TBitmapInfoHeader;
+ bmiColors: array[0..0] of TRGBQuad;
+ end;
+ TBitmapInfo = tagBITMAPINFO;
+ {$EXTERNALSYM BITMAPINFO}
+ BITMAPINFO = tagBITMAPINFO;
+
+ PBitmapFileHeader = ^TBitmapFileHeader;
+ {$EXTERNALSYM tagBITMAPFILEHEADER}
+ tagBITMAPFILEHEADER = packed record
+ bfType: Word;
+ bfSize: DWORD;
+ bfReserved1: Word;
+ bfReserved2: Word;
+ bfOffBits: DWORD;
+ end;
+ TBitmapFileHeader = tagBITMAPFILEHEADER;
+ {$EXTERNALSYM BITMAPFILEHEADER}
+ BITMAPFILEHEADER = tagBITMAPFILEHEADER;
+
+
+ function MakeLong(a, b: Word): Longint;
+ procedure ZeroMemory(Destination: Pointer; Length: DWORD);
+ function QueryPerformanceFrequency(var lpFrequency: TLargeInteger): BOOL;
+ function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL;
+ function GetTickCount : Cardinal;
+ Procedure ShowMessage(msg : string);
+ procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
+
+implementation
+
+uses SDL;
+
+procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
+begin
+ Move(Source^, Destination^, Length);
+end;
+
+Procedure ShowMessage(msg : string);
+begin
+ // to be implemented
+end;
+
+function MakeLong(A, B: Word): Longint;
+begin
+ Result := (LongInt(B) shl 16) + A;
+end;
+
+procedure ZeroMemory(Destination: Pointer; Length: DWORD);
+begin
+ FillChar( Destination^, Length, 0);
+end;
+
+function QueryPerformanceFrequency(var lpFrequency: TLargeInteger): BOOL;
+begin
+{$IFDEF MSWINDOWS}
+ Result := Windows.QueryPerformanceFrequency(lpFrequency);
+{$ENDIF}
+{$IFDEF MACOS}
+ Result := true;
+ lpFrequency := 1000;
+{$ENDIF}
+end;
+
+function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL;
+begin
+{$IFDEF MSWINDOWS}
+ Result := Windows.QueryPerformanceCounter(lpPerformanceCount);
+{$ENDIF}
+{$IFDEF MACOS}
+ Result := true;
+ lpPerformanceCount := SDL_GetTicks;
+{$ENDIF}
+end;
+
+function GetTickCount : Cardinal;
+begin
+ Result := SDL_GetTicks;
+end;
+
+end.
diff --git a/Game/Code/MacOSX/Wrapper/zlportio.pas b/Game/Code/MacOSX/Wrapper/zlportio.pas
index 4e6173bc..92b4a505 100755
--- a/Game/Code/MacOSX/Wrapper/zlportio.pas
+++ b/Game/Code/MacOSX/Wrapper/zlportio.pas
@@ -1,6 +1,6 @@
unit zlportio;
-{$INCLUDE ../Platform.inc}
+{$I switches.inc}
interface
diff --git a/Game/Code/Menu/UDisplay.pas b/Game/Code/Menu/UDisplay.pas
index c83d3c37..b3529d0a 100644
--- a/Game/Code/Menu/UDisplay.pas
+++ b/Game/Code/Menu/UDisplay.pas
@@ -2,9 +2,7 @@ unit UDisplay;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses {$IFDEF win32}
windows,
@@ -62,7 +60,7 @@ var
implementation
uses
- {$IFDEF FPC}
+ {$IFDEF LAZARUS}
ulazjpeg,
{$ELSE}
JPEG,
diff --git a/Game/Code/Menu/UDrawTexture.pas b/Game/Code/Menu/UDrawTexture.pas
index 5a543f33..de20bd4b 100644
--- a/Game/Code/Menu/UDrawTexture.pas
+++ b/Game/Code/Menu/UDrawTexture.pas
@@ -1,6 +1,9 @@
unit UDrawTexture;
interface
+
+{$I switches.inc}
+
uses UTexture;
procedure DrawLine(X1, Y1, X2, Y2, ColR, ColG, ColB: real);
diff --git a/Game/Code/Menu/UMenu.pas b/Game/Code/Menu/UMenu.pas
index 75d6a957..08ba1e4d 100644
--- a/Game/Code/Menu/UMenu.pas
+++ b/Game/Code/Menu/UMenu.pas
@@ -2,9 +2,7 @@ unit UMenu;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses OpenGL12, SysUtils, UTexture, UMenuStatic, UMenuText, UMenuButton, UMenuSelect, UMenuSelectSlide,
UMenuInteract, UThemes, UMenuButtonCollection, Math;
diff --git a/Game/Code/Menu/UMenuButton.pas b/Game/Code/Menu/UMenuButton.pas
index af4f69ee..93b987b7 100644
--- a/Game/Code/Menu/UMenuButton.pas
+++ b/Game/Code/Menu/UMenuButton.pas
@@ -1,6 +1,9 @@
unit UMenuButton;
interface
+
+{$I switches.inc}
+
uses TextGL, UTexture, OpenGL12, UMenuText;
type
diff --git a/Game/Code/Menu/UMenuButtonCollection.pas b/Game/Code/Menu/UMenuButtonCollection.pas
index 5c9045a7..981452b1 100644
--- a/Game/Code/Menu/UMenuButtonCollection.pas
+++ b/Game/Code/Menu/UMenuButtonCollection.pas
@@ -1,6 +1,9 @@
unit UMenuButtonCollection;
interface
+
+{$I switches.inc}
+
uses UMenuButton;
type
diff --git a/Game/Code/Menu/UMenuInteract.pas b/Game/Code/Menu/UMenuInteract.pas
index 43249e3e..78f9bd89 100644
--- a/Game/Code/Menu/UMenuInteract.pas
+++ b/Game/Code/Menu/UMenuInteract.pas
@@ -2,6 +2,8 @@ unit UMenuInteract;
interface
+{$I switches.inc}
+
type
TInteract = record // for moving thru menu
Typ: integer; // 0 - button, 1 - select, 2 - Text, 3 - Select SLide, 5 - ButtonCollection Child
diff --git a/Game/Code/Menu/UMenuSelect.pas b/Game/Code/Menu/UMenuSelect.pas
index 72141a27..b0ee2b78 100644
--- a/Game/Code/Menu/UMenuSelect.pas
+++ b/Game/Code/Menu/UMenuSelect.pas
@@ -1,6 +1,9 @@
unit UMenuSelect;
interface
+
+{$I switches.inc}
+
uses TextGL, UTexture, OpenGL12, UMenuText;
type
diff --git a/Game/Code/Menu/UMenuSelectSlide.pas b/Game/Code/Menu/UMenuSelectSlide.pas
index bb9b5809..e4c5f959 100644
--- a/Game/Code/Menu/UMenuSelectSlide.pas
+++ b/Game/Code/Menu/UMenuSelectSlide.pas
@@ -2,9 +2,7 @@ unit UMenuSelectSlide;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses TextGL,
UTexture,
diff --git a/Game/Code/Menu/UMenuStatic.pas b/Game/Code/Menu/UMenuStatic.pas
index cfa4a596..a2c709ad 100644
--- a/Game/Code/Menu/UMenuStatic.pas
+++ b/Game/Code/Menu/UMenuStatic.pas
@@ -1,6 +1,9 @@
unit UMenuStatic;
interface
+
+{$I switches.inc}
+
uses UTexture, OpenGL12;
type
diff --git a/Game/Code/Menu/UMenuText.pas b/Game/Code/Menu/UMenuText.pas
index 19adef03..350c28de 100644
--- a/Game/Code/Menu/UMenuText.pas
+++ b/Game/Code/Menu/UMenuText.pas
@@ -2,9 +2,7 @@ unit UMenuText;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses TextGL,
UTexture,
@@ -61,6 +59,39 @@ uses UGraphic,
{$ENDIF}
StrUtils;
+{$IFDEF DARWIN}
+function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
+var
+ I,X: Integer;
+ Len, LenSubStr: Integer;
+begin
+ if Offset = 1 then
+ Result := Pos(SubStr, S)
+ else
+ begin
+ I := Offset;
+ LenSubStr := Length(SubStr);
+ Len := Length(S) - LenSubStr + 1;
+ while I <= Len do
+ begin
+ if S[I] = SubStr[1] then
+ begin
+ X := 1;
+ while (X < LenSubStr) and (S[I + X] = SubStr[X + 1]) do
+ Inc(X);
+ if (X = LenSubStr) then
+ begin
+ Result := I;
+ exit;
+ end;
+ end;
+ Inc(I);
+ end;
+ Result := 0;
+ end;
+end;
+{$ENDIF}
+
procedure TText.SetSelect(Value: Boolean);
begin
SelectBool := Value;
diff --git a/Game/Code/Screens/UScreenCredits.pas b/Game/Code/Screens/UScreenCredits.pas
index a24997d4..e60b9fb9 100644
--- a/Game/Code/Screens/UScreenCredits.pas
+++ b/Game/Code/Screens/UScreenCredits.pas
@@ -2,10 +2,6 @@ unit UScreenCredits;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
{$I switches.inc}
diff --git a/Game/Code/Screens/UScreenEdit.pas b/Game/Code/Screens/UScreenEdit.pas
index a58756e6..49adb994 100644
--- a/Game/Code/Screens/UScreenEdit.pas
+++ b/Game/Code/Screens/UScreenEdit.pas
@@ -2,6 +2,8 @@ unit UScreenEdit;
interface
+{$I switches.inc}
+
uses UMenu, SDL, UThemes;
type
diff --git a/Game/Code/Screens/UScreenEditConvert.pas b/Game/Code/Screens/UScreenEditConvert.pas
index 1878337b..0c8244ab 100644
--- a/Game/Code/Screens/UScreenEditConvert.pas
+++ b/Game/Code/Screens/UScreenEditConvert.pas
@@ -2,10 +2,6 @@ unit UScreenEditConvert;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
{$I switches.inc}
uses UMenu,
diff --git a/Game/Code/Screens/UScreenEditHeader.pas b/Game/Code/Screens/UScreenEditHeader.pas
index a7105b0e..7c8b2d56 100644
--- a/Game/Code/Screens/UScreenEditHeader.pas
+++ b/Game/Code/Screens/UScreenEditHeader.pas
@@ -2,6 +2,8 @@ unit UScreenEditHeader;
interface
+{$I switches.inc}
+
uses UMenu, SDL, USongs, UThemes;
type
diff --git a/Game/Code/Screens/UScreenEditSub.pas b/Game/Code/Screens/UScreenEditSub.pas
index 1dd3fb24..d24fdede 100644
--- a/Game/Code/Screens/UScreenEditSub.pas
+++ b/Game/Code/Screens/UScreenEditSub.pas
@@ -2,10 +2,6 @@ unit UScreenEditSub;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
{$I switches.inc}
uses
diff --git a/Game/Code/Screens/UScreenLevel.pas b/Game/Code/Screens/UScreenLevel.pas
index df23d340..d4b528b5 100644
--- a/Game/Code/Screens/UScreenLevel.pas
+++ b/Game/Code/Screens/UScreenLevel.pas
@@ -2,6 +2,8 @@ unit UScreenLevel;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenLoading.pas b/Game/Code/Screens/UScreenLoading.pas
index 2ccc5c79..989461f2 100644
--- a/Game/Code/Screens/UScreenLoading.pas
+++ b/Game/Code/Screens/UScreenLoading.pas
@@ -4,10 +4,6 @@ interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
uses
UMenu,
SDL,
diff --git a/Game/Code/Screens/UScreenMain.pas b/Game/Code/Screens/UScreenMain.pas
index cb7390cc..38f58bf1 100644
--- a/Game/Code/Screens/UScreenMain.pas
+++ b/Game/Code/Screens/UScreenMain.pas
@@ -2,9 +2,7 @@ unit UScreenMain;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses
UMenu,
diff --git a/Game/Code/Screens/UScreenName.pas b/Game/Code/Screens/UScreenName.pas
index 5363d2a2..76e79a3b 100644
--- a/Game/Code/Screens/UScreenName.pas
+++ b/Game/Code/Screens/UScreenName.pas
@@ -2,6 +2,8 @@ unit UScreenName;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenOpen.pas b/Game/Code/Screens/UScreenOpen.pas
index edf684db..30404d6e 100644
--- a/Game/Code/Screens/UScreenOpen.pas
+++ b/Game/Code/Screens/UScreenOpen.pas
@@ -2,6 +2,8 @@ unit UScreenOpen;
interface
+{$I switches.inc}
+
uses UMenu, UMusic, SDL, SysUtils, UFiles, UTime, USongs, UIni, ULog, UTexture, UMenuText,
ULyrics, Math, OpenGL12, UThemes;
diff --git a/Game/Code/Screens/UScreenOptions.pas b/Game/Code/Screens/UScreenOptions.pas
index 1867d03b..bcd781cc 100644
--- a/Game/Code/Screens/UScreenOptions.pas
+++ b/Game/Code/Screens/UScreenOptions.pas
@@ -2,6 +2,8 @@ unit UScreenOptions;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, SysUtils, UDisplay, UMusic, UFiles, UIni, UThemes;
diff --git a/Game/Code/Screens/UScreenOptionsAdvanced.pas b/Game/Code/Screens/UScreenOptionsAdvanced.pas
index 271ff972..0d40b7ec 100644
--- a/Game/Code/Screens/UScreenOptionsAdvanced.pas
+++ b/Game/Code/Screens/UScreenOptionsAdvanced.pas
@@ -2,6 +2,8 @@ unit UScreenOptionsAdvanced;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, UIni, UThemes;
diff --git a/Game/Code/Screens/UScreenOptionsGame.pas b/Game/Code/Screens/UScreenOptionsGame.pas
index 1d94ffa6..6cd0a20c 100644
--- a/Game/Code/Screens/UScreenOptionsGame.pas
+++ b/Game/Code/Screens/UScreenOptionsGame.pas
@@ -2,6 +2,8 @@ unit UScreenOptionsGame;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, UIni, UThemes, USongs;
diff --git a/Game/Code/Screens/UScreenOptionsGraphics.pas b/Game/Code/Screens/UScreenOptionsGraphics.pas
index c0ea90ff..947d506b 100644
--- a/Game/Code/Screens/UScreenOptionsGraphics.pas
+++ b/Game/Code/Screens/UScreenOptionsGraphics.pas
@@ -2,6 +2,8 @@ unit UScreenOptionsGraphics;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, UIni, UThemes;
diff --git a/Game/Code/Screens/UScreenOptionsLyrics.pas b/Game/Code/Screens/UScreenOptionsLyrics.pas
index 7ef7c207..8d70eec9 100644
--- a/Game/Code/Screens/UScreenOptionsLyrics.pas
+++ b/Game/Code/Screens/UScreenOptionsLyrics.pas
@@ -2,6 +2,8 @@ unit UScreenOptionsLyrics;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, UIni, UThemes;
diff --git a/Game/Code/Screens/UScreenOptionsRecord.pas b/Game/Code/Screens/UScreenOptionsRecord.pas
index d497c637..4be16e70 100644
--- a/Game/Code/Screens/UScreenOptionsRecord.pas
+++ b/Game/Code/Screens/UScreenOptionsRecord.pas
@@ -2,6 +2,8 @@ unit UScreenOptionsRecord;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, UIni, UThemes;
diff --git a/Game/Code/Screens/UScreenOptionsSound.pas b/Game/Code/Screens/UScreenOptionsSound.pas
index 1777228b..867a10b6 100644
--- a/Game/Code/Screens/UScreenOptionsSound.pas
+++ b/Game/Code/Screens/UScreenOptionsSound.pas
@@ -2,6 +2,8 @@ unit UScreenOptionsSound;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, UIni, UThemes;
diff --git a/Game/Code/Screens/UScreenOptionsThemes.pas b/Game/Code/Screens/UScreenOptionsThemes.pas
index cf89ac3f..750e8859 100644
--- a/Game/Code/Screens/UScreenOptionsThemes.pas
+++ b/Game/Code/Screens/UScreenOptionsThemes.pas
@@ -2,6 +2,8 @@ unit UScreenOptionsThemes;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, UIni, UThemes;
diff --git a/Game/Code/Screens/UScreenPartyNewRound.pas b/Game/Code/Screens/UScreenPartyNewRound.pas
index ee534781..17f3b2b5 100644
--- a/Game/Code/Screens/UScreenPartyNewRound.pas
+++ b/Game/Code/Screens/UScreenPartyNewRound.pas
@@ -2,10 +2,7 @@ unit UScreenPartyNewRound;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
uses
UMenu, SDL, UDisplay, UMusic, UFiles, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenPartyOptions.pas b/Game/Code/Screens/UScreenPartyOptions.pas
index 714e0d99..7be4d1c0 100644
--- a/Game/Code/Screens/UScreenPartyOptions.pas
+++ b/Game/Code/Screens/UScreenPartyOptions.pas
@@ -2,9 +2,7 @@ unit UScreenPartyOptions;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
+{$I switches.inc}
uses
UMenu, SDL, UDisplay, UMusic, UFiles, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenPartyPlayer.pas b/Game/Code/Screens/UScreenPartyPlayer.pas
index 24534599..4aaa5a3e 100644
--- a/Game/Code/Screens/UScreenPartyPlayer.pas
+++ b/Game/Code/Screens/UScreenPartyPlayer.pas
@@ -2,6 +2,8 @@ unit UScreenPartyPlayer;
Interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenPartyScore.pas b/Game/Code/Screens/UScreenPartyScore.pas
index 6af835f2..ea9b944b 100644
--- a/Game/Code/Screens/UScreenPartyScore.pas
+++ b/Game/Code/Screens/UScreenPartyScore.pas
@@ -2,6 +2,8 @@ unit UScreenPartyScore;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenPartyWin.pas b/Game/Code/Screens/UScreenPartyWin.pas
index 3c7ad921..9806159a 100644
--- a/Game/Code/Screens/UScreenPartyWin.pas
+++ b/Game/Code/Screens/UScreenPartyWin.pas
@@ -2,6 +2,8 @@ unit UScreenPartyWin;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenPopup.pas b/Game/Code/Screens/UScreenPopup.pas
index cc1b4492..402857a9 100644
--- a/Game/Code/Screens/UScreenPopup.pas
+++ b/Game/Code/Screens/UScreenPopup.pas
@@ -2,6 +2,8 @@ unit UScreenPopup;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UMusic, UFiles, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenScore.pas b/Game/Code/Screens/UScreenScore.pas
index 97d31541..36e3b43b 100644
--- a/Game/Code/Screens/UScreenScore.pas
+++ b/Game/Code/Screens/UScreenScore.pas
@@ -2,9 +2,7 @@ unit UScreenScore;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
+{$I switches.inc}
uses
UMenu,
diff --git a/Game/Code/Screens/UScreenSing.pas b/Game/Code/Screens/UScreenSing.pas
index 8cba8f36..60cab0a4 100644
--- a/Game/Code/Screens/UScreenSing.pas
+++ b/Game/Code/Screens/UScreenSing.pas
@@ -4,10 +4,6 @@ interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
uses UMenu,
UMusic,
diff --git a/Game/Code/Screens/UScreenSingModi.pas b/Game/Code/Screens/UScreenSingModi.pas
index e2d53f0a..7f692af5 100644
--- a/Game/Code/Screens/UScreenSingModi.pas
+++ b/Game/Code/Screens/UScreenSingModi.pas
@@ -1,12 +1,9 @@
-unit UScreenSingModi;
+unit UScreenSingModi;
interface
{$I switches.inc}
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
uses UMenu,
UMusic,
@@ -156,456 +153,456 @@ begin
end;
procedure TScreenSingModi.onShow;
-var
- I: Integer;
-begin
-
- PlayersPlay := TeamInfo.NumTeams;
-
- if DLLMan.Selected.LoadSong then //Start with Song
- begin
- inherited;
- end
- else //Start Without Song
- begin
- AudioInput.CaptureStart;
- end;
-
-//Set Playerinfo
- PlayerInfo.NumPlayers := PlayersPlay;
- for I := 0 to PlayerInfo.NumPlayers-1 do
- begin
- PlayerInfo.Playerinfo[I].Name := PChar(Ini.Name[I]);
- PlayerInfo.Playerinfo[I].Score := 0;
- PlayerInfo.Playerinfo[I].Bar := 50;
- PlayerInfo.Playerinfo[I].Enabled := True;
- end;
-
- for I := PlayerInfo.NumPlayers to high(PlayerInfo.Playerinfo) do
- begin
- PlayerInfo.Playerinfo[I].Score:= 0;
- PlayerInfo.Playerinfo[I].Bar := 0;
- PlayerInfo.Playerinfo[I].Enabled := False;
- end;
-
- {Case PlayersPlay of
- 1: begin
- PlayerInfo.Playerinfo[0].PosX := Static[StaticP1ScoreBG].Texture.X;
- PlayerInfo.Playerinfo[0].PosY := Static[StaticP1ScoreBG].Texture.Y + Static[StaticP1ScoreBG].Texture.H;
- end;
- 2,4: begin
- PlayerInfo.Playerinfo[0].PosX := Static[StaticP1TwoPScoreBG].Texture.X;
- PlayerInfo.Playerinfo[0].PosY := Static[StaticP1TwoPScoreBG].Texture.Y + Static[StaticP1TwoPScoreBG].Texture.H;
- PlayerInfo.Playerinfo[2].PosX := Static[StaticP1TwoPScoreBG].Texture.X;
- PlayerInfo.Playerinfo[2].PosY := Static[StaticP1TwoPScoreBG].Texture.Y + Static[StaticP1TwoPScoreBG].Texture.H;
- PlayerInfo.Playerinfo[1].PosX := Static[StaticP2RScoreBG].Texture.X;
- PlayerInfo.Playerinfo[1].PosY := Static[StaticP2RScoreBG].Texture.Y + Static[StaticP2RScoreBG].Texture.H;
- PlayerInfo.Playerinfo[3].PosX := Static[StaticP2RScoreBG].Texture.X;
- PlayerInfo.Playerinfo[3].PosY := Static[StaticP2RScoreBG].Texture.Y + Static[StaticP2RScoreBG].Texture.H;
- end;
- 3,6: begin
- PlayerInfo.Playerinfo[0].PosX := Static[StaticP1ThreePScoreBG].Texture.X;
- PlayerInfo.Playerinfo[0].PosY := Static[StaticP1ThreePScoreBG].Texture.Y + Static[StaticP1ThreePScoreBG].Texture.H;
- PlayerInfo.Playerinfo[3].PosX := Static[StaticP1ThreePScoreBG].Texture.X;
- PlayerInfo.Playerinfo[3].PosY := Static[StaticP1ThreePScoreBG].Texture.Y + Static[StaticP1ThreePScoreBG].Texture.H;
- PlayerInfo.Playerinfo[1].PosX := Static[StaticP2MScoreBG].Texture.X;
- PlayerInfo.Playerinfo[1].PosY := Static[StaticP2MScoreBG].Texture.Y + Static[StaticP2MScoreBG].Texture.H;
- PlayerInfo.Playerinfo[4].PosX := Static[StaticP2MScoreBG].Texture.X;
- PlayerInfo.Playerinfo[4].PosY := Static[StaticP2MScoreBG].Texture.Y + Static[StaticP2MScoreBG].Texture.H;
- PlayerInfo.Playerinfo[2].PosX := Static[StaticP3RScoreBG].Texture.X;
- PlayerInfo.Playerinfo[2].PosY := Static[StaticP3RScoreBG].Texture.Y + Static[StaticP3RScoreBG].Texture.H;
- PlayerInfo.Playerinfo[5].PosX := Static[StaticP3RScoreBG].Texture.X;
- PlayerInfo.Playerinfo[5].PosY := Static[StaticP3RScoreBG].Texture.Y + Static[StaticP3RScoreBG].Texture.H;
- end;
- end; }
-
- // play music (I)
- //Music.CaptureStart;
- //Music.MoveTo(AktSong.Start);
-
- //Init Plugin
- if not DLLMan.PluginInit(TeamInfo, PlayerInfo, ToSentences(Czesci[0]), LoadTex, Print, LoadSound, PlaySound) then
- begin
- //Fehler
- Log.LogError('Could not Init Plugin');
- Halt;
- end;
-
- // Set Background (Little Workaround, maybe change sometime)
- if (DLLMan.Selected.LoadBack) AND (DLLMan.Selected.LoadSong) then
- ScreenSing.Tex_Background := Tex_Background;
-
- Winner := 0;
-
- //Set Score Visibility
- {if PlayersPlay = 1 then begin
- Text[TextP1Score].Visible := DLLMan.Selected.ShowScore;
- Static[StaticP1ScoreBG].Visible := DLLMan.Selected.ShowScore;
- end;
-
- if (PlayersPlay = 2) OR (PlayersPlay = 4) then begin
- Text[TextP1TwoPScore].Visible := DLLMan.Selected.ShowScore;
- Static[StaticP1TwoPScoreBG].Visible := DLLMan.Selected.ShowScore;
-
- Text[TextP2RScore].Visible := DLLMan.Selected.ShowScore;
- Static[StaticP2RScoreBG].Visible := DLLMan.Selected.ShowScore;
- end;
-
- if (PlayersPlay = 3) OR (PlayersPlay = 6) then begin
- Text[TextP1ThreePScore].Visible := DLLMan.Selected.ShowScore;
- Static[StaticP1ThreePScoreBG].Visible := DLLMan.Selected.ShowScore;
-
- Text[TextP2MScore].Visible := DLLMan.Selected.ShowScore;
- Static[StaticP2MScoreBG].Visible := DLLMan.Selected.ShowScore;
-
- Text[TextP3RScore].Visible := DLLMan.Selected.ShowScore;
- Static[StaticP3RScoreBG].Visible := DLLMan.Selected.ShowScore;
- end; }
-end;
-
-function TScreenSingModi.Draw: boolean;
-var
- Min: integer;
- Sec: integer;
- Tekst: string;
- S, I: integer;
- T: integer;
-begin
-//Set Playerinfo
- PlayerInfo.NumPlayers := PlayersPlay;
- for I := 0 to PlayerInfo.NumPlayers-1 do
- begin
- PlayerInfo.Playerinfo[I].Name := PChar(Player[I].Name);
- if PlayerInfo.Playerinfo[I].Enabled then
- begin
- if (Player[I].ScoreTotalI<=10000) then
- PlayerInfo.Playerinfo[I].Score:= Player[I].ScoreTotalI;
- PlayerInfo.Playerinfo[I].Bar := Round(Scores.Players[I].RBPos * 100);
- end;
- end;
-
-//Show Score
-if DLLMan.Selected.ShowScore then
-begin
- {//ScoreBG Mod
- // set player colors
- if PlayersPlay = 4 then begin
- if ScreenAct = 1 then begin
- LoadColor(Static[StaticP1TwoP].Texture.ColR, Static[StaticP1TwoP].Texture.ColG,
- Static[StaticP1TwoP].Texture.ColB, 'P1Dark');
- LoadColor(Static[StaticP2R].Texture.ColR, Static[StaticP2R].Texture.ColG,
- Static[StaticP2R].Texture.ColB, 'P2Dark');
-
-
-
- LoadColor(Static[StaticP1TwoPScoreBG].Texture.ColR, Static[StaticP1TwoPScoreBG].Texture.ColG,
- Static[StaticP1TwoPScoreBG].Texture.ColB, 'P1Dark');
- LoadColor(Static[StaticP2RScoreBG].Texture.ColR, Static[StaticP2RScoreBG].Texture.ColG,
- Static[StaticP2RScoreBG].Texture.ColB, 'P2Dark');
-
-
-
- end;
- if ScreenAct = 2 then begin
- LoadColor(Static[StaticP1TwoP].Texture.ColR, Static[StaticP1TwoP].Texture.ColG,
- Static[StaticP1TwoP].Texture.ColB, 'P3Dark');
- LoadColor(Static[StaticP2R].Texture.ColR, Static[StaticP2R].Texture.ColG,
- Static[StaticP2R].Texture.ColB, 'P4Dark');
-
-
-
- LoadColor(Static[StaticP1TwoPScoreBG].Texture.ColR, Static[StaticP1TwoPScoreBG].Texture.ColG,
- Static[StaticP1TwoPScoreBG].Texture.ColB, 'P3Dark');
- LoadColor(Static[StaticP2RScoreBG].Texture.ColR, Static[StaticP2RScoreBG].Texture.ColG,
- Static[StaticP2RScoreBG].Texture.ColB, 'P4Dark');
-
-
-
- end;
- end;
-
- if PlayersPlay = 6 then begin
- if ScreenAct = 1 then begin
- LoadColor(Static[StaticP1ThreeP].Texture.ColR, Static[StaticP1ThreeP].Texture.ColG,
- Static[StaticP1ThreeP].Texture.ColB, 'P1Dark');
- LoadColor(Static[StaticP2M].Texture.ColR, Static[StaticP2M].Texture.ColG,
- Static[StaticP2R].Texture.ColB, 'P2Dark');
- LoadColor(Static[StaticP3R].Texture.ColR, Static[StaticP3R].Texture.ColG,
- Static[StaticP3R].Texture.ColB, 'P3Dark');
-
-
-
- LoadColor(Static[StaticP1ThreePScoreBG].Texture.ColR, Static[StaticP1ThreePScoreBG].Texture.ColG,
- Static[StaticP1ThreePScoreBG].Texture.ColB, 'P1Dark');
- LoadColor(Static[StaticP2MScoreBG].Texture.ColR, Static[StaticP2MScoreBG].Texture.ColG,
- Static[StaticP2RScoreBG].Texture.ColB, 'P2Dark');
- LoadColor(Static[StaticP3RScoreBG].Texture.ColR, Static[StaticP3RScoreBG].Texture.ColG,
- Static[StaticP3RScoreBG].Texture.ColB, 'P3Dark');
-
-
-
- end;
- if ScreenAct = 2 then begin
- LoadColor(Static[StaticP1ThreeP].Texture.ColR, Static[StaticP1ThreeP].Texture.ColG,
- Static[StaticP1ThreeP].Texture.ColB, 'P4Dark');
- LoadColor(Static[StaticP2M].Texture.ColR, Static[StaticP2M].Texture.ColG,
- Static[StaticP2R].Texture.ColB, 'P5Dark');
- LoadColor(Static[StaticP3R].Texture.ColR, Static[StaticP3R].Texture.ColG,
- Static[StaticP3R].Texture.ColB, 'P6Dark');
-
-
-
-
- LoadColor(Static[StaticP1ThreePScoreBG].Texture.ColR, Static[StaticP1ThreePScoreBG].Texture.ColG,
- Static[StaticP1ThreePScoreBG].Texture.ColB, 'P4Dark');
- LoadColor(Static[StaticP2MScoreBG].Texture.ColR, Static[StaticP2MScoreBG].Texture.ColG,
- Static[StaticP2RScoreBG].Texture.ColB, 'P5Dark');
- LoadColor(Static[StaticP3RScoreBG].Texture.ColR, Static[StaticP3RScoreBG].Texture.ColG,
- Static[StaticP3RScoreBG].Texture.ColB, 'P6Dark');
-
-
-
-
- end;
- end;
- //end ScoreBG Mod }
-
-// set player names (for 2 screens and only Singstar skin)
- if ScreenAct = 1 then begin
- Text[TextP1].Text := 'P1';
- Text[TextP1TwoP].Text := 'P1'; // added for ps3 skin
- Text[TextP1ThreeP].Text := 'P1'; // added for ps3 skin
- Text[TextP2R].Text := 'P2';
- Text[TextP2M].Text := 'P2';
- Text[TextP3R].Text := 'P3';
- end;
-
- if ScreenAct = 2 then begin
- case PlayersPlay of
- 4: begin
- Text[TextP1TwoP].Text := 'P3';
- Text[TextP2R].Text := 'P4';
- end;
- 6: begin
- Text[TextP1ThreeP].Text := 'P4';
- Text[TextP2M].Text := 'P5';
- Text[TextP3R].Text := 'P6';
- end;
- end; // case
- end; // if
-
-
- // stereo <- and where iss P2M? or P3?
- Static[StaticP1].Texture.X := Static[StaticP1].Texture.X + 10*ScreenX;
- Text[TextP1].X := Text[TextP1].X + 10*ScreenX;
-
- {Static[StaticP1ScoreBG].Texture.X := Static[StaticP1ScoreBG].Texture.X + 10*ScreenX;
- Text[TextP1Score].X := Text[TextP1Score].X + 10*ScreenX;}
-
- Static[StaticP2R].Texture.X := Static[StaticP2R].Texture.X + 10*ScreenX;
- Text[TextP2R].X := Text[TextP2R].X + 10*ScreenX;
-
- {Static[StaticP2RScoreBG].Texture.X := Static[StaticP2RScoreBG].Texture.X + 10*ScreenX;
- Text[TextP2RScore].X := Text[TextP2RScore].X + 10*ScreenX;}
-
- // .. and scores
- {if PlayersPlay = 1 then begin
- Tekst := IntToStr(Player[0].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP1Score].Text := Tekst;
- end;
-
- if PlayersPlay = 2 then begin
- Tekst := IntToStr(Player[0].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP1TwoPScore].Text := Tekst;
-
- Tekst := IntToStr(Player[1].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP2RScore].Text := Tekst;
- end;
-
- if PlayersPlay = 3 then begin
- Tekst := IntToStr(Player[0].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP1ThreePScore].Text := Tekst;
-
- Tekst := IntToStr(Player[1].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP2MScore].Text := Tekst;
-
- Tekst := IntToStr(Player[2].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP3RScore].Text := Tekst;
- end;
-
- if PlayersPlay = 4 then begin
- if ScreenAct = 1 then begin
- Tekst := IntToStr(Player[0].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP1TwoPScore].Text := Tekst;
-
- Tekst := IntToStr(Player[1].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP2RScore].Text := Tekst;
- end;
- if ScreenAct = 2 then begin
- Tekst := IntToStr(Player[2].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP1TwoPScore].Text := Tekst;
-
- Tekst := IntToStr(Player[3].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP2RScore].Text := Tekst;
- end;
- end;
-
- if PlayersPlay = 6 then begin
- if ScreenAct = 1 then begin
- Tekst := IntToStr(Player[0].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP1ThreePScore].Text := Tekst;
-
- Tekst := IntToStr(Player[1].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP2MScore].Text := Tekst;
-
- Tekst := IntToStr(Player[2].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP3RScore].Text := Tekst;
- end;
- if ScreenAct = 2 then begin
- Tekst := IntToStr(Player[3].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP1ThreePScore].Text := Tekst;
-
- Tekst := IntToStr(Player[4].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP2MScore].Text := Tekst;
-
- Tekst := IntToStr(Player[5].ScoreTotalI);
- while Length(Tekst) < 5 do Tekst := '0' + Tekst;
- Text[TextP3RScore].Text := Tekst;
- end;
- end; }
-
-end; //ShowScore
-
- for S := 1 to 1 do
- Static[S].Texture.X := Static[S].Texture.X + 10*ScreenX;
-
- for T := 0 to 1 do
- Text[T].X := Text[T].X + 10*ScreenX;
-
-if DLLMan.Selected.LoadSong then
-begin
- // update static menu with time ...
- Min := Round(Czas.Teraz) div 60;
- Sec := Round(Czas.Teraz) mod 60;
- Text[TextTimeText].Text := '';
- if Min < 10 then Text[TextTimeText].Text := '0';
- Text[TextTimeText].Text := Text[TextTimeText].Text + IntToStr(Min) + ':';
- if Sec < 10 then Text[TextTimeText].Text := Text[TextTimeText].Text + '0';
- Text[TextTimeText].Text := Text[TextTimeText].Text + IntToStr(Sec);
-end;
-
- // draw static menu (BG)
- DrawBG;
-
- //Draw Background
- if (DllMan.Selected.LoadSong) AND (DllMan.Selected.LoadBack) then
- SingDrawBackground;
-
- // comment by blindy: wo zum henker wird denn in diesem screen ein video abgespielt?
- // update and draw movie
- // <mog> wie wo wadd? also in der selben funktion in der uscreensing kommt des video in der zeile 995, oder was wollteste wissen? :X
-{ if ShowFinish and AktSong.VideoLoaded AND DllMan.Selected.LoadVideo then begin
- UpdateSmpeg; // this only draws
- end;}
-
- // draw static menu (FG)
- DrawFG;
-
- if ShowFinish then begin
- if DllMan.Selected.LoadSong then
- begin
- if (not AudioPlayback.Finished) and ((AktSong.Finish = 0) or (Czas.Teraz*1000 <= AktSong.Finish)) then begin
- //Pause Mod:
- if not Paused then
- Sing(Self); // analyze song
- end else begin
- if not FadeOut then begin
- Finish;
- FadeOut := true;
- FadeTo(@ScreenPartyScore);
- end;
- end;
- end;
- end;
-
- // draw custom items
- SingModiDraw(PlayerInfo); // always draw
-
- //GoldenNoteStarsTwinkle Mod
- GoldenRec.SpawnRec;
- //GoldenNoteStarsTwinkle Mod
-
- //Update PlayerInfo
- for I := 0 to PlayerInfo.NumPlayers-1 do
- begin
- if PlayerInfo.Playerinfo[I].Enabled then
- begin
- //PlayerInfo.Playerinfo[I].Bar := Player[I].ScorePercent;
- PlayerInfo.Playerinfo[I].Score := Player[I].ScoreTotalI;
- end;
- end;
-
- if ((ShowFinish) AND (NOT Paused)) then
- begin
- if not DLLMan.PluginDraw(Playerinfo, Czesci[0].Akt) then
- begin
- if not FadeOut then begin
- Finish;
- FadeOut := true;
- FadeTo(@ScreenPartyScore);
- end;
- end;
- end;
-
- //Change PlayerInfo/Changeables
- for I := 0 to PlayerInfo.NumPlayers-1 do
- begin
- if (Player[I].ScoreTotalI <> PlayerInfo.Playerinfo[I].Score) then
- begin
- //Player[I].ScoreTotal := Player[I].ScoreTotal + (PlayerInfo.Playerinfo[I].Score - Player[I].ScoreTotalI);
- Player[I].ScoreTotalI := PlayerInfo.Playerinfo[I].Score;
- end;
- {if (PlayerInfo.Playerinfo[I].Bar <> Player[I].ScorePercent) then
- Player[I].ScorePercentTarget := PlayerInfo.Playerinfo[I].Bar; }
- end;
-
- // back stereo
- Static[StaticP1].Texture.X := Static[StaticP1].Texture.X - 10*ScreenX;
- Text[TextP1].X := Text[TextP1].X - 10*ScreenX;
-
- {Static[StaticP1ScoreBG].Texture.X := Static[StaticP1ScoreBG].Texture.X - 10*ScreenX;
- Text[TextP1Score].X := Text[TextP1Score].X - 10*ScreenX;}
-
-
- Static[StaticP2R].Texture.X := Static[StaticP2R].Texture.X - 10*ScreenX;
- Text[TextP2R].X := Text[TextP2R].X - 10*ScreenX;
-
- {Static[StaticP2RScoreBG].Texture.X := Static[StaticP2RScoreBG].Texture.X - 10*ScreenX;
- Text[TextP2RScore].X := Text[TextP2RScore].X - 10*ScreenX;}
-
-
- for S := 1 to 1 do
- Static[S].Texture.X := Static[S].Texture.X - 10*ScreenX;
-
- for T := 0 to 1 do
- Text[T].X := Text[T].X - 10*ScreenX;
-
-
+var
+ I: Integer;
+begin
+
+ PlayersPlay := TeamInfo.NumTeams;
+
+ if DLLMan.Selected.LoadSong then //Start with Song
+ begin
+ inherited;
+ end
+ else //Start Without Song
+ begin
+ AudioInput.CaptureStart;
+ end;
+
+//Set Playerinfo
+ PlayerInfo.NumPlayers := PlayersPlay;
+ for I := 0 to PlayerInfo.NumPlayers-1 do
+ begin
+ PlayerInfo.Playerinfo[I].Name := PChar(Ini.Name[I]);
+ PlayerInfo.Playerinfo[I].Score := 0;
+ PlayerInfo.Playerinfo[I].Bar := 50;
+ PlayerInfo.Playerinfo[I].Enabled := True;
+ end;
+
+ for I := PlayerInfo.NumPlayers to high(PlayerInfo.Playerinfo) do
+ begin
+ PlayerInfo.Playerinfo[I].Score:= 0;
+ PlayerInfo.Playerinfo[I].Bar := 0;
+ PlayerInfo.Playerinfo[I].Enabled := False;
+ end;
+
+ {Case PlayersPlay of
+ 1: begin
+ PlayerInfo.Playerinfo[0].PosX := Static[StaticP1ScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[0].PosY := Static[StaticP1ScoreBG].Texture.Y + Static[StaticP1ScoreBG].Texture.H;
+ end;
+ 2,4: begin
+ PlayerInfo.Playerinfo[0].PosX := Static[StaticP1TwoPScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[0].PosY := Static[StaticP1TwoPScoreBG].Texture.Y + Static[StaticP1TwoPScoreBG].Texture.H;
+ PlayerInfo.Playerinfo[2].PosX := Static[StaticP1TwoPScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[2].PosY := Static[StaticP1TwoPScoreBG].Texture.Y + Static[StaticP1TwoPScoreBG].Texture.H;
+ PlayerInfo.Playerinfo[1].PosX := Static[StaticP2RScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[1].PosY := Static[StaticP2RScoreBG].Texture.Y + Static[StaticP2RScoreBG].Texture.H;
+ PlayerInfo.Playerinfo[3].PosX := Static[StaticP2RScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[3].PosY := Static[StaticP2RScoreBG].Texture.Y + Static[StaticP2RScoreBG].Texture.H;
+ end;
+ 3,6: begin
+ PlayerInfo.Playerinfo[0].PosX := Static[StaticP1ThreePScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[0].PosY := Static[StaticP1ThreePScoreBG].Texture.Y + Static[StaticP1ThreePScoreBG].Texture.H;
+ PlayerInfo.Playerinfo[3].PosX := Static[StaticP1ThreePScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[3].PosY := Static[StaticP1ThreePScoreBG].Texture.Y + Static[StaticP1ThreePScoreBG].Texture.H;
+ PlayerInfo.Playerinfo[1].PosX := Static[StaticP2MScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[1].PosY := Static[StaticP2MScoreBG].Texture.Y + Static[StaticP2MScoreBG].Texture.H;
+ PlayerInfo.Playerinfo[4].PosX := Static[StaticP2MScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[4].PosY := Static[StaticP2MScoreBG].Texture.Y + Static[StaticP2MScoreBG].Texture.H;
+ PlayerInfo.Playerinfo[2].PosX := Static[StaticP3RScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[2].PosY := Static[StaticP3RScoreBG].Texture.Y + Static[StaticP3RScoreBG].Texture.H;
+ PlayerInfo.Playerinfo[5].PosX := Static[StaticP3RScoreBG].Texture.X;
+ PlayerInfo.Playerinfo[5].PosY := Static[StaticP3RScoreBG].Texture.Y + Static[StaticP3RScoreBG].Texture.H;
+ end;
+ end; }
+
+ // play music (I)
+ //Music.CaptureStart;
+ //Music.MoveTo(AktSong.Start);
+
+ //Init Plugin
+ if not DLLMan.PluginInit(TeamInfo, PlayerInfo, ToSentences(Czesci[0]), LoadTex, Print, LoadSound, PlaySound) then
+ begin
+ //Fehler
+ Log.LogError('Could not Init Plugin');
+ Halt;
+ end;
+
+ // Set Background (Little Workaround, maybe change sometime)
+ if (DLLMan.Selected.LoadBack) AND (DLLMan.Selected.LoadSong) then
+ ScreenSing.Tex_Background := Tex_Background;
+
+ Winner := 0;
+
+ //Set Score Visibility
+ {if PlayersPlay = 1 then begin
+ Text[TextP1Score].Visible := DLLMan.Selected.ShowScore;
+ Static[StaticP1ScoreBG].Visible := DLLMan.Selected.ShowScore;
+ end;
+
+ if (PlayersPlay = 2) OR (PlayersPlay = 4) then begin
+ Text[TextP1TwoPScore].Visible := DLLMan.Selected.ShowScore;
+ Static[StaticP1TwoPScoreBG].Visible := DLLMan.Selected.ShowScore;
+
+ Text[TextP2RScore].Visible := DLLMan.Selected.ShowScore;
+ Static[StaticP2RScoreBG].Visible := DLLMan.Selected.ShowScore;
+ end;
+
+ if (PlayersPlay = 3) OR (PlayersPlay = 6) then begin
+ Text[TextP1ThreePScore].Visible := DLLMan.Selected.ShowScore;
+ Static[StaticP1ThreePScoreBG].Visible := DLLMan.Selected.ShowScore;
+
+ Text[TextP2MScore].Visible := DLLMan.Selected.ShowScore;
+ Static[StaticP2MScoreBG].Visible := DLLMan.Selected.ShowScore;
+
+ Text[TextP3RScore].Visible := DLLMan.Selected.ShowScore;
+ Static[StaticP3RScoreBG].Visible := DLLMan.Selected.ShowScore;
+ end; }
+end;
+
+function TScreenSingModi.Draw: boolean;
+var
+ Min: integer;
+ Sec: integer;
+ Tekst: string;
+ S, I: integer;
+ T: integer;
+begin
+//Set Playerinfo
+ PlayerInfo.NumPlayers := PlayersPlay;
+ for I := 0 to PlayerInfo.NumPlayers-1 do
+ begin
+ PlayerInfo.Playerinfo[I].Name := PChar(Player[I].Name);
+ if PlayerInfo.Playerinfo[I].Enabled then
+ begin
+ if (Player[I].ScoreTotalI<=10000) then
+ PlayerInfo.Playerinfo[I].Score:= Player[I].ScoreTotalI;
+ PlayerInfo.Playerinfo[I].Bar := Round(Scores.Players[I].RBPos * 100);
+ end;
+ end;
+
+//Show Score
+if DLLMan.Selected.ShowScore then
+begin
+ {//ScoreBG Mod
+ // set player colors
+ if PlayersPlay = 4 then begin
+ if ScreenAct = 1 then begin
+ LoadColor(Static[StaticP1TwoP].Texture.ColR, Static[StaticP1TwoP].Texture.ColG,
+ Static[StaticP1TwoP].Texture.ColB, 'P1Dark');
+ LoadColor(Static[StaticP2R].Texture.ColR, Static[StaticP2R].Texture.ColG,
+ Static[StaticP2R].Texture.ColB, 'P2Dark');
+
+
+
+ LoadColor(Static[StaticP1TwoPScoreBG].Texture.ColR, Static[StaticP1TwoPScoreBG].Texture.ColG,
+ Static[StaticP1TwoPScoreBG].Texture.ColB, 'P1Dark');
+ LoadColor(Static[StaticP2RScoreBG].Texture.ColR, Static[StaticP2RScoreBG].Texture.ColG,
+ Static[StaticP2RScoreBG].Texture.ColB, 'P2Dark');
+
+
+
+ end;
+ if ScreenAct = 2 then begin
+ LoadColor(Static[StaticP1TwoP].Texture.ColR, Static[StaticP1TwoP].Texture.ColG,
+ Static[StaticP1TwoP].Texture.ColB, 'P3Dark');
+ LoadColor(Static[StaticP2R].Texture.ColR, Static[StaticP2R].Texture.ColG,
+ Static[StaticP2R].Texture.ColB, 'P4Dark');
+
+
+
+ LoadColor(Static[StaticP1TwoPScoreBG].Texture.ColR, Static[StaticP1TwoPScoreBG].Texture.ColG,
+ Static[StaticP1TwoPScoreBG].Texture.ColB, 'P3Dark');
+ LoadColor(Static[StaticP2RScoreBG].Texture.ColR, Static[StaticP2RScoreBG].Texture.ColG,
+ Static[StaticP2RScoreBG].Texture.ColB, 'P4Dark');
+
+
+
+ end;
+ end;
+
+ if PlayersPlay = 6 then begin
+ if ScreenAct = 1 then begin
+ LoadColor(Static[StaticP1ThreeP].Texture.ColR, Static[StaticP1ThreeP].Texture.ColG,
+ Static[StaticP1ThreeP].Texture.ColB, 'P1Dark');
+ LoadColor(Static[StaticP2M].Texture.ColR, Static[StaticP2M].Texture.ColG,
+ Static[StaticP2R].Texture.ColB, 'P2Dark');
+ LoadColor(Static[StaticP3R].Texture.ColR, Static[StaticP3R].Texture.ColG,
+ Static[StaticP3R].Texture.ColB, 'P3Dark');
+
+
+
+ LoadColor(Static[StaticP1ThreePScoreBG].Texture.ColR, Static[StaticP1ThreePScoreBG].Texture.ColG,
+ Static[StaticP1ThreePScoreBG].Texture.ColB, 'P1Dark');
+ LoadColor(Static[StaticP2MScoreBG].Texture.ColR, Static[StaticP2MScoreBG].Texture.ColG,
+ Static[StaticP2RScoreBG].Texture.ColB, 'P2Dark');
+ LoadColor(Static[StaticP3RScoreBG].Texture.ColR, Static[StaticP3RScoreBG].Texture.ColG,
+ Static[StaticP3RScoreBG].Texture.ColB, 'P3Dark');
+
+
+
+ end;
+ if ScreenAct = 2 then begin
+ LoadColor(Static[StaticP1ThreeP].Texture.ColR, Static[StaticP1ThreeP].Texture.ColG,
+ Static[StaticP1ThreeP].Texture.ColB, 'P4Dark');
+ LoadColor(Static[StaticP2M].Texture.ColR, Static[StaticP2M].Texture.ColG,
+ Static[StaticP2R].Texture.ColB, 'P5Dark');
+ LoadColor(Static[StaticP3R].Texture.ColR, Static[StaticP3R].Texture.ColG,
+ Static[StaticP3R].Texture.ColB, 'P6Dark');
+
+
+
+
+ LoadColor(Static[StaticP1ThreePScoreBG].Texture.ColR, Static[StaticP1ThreePScoreBG].Texture.ColG,
+ Static[StaticP1ThreePScoreBG].Texture.ColB, 'P4Dark');
+ LoadColor(Static[StaticP2MScoreBG].Texture.ColR, Static[StaticP2MScoreBG].Texture.ColG,
+ Static[StaticP2RScoreBG].Texture.ColB, 'P5Dark');
+ LoadColor(Static[StaticP3RScoreBG].Texture.ColR, Static[StaticP3RScoreBG].Texture.ColG,
+ Static[StaticP3RScoreBG].Texture.ColB, 'P6Dark');
+
+
+
+
+ end;
+ end;
+ //end ScoreBG Mod }
+
+// set player names (for 2 screens and only Singstar skin)
+ if ScreenAct = 1 then begin
+ Text[TextP1].Text := 'P1';
+ Text[TextP1TwoP].Text := 'P1'; // added for ps3 skin
+ Text[TextP1ThreeP].Text := 'P1'; // added for ps3 skin
+ Text[TextP2R].Text := 'P2';
+ Text[TextP2M].Text := 'P2';
+ Text[TextP3R].Text := 'P3';
+ end;
+
+ if ScreenAct = 2 then begin
+ case PlayersPlay of
+ 4: begin
+ Text[TextP1TwoP].Text := 'P3';
+ Text[TextP2R].Text := 'P4';
+ end;
+ 6: begin
+ Text[TextP1ThreeP].Text := 'P4';
+ Text[TextP2M].Text := 'P5';
+ Text[TextP3R].Text := 'P6';
+ end;
+ end; // case
+ end; // if
+
+
+ // stereo <- and where iss P2M? or P3?
+ Static[StaticP1].Texture.X := Static[StaticP1].Texture.X + 10*ScreenX;
+ Text[TextP1].X := Text[TextP1].X + 10*ScreenX;
+
+ {Static[StaticP1ScoreBG].Texture.X := Static[StaticP1ScoreBG].Texture.X + 10*ScreenX;
+ Text[TextP1Score].X := Text[TextP1Score].X + 10*ScreenX;}
+
+ Static[StaticP2R].Texture.X := Static[StaticP2R].Texture.X + 10*ScreenX;
+ Text[TextP2R].X := Text[TextP2R].X + 10*ScreenX;
+
+ {Static[StaticP2RScoreBG].Texture.X := Static[StaticP2RScoreBG].Texture.X + 10*ScreenX;
+ Text[TextP2RScore].X := Text[TextP2RScore].X + 10*ScreenX;}
+
+ // .. and scores
+ {if PlayersPlay = 1 then begin
+ Tekst := IntToStr(Player[0].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP1Score].Text := Tekst;
+ end;
+
+ if PlayersPlay = 2 then begin
+ Tekst := IntToStr(Player[0].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP1TwoPScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[1].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP2RScore].Text := Tekst;
+ end;
+
+ if PlayersPlay = 3 then begin
+ Tekst := IntToStr(Player[0].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP1ThreePScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[1].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP2MScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[2].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP3RScore].Text := Tekst;
+ end;
+
+ if PlayersPlay = 4 then begin
+ if ScreenAct = 1 then begin
+ Tekst := IntToStr(Player[0].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP1TwoPScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[1].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP2RScore].Text := Tekst;
+ end;
+ if ScreenAct = 2 then begin
+ Tekst := IntToStr(Player[2].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP1TwoPScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[3].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP2RScore].Text := Tekst;
+ end;
+ end;
+
+ if PlayersPlay = 6 then begin
+ if ScreenAct = 1 then begin
+ Tekst := IntToStr(Player[0].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP1ThreePScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[1].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP2MScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[2].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP3RScore].Text := Tekst;
+ end;
+ if ScreenAct = 2 then begin
+ Tekst := IntToStr(Player[3].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP1ThreePScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[4].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP2MScore].Text := Tekst;
+
+ Tekst := IntToStr(Player[5].ScoreTotalI);
+ while Length(Tekst) < 5 do Tekst := '0' + Tekst;
+ Text[TextP3RScore].Text := Tekst;
+ end;
+ end; }
+
+end; //ShowScore
+
+ for S := 1 to 1 do
+ Static[S].Texture.X := Static[S].Texture.X + 10*ScreenX;
+
+ for T := 0 to 1 do
+ Text[T].X := Text[T].X + 10*ScreenX;
+
+if DLLMan.Selected.LoadSong then
+begin
+ // update static menu with time ...
+ Min := Round(Czas.Teraz) div 60;
+ Sec := Round(Czas.Teraz) mod 60;
+ Text[TextTimeText].Text := '';
+ if Min < 10 then Text[TextTimeText].Text := '0';
+ Text[TextTimeText].Text := Text[TextTimeText].Text + IntToStr(Min) + ':';
+ if Sec < 10 then Text[TextTimeText].Text := Text[TextTimeText].Text + '0';
+ Text[TextTimeText].Text := Text[TextTimeText].Text + IntToStr(Sec);
+end;
+
+ // draw static menu (BG)
+ DrawBG;
+
+ //Draw Background
+ if (DllMan.Selected.LoadSong) AND (DllMan.Selected.LoadBack) then
+ SingDrawBackground;
+
+ // comment by blindy: wo zum henker wird denn in diesem screen ein video abgespielt?
+ // update and draw movie
+ // <mog> wie wo wadd? also in der selben funktion in der uscreensing kommt des video in der zeile 995, oder was wollteste wissen? :X
+{ if ShowFinish and AktSong.VideoLoaded AND DllMan.Selected.LoadVideo then begin
+ UpdateSmpeg; // this only draws
+ end;}
+
+ // draw static menu (FG)
+ DrawFG;
+
+ if ShowFinish then begin
+ if DllMan.Selected.LoadSong then
+ begin
+ if (not AudioPlayback.Finished) and ((AktSong.Finish = 0) or (Czas.Teraz*1000 <= AktSong.Finish)) then begin
+ //Pause Mod:
+ if not Paused then
+ Sing(Self); // analyze song
+ end else begin
+ if not FadeOut then begin
+ Finish;
+ FadeOut := true;
+ FadeTo(@ScreenPartyScore);
+ end;
+ end;
+ end;
+ end;
+
+ // draw custom items
+ SingModiDraw(PlayerInfo); // always draw
+
+ //GoldenNoteStarsTwinkle Mod
+ GoldenRec.SpawnRec;
+ //GoldenNoteStarsTwinkle Mod
+
+ //Update PlayerInfo
+ for I := 0 to PlayerInfo.NumPlayers-1 do
+ begin
+ if PlayerInfo.Playerinfo[I].Enabled then
+ begin
+ //PlayerInfo.Playerinfo[I].Bar := Player[I].ScorePercent;
+ PlayerInfo.Playerinfo[I].Score := Player[I].ScoreTotalI;
+ end;
+ end;
+
+ if ((ShowFinish) AND (NOT Paused)) then
+ begin
+ if not DLLMan.PluginDraw(Playerinfo, Czesci[0].Akt) then
+ begin
+ if not FadeOut then begin
+ Finish;
+ FadeOut := true;
+ FadeTo(@ScreenPartyScore);
+ end;
+ end;
+ end;
+
+ //Change PlayerInfo/Changeables
+ for I := 0 to PlayerInfo.NumPlayers-1 do
+ begin
+ if (Player[I].ScoreTotalI <> PlayerInfo.Playerinfo[I].Score) then
+ begin
+ //Player[I].ScoreTotal := Player[I].ScoreTotal + (PlayerInfo.Playerinfo[I].Score - Player[I].ScoreTotalI);
+ Player[I].ScoreTotalI := PlayerInfo.Playerinfo[I].Score;
+ end;
+ {if (PlayerInfo.Playerinfo[I].Bar <> Player[I].ScorePercent) then
+ Player[I].ScorePercentTarget := PlayerInfo.Playerinfo[I].Bar; }
+ end;
+
+ // back stereo
+ Static[StaticP1].Texture.X := Static[StaticP1].Texture.X - 10*ScreenX;
+ Text[TextP1].X := Text[TextP1].X - 10*ScreenX;
+
+ {Static[StaticP1ScoreBG].Texture.X := Static[StaticP1ScoreBG].Texture.X - 10*ScreenX;
+ Text[TextP1Score].X := Text[TextP1Score].X - 10*ScreenX;}
+
+
+ Static[StaticP2R].Texture.X := Static[StaticP2R].Texture.X - 10*ScreenX;
+ Text[TextP2R].X := Text[TextP2R].X - 10*ScreenX;
+
+ {Static[StaticP2RScoreBG].Texture.X := Static[StaticP2RScoreBG].Texture.X - 10*ScreenX;
+ Text[TextP2RScore].X := Text[TextP2RScore].X - 10*ScreenX;}
+
+
+ for S := 1 to 1 do
+ Static[S].Texture.X := Static[S].Texture.X - 10*ScreenX;
+
+ for T := 0 to 1 do
+ Text[T].X := Text[T].X - 10*ScreenX;
+
+
end;
procedure TScreenSingModi.Finish;
@@ -665,4 +662,4 @@ begin
end;
end.
->>>>>>> .r429
+>>>>>>> .r429
diff --git a/Game/Code/Screens/UScreenSong.pas b/Game/Code/Screens/UScreenSong.pas
index 4d146283..3f2f5d58 100644
--- a/Game/Code/Screens/UScreenSong.pas
+++ b/Game/Code/Screens/UScreenSong.pas
@@ -1,12 +1,8 @@
unit UScreenSong;
interface
-{$I switches.inc}
-
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
+{$I switches.inc}
uses
@@ -813,7 +809,7 @@ begin
try
AddButton(300 + Pet*250, 140, 200, 200, '', 'JPG', 'Plain', Theme.Song.Cover.Reflections);
except
- {$IFDEF win32}
+ {$IFDEF MSWINDOWS}
Messagebox(0, PChar('No Cover Image is damage. Could not Workaround Song Loading, Ultrastar will exit now.'), PChar(Language.Translate('US_VERSION')), MB_ICONERROR or MB_OK);
{$ELSE}
// TODO : JB_linux - better handle this message and display to user..
diff --git a/Game/Code/Screens/UScreenSongJumpto.pas b/Game/Code/Screens/UScreenSongJumpto.pas
index de78665e..14228964 100644
--- a/Game/Code/Screens/UScreenSongJumpto.pas
+++ b/Game/Code/Screens/UScreenSongJumpto.pas
@@ -2,6 +2,8 @@ unit UScreenSongJumpto;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, UDisplay, UMusic, UFiles, SysUtils, UThemes;
diff --git a/Game/Code/Screens/UScreenSongMenu.pas b/Game/Code/Screens/UScreenSongMenu.pas
index c6e16f60..6f9b0c53 100644
--- a/Game/Code/Screens/UScreenSongMenu.pas
+++ b/Game/Code/Screens/UScreenSongMenu.pas
@@ -2,9 +2,7 @@ unit UScreenSongMenu;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
+{$I switches.inc}
uses
UMenu,
diff --git a/Game/Code/Screens/UScreenStatDetail.pas b/Game/Code/Screens/UScreenStatDetail.pas
index 1310b127..414055f9 100644
--- a/Game/Code/Screens/UScreenStatDetail.pas
+++ b/Game/Code/Screens/UScreenStatDetail.pas
@@ -2,6 +2,8 @@ unit UScreenStatDetail;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, SysUtils, UDisplay, UMusic, UIni, UThemes;
diff --git a/Game/Code/Screens/UScreenStatMain.pas b/Game/Code/Screens/UScreenStatMain.pas
index 4f46bec2..02209dd7 100644
--- a/Game/Code/Screens/UScreenStatMain.pas
+++ b/Game/Code/Screens/UScreenStatMain.pas
@@ -2,10 +2,7 @@ unit UScreenStatMain;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
uses
UMenu,
@@ -164,7 +161,7 @@ var
Result1, Result2: AStatResult;
ResetTime: TSystemTime;
- {$IFDEF win32}
+ {$IFDEF MSWINDOWS}
function GetFileCreation(Filename: String): TSystemTime;
var
FindData: TWin32FindData;
@@ -207,7 +204,7 @@ begin
ResetTime := GetFileCreation(Database.Filename);
- {$IFDEF win32}
+ {$IFDEF MSWINDOWS}
A1 := ResetTime.wDay;
A2 := ResetTime.wMonth;
A3 := ResetTime.wYear;
diff --git a/Game/Code/Screens/UScreenTop5.pas b/Game/Code/Screens/UScreenTop5.pas
index d0fe15c8..83ba2bb0 100644
--- a/Game/Code/Screens/UScreenTop5.pas
+++ b/Game/Code/Screens/UScreenTop5.pas
@@ -2,10 +2,7 @@ unit UScreenTop5;
interface
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
+{$I switches.inc}
uses
UMenu, SDL, SysUtils, UDisplay, UMusic, USongs, UThemes, ULCD;
diff --git a/Game/Code/Screens/UScreenWelcome.pas b/Game/Code/Screens/UScreenWelcome.pas
index 35e159f8..fc088458 100644
--- a/Game/Code/Screens/UScreenWelcome.pas
+++ b/Game/Code/Screens/UScreenWelcome.pas
@@ -2,6 +2,8 @@ unit UScreenWelcome;
interface
+{$I switches.inc}
+
uses
UMenu, SDL, SysUtils, UThemes;
diff --git a/Game/Code/UltraStar.dpr b/Game/Code/UltraStar.dpr
index 536ef6be..80312bd1 100644
--- a/Game/Code/UltraStar.dpr
+++ b/Game/Code/UltraStar.dpr
@@ -158,250 +158,10 @@ uses
Windows,
SysUtils;
-
-const
- Version = 'UltraStar Deluxe V 1.10 Alpha Build';
-
-var
- WndTitle: string;
- hWnd: THandle;
- I: Integer;
+
+ // eddie: I had to move the main procedure to UMain.pas, because
+ // I can't use the dpr file with Xcode on the mac.
begin
- WndTitle := Version;
-
-// InitializeSound();
-// writeln( 'DONE' );
-// exit;
-
-
- //------------------------------
- //Start more than One Time Prevention
- //------------------------------
- hWnd:= FindWindow(nil, PChar(WndTitle));
- //Programm already started
- if (hWnd <> 0) then
- begin
- I := Messagebox(0, PChar('Another Instance of Ultrastar is already running. Continue ?'), PChar(WndTitle), MB_ICONWARNING or MB_YESNO);
- if (I = IDYes) then
- begin
- I := 1;
- repeat
- Inc(I);
- hWnd := FindWindow(nil, PChar(WndTitle + ' Instance ' + InttoStr(I)));
- until (hWnd = 0);
- WndTitle := WndTitle + ' Instance ' + InttoStr(I);
- end
- else
- Exit;
- end;
-
- //------------------------------
- //StartUp - Create Classes and Load Files
- //------------------------------
- USTime := TTime.Create;
-
- // Commandline Parameter Parser
- Params := TCMDParams.Create;
-
- // Log + Benchmark
- Log := TLog.Create;
- Log.Title := WndTitle;
- Log.Enabled := Not Params.NoLog;
- Log.BenchmarkStart(0);
-
- // Language
- Log.BenchmarkStart(1);
- Log.LogStatus('Initialize Paths', 'Initialization'); InitializePaths;
- Log.LogStatus('Load Language', 'Initialization'); Language := TLanguage.Create;
- //Add Const Values:
- Language.AddConst('US_VERSION', Version);
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Language', 1);
-
- // SDL
- Log.BenchmarkStart(1);
- Log.LogStatus('Initialize SDL', 'Initialization');
- SDL_Init(SDL_INIT_VIDEO or SDL_INIT_AUDIO);
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Initializing SDL', 1);
-
- // SDL_ttf
- Log.BenchmarkStart(1);
- Log.LogStatus('Initialize SDL_ttf', 'Initialization');
- TTF_Init(); //ttf_quit();
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Initializing SDL_ttf', 1);
-
- // Skin
- Log.BenchmarkStart(1);
- Log.LogStatus('Loading Skin List', 'Initialization'); Skin := TSkin.Create;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Skin List', 1);
-
- // Sound Card List
- Log.BenchmarkStart(1);
- Log.LogStatus('Loading Soundcard list', 'Initialization');
- Recording := TRecord.Create;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Soundcard list', 1);
-
- // Ini + Paths
- Log.BenchmarkStart(1);
- Log.LogStatus('Load Ini', 'Initialization'); Ini := TIni.Create;
- Ini.Load;
-
- //Load Languagefile
- if (Params.Language <> -1) then
- Language.ChangeLanguage(ILanguage[Params.Language])
- else
- Language.ChangeLanguage(ILanguage[Ini.Language]);
-
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Ini', 1);
-
-
- // LCD
- Log.BenchmarkStart(1);
- Log.LogStatus('Load LCD', 'Initialization'); LCD := TLCD.Create;
- if Ini.LPT = 1 then begin
-// LCD.HalfInterface := true;
- LCD.Enable;
- LCD.Clear;
- LCD.WriteText(1, ' UltraStar ');
- LCD.WriteText(2, ' Loading... ');
- end;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading LCD', 1);
-
- // Light
- Log.BenchmarkStart(1);
- Log.LogStatus('Load Light', 'Initialization'); Light := TLight.Create;
- if Ini.LPT = 2 then begin
- Light.Enable;
- end;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Light', 1);
-
-
-
- // Theme
- Log.BenchmarkStart(1);
- Log.LogStatus('Load Themes', 'Initialization'); Theme := TTheme.Create('Themes\' + ITheme[Ini.Theme] + '.ini', Ini.Color);
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Themes', 1);
-
- // Covers Cache
- Log.BenchmarkStart(1);
- Log.LogStatus('Creating Covers Cache', 'Initialization'); Covers := TCovers.Create;
- Log.LogBenchmark('Loading Covers Cache Array', 1);
- Log.BenchmarkStart(1);
-
- // Category Covers
- Log.BenchmarkStart(1);
- Log.LogStatus('Creating Category Covers Array', 'Initialization');
- CatCovers:= TCatCovers.Create;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Category Covers Array', 1);
-
- // Songs
- //Log.BenchmarkStart(1);
- Log.LogStatus('Creating Song Array', 'Initialization'); Songs := TSongs.Create;
- Songs.LoadSongList;
- Log.LogStatus('Creating 2nd Song Array', 'Initialization'); CatSongs := TCatSongs.Create;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Songs', 1);
-
- // PluginManager
- Log.BenchmarkStart(1);
- Log.LogStatus('PluginManager', 'Initialization');
- DLLMan := TDLLMan.Create; //Load PluginList
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading PluginManager', 1);
-
- // Party Mode Manager
- Log.BenchmarkStart(1);
- Log.LogStatus('PartySession Manager', 'Initialization');
- PartySession := TParty_Session.Create; //Load PartySession
-
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading PartySession Manager', 1);
-
- // Sound
- Log.BenchmarkStart(1);
- Log.LogStatus('Initialize Sound', 'Initialization'); InitializeSound();
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Initializing Sound', 1);
-
-// exit;
-
- // Graphics
- Log.BenchmarkStart(1);
- Log.LogStatus('Initialize 3D', 'Initialization'); Initialize3D(WndTitle);
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Initializing 3D', 1);
-
- // Score Saving System
- Log.BenchmarkStart(1);
- Log.LogStatus('DataBase System', 'Initialization');
- DataBase := TDataBaseSystem.Create;
-
- if (Params.ScoreFile = '') then
- DataBase.Init ('Ultrastar.db')
- else
- DataBase.Init (Params.ScoreFile);
-
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading DataBase System', 1);
-
- //Playlist Manager
- Log.BenchmarkStart(1);
- Log.LogStatus('Playlist Manager', 'Initialization');
- PlaylistMan := TPlaylistManager.Create;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Playlist Manager', 1);
-
- //GoldenStarsTwinkleMod
- Log.BenchmarkStart(1);
- Log.LogStatus('Effect Manager', 'Initialization');
- GoldenRec := TEffectManager.Create;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Loading Particel System', 1);
-
- // Joypad
- if (Ini.Joypad = 1) OR (Params.Joypad) then begin
- Log.BenchmarkStart(1);
- Log.LogStatus('Initialize Joystick', 'Initialization'); Joy := TJoy.Create;
- Log.BenchmarkEnd(1);
- Log.LogBenchmark('Initializing Joystick', 1);
- end;
-
- Log.BenchmarkEnd(0);
- Log.LogBenchmark('Loading Time', 0);
-
- Log.LogError('Creating Core');
- Core := TCore.Create('Ultrastar Deluxe Beta', MakeVersion(1,1,0, chr(0)));
-
- Log.LogError('Running Core');
- Core.Run;
-
- //------------------------------
- //Start- Mainloop
- //------------------------------
- //Music.SetLoop(true);
- //Music.SetVolume(50);
- //Music.Open(SkinPath + 'Menu Music 3.mp3');
- //Music.Play;
- Log.LogStatus('Main Loop', 'Initialization'); MainLoop;
-
- //------------------------------
- //Finish Application
- //------------------------------
- if Ini.LPT = 1 then LCD.Clear;
- if Ini.LPT = 2 then Light.TurnOff;
-
- Log.LogStatus('Main Loop', 'Finished');
-
- Log.Free;
-
-end. \ No newline at end of file
+ Main;
+end. \ No newline at end of file
diff --git a/Game/Code/lib/FreeImage/FreeBitmap.pas b/Game/Code/lib/FreeImage/FreeBitmap.pas
new file mode 100755
index 00000000..47be822e
--- /dev/null
+++ b/Game/Code/lib/FreeImage/FreeBitmap.pas
@@ -0,0 +1,1740 @@
+unit FreeBitmap;
+
+{$I switches.inc}
+
+
+// ==========================================================
+//
+// Delphi wrapper for FreeImage 3
+//
+// Design and implementation by
+// - Anatoliy Pulyaevskiy (xvel84@rambler.ru)
+//
+// Contributors:
+// - Enzo Costantini (enzocostantini@libero.it)
+//
+// This file is part of FreeImage 3
+//
+// COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
+// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
+// THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
+// OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
+// CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT
+// THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+// SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL
+// PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
+// THIS DISCLAIMER.
+//
+// Use at your own risk!
+//
+// ==========================================================
+//
+// From begining all code of this file is based on C++ wrapper to
+// FreeImage - FreeImagePlus.
+//
+// ==========================================================
+
+interface
+
+uses
+ SysUtils, Classes, Windows, FreeImage;
+
+type
+ { TFreeObject }
+
+ TFreeObject = class(TObject)
+ public
+ function IsValid: Boolean; virtual;
+ end;
+
+ { TFreeTag }
+
+ TFreeTag = class(TFreeObject)
+ private
+ // fields
+ FTag: PFITAG;
+
+ // getters & setters
+ function GetCount: Cardinal;
+ function GetDescription: string;
+ function GetID: Word;
+ function GetKey: string;
+ function GetLength: Cardinal;
+ function GetTagType: FREE_IMAGE_MDTYPE;
+ function GetValue: Pointer;
+ procedure SetCount(const Value: Cardinal);
+ procedure SetDescription(const Value: string);
+ procedure SetID(const Value: Word);
+ procedure SetKey(const Value: string);
+ procedure SetLength(const Value: Cardinal);
+ procedure SetTagType(const Value: FREE_IMAGE_MDTYPE);
+ procedure SetValue(const Value: Pointer);
+ public
+ // construction & destruction
+ constructor Create(ATag: PFITAG = nil); virtual;
+ destructor Destroy; override;
+
+ // methods
+ function Clone: TFreeTag;
+ function IsValid: Boolean; override;
+ function ToString(Model: FREE_IMAGE_MDMODEL; Make: PChar = nil): string;
+
+ // properties
+ property Key: string read GetKey write SetKey;
+ property Description: string read GetDescription write SetDescription;
+ property ID: Word read GetID write SetID;
+ property TagType: FREE_IMAGE_MDTYPE read GetTagType write SetTagType;
+ property Count: Cardinal read GetCount write SetCount;
+ property Length: Cardinal read GetLength write SetLength;
+ property Value: Pointer read GetValue write SetValue;
+ property Tag: PFITAG read FTag;
+ end;
+
+ { forward declarations }
+
+ TFreeBitmap = class;
+ TFreeMemoryIO = class;
+
+ { TFreeBitmap }
+
+ TFreeBitmapChangingEvent = procedure(Sender: TFreeBitmap; var OldDib, NewDib: PFIBITMAP; var Handled: Boolean) of object;
+
+ TFreeBitmap = class(TFreeObject)
+ private
+ // fields
+ FDib: PFIBITMAP;
+ FOnChange: TNotifyEvent;
+ FOnChanging: TFreeBitmapChangingEvent;
+
+ procedure SetDib(Value: PFIBITMAP);
+ protected
+ function DoChanging(var OldDib, NewDib: PFIBITMAP): Boolean; dynamic;
+ function Replace(NewDib: PFIBITMAP): Boolean; dynamic;
+ public
+ constructor Create(ImageType: FREE_IMAGE_TYPE = FIT_BITMAP; Width: Integer = 0; Height: Integer = 0; Bpp: Integer = 0);
+ destructor Destroy; override;
+ function SetSize(ImageType: FREE_IMAGE_TYPE; Width, Height, Bpp: Integer; RedMask: Cardinal = 0; GreenMask: Cardinal = 0; BlueMask: Cardinal = 0): Boolean;
+ procedure Change; dynamic;
+ procedure Assign(Source: TFreeBitmap);
+ function CopySubImage(Left, Top, Right, Bottom: Integer; Dest: TFreeBitmap): Boolean;
+ function PasteSubImage(Src: TFreeBitmap; Left, Top: Integer; Alpha: Integer = 256): Boolean;
+ procedure Clear; virtual;
+ function Load(const FileName: string; Flag: Integer = 0): Boolean;
+ function LoadU(const FileName: WideString; Flag: Integer = 0): Boolean;
+ function LoadFromHandle(IO: PFreeImageIO; Handle: fi_handle; Flag: Integer = 0): Boolean;
+ function LoadFromMemory(MemIO: TFreeMemoryIO; Flag: Integer = 0): Boolean;
+ function LoadFromStream(Stream: TStream; Flag: Integer = 0): Boolean;
+ // save functions
+ function CanSave(fif: FREE_IMAGE_FORMAT): Boolean;
+ function Save(const FileName: string; Flag: Integer = 0): Boolean;
+ function SaveU(const FileName: WideString; Flag: Integer = 0): Boolean;
+ function SaveToHandle(fif: FREE_IMAGE_FORMAT; IO: PFreeImageIO; Handle: fi_handle; Flag: Integer = 0): Boolean;
+ function SaveToMemory(fif: FREE_IMAGE_FORMAT; MemIO: TFreeMemoryIO; Flag: Integer = 0): Boolean;
+ function SaveToStream(fif: FREE_IMAGE_FORMAT; Stream: TStream; Flag: Integer = 0): Boolean;
+ // image information
+ function GetImageType: FREE_IMAGE_TYPE;
+ function GetWidth: Integer;
+ function GetHeight: Integer;
+ function GetScanWidth: Integer;
+ function IsValid: Boolean; override;
+ function GetInfo: PBitmapInfo;
+ function GetInfoHeader: PBitmapInfoHeader;
+ function GetImageSize: Cardinal;
+ function GetBitsPerPixel: Integer;
+ function GetLine: Integer;
+ function GetHorizontalResolution: Double;
+ function GetVerticalResolution: Double;
+ procedure SetHorizontalResolution(Value: Double);
+ procedure SetVerticalResolution(Value: Double);
+ // palette operations
+ function GetPalette: PRGBQUAD;
+ function GetPaletteSize: Integer;
+ function GetColorsUsed: Integer;
+ function GetColorType: FREE_IMAGE_COLOR_TYPE;
+ function IsGrayScale: Boolean;
+ // pixels access
+ function AccessPixels: PByte;
+ function GetScanLine(ScanLine: Integer): PByte;
+ function GetPixelIndex(X, Y: Cardinal; var Value: PByte): Boolean;
+ function GetPixelColor(X, Y: Cardinal; Value: PRGBQUAD): Boolean;
+ function SetPixelIndex(X, Y: Cardinal; Value: PByte): Boolean;
+ function SetPixelColor(X, Y: Cardinal; Value: PRGBQUAD): Boolean;
+ // convertion
+ function ConvertToStandardType(ScaleLinear: Boolean): Boolean;
+ function ConvertToType(ImageType: FREE_IMAGE_TYPE; ScaleLinear: Boolean): Boolean;
+ function Threshold(T: Byte): Boolean;
+ function ConvertTo4Bits: Boolean;
+ function ConvertTo8Bits: Boolean;
+ function ConvertTo16Bits555: Boolean;
+ function ConvertTo16Bits565: Boolean;
+ function ConvertTo24Bits: Boolean;
+ function ConvertTo32Bits: Boolean;
+ function ConvertToGrayscale: Boolean;
+ function ColorQuantize(Algorithm: FREE_IMAGE_QUANTIZE): Boolean;
+ function Dither(Algorithm: FREE_IMAGE_DITHER): Boolean;
+ function ConvertToRGBF: Boolean;
+ function ToneMapping(TMO: FREE_IMAGE_TMO; FirstParam, SecondParam: Double): Boolean;
+ // transparency
+ function IsTransparent: Boolean;
+ function GetTransparencyCount: Cardinal;
+ function GetTransparencyTable: PByte;
+ procedure SetTransparencyTable(Table: PByte; Count: Integer);
+ function HasFileBkColor: Boolean;
+ function GetFileBkColor(var BkColor: PRGBQuad): Boolean;
+ function SetFileBkColor(BkColor: PRGBQuad): Boolean;
+ // channel processing routines
+ function GetChannel(Bitmap: TFreeBitmap; Channel: FREE_IMAGE_COLOR_CHANNEL): Boolean;
+ function SetChannel(Bitmap: TFreeBitmap; Channel: FREE_IMAGE_COLOR_CHANNEL): Boolean;
+ function SplitChannels(RedChannel, GreenChannel, BlueChannel: TFreeBitmap): Boolean;
+ function CombineChannels(Red, Green, Blue: TFreeBitmap): Boolean;
+ // rotation and flipping
+ function RotateEx(Angle, XShift, YShift, XOrigin, YOrigin: Double; UseMask: Boolean): Boolean;
+ function Rotate(Angle: Double): Boolean;
+ function FlipHorizontal: Boolean;
+ function FlipVertical: Boolean;
+ // color manipulation routines
+ function Invert: Boolean;
+ function AdjustCurve(Lut: PByte; Channel: FREE_IMAGE_COLOR_CHANNEL): Boolean;
+ function AdjustGamma(Gamma: Double): Boolean;
+ function AdjustBrightness(Percentage: Double): Boolean;
+ function AdjustContrast(Percentage: Double): Boolean;
+ function GetHistogram(Histo: PDWORD; Channel: FREE_IMAGE_COLOR_CHANNEL = FICC_BLACK): Boolean;
+ // upsampling / downsampling
+ procedure MakeThumbnail(const Width, Height: Integer; DestBitmap: TFreeBitmap);
+ function Rescale(NewWidth, NewHeight: Integer; Filter: FREE_IMAGE_FILTER; Dest: TFreeBitmap = nil): Boolean;
+ // metadata routines
+ function FindFirstMetadata(Model: FREE_IMAGE_MDMODEL; var Tag: TFreeTag): PFIMETADATA;
+ function FindNextMetadata(MDHandle: PFIMETADATA; var Tag: TFreeTag): Boolean;
+ procedure FindCloseMetadata(MDHandle: PFIMETADATA);
+ function SetMetadata(Model: FREE_IMAGE_MDMODEL; const Key: string; Tag: TFreeTag): Boolean;
+ function GetMetadata(Model: FREE_IMAGE_MDMODEL; const Key: string; var Tag: TFreeTag): Boolean;
+ function GetMetadataCount(Model: FREE_IMAGE_MDMODEL): Cardinal;
+
+ // properties
+ property Dib: PFIBITMAP read FDib write SetDib;
+ property OnChange: TNotifyEvent read FOnChange write FOnChange;
+ property OnChanging: TFreeBitmapChangingEvent read FOnChanging write FOnChanging;
+ end;
+
+ { TFreeWinBitmap }
+
+
+ { TFreeMemoryIO }
+
+ TFreeMemoryIO = class(TFreeObject)
+ private
+ FHMem: PFIMEMORY;
+ public
+ // construction and destruction
+ constructor Create(Data: PByte = nil; SizeInBytes: DWORD = 0);
+ destructor Destroy; override;
+
+ function GetFileType: FREE_IMAGE_FORMAT;
+ function Read(fif: FREE_IMAGE_FORMAT; Flag: Integer = 0): PFIBITMAP;
+ function Write(fif: FREE_IMAGE_FORMAT; dib: PFIBITMAP; Flag: Integer = 0): Boolean;
+ function Tell: Longint;
+ function Seek(Offset: Longint; Origin: Word): Boolean;
+ function Acquire(var Data: PByte; var SizeInBytes: DWORD): Boolean;
+ // overriden methods
+ function IsValid: Boolean; override;
+ end;
+
+ { TFreeMultiBitmap }
+
+ TFreeMultiBitmap = class(TFreeObject)
+ private
+ FMPage: PFIMULTIBITMAP;
+ FMemoryCache: Boolean;
+ public
+ // constructor and destructor
+ constructor Create(KeepCacheInMemory: Boolean = False);
+ destructor Destroy; override;
+
+ // methods
+ function Open(const FileName: string; CreateNew, ReadOnly: Boolean; Flags: Integer = 0): Boolean;
+ function Close(Flags: Integer = 0): Boolean;
+ function GetPageCount: Integer;
+ procedure AppendPage(Bitmap: TFreeBitmap);
+ procedure InsertPage(Page: Integer; Bitmap: TFreeBitmap);
+ procedure DeletePage(Page: Integer);
+ function MovePage(Target, Source: Integer): Boolean;
+ procedure LockPage(Page: Integer; DestBitmap: TFreeBitmap);
+ procedure UnlockPage(Bitmap: TFreeBitmap; Changed: Boolean);
+ function GetLockedPageNumbers(var Pages: Integer; var Count: Integer): Boolean;
+ // overriden methods
+ function IsValid: Boolean; override;
+
+ // properties
+ // change of this property influences only on the next opening of a file
+ property MemoryCache: Boolean read FMemoryCache write FMemoryCache;
+ end;
+
+implementation
+
+const
+ ThumbSize = 150;
+
+// marker used for clipboard copy / paste
+
+procedure SetFreeImageMarker(bmih: PBitmapInfoHeader; dib: PFIBITMAP);
+begin
+ // Windows constants goes from 0L to 5L
+ // Add $FF to avoid conflicts
+ bmih.biCompression := $FF + FreeImage_GetImageType(dib);
+end;
+
+function GetFreeImageMarker(bmih: PBitmapInfoHeader): FREE_IMAGE_TYPE;
+begin
+ Result := FREE_IMAGE_TYPE(bmih.biCompression - $FF);
+end;
+
+{ TFreePersistent }
+
+function TFreeObject.IsValid: Boolean;
+begin
+ Result := False
+end;
+
+{ TFreeBitmap }
+
+function TFreeBitmap.AccessPixels: PByte;
+begin
+ Result := FreeImage_GetBits(FDib)
+end;
+
+function TFreeBitmap.AdjustBrightness(Percentage: Double): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_AdjustBrightness(FDib, Percentage);
+ Change;
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.AdjustContrast(Percentage: Double): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_AdjustContrast(FDib, Percentage);
+ Change;
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.AdjustCurve(Lut: PByte;
+ Channel: FREE_IMAGE_COLOR_CHANNEL): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_AdjustCurve(FDib, Lut, Channel);
+ Change;
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.AdjustGamma(Gamma: Double): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_AdjustGamma(FDib, Gamma);
+ Change;
+ end
+ else
+ Result := False
+end;
+
+procedure TFreeBitmap.Assign(Source: TFreeBitmap);
+var
+ SourceBmp: TFreeBitmap;
+ Clone: PFIBITMAP;
+begin
+ if Source = nil then
+ begin
+ Clear;
+ Exit;
+ end;
+
+ if Source is TFreeBitmap then
+ begin
+ SourceBmp := TFreeBitmap(Source);
+ if SourceBmp <> Self then
+ begin
+ if SourceBmp.IsValid then
+ begin
+ Clone := FreeImage_Clone(SourceBmp.FDib);
+ Replace(Clone);
+ end
+ else
+ Clear;
+ end;
+ end;
+end;
+
+function TFreeBitmap.CanSave(fif: FREE_IMAGE_FORMAT): Boolean;
+var
+ ImageType: FREE_IMAGE_TYPE;
+ Bpp: Word;
+begin
+ Result := False;
+ if not IsValid then Exit;
+
+ if fif <> FIF_UNKNOWN then
+ begin
+ // check that the dib can be saved in this format
+ ImageType := FreeImage_GetImageType(FDib);
+ if ImageType = FIT_BITMAP then
+ begin
+ // standard bitmap type
+ Bpp := FreeImage_GetBPP(FDib);
+ Result := FreeImage_FIFSupportsWriting(fif)
+ and FreeImage_FIFSupportsExportBPP(fif, Bpp);
+ end
+ else // special bitmap type
+ Result := FreeImage_FIFSupportsExportType(fif, ImageType);
+ end;
+end;
+
+procedure TFreeBitmap.Change;
+begin
+ if Assigned(FOnChange) then FOnChange(Self)
+end;
+
+procedure TFreeBitmap.Clear;
+begin
+ if FDib <> nil then
+ begin
+ FreeImage_Unload(FDib);
+ FDib := nil;
+ Change;
+ end;
+end;
+
+function TFreeBitmap.ColorQuantize(
+ Algorithm: FREE_IMAGE_QUANTIZE): Boolean;
+var
+ dib8: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dib8 := FreeImage_ColorQuantize(FDib, Algorithm);
+ Result := Replace(dib8);
+ end
+ else
+ Result := False;
+end;
+
+function TFreeBitmap.CombineChannels(Red, Green,
+ Blue: TFreeBitmap): Boolean;
+var
+ Width, Height: Integer;
+begin
+ if FDib = nil then
+ begin
+ Width := Red.GetWidth;
+ Height := Red.GetHeight;
+ FDib := FreeImage_Allocate(Width, Height, 24, FI_RGBA_RED_MASK,
+ FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
+ end;
+
+ if FDib <> nil then
+ begin
+ Result := FreeImage_SetChannel(FDib, Red.FDib, FICC_RED) and
+ FreeImage_SetChannel(FDib, Green.FDib, FICC_GREEN) and
+ FreeImage_SetChannel(FDib, Blue.FDib, FICC_BLUE);
+
+ Change
+ end
+ else
+ Result := False;
+end;
+
+function TFreeBitmap.ConvertTo16Bits555: Boolean;
+var
+ dib16_555: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dib16_555 := FreeImage_ConvertTo16Bits555(FDib);
+ Result := Replace(dib16_555);
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.ConvertTo16Bits565: Boolean;
+var
+ dib16_565: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dib16_565 := FreeImage_ConvertTo16Bits565(FDib);
+ Result := Replace(dib16_565);
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.ConvertTo24Bits: Boolean;
+var
+ dibRGB: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dibRGB := FreeImage_ConvertTo24Bits(FDib);
+ Result := Replace(dibRGB);
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.ConvertTo32Bits: Boolean;
+var
+ dib32: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dib32 := FreeImage_ConvertTo32Bits(FDib);
+ Result := Replace(dib32);
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.ConvertTo4Bits: Boolean;
+var
+ dib4: PFIBITMAP;
+begin
+ Result := False;
+ if IsValid then
+ begin
+ dib4 := FreeImage_ConvertTo4Bits(FDib);
+ Result := Replace(dib4);
+ end;
+end;
+
+function TFreeBitmap.ConvertTo8Bits: Boolean;
+var
+ dib8: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dib8 := FreeImage_ConvertTo8Bits(FDib);
+ Result := Replace(dib8);
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.ConvertToGrayscale: Boolean;
+var
+ dib8: PFIBITMAP;
+begin
+ Result := False;
+
+ if IsValid then
+ begin
+ dib8 := FreeImage_ConvertToGreyscale(FDib);
+ Result := Replace(dib8);
+ end
+end;
+
+function TFreeBitmap.ConvertToRGBF: Boolean;
+var
+ ImageType: FREE_IMAGE_TYPE;
+ NewDib: PFIBITMAP;
+begin
+ Result := False;
+ if not IsValid then Exit;
+
+ ImageType := GetImageType;
+
+ if (ImageType = FIT_BITMAP) then
+ begin
+ if GetBitsPerPixel < 24 then
+ if not ConvertTo24Bits then
+ Exit
+ end;
+ NewDib := FreeImage_ConvertToRGBF(FDib);
+ Result := Replace(NewDib);
+end;
+
+function TFreeBitmap.ConvertToStandardType(ScaleLinear: Boolean): Boolean;
+var
+ dibStandard: PFIBITMAP;
+begin
+ if IsValid then
+ begin
+ dibStandard := FreeImage_ConvertToStandardType(FDib, ScaleLinear);
+ Result := Replace(dibStandard);
+ end
+ else
+ Result := False;
+end;
+
+function TFreeBitmap.ConvertToType(ImageType: FREE_IMAGE_TYPE;
+ ScaleLinear: Boolean): Boolean;
+var
+ dib: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dib := FreeImage_ConvertToType(FDib, ImageType, ScaleLinear);
+ Result := Replace(dib)
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.CopySubImage(Left, Top, Right, Bottom: Integer;
+ Dest: TFreeBitmap): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Dest.FDib := FreeImage_Copy(FDib, Left, Top, Right, Bottom);
+ Result := Dest.IsValid;
+ end else
+ Result := False;
+end;
+
+constructor TFreeBitmap.Create(ImageType: FREE_IMAGE_TYPE; Width, Height,
+ Bpp: Integer);
+begin
+ inherited Create;
+
+ FDib := nil;
+ if (Width > 0) and (Height > 0) and (Bpp > 0) then
+ SetSize(ImageType, Width, Height, Bpp);
+end;
+
+destructor TFreeBitmap.Destroy;
+begin
+ if FDib <> nil then
+ FreeImage_Unload(FDib);
+ inherited;
+end;
+
+function TFreeBitmap.Dither(Algorithm: FREE_IMAGE_DITHER): Boolean;
+var
+ dib: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dib := FreeImage_Dither(FDib, Algorithm);
+ Result := Replace(dib);
+ end
+ else
+ Result := False;
+end;
+
+function TFreeBitmap.DoChanging(var OldDib, NewDib: PFIBITMAP): Boolean;
+begin
+ Result := False;
+ if (OldDib <> NewDib) and Assigned(FOnChanging) then
+ FOnChanging(Self, OldDib, NewDib, Result);
+end;
+
+procedure TFreeBitmap.FindCloseMetadata(MDHandle: PFIMETADATA);
+begin
+ FreeImage_FindCloseMetadata(MDHandle);
+end;
+
+function TFreeBitmap.FindFirstMetadata(Model: FREE_IMAGE_MDMODEL;
+ var Tag: TFreeTag): PFIMETADATA;
+begin
+ Result := FreeImage_FindFirstMetadata(Model, FDib, Tag.FTag);
+end;
+
+function TFreeBitmap.FindNextMetadata(MDHandle: PFIMETADATA;
+ var Tag: TFreeTag): Boolean;
+begin
+ Result := FreeImage_FindNextMetadata(MDHandle, Tag.FTag);
+end;
+
+function TFreeBitmap.FlipHorizontal: Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_FlipHorizontal(FDib);
+ Change;
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.FlipVertical: Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_FlipVertical(FDib);
+ Change;
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.GetBitsPerPixel: Integer;
+begin
+ Result := FreeImage_GetBPP(FDib)
+end;
+
+function TFreeBitmap.GetChannel(Bitmap: TFreeBitmap;
+ Channel: FREE_IMAGE_COLOR_CHANNEL): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Bitmap.Dib := FreeImage_GetChannel(FDib, Channel);
+ Result := Bitmap.IsValid;
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.GetColorsUsed: Integer;
+begin
+ Result := FreeImage_GetColorsUsed(FDib)
+end;
+
+function TFreeBitmap.GetColorType: FREE_IMAGE_COLOR_TYPE;
+begin
+ Result := FreeImage_GetColorType(FDib);
+end;
+
+function TFreeBitmap.GetFileBkColor(var BkColor: PRGBQuad): Boolean;
+begin
+ Result := FreeImage_GetBackgroundColor(FDib, BkColor)
+end;
+
+function TFreeBitmap.GetHeight: Integer;
+begin
+ Result := FreeImage_GetHeight(FDib)
+end;
+
+function TFreeBitmap.GetHistogram(Histo: PDWORD;
+ Channel: FREE_IMAGE_COLOR_CHANNEL): Boolean;
+begin
+ if FDib <> nil then
+ Result := FreeImage_GetHistogram(FDib, Histo, Channel)
+ else
+ Result := False
+end;
+
+function TFreeBitmap.GetHorizontalResolution: Double;
+begin
+ Result := FreeImage_GetDotsPerMeterX(FDib) / 100
+end;
+
+function TFreeBitmap.GetImageSize: Cardinal;
+begin
+ Result := FreeImage_GetDIBSize(FDib);
+end;
+
+function TFreeBitmap.GetImageType: FREE_IMAGE_TYPE;
+begin
+ Result := FreeImage_GetImageType(FDib);
+end;
+
+function TFreeBitmap.GetInfo: PBitmapInfo;
+begin
+ Result := FreeImage_GetInfo(FDib^)
+end;
+
+function TFreeBitmap.GetInfoHeader: PBITMAPINFOHEADER;
+begin
+ Result := FreeImage_GetInfoHeader(FDib)
+end;
+
+function TFreeBitmap.GetLine: Integer;
+begin
+ Result := FreeImage_GetLine(FDib)
+end;
+
+function TFreeBitmap.GetMetadata(Model: FREE_IMAGE_MDMODEL;
+ const Key: string; var Tag: TFreeTag): Boolean;
+begin
+ Result := FreeImage_GetMetaData(Model, FDib, PChar(Key), Tag.FTag);
+end;
+
+function TFreeBitmap.GetMetadataCount(Model: FREE_IMAGE_MDMODEL): Cardinal;
+begin
+ Result := FreeImage_GetMetadataCount(Model, FDib);
+end;
+
+function TFreeBitmap.GetPalette: PRGBQUAD;
+begin
+ Result := FreeImage_GetPalette(FDib)
+end;
+
+function TFreeBitmap.GetPaletteSize: Integer;
+begin
+ Result := FreeImage_GetColorsUsed(FDib) * SizeOf(RGBQUAD)
+end;
+
+function TFreeBitmap.GetPixelColor(X, Y: Cardinal; Value: PRGBQUAD): Boolean;
+begin
+ Result := FreeImage_GetPixelColor(FDib, X, Y, Value)
+end;
+
+function TFreeBitmap.GetPixelIndex(X, Y: Cardinal;
+ var Value: PByte): Boolean;
+begin
+ Result := FreeImage_GetPixelIndex(FDib, X, Y, Value)
+end;
+
+function TFreeBitmap.GetScanLine(ScanLine: Integer): PByte;
+var
+ H: Integer;
+begin
+ H := FreeImage_GetHeight(FDib);
+ if ScanLine < H then
+ Result := FreeImage_GetScanLine(FDib, ScanLine)
+ else
+ Result := nil;
+end;
+
+function TFreeBitmap.GetScanWidth: Integer;
+begin
+ Result := FreeImage_GetPitch(FDib)
+end;
+
+function TFreeBitmap.GetTransparencyCount: Cardinal;
+begin
+ Result := FreeImage_GetTransparencyCount(FDib)
+end;
+
+function TFreeBitmap.GetTransparencyTable: PByte;
+begin
+ Result := FreeImage_GetTransparencyTable(FDib)
+end;
+
+function TFreeBitmap.GetVerticalResolution: Double;
+begin
+ Result := FreeImage_GetDotsPerMeterY(Fdib) / 100
+end;
+
+function TFreeBitmap.GetWidth: Integer;
+begin
+ Result := FreeImage_GetWidth(FDib)
+end;
+
+function TFreeBitmap.HasFileBkColor: Boolean;
+begin
+ Result := FreeImage_HasBackgroundColor(FDib)
+end;
+
+function TFreeBitmap.Invert: Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_Invert(FDib);
+ Change;
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.IsGrayScale: Boolean;
+begin
+ Result := (FreeImage_GetBPP(FDib) = 8)
+ and (FreeImage_GetColorType(FDib) = FIC_PALETTE);
+end;
+
+function TFreeBitmap.IsTransparent: Boolean;
+begin
+ Result := FreeImage_IsTransparent(FDib);
+end;
+
+function TFreeBitmap.IsValid: Boolean;
+begin
+ Result := FDib <> nil
+end;
+
+function TFreeBitmap.Load(const FileName: string; Flag: Integer): Boolean;
+var
+ fif: FREE_IMAGE_FORMAT;
+begin
+
+ // check the file signature and get its format
+ fif := FreeImage_GetFileType(PChar(Filename), 0);
+ if fif = FIF_UNKNOWN then
+ // no signature?
+ // try to guess the file format from the file extention
+ fif := FreeImage_GetFIFFromFilename(PChar(FileName));
+
+ // check that the plugin has reading capabilities ...
+ if (fif <> FIF_UNKNOWN) and FreeImage_FIFSupportsReading(FIF) then
+ begin
+ // free the previous dib
+ if FDib <> nil then
+ FreeImage_Unload(dib);
+
+ // load the file
+ FDib := FreeImage_Load(fif, PChar(FileName), Flag);
+
+ Change;
+ Result := IsValid;
+ end else
+ Result := False;
+end;
+
+function TFreeBitmap.LoadFromHandle(IO: PFreeImageIO; Handle: fi_handle;
+ Flag: Integer): Boolean;
+var
+ fif: FREE_IMAGE_FORMAT;
+begin
+ // check the file signature and get its format
+ fif := FreeImage_GetFileTypeFromHandle(IO, Handle, 16);
+ if (fif <> FIF_UNKNOWN) and FreeImage_FIFSupportsReading(fif) then
+ begin
+ // free the previous dib
+ if FDib <> nil then
+ FreeImage_Unload(FDib);
+
+ // load the file
+ FDib := FreeImage_LoadFromHandle(fif, IO, Handle, Flag);
+
+ Change;
+ Result := IsValid;
+ end else
+ Result := False;
+end;
+
+function TFreeBitmap.LoadFromMemory(MemIO: TFreeMemoryIO;
+ Flag: Integer): Boolean;
+var
+ fif: FREE_IMAGE_FORMAT;
+begin
+
+ // check the file signature and get its format
+ fif := MemIO.GetFileType;
+ if (fif <> FIF_UNKNOWN) and FreeImage_FIFSupportsReading(fif) then
+ begin
+ // free the previous dib
+ if FDib <> nil then
+ FreeImage_Unload(FDib);
+
+ // load the file
+ FDib := MemIO.Read(fif, Flag);
+
+ Result := IsValid;
+ Change;
+ end else
+ Result := False;
+end;
+
+function TFreeBitmap.LoadFromStream(Stream: TStream;
+ Flag: Integer): Boolean;
+var
+ MemIO: TFreeMemoryIO;
+ Data: PByte;
+ MemStream: TMemoryStream;
+ Size: Cardinal;
+begin
+ Size := Stream.Size;
+
+ MemStream := TMemoryStream.Create;
+ try
+ MemStream.CopyFrom(Stream, Size);
+ Data := MemStream.Memory;
+
+ MemIO := TFreeMemoryIO.Create(Data, Size);
+ try
+ Result := LoadFromMemory(MemIO);
+ finally
+ MemIO.Free;
+ end;
+ finally
+ MemStream.Free;
+ end;
+end;
+
+function TFreeBitmap.LoadU(const FileName: WideString;
+ Flag: Integer): Boolean;
+var
+ fif: FREE_IMAGE_FORMAT;
+begin
+
+ // check the file signature and get its format
+ fif := FreeImage_GetFileTypeU(PWideChar(Filename), 0);
+ if fif = FIF_UNKNOWN then
+ // no signature?
+ // try to guess the file format from the file extention
+ fif := FreeImage_GetFIFFromFilenameU(PWideChar(FileName));
+
+ // check that the plugin has reading capabilities ...
+ if (fif <> FIF_UNKNOWN) and FreeImage_FIFSupportsReading(FIF) then
+ begin
+ // free the previous dib
+ if FDib <> nil then
+ FreeImage_Unload(dib);
+
+ // load the file
+ FDib := FreeImage_LoadU(fif, PWideChar(FileName), Flag);
+
+ Change;
+ Result := IsValid;
+ end else
+ Result := False;
+end;
+
+procedure TFreeBitmap.MakeThumbnail(const Width, Height: Integer;
+ DestBitmap: TFreeBitmap);
+type
+ PRGB24 = ^TRGB24;
+ TRGB24 = packed record
+ B: Byte;
+ G: Byte;
+ R: Byte;
+ end;
+var
+ x, y, ix, iy: integer;
+ x1, x2, x3: integer;
+
+ xscale, yscale: single;
+ iRed, iGrn, iBlu, iRatio: Longword;
+ p, c1, c2, c3, c4, c5: TRGB24;
+ pt, pt1: PRGB24;
+ iSrc, iDst, s1: integer;
+ i, j, r, g, b, tmpY: integer;
+
+ RowDest, RowSource, RowSourceStart: integer;
+ w, h: Integer;
+ dxmin, dymin: integer;
+ ny1, ny2, ny3: integer;
+ dx, dy: integer;
+ lutX, lutY: array of integer;
+
+ SrcBmp, DestBmp: PFIBITMAP;
+begin
+ if not IsValid then Exit;
+
+ if (GetWidth <= ThumbSize) and (GetHeight <= ThumbSize) then
+ begin
+ DestBitmap.Assign(Self);
+ Exit;
+ end;
+
+ w := Width;
+ h := Height;
+
+ // prepare bitmaps
+ if GetBitsPerPixel <> 24 then
+ SrcBmp := FreeImage_ConvertTo24Bits(FDib)
+ else
+ SrcBmp := FDib;
+ DestBmp := FreeImage_Allocate(w, h, 24);
+ Assert(DestBmp <> nil, 'TFreeBitmap.MakeThumbnail error');
+
+{ iDst := (w * 24 + 31) and not 31;
+ iDst := iDst div 8; //BytesPerScanline
+ iSrc := (GetWidth * 24 + 31) and not 31;
+ iSrc := iSrc div 8;
+}
+ // BytesPerScanline
+ iDst := FreeImage_GetPitch(DestBmp);
+ iSrc := FreeImage_GetPitch(SrcBmp);
+
+ xscale := 1 / (w / FreeImage_GetWidth(SrcBmp));
+ yscale := 1 / (h / FreeImage_GetHeight(SrcBmp));
+
+ // X lookup table
+ SetLength(lutX, w);
+ x1 := 0;
+ x2 := trunc(xscale);
+ for x := 0 to w - 1 do
+ begin
+ lutX[x] := x2 - x1;
+ x1 := x2;
+ x2 := trunc((x + 2) * xscale);
+ end;
+
+ // Y lookup table
+ SetLength(lutY, h);
+ x1 := 0;
+ x2 := trunc(yscale);
+ for x := 0 to h - 1 do
+ begin
+ lutY[x] := x2 - x1;
+ x1 := x2;
+ x2 := trunc((x + 2) * yscale);
+ end;
+
+ Dec(w);
+ Dec(h);
+ RowDest := integer(FreeImage_GetScanLine(DestBmp, 0));
+ RowSourceStart := integer(FreeImage_GetScanLine(SrcBmp, 0));
+ RowSource := RowSourceStart;
+
+ for y := 0 to h do
+ // resampling
+ begin
+ dy := lutY[y];
+ x1 := 0;
+ x3 := 0;
+ for x := 0 to w do // loop through row
+ begin
+ dx:= lutX[x];
+ iRed:= 0;
+ iGrn:= 0;
+ iBlu:= 0;
+ RowSource := RowSourceStart;
+ for iy := 1 to dy do
+ begin
+ pt := PRGB24(RowSource + x1);
+ for ix := 1 to dx do
+ begin
+ iRed := iRed + pt.R;
+ iGrn := iGrn + pt.G;
+ iBlu := iBlu + pt.B;
+ inc(pt);
+ end;
+ RowSource := RowSource + iSrc;
+ end;
+ iRatio := 65535 div (dx * dy);
+ pt1 := PRGB24(RowDest + x3);
+ pt1.R := (iRed * iRatio) shr 16;
+ pt1.G := (iGrn * iRatio) shr 16;
+ pt1.B := (iBlu * iRatio) shr 16;
+ x1 := x1 + 3 * dx;
+ inc(x3,3);
+ end;
+ RowDest := RowDest + iDst;
+ RowSourceStart := RowSource;
+ end; // resampling
+
+ if FreeImage_GetHeight(DestBmp) >= 3 then
+ // Sharpening...
+ begin
+ s1 := integer(FreeImage_GetScanLine(DestBmp, 0));
+ iDst := integer(FreeImage_GetScanLine(DestBmp, 1)) - s1;
+ ny1 := Integer(s1);
+ ny2 := ny1 + iDst;
+ ny3 := ny2 + iDst;
+ for y := 1 to FreeImage_GetHeight(DestBmp) - 2 do
+ begin
+ for x := 0 to FreeImage_GetWidth(DestBmp) - 3 do
+ begin
+ x1 := x * 3;
+ x2 := x1 + 3;
+ x3 := x1 + 6;
+
+ c1 := pRGB24(ny1 + x1)^;
+ c2 := pRGB24(ny1 + x3)^;
+ c3 := pRGB24(ny2 + x2)^;
+ c4 := pRGB24(ny3 + x1)^;
+ c5 := pRGB24(ny3 + x3)^;
+
+ r := (c1.R + c2.R + (c3.R * -12) + c4.R + c5.R) div -8;
+ g := (c1.G + c2.G + (c3.G * -12) + c4.G + c5.G) div -8;
+ b := (c1.B + c2.B + (c3.B * -12) + c4.B + c5.B) div -8;
+
+ if r < 0 then r := 0 else if r > 255 then r := 255;
+ if g < 0 then g := 0 else if g > 255 then g := 255;
+ if b < 0 then b := 0 else if b > 255 then b := 255;
+
+ pt1 := pRGB24(ny2 + x2);
+ pt1.R := r;
+ pt1.G := g;
+ pt1.B := b;
+ end;
+ inc(ny1, iDst);
+ inc(ny2, iDst);
+ inc(ny3, iDst);
+ end;
+ end; // sharpening
+
+ if SrcBmp <> FDib then
+ FreeImage_Unload(SrcBmp);
+ DestBitmap.Replace(DestBmp);
+end;
+
+function TFreeBitmap.PasteSubImage(Src: TFreeBitmap; Left, Top,
+ Alpha: Integer): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_Paste(FDib, Src.Dib, Left, Top, Alpha);
+ Change;
+ end else
+ Result := False;
+end;
+
+function TFreeBitmap.Replace(NewDib: PFIBITMAP): Boolean;
+begin
+ Result := False;
+ if NewDib = nil then Exit;
+
+ if not DoChanging(FDib, NewDib) and IsValid then
+ FreeImage_Unload(FDib);
+
+ FDib := NewDib;
+ Result := True;
+ Change;
+end;
+
+function TFreeBitmap.Rescale(NewWidth, NewHeight: Integer;
+ Filter: FREE_IMAGE_FILTER; Dest: TFreeBitmap): Boolean;
+var
+ Bpp: Integer;
+ DstDib: PFIBITMAP;
+begin
+ Result := False;
+
+ if FDib <> nil then
+ begin
+ Bpp := FreeImage_GetBPP(FDib);
+
+ if Bpp < 8 then
+ if not ConvertToGrayscale then Exit
+ else
+ if Bpp = 16 then
+ // convert to 24-bit
+ if not ConvertTo24Bits then Exit;
+
+ // perform upsampling / downsampling
+ DstDib := FreeImage_Rescale(FDib, NewWidth, NewHeight, Filter);
+ if Dest = nil then
+ Result := Replace(DstDib)
+ else
+ Result := Dest.Replace(DstDib)
+ end
+end;
+
+function TFreeBitmap.Rotate(Angle: Double): Boolean;
+var
+ Bpp: Integer;
+ Rotated: PFIBITMAP;
+begin
+ Result := False;
+ if IsValid then
+ begin
+ Bpp := FreeImage_GetBPP(FDib);
+ if Bpp in [1, 8, 24, 32] then
+ begin
+ Rotated := FreeImage_RotateClassic(FDib, Angle);
+ Result := Replace(Rotated);
+ end
+ end;
+end;
+
+function TFreeBitmap.RotateEx(Angle, XShift, YShift, XOrigin,
+ YOrigin: Double; UseMask: Boolean): Boolean;
+var
+ Rotated: PFIBITMAP;
+begin
+ Result := False;
+ if FDib <> nil then
+ begin
+ if FreeImage_GetBPP(FDib) >= 8 then
+ begin
+ Rotated := FreeImage_RotateEx(FDib, Angle, XShift, YShift, XOrigin, YOrigin, UseMask);
+ Result := Replace(Rotated);
+ end
+ end;
+end;
+
+function TFreeBitmap.Save(const FileName: string; Flag: Integer): Boolean;
+var
+ fif: FREE_IMAGE_FORMAT;
+begin
+ Result := False;
+
+ // try to guess the file format from the file extension
+ fif := FreeImage_GetFIFFromFilename(PChar(Filename));
+ if CanSave(fif) then
+ Result := FreeImage_Save(fif, FDib, PChar(FileName), Flag);
+end;
+
+function TFreeBitmap.SaveToHandle(fif: FREE_IMAGE_FORMAT; IO: PFreeImageIO;
+ Handle: fi_handle; Flag: Integer): Boolean;
+begin
+ Result := False;
+ if CanSave(fif) then
+ Result := FreeImage_SaveToHandle(fif, FDib, IO, Handle, Flag)
+end;
+
+function TFreeBitmap.SaveToMemory(fif: FREE_IMAGE_FORMAT;
+ MemIO: TFreeMemoryIO; Flag: Integer): Boolean;
+begin
+ Result := False;
+
+ if CanSave(fif) then
+ Result := MemIO.Write(fif, FDib, Flag)
+end;
+
+function TFreeBitmap.SaveToStream(fif: FREE_IMAGE_FORMAT; Stream: TStream;
+ Flag: Integer): Boolean;
+var
+ MemIO: TFreeMemoryIO;
+ Data: PByte;
+ Size: Cardinal;
+begin
+ MemIO := TFreeMemoryIO.Create;
+ try
+ Result := SaveToMemory(fif, MemIO, Flag);
+ if Result then
+ begin
+ MemIO.Acquire(Data, Size);
+ Stream.WriteBuffer(Data^, Size);
+ end;
+ finally
+ MemIO.Free;
+ end;
+end;
+
+function TFreeBitmap.SaveU(const FileName: WideString;
+ Flag: Integer): Boolean;
+var
+ fif: FREE_IMAGE_FORMAT;
+begin
+ Result := False;
+
+ // try to guess the file format from the file extension
+ fif := FreeImage_GetFIFFromFilenameU(PWideChar(Filename));
+ if CanSave(fif) then
+ Result := FreeImage_SaveU(fif, FDib, PWideChar(FileName), Flag);
+end;
+
+function TFreeBitmap.SetChannel(Bitmap: TFreeBitmap;
+ Channel: FREE_IMAGE_COLOR_CHANNEL): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ Result := FreeImage_SetChannel(FDib, Bitmap.FDib, Channel);
+ Change;
+ end
+ else
+ Result := False
+end;
+
+procedure TFreeBitmap.SetDib(Value: PFIBITMAP);
+begin
+ Replace(Value);
+end;
+
+function TFreeBitmap.SetFileBkColor(BkColor: PRGBQuad): Boolean;
+begin
+ Result := FreeImage_SetBackgroundColor(FDib, BkColor);
+ Change;
+end;
+
+procedure TFreeBitmap.SetHorizontalResolution(Value: Double);
+begin
+ if IsValid then
+ begin
+ FreeImage_SetDotsPerMeterX(FDib, Trunc(Value * 100 + 0.5));
+ Change;
+ end;
+end;
+
+function TFreeBitmap.SetMetadata(Model: FREE_IMAGE_MDMODEL;
+ const Key: string; Tag: TFreeTag): Boolean;
+begin
+ Result := FreeImage_SetMetadata(Model, FDib, PChar(Key), Tag.Tag);
+end;
+
+function TFreeBitmap.SetPixelColor(X, Y: Cardinal;
+ Value: PRGBQUAD): Boolean;
+begin
+ Result := FreeImage_SetPixelColor(FDib, X, Y, Value);
+ Change;
+end;
+
+function TFreeBitmap.SetPixelIndex(X, Y: Cardinal; Value: PByte): Boolean;
+begin
+ Result := FreeImage_SetPixelIndex(FDib, X, Y, Value);
+ Change;
+end;
+
+function TFreeBitmap.SetSize(ImageType: FREE_IMAGE_TYPE; Width, Height,
+ Bpp: Integer; RedMask, GreenMask, BlueMask: Cardinal): Boolean;
+var
+ Pal: PRGBQuad;
+ I: Cardinal;
+begin
+ Result := False;
+
+ if FDib <> nil then
+ FreeImage_Unload(FDib);
+
+ FDib := FreeImage_Allocate(Width, Height, Bpp, RedMask, GreenMask, BlueMask);
+ if FDib = nil then Exit;
+
+ if ImageType = FIT_BITMAP then
+ case Bpp of
+ 1, 4, 8:
+ begin
+ Pal := FreeImage_GetPalette(FDib);
+ for I := 0 to FreeImage_GetColorsUsed(FDib) - 1 do
+ begin
+ Pal.rgbBlue := I;
+ Pal.rgbGreen := I;
+ Pal.rgbRed := I;
+ Inc(Pal, SizeOf(RGBQUAD));
+ end;
+ end;
+ end;
+
+ Result := True;
+ Change;
+end;
+
+procedure TFreeBitmap.SetTransparencyTable(Table: PByte; Count: Integer);
+begin
+ FreeImage_SetTransparencyTable(FDib, Table, Count);
+ Change;
+end;
+
+procedure TFreeBitmap.SetVerticalResolution(Value: Double);
+begin
+ if IsValid then
+ begin
+ FreeImage_SetDotsPerMeterY(FDib, Trunc(Value * 100 + 0.5));
+ Change;
+ end;
+end;
+
+function TFreeBitmap.SplitChannels(RedChannel, GreenChannel,
+ BlueChannel: TFreeBitmap): Boolean;
+begin
+ if FDib <> nil then
+ begin
+ RedChannel.FDib := FreeImage_GetChannel(FDib, FICC_RED);
+ GreenChannel.FDib := FreeImage_GetChannel(FDib, FICC_GREEN);
+ BlueChannel.FDib := FreeImage_GetChannel(FDib, FICC_BLUE);
+ Result := RedChannel.IsValid and GreenChannel.IsValid and BlueChannel.IsValid;
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.Threshold(T: Byte): Boolean;
+var
+ dib1: PFIBITMAP;
+begin
+ if FDib <> nil then
+ begin
+ dib1 := FreeImage_Threshold(FDib, T);
+ Result := Replace(dib1);
+ end
+ else
+ Result := False
+end;
+
+function TFreeBitmap.ToneMapping(TMO: FREE_IMAGE_TMO; FirstParam,
+ SecondParam: Double): Boolean;
+var
+ NewDib: PFIBITMAP;
+begin
+ Result := False;
+ if not IsValid then Exit;
+
+ NewDib := FreeImage_ToneMapping(Fdib, TMO, FirstParam, SecondParam);
+ Result := Replace(NewDib);
+end;
+
+
+{ TFreeMultiBitmap }
+
+procedure TFreeMultiBitmap.AppendPage(Bitmap: TFreeBitmap);
+begin
+ if IsValid then
+ FreeImage_AppendPage(FMPage, Bitmap.FDib);
+end;
+
+function TFreeMultiBitmap.Close(Flags: Integer): Boolean;
+begin
+ Result := FreeImage_CloseMultiBitmap(FMPage, Flags);
+ FMPage := nil;
+end;
+
+constructor TFreeMultiBitmap.Create(KeepCacheInMemory: Boolean);
+begin
+ inherited Create;
+ FMemoryCache := KeepCacheInMemory;
+end;
+
+procedure TFreeMultiBitmap.DeletePage(Page: Integer);
+begin
+ if IsValid then
+ FreeImage_DeletePage(FMPage, Page);
+end;
+
+destructor TFreeMultiBitmap.Destroy;
+begin
+ if FMPage <> nil then Close;
+ inherited;
+end;
+
+function TFreeMultiBitmap.GetLockedPageNumbers(var Pages,
+ Count: Integer): Boolean;
+begin
+ Result := False;
+ if not IsValid then Exit;
+ Result := FreeImage_GetLockedPageNumbers(FMPage, Pages, Count)
+end;
+
+function TFreeMultiBitmap.GetPageCount: Integer;
+begin
+ Result := 0;
+ if IsValid then
+ Result := FreeImage_GetPageCount(FMPage)
+end;
+
+procedure TFreeMultiBitmap.InsertPage(Page: Integer; Bitmap: TFreeBitmap);
+begin
+ if IsValid then
+ FreeImage_InsertPage(FMPage, Page, Bitmap.FDib);
+end;
+
+function TFreeMultiBitmap.IsValid: Boolean;
+begin
+ Result := FMPage <> nil
+end;
+
+procedure TFreeMultiBitmap.LockPage(Page: Integer; DestBitmap: TFreeBitmap);
+begin
+ if not IsValid then Exit;
+
+ if Assigned(DestBitmap) then
+ begin
+ DestBitmap.Replace(FreeImage_LockPage(FMPage, Page));
+ end;
+end;
+
+function TFreeMultiBitmap.MovePage(Target, Source: Integer): Boolean;
+begin
+ Result := False;
+ if not IsValid then Exit;
+ Result := FreeImage_MovePage(FMPage, Target, Source);
+end;
+
+function TFreeMultiBitmap.Open(const FileName: string; CreateNew,
+ ReadOnly: Boolean; Flags: Integer): Boolean;
+var
+ fif: FREE_IMAGE_FORMAT;
+begin
+ Result := False;
+
+ // try to guess the file format from the filename
+ fif := FreeImage_GetFIFFromFilename(PChar(FileName));
+
+ // check for supported file types
+ if (fif <> FIF_UNKNOWN) and (not fif in [FIF_TIFF, FIF_ICO, FIF_GIF]) then
+ Exit;
+
+ // open the stream
+ FMPage := FreeImage_OpenMultiBitmap(fif, PChar(FileName), CreateNew, ReadOnly, FMemoryCache, Flags);
+
+ Result := FMPage <> nil;
+end;
+
+procedure TFreeMultiBitmap.UnlockPage(Bitmap: TFreeBitmap;
+ Changed: Boolean);
+begin
+ if IsValid then
+ begin
+ FreeImage_UnlockPage(FMPage, Bitmap.FDib, Changed);
+ // clear the image so that it becomes invalid.
+ // don't use Bitmap.Clear method because it calls FreeImage_Unload
+ // just clear the pointer
+ Bitmap.FDib := nil;
+ Bitmap.Change;
+ end;
+end;
+
+{ TFreeMemoryIO }
+
+function TFreeMemoryIO.Acquire(var Data: PByte;
+ var SizeInBytes: DWORD): Boolean;
+begin
+ Result := FreeImage_AcquireMemory(FHMem, Data, SizeInBytes);
+end;
+
+constructor TFreeMemoryIO.Create(Data: PByte; SizeInBytes: DWORD);
+begin
+ inherited Create;
+ FHMem := FreeImage_OpenMemory(Data, SizeInBytes);
+end;
+
+destructor TFreeMemoryIO.Destroy;
+begin
+ FreeImage_CloseMemory(FHMem);
+ inherited;
+end;
+
+function TFreeMemoryIO.GetFileType: FREE_IMAGE_FORMAT;
+begin
+ Result := FreeImage_GetFileTypeFromMemory(FHMem);
+end;
+
+function TFreeMemoryIO.IsValid: Boolean;
+begin
+ Result := FHMem <> nil
+end;
+
+function TFreeMemoryIO.Read(fif: FREE_IMAGE_FORMAT;
+ Flag: Integer): PFIBITMAP;
+begin
+ Result := FreeImage_LoadFromMemory(fif, FHMem, Flag)
+end;
+
+function TFreeMemoryIO.Seek(Offset: Longint; Origin: Word): Boolean;
+begin
+ Result := FreeImage_SeekMemory(FHMem, Offset, Origin)
+end;
+
+function TFreeMemoryIO.Tell: Longint;
+begin
+ Result := FreeImage_TellMemory(FHMem)
+end;
+
+function TFreeMemoryIO.Write(fif: FREE_IMAGE_FORMAT; dib: PFIBITMAP;
+ Flag: Integer): Boolean;
+begin
+ Result := FreeImage_SaveToMemory(fif, dib, FHMem, Flag)
+end;
+
+{ TFreeTag }
+
+function TFreeTag.Clone: TFreeTag;
+var
+ CloneTag: PFITAG;
+begin
+ Result := nil;
+ if not IsValid then Exit;
+
+ CloneTag := FreeImage_CloneTag(FTag);
+ Result := TFreeTag.Create(CloneTag);
+end;
+
+constructor TFreeTag.Create(ATag: PFITAG);
+begin
+ inherited Create;
+
+ if ATag <> nil then
+ FTag := ATag
+ else
+ FTag := FreeImage_CreateTag;
+end;
+
+destructor TFreeTag.Destroy;
+begin
+ if IsValid then
+ FreeImage_DeleteTag(FTag);
+
+ inherited;
+end;
+
+function TFreeTag.GetCount: Cardinal;
+begin
+ Result := 0;
+ if not IsValid then Exit;
+
+ Result := FreeImage_GetTagCount(FTag);
+end;
+
+function TFreeTag.GetDescription: string;
+begin
+ Result := '';
+ if not IsValid then Exit;
+
+ Result := FreeImage_GetTagDescription(FTag);
+end;
+
+function TFreeTag.GetID: Word;
+begin
+ Result := 0;
+ if not IsValid then Exit;
+
+ Result := FreeImage_GetTagID(FTag);
+end;
+
+function TFreeTag.GetKey: string;
+begin
+ Result := '';
+ if not IsValid then Exit;
+
+ Result := FreeImage_GetTagKey(FTag);
+end;
+
+function TFreeTag.GetLength: Cardinal;
+begin
+ Result := 0;
+ if not IsValid then Exit;
+
+ Result := FreeImage_GetTagLength(FTag);
+end;
+
+function TFreeTag.GetTagType: FREE_IMAGE_MDTYPE;
+begin
+ Result := FIDT_NOTYPE;
+ if not IsValid then Exit;
+
+ Result := FreeImage_GetTagType(FTag);
+end;
+
+function TFreeTag.GetValue: Pointer;
+begin
+ Result := nil;
+ if not IsValid then Exit;
+
+ Result := FreeImage_GetTagValue(FTag);
+end;
+
+function TFreeTag.IsValid: Boolean;
+begin
+ Result := FTag <> nil;
+end;
+
+procedure TFreeTag.SetCount(const Value: Cardinal);
+begin
+ if IsValid then
+ FreeImage_SetTagCount(FTag, Value);
+end;
+
+procedure TFreeTag.SetDescription(const Value: string);
+begin
+ if IsValid then
+ FreeImage_SetTagDescription(FTag, PChar(Value));
+end;
+
+procedure TFreeTag.SetID(const Value: Word);
+begin
+ if IsValid then
+ FreeImage_SetTagID(FTag, Value);
+end;
+
+procedure TFreeTag.SetKey(const Value: string);
+begin
+ if IsValid then
+ FreeImage_SetTagKey(FTag, PChar(Value));
+end;
+
+procedure TFreeTag.SetLength(const Value: Cardinal);
+begin
+ if IsValid then
+ FreeImage_SetTagLength(FTag, Value);
+end;
+
+procedure TFreeTag.SetTagType(const Value: FREE_IMAGE_MDTYPE);
+begin
+ if IsValid then
+ FreeImage_SetTagType(FTag, Value);
+end;
+
+procedure TFreeTag.SetValue(const Value: Pointer);
+begin
+ if IsValid then
+ FreeImage_SetTagValue(FTag, Value);
+end;
+
+function TFreeTag.ToString(Model: FREE_IMAGE_MDMODEL; Make: PChar): string;
+begin
+ Result := FreeImage_TagToString(Model, FTag, Make);
+end;
+
+end.
diff --git a/Game/Code/lib/FreeImage/FreeImage.pas b/Game/Code/lib/FreeImage/FreeImage.pas
new file mode 100755
index 00000000..a1c0e7de
--- /dev/null
+++ b/Game/Code/lib/FreeImage/FreeImage.pas
@@ -0,0 +1,743 @@
+unit FreeImage;
+
+{$I switches.inc}
+
+
+
+
+// ==========================================================
+// Delphi wrapper for FreeImage 3
+//
+// Design and implementation by
+// - Simon Beavis
+// - Peter Byström
+// - Anatoliy Pulyaevskiy (xvel84@rambler.ru)
+//
+// This file is part of FreeImage 3
+//
+// COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
+// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
+// THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
+// OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
+// CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT
+// THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+// SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL
+// PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
+// THIS DISCLAIMER.
+//
+// Use at your own risk!
+// ==========================================================
+
+interface
+
+uses Windows;
+
+{$MINENUMSIZE 4} // Make sure enums are stored as an integer to be compatible with C/C++
+
+const
+ FIDLL = 'libfreeimage.dylib';
+
+// --------------------------------------------------------------------------
+// Bitmap types -------------------------------------------------------------
+// --------------------------------------------------------------------------
+
+type
+ FIBITMAP = record
+ data : Pointer;
+ end;
+ PFIBITMAP = ^FIBITMAP;
+
+ FIMULTIBITMAP = record
+ data : Pointer;
+ end;
+ PFIMULTIBITMAP = ^FIMULTIBITMAP;
+
+// --------------------------------------------------------------------------
+// Indexes for byte arrays, masks and shifts for treating pixels as words ---
+// These coincide with the order of RGBQUAD and RGBTRIPLE -------------------
+// Little Endian (x86 / MS Windows, Linux) : BGR(A) order -------------------
+// --------------------------------------------------------------------------
+
+const
+ FI_RGBA_RED = 2;
+ FI_RGBA_GREEN = 1;
+ FI_RGBA_BLUE = 0;
+ FI_RGBA_ALPHA = 3;
+ FI_RGBA_RED_MASK = $00FF0000;
+ FI_RGBA_GREEN_MASK = $0000FF00;
+ FI_RGBA_BLUE_MASK = $000000FF;
+ FI_RGBA_ALPHA_MASK = $FF000000;
+ FI_RGBA_RED_SHIFT = 16;
+ FI_RGBA_GREEN_SHIFT = 8;
+ FI_RGBA_BLUE_SHIFT = 0;
+ FI_RGBA_ALPHA_SHIFT = 24;
+
+// --------------------------------------------------------------------------
+// The 16bit macros only include masks and shifts, --------------------------
+// since each color element is not byte aligned -----------------------------
+// --------------------------------------------------------------------------
+
+const
+ FI16_555_RED_MASK = $7C00;
+ FI16_555_GREEN_MASK = $03E0;
+ FI16_555_BLUE_MASK = $001F;
+ FI16_555_RED_SHIFT = 10;
+ FI16_555_GREEN_SHIFT = 5;
+ FI16_555_BLUE_SHIFT = 0;
+ FI16_565_RED_MASK = $F800;
+ FI16_565_GREEN_MASK = $07E0;
+ FI16_565_BLUE_MASK = $001F;
+ FI16_565_RED_SHIFT = 11;
+ FI16_565_GREEN_SHIFT = 5;
+ FI16_565_BLUE_SHIFT = 0;
+
+// --------------------------------------------------------------------------
+// ICC profile support ------------------------------------------------------
+// --------------------------------------------------------------------------
+
+const
+ FIICC_DEFAULT = $0;
+ FIICC_COLOR_IS_CMYK = $1;
+
+type
+ FIICCPROFILE = record
+ flags : WORD; // info flag
+ size : DWORD; // profile's size measured in bytes
+ data : Pointer; // points to a block of contiguous memory containing the profile
+ end;
+ PFIICCPROFILE = ^FIICCPROFILE;
+
+// --------------------------------------------------------------------------
+// Important enums ----------------------------------------------------------
+// --------------------------------------------------------------------------
+
+type
+ FREE_IMAGE_FORMAT = type Integer;
+ FREE_IMAGE_TYPE = type Integer;
+ FREE_IMAGE_COLOR_TYPE = type Integer;
+ FREE_IMAGE_QUANTIZE = type Integer;
+ FREE_IMAGE_DITHER = type Integer;
+ FREE_IMAGE_FILTER = type Integer;
+ FREE_IMAGE_COLOR_CHANNEL = type Integer;
+ FREE_IMAGE_MDTYPE = type Integer;
+ FREE_IMAGE_MDMODEL = type Integer;
+ FREE_IMAGE_JPEG_OPERATION = type Integer;
+ FREE_IMAGE_TMO = type Integer;
+
+const
+ // I/O image format identifiers.
+ FIF_UNKNOWN = FREE_IMAGE_FORMAT(-1);
+ FIF_BMP = FREE_IMAGE_FORMAT(0);
+ FIF_ICO = FREE_IMAGE_FORMAT(1);
+ FIF_JPEG = FREE_IMAGE_FORMAT(2);
+ FIF_JNG = FREE_IMAGE_FORMAT(3);
+ FIF_KOALA = FREE_IMAGE_FORMAT(4);
+ FIF_LBM = FREE_IMAGE_FORMAT(5);
+ FIF_IFF = FIF_LBM;
+ FIF_MNG = FREE_IMAGE_FORMAT(6);
+ FIF_PBM = FREE_IMAGE_FORMAT(7);
+ FIF_PBMRAW = FREE_IMAGE_FORMAT(8);
+ FIF_PCD = FREE_IMAGE_FORMAT(9);
+ FIF_PCX = FREE_IMAGE_FORMAT(10);
+ FIF_PGM = FREE_IMAGE_FORMAT(11);
+ FIF_PGMRAW = FREE_IMAGE_FORMAT(12);
+ FIF_PNG = FREE_IMAGE_FORMAT(13);
+ FIF_PPM = FREE_IMAGE_FORMAT(14);
+ FIF_PPMRAW = FREE_IMAGE_FORMAT(15);
+ FIF_RAS = FREE_IMAGE_FORMAT(16);
+ FIF_TARGA = FREE_IMAGE_FORMAT(17);
+ FIF_TIFF = FREE_IMAGE_FORMAT(18);
+ FIF_WBMP = FREE_IMAGE_FORMAT(19);
+ FIF_PSD = FREE_IMAGE_FORMAT(20);
+ FIF_CUT = FREE_IMAGE_FORMAT(21);
+ FIF_XBM = FREE_IMAGE_FORMAT(22);
+ FIF_XPM = FREE_IMAGE_FORMAT(23);
+ FIF_DDS = FREE_IMAGE_FORMAT(24);
+ FIF_GIF = FREE_IMAGE_FORMAT(25);
+ FIF_HDR = FREE_IMAGE_FORMAT(26);
+ FIF_FAXG3 = FREE_IMAGE_FORMAT(27);
+ FIF_SGI = FREE_IMAGE_FORMAT(28);
+
+ // Image type used in FreeImage.
+ FIT_UNKNOWN = FREE_IMAGE_TYPE(0); // unknown type
+ FIT_BITMAP = FREE_IMAGE_TYPE(1); // standard image: 1-, 4-, 8-, 16-, 24-, 32-bit
+ FIT_UINT16 = FREE_IMAGE_TYPE(2); // array of unsigned short: unsigned 16-bit
+ FIT_INT16 = FREE_IMAGE_TYPE(3); // array of short: signed 16-bit
+ FIT_UINT32 = FREE_IMAGE_TYPE(4); // array of unsigned long: unsigned 32-bit
+ FIT_INT32 = FREE_IMAGE_TYPE(5); // array of long: signed 32-bit
+ FIT_FLOAT = FREE_IMAGE_TYPE(6); // array of float: 32-bit IEEE floating point
+ FIT_DOUBLE = FREE_IMAGE_TYPE(7); // array of double: 64-bit IEEE floating point
+ FIT_COMPLEX = FREE_IMAGE_TYPE(8); // array of FICOMPLEX: 2 x 64-bit IEEE floating point
+ FIT_RGB16 = FREE_IMAGE_TYPE(9); // 48-bit RGB image: 3 x 16-bit
+ FIT_RGBA16 = FREE_IMAGE_TYPE(10); // 64-bit RGBA image: 4 x 16-bit
+ FIT_RGBF = FREE_IMAGE_TYPE(11); // 96-bit RGB float image: 3 x 32-bit IEEE floating point
+ FIT_RGBAF = FREE_IMAGE_TYPE(12); // 128-bit RGBA float image: 4 x 32-bit IEEE floating point
+
+ // Image color type used in FreeImage.
+ FIC_MINISWHITE = FREE_IMAGE_COLOR_TYPE(0); // min value is white
+ FIC_MINISBLACK = FREE_IMAGE_COLOR_TYPE(1); // min value is black
+ FIC_RGB = FREE_IMAGE_COLOR_TYPE(2); // RGB color model
+ FIC_PALETTE = FREE_IMAGE_COLOR_TYPE(3); // color map indexed
+ FIC_RGBALPHA = FREE_IMAGE_COLOR_TYPE(4); // RGB color model with alpha channel
+ FIC_CMYK = FREE_IMAGE_COLOR_TYPE(5); // CMYK color model
+
+ // Color quantization algorithms. Constants used in FreeImage_ColorQuantize.
+ FIQ_WUQUANT = FREE_IMAGE_QUANTIZE(0); // Xiaolin Wu color quantization algorithm
+ FIQ_NNQUANT = FREE_IMAGE_QUANTIZE(1); // NeuQuant neural-net quantization algorithm by Anthony Dekker
+
+ // Dithering algorithms. Constants used FreeImage_Dither.
+ FID_FS = FREE_IMAGE_DITHER(0); // Floyd & Steinberg error diffusion
+ FID_BAYER4x4 = FREE_IMAGE_DITHER(1); // Bayer ordered dispersed dot dithering (order 2 dithering matrix)
+ FID_BAYER8x8 = FREE_IMAGE_DITHER(2); // Bayer ordered dispersed dot dithering (order 3 dithering matrix)
+ FID_CLUSTER6x6 = FREE_IMAGE_DITHER(3); // Ordered clustered dot dithering (order 3 - 6x6 matrix)
+ FID_CLUSTER8x8 = FREE_IMAGE_DITHER(4); // Ordered clustered dot dithering (order 4 - 8x8 matrix)
+ FID_CLUSTER16x16 = FREE_IMAGE_DITHER(5); // Ordered clustered dot dithering (order 8 - 16x16 matrix)
+
+ // Lossless JPEG transformations Constants used in FreeImage_JPEGTransform
+ FIJPEG_OP_NONE = FREE_IMAGE_JPEG_OPERATION(0); // no transformation
+ FIJPEG_OP_FLIP_H = FREE_IMAGE_JPEG_OPERATION(1); // horizontal flip
+ FIJPEG_OP_FLIP_V = FREE_IMAGE_JPEG_OPERATION(2); // vertical flip
+ FIJPEG_OP_TRANSPOSE = FREE_IMAGE_JPEG_OPERATION(3); // transpose across UL-to-LR axis
+ FIJPEG_OP_TRANSVERSE = FREE_IMAGE_JPEG_OPERATION(4); // transpose across UR-to-LL axis
+ FIJPEG_OP_ROTATE_90 = FREE_IMAGE_JPEG_OPERATION(5); // 90-degree clockwise rotation
+ FIJPEG_OP_ROTATE_180 = FREE_IMAGE_JPEG_OPERATION(6); // 180-degree rotation
+ FIJPEG_OP_ROTATE_270 = FREE_IMAGE_JPEG_OPERATION(7); // 270-degree clockwise (or 90 ccw)
+
+ // Tone mapping operators. Constants used in FreeImage_ToneMapping.
+ FITMO_DRAGO03 = FREE_IMAGE_TMO(0); // Adaptive logarithmic mapping (F. Drago, 2003)
+ FITMO_REINHARD05 = FREE_IMAGE_TMO(1); // Dynamic range reduction inspired by photoreceptor physiology (E. Reinhard, 2005)
+
+ // Upsampling / downsampling filters. Constants used in FreeImage_Rescale.
+ FILTER_BOX = FREE_IMAGE_FILTER(0); // Box, pulse, Fourier window, 1st order (constant) b-spline
+ FILTER_BICUBIC = FREE_IMAGE_FILTER(1); // Mitchell & Netravali's two-param cubic filter
+ FILTER_BILINEAR = FREE_IMAGE_FILTER(2); // Bilinear filter
+ FILTER_BSPLINE = FREE_IMAGE_FILTER(3); // 4th order (cubic) b-spline
+ FILTER_CATMULLROM = FREE_IMAGE_FILTER(4); // Catmull-Rom spline, Overhauser spline
+ FILTER_LANCZOS3 = FREE_IMAGE_FILTER(5); // Lanczos3 filter
+
+ // Color channels. Constants used in color manipulation routines.
+ FICC_RGB = FREE_IMAGE_COLOR_CHANNEL(0); // Use red, green and blue channels
+ FICC_RED = FREE_IMAGE_COLOR_CHANNEL(1); // Use red channel
+ FICC_GREEN = FREE_IMAGE_COLOR_CHANNEL(2); // Use green channel
+ FICC_BLUE = FREE_IMAGE_COLOR_CHANNEL(3); // Use blue channel
+ FICC_ALPHA = FREE_IMAGE_COLOR_CHANNEL(4); // Use alpha channel
+ FICC_BLACK = FREE_IMAGE_COLOR_CHANNEL(5); // Use black channel
+ FICC_REAL = FREE_IMAGE_COLOR_CHANNEL(6); // Complex images: use real part
+ FICC_IMAG = FREE_IMAGE_COLOR_CHANNEL(7); // Complex images: use imaginary part
+ FICC_MAG = FREE_IMAGE_COLOR_CHANNEL(8); // Complex images: use magnitude
+ FICC_PHASE = FREE_IMAGE_COLOR_CHANNEL(9); // Complex images: use phase
+
+ // Tag data type information (based on TIFF specifications)
+ FIDT_NOTYPE = FREE_IMAGE_MDTYPE(0); // placeholder
+ FIDT_BYTE = FREE_IMAGE_MDTYPE(1); // 8-bit unsigned integer
+ FIDT_ASCII = FREE_IMAGE_MDTYPE(2); // 8-bit bytes w/ last byte null
+ FIDT_SHORT = FREE_IMAGE_MDTYPE(3); // 16-bit unsigned integer
+ FIDT_LONG = FREE_IMAGE_MDTYPE(4); // 32-bit unsigned integer
+ FIDT_RATIONAL = FREE_IMAGE_MDTYPE(5); // 64-bit unsigned fraction
+ FIDT_SBYTE = FREE_IMAGE_MDTYPE(6); // 8-bit signed integer
+ FIDT_UNDEFINED = FREE_IMAGE_MDTYPE(7); // 8-bit untyped data
+ FIDT_SSHORT = FREE_IMAGE_MDTYPE(8); // 16-bit signed integer
+ FIDT_SLONG = FREE_IMAGE_MDTYPE(9); // 32-bit signed integer
+ FIDT_SRATIONAL = FREE_IMAGE_MDTYPE(10); // 64-bit signed fraction
+ FIDT_FLOAT = FREE_IMAGE_MDTYPE(11); // 32-bit IEEE floating point
+ FIDT_DOUBLE = FREE_IMAGE_MDTYPE(12); // 64-bit IEEE floating point
+ FIDT_IFD = FREE_IMAGE_MDTYPE(13); // 32-bit unsigned integer (offset)
+ FIDT_PALETTE = FREE_IMAGE_MDTYPE(14); // 32-bit RGBQUAD
+
+ // Metadata models supported by FreeImage
+ FIMD_NODATA = FREE_IMAGE_MDMODEL(-1);
+ FIMD_COMMENTS = FREE_IMAGE_MDMODEL(0); // single comment or keywords
+ FIMD_EXIF_MAIN = FREE_IMAGE_MDMODEL(1); // Exif-TIFF metadata
+ FIMD_EXIF_EXIF = FREE_IMAGE_MDMODEL(2); // Exif-specific metadata
+ FIMD_EXIF_GPS = FREE_IMAGE_MDMODEL(3); // Exif GPS metadata
+ FIMD_EXIF_MAKERNOTE = FREE_IMAGE_MDMODEL(4); // Exif maker note metadata
+ FIMD_EXIF_INTEROP = FREE_IMAGE_MDMODEL(5); // Exif interoperability metadata
+ FIMD_IPTC = FREE_IMAGE_MDMODEL(6); // IPTC/NAA metadata
+ FIMD_XMP = FREE_IMAGE_MDMODEL(7); // Abobe XMP metadata
+ FIMD_GEOTIFF = FREE_IMAGE_MDMODEL(8); // GeoTIFF metadata (to be implemented)
+ FIMD_ANIMATION = FREE_IMAGE_MDMODEL(9); // Animation metadata
+ FIMD_CUSTOM = FREE_IMAGE_MDMODEL(10); // Used to attach other metadata types to a dib
+
+//{$endif}
+
+type
+ // Handle to a metadata model
+ FIMETADATA = record
+ data: Pointer;
+ end;
+ PFIMETADATA = ^FIMETADATA;
+
+ // Handle to a metadata tag
+ FITAG = record
+ data: Pointer;
+ end;
+ PFITAG = ^FITAG;
+
+// --------------------------------------------------------------------------
+// File IO routines ---------------------------------------------------------
+// --------------------------------------------------------------------------
+
+type
+ FI_Handle = Pointer;
+ PCardinal = ^Cardinal;
+ PInt = ^Integer;
+
+ FI_ReadProc = function(buffer : pointer; size : Cardinal; count : Cardinal; handle : fi_handle) : PCardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_WriteProc = function(buffer : pointer; size, count : Cardinal; handle : FI_Handle) : PCardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_SeekProc = function(handle : fi_handle; offset : longint; origin : integer) : pint; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_TellProc = function(handle : fi_handle) : PCardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+
+ FreeImageIO = packed record
+ read_proc : FI_ReadProc; // pointer to the function used to read data
+ write_proc: FI_WriteProc; // pointer to the function used to write data
+ seek_proc : FI_SeekProc; // pointer to the function used to seek
+ tell_proc : FI_TellProc; // pointer to the function used to aquire the current position
+ end;
+ PFreeImageIO = ^FreeImageIO;
+
+ // Handle to a memory I/O stream
+ FIMEMORY = record
+ data: Pointer;
+ end;
+ PFIMEMORY = ^FIMEMORY;
+
+const
+ // constants used in FreeImage_Seek for Origin parameter
+ SEEK_SET = 0;
+ SEEK_CUR = 1;
+ SEEK_END = 2;
+
+// --------------------------------------------------------------------------
+// Plugin routines ----------------------------------------------------------
+// --------------------------------------------------------------------------
+
+type
+ PPluginStruct = ^PluginStruct;
+
+ FI_InitProc = procedure(Plugin: PPluginStruct; Format_ID: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_FormatProc = function: PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_DescriptionProc = function: PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_ExtensionListProc = function: PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_RegExprProc = function: PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_OpenProc = function(IO: PFreeImageIO; Handle: FI_Handle; Read: Boolean): Pointer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_CloseProc = procedure(IO: PFreeImageIO; Handle: FI_Handle; Data: Pointer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_PageCountProc = function(IO: PFreeImageIO; Handle: FI_Handle; Data: Pointer): Integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_PageCapabilityProc = function(IO: PFreeImageIO; Handle: FI_Handle; Data: Pointer): integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_LoadProc = function(IO: PFreeImageIO; Handle: FI_Handle; Page, Flags: Integer; data: pointer): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_SaveProc = function(IO: PFreeImageIO; Dib: PFIBITMAP; Handle: FI_Handle; Page, Flags: Integer; Data: Pointer): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_ValidateProc = function(IO: PFreeImageIO; Handle: FI_Handle): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_MimeProc = function: PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_SupportsExportBPPProc = function(Bpp: integer): boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_SupportsExportTypeProc = function(AType: FREE_IMAGE_TYPE): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ FI_SupportsICCProfilesProc = function: Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+
+ PluginStruct = record
+ format_proc: FI_FormatProc;
+ description_proc: FI_DescriptionProc;
+ extension_proc: FI_ExtensionListProc;
+ regexpr_proc: FI_RegExprProc;
+ open_proc: FI_OpenProc;
+ close_proc: FI_CloseProc;
+ pagecount_proc: FI_PageCountProc;
+ pagecapability_proc: FI_PageCapabilityProc;
+ load_proc: FI_LoadProc;
+ save_proc: FI_SaveProc;
+ validate_proc: FI_ValidateProc;
+ mime_proc: FI_MimeProc;
+ supports_export_bpp_proc: FI_SupportsExportBPPProc;
+ supports_export_type_proc: FI_SupportsExportTypeProc;
+ supports_icc_profiles_proc: FI_SupportsICCProfilesProc;
+ end;
+
+// --------------------------------------------------------------------------
+// Load/Save flag constants -------------------------------------------------
+// --------------------------------------------------------------------------
+
+const
+ BMP_DEFAULT = 0;
+ BMP_SAVE_RLE = 1;
+ CUT_DEFAULT = 0;
+ DDS_DEFAULT = 0;
+ FAXG3_DEFAULT = 0;
+ GIF_DEFAULT = 0;
+ ICO_DEFAULT = 0;
+ ICO_MAKEALPHA = 0; // convert to 32bpp and create an alpha channel from the AND-mask when loading
+ IFF_DEFAULT = 0;
+ JPEG_DEFAULT = 0;
+ JPEG_FAST = 1;
+ JPEG_ACCURATE = 2;
+ JPEG_QUALITYSUPERB = $0080;
+ JPEG_QUALITYGOOD = $0100;
+ JPEG_QUALITYNORMAL = $0200;
+ JPEG_QUALITYAVERAGE = $0400;
+ JPEG_QUALITYBAD = $0800;
+ JPEG_CMYK = $1000; // load separated CMYK "as is" (use | to combine with other flags)
+ KOALA_DEFAULT = 0;
+ LBM_DEFAULT = 0;
+ MNG_DEFAULT = 0;
+ PCD_DEFAULT = 0;
+ PCD_BASE = 1; // load the bitmap sized 768 x 512
+ PCD_BASEDIV4 = 2; // load the bitmap sized 384 x 256
+ PCD_BASEDIV16 = 3; // load the bitmap sized 192 x 128
+ PCX_DEFAULT = 0;
+ PNG_DEFAULT = 0;
+ PNG_IGNOREGAMMA = 1; // avoid gamma correction
+ PNM_DEFAULT = 0;
+ PNM_SAVE_RAW = 0; // If set the writer saves in RAW format (i.e. P4, P5 or P6)
+ PNM_SAVE_ASCII = 1; // If set the writer saves in ASCII format (i.e. P1, P2 or P3)
+ PSD_DEFAULT = 0;
+ RAS_DEFAULT = 0;
+ SGI_DEFAULT = 0;
+ TARGA_DEFAULT = 0;
+ TARGA_LOAD_RGB888 = 1; // If set the loader converts RGB555 and ARGB8888 -> RGB888.
+ TIFF_DEFAULT = 0;
+ TIFF_CMYK = $0001; // reads/stores tags for separated CMYK (use | to combine with compression flags)
+ TIFF_PACKBITS = $0100; // save using PACKBITS compression
+ TIFF_DEFLATE = $0200; // save using DEFLATE compression
+ TIFF_ADOBE_DEFLATE = $0400; // save using ADOBE DEFLATE compression
+ TIFF_NONE = $0800; // save without any compression
+ TIFF_CCITTFAX3 = $1000; // save using CCITT Group 3 fax encoding
+ TIFF_CCITTFAX4 = $2000; // save using CCITT Group 4 fax encoding
+ TIFF_LZW = $4000; // save using LZW compression
+ TIFF_JPEG = $8000; // save using JPEG compression
+ WBMP_DEFAULT = 0;
+ XBM_DEFAULT = 0;
+ XPM_DEFAULT = 0;
+
+// --------------------------------------------------------------------------
+// Init/Error routines ------------------------------------------------------
+// --------------------------------------------------------------------------
+
+procedure FreeImage_Initialise(load_local_plugins_only : boolean = False); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_DeInitialise; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Version routines ---------------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_GetVersion : PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetCopyrightMessage : PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Message output functions -------------------------------------------------
+// --------------------------------------------------------------------------
+
+procedure FreeImage_OutPutMessageProc(fif: Integer; fmt: PChar); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+type FreeImage_OutputMessageFunction = function(fif: FREE_IMAGE_FORMAT; msg: PChar): pointer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+procedure FreeImage_SetOutputMessage(omf: FreeImage_OutputMessageFunction); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Allocate/Unload routines -------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_Allocate(width, height, bpp: integer; red_mask: Cardinal = 0; green_mask: Cardinal = 0; blue_mask: Cardinal = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_AllocateT(Atype: FREE_IMAGE_TYPE; Width, Height: Integer; bpp: Integer = 8; red_mask: Cardinal = 0; green_mask: Cardinal = 0; blue_mask: Cardinal = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_Clone(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_Unload(dib: PFIBITMAP); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Load / Save routines -----------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_Load(fif: FREE_IMAGE_FORMAT; const filename: PChar; flags: integer = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_LoadU(fif: FREE_IMAGE_FORMAT; const filename: PWideChar; flags: Integer = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_LoadFromHandle(fif: FREE_IMAGE_FORMAT; io: PFreeImageIO; handle: fi_handle; flags: integer = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_Save(fif: FREE_IMAGE_FORMAT; dib: PFIBITMAP; filename: PChar; flags: integer = 0): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SaveU(fif: FREE_IMAGE_FORMAT; dib: PFIBITMAP; const filename: PWideChar; flags: Integer = 0): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SaveToHandle(fif: FREE_IMAGE_FORMAT; dib: PFIBITMAP; io : PFreeImageIO; handle : fi_handle; flags : integer = 0) : Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Memory I/O stream routines -----------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_OpenMemory(data: PByte = nil; size_in_bytes: DWORD = 0): PFIMEMORY; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_CloseMemory(stream: PFIMEMORY); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_LoadFromMemory(fif: FREE_IMAGE_FORMAT; stream: PFIMEMORY; flags: Integer = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SaveToMemory(fif: FREE_IMAGE_FORMAT; dib: PFIBITMAP; stream: PFIMEMORY; flags: Integer = 0): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_TellMemory(stream: PFIMEMORY): Longint; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SeekMemory(stream: PFIMEMORY; offset: Longint; origin: Integer): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_AcquireMemory(stream: PFIMEMORY; var data: PByte; var size_in_bytes: DWORD): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Plugin Interface ---------------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_RegisterLocalPlugin(proc_address: FI_InitProc; format, description, extension, regexpr: PChar): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_RegisterExternalPlugin(path, format, description, extension, regexpr: PChar): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFIFCount: Integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_SetPluginEnabled(fif: FREE_IMAGE_FORMAT; enable: Boolean); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_IsPluginEnabled(fif: FREE_IMAGE_FORMAT): Integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFIFFromFormat(const format: PChar): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFIFFromMime(const format: PChar): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFormatFromFIF(fif: FREE_IMAGE_FORMAT): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFIFExtensionList(fif: FREE_IMAGE_FORMAT): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFIFDescription(fif: FREE_IMAGE_FORMAT): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFIFRegExpr(fif: FREE_IMAGE_FORMAT): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFIFFromFilename(const fname: PChar): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFIFFromFilenameU(const fname:PWideChar): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_FIFSupportsReading(fif: FREE_IMAGE_FORMAT): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_FIFSupportsWriting(fif: FREE_IMAGE_FORMAT): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_FIFSupportsExportBPP(fif: FREE_IMAGE_FORMAT; bpp: Integer): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_FIFSupportsICCProfiles(fif: FREE_IMAGE_FORMAT): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_FIFSupportsExportType(fif: FREE_IMAGE_FORMAT; image_type: FREE_IMAGE_TYPE): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Multipaging interface ----------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_OpenMultiBitmap(fif: FREE_IMAGE_FORMAT; filename: PChar; create_new, read_only, keep_cache_in_memory: Boolean; flags: integer = 0): PFIMULTIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_CloseMultiBitmap(bitmap: PFIMULTIBITMAP; flags: Integer = 0): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetPageCount(bitmap: PFIMULTIBITMAP): Integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_AppendPage(bitmap: PFIMULTIBITMAP; data: PFIBITMAP); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_InsertPage(bitmap: PFIMULTIBITMAP; page: Integer; data: PFIBITMAP); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_DeletePage(bitmap: PFIMULTIBITMAP; page: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_LockPage(bitmap: PFIMULTIBITMAP; page: Integer): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_UnlockPage(bitmap: PFIMULTIBITMAP; page: PFIBITMAP; changed: boolean); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_MovePage(bitmap: PFIMULTIBITMAP; target, source: Integer): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetLockedPageNumbers(bitmap: PFIMULTIBITMAP; var pages: Integer; var count : integer): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Filetype request routines ------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_GetFileType(const filename: PChar; size: Integer): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFileTypeU(const filename: PWideChar; size: Integer): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFileTypeFromHandle(io: PFreeImageIO; handle: FI_Handle; size: Integer = 0): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetFileTypeFromMemory(stream: PFIMEMORY; size: Integer = 0): FREE_IMAGE_FORMAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// ImageType request routine ------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_GetImageType(dib: PFIBITMAP): FREE_IMAGE_TYPE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// FreeImage helper routines ------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_IsLittleEndian: Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_LookupX11Color(const szColor: PChar; var nRed, nGreen, nBlue: PByte): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_LookupSVGColor(const szColor: PChar; var nRed, nGreen, nBlue: PByte): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Pixels access routines ---------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_GetBits(dib: PFIBITMAP): PByte; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetScanLine(dib: PFIBITMAP; scanline: Integer): PByte; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_GetPixelIndex(dib: PFIBITMAP; X, Y: Longint; Value: PByte): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetPixelColor(dib: PFIBITMAP; X, Y: Longint; Value: PRGBQuad): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetPixelIndex(dib: PFIBITMAP; X, Y: Longint; Value: PByte): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetPixelColor(dib: PFIBITMAP; X, Y: Longint; Value: PRGBQuad): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// DIB info routines --------------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_GetColorsUsed(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetBPP(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetWidth(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetHeight(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetLine(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetPitch(dib : PFIBITMAP) : Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetDIBSize(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetPalette(dib: PFIBITMAP): PRGBQUAD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_GetDotsPerMeterX(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetDotsPerMeterY(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_SetDotsPerMeterX(dib: PFIBITMAP; res: Cardinal); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_SetDotsPerMeterY(dib: PFIBITMAP; res: Cardinal); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_GetInfoHeader(dib: PFIBITMAP): PBITMAPINFOHEADER; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetInfo(var dib: FIBITMAP): PBITMAPINFO; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetColorType(dib: PFIBITMAP): FREE_IMAGE_COLOR_TYPE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_GetRedMask(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetGreenMask(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetBlueMask(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_GetTransparencyCount(dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetTransparencyTable(dib: PFIBITMAP): PByte; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_SetTransparent(dib: PFIBITMAP; enabled: boolean); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_SetTransparencyTable(dib: PFIBITMAP; table: PByte; count: integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_IsTransparent(dib: PFIBITMAP): boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_HasBackgroundColor(dib: PFIBITMAP): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetBackgroundColor(dib: PFIBITMAP; var bkcolor: PRGBQUAD): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetBackgroundColor(dib: PFIBITMAP; bkcolor: PRGBQUAD): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// ICC profile routines -----------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_GetICCProfile(var dib: FIBITMAP): PFIICCPROFILE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_CreateICCProfile(var dib: FIBITMAP; data: Pointer; size: Longint): PFIICCPROFILE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_DestroyICCProfile(var dib : FIBITMAP); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Line conversion routines -------------------------------------------------
+// --------------------------------------------------------------------------
+
+procedure FreeImage_ConvertLine1To4(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine8To4(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQuad); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16To4_555(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16To4_565(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine24To4(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine32To4(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+procedure FreeImage_ConvertLine1To8(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine4To8(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16To8_555(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16To8_565(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine24To8(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine32To8(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+procedure FreeImage_ConvertLine1To16_555(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine4To16_555(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine8To16_555(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16_565_To16_555(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine24To16_555(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine32To16_555(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+procedure FreeImage_ConvertLine1To16_565(target, source : PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine4To16_565(target, source : PBYTE; width_in_pixels : Integer; palette : PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine8To16_565(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16_555_To16_565(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine24To16_565(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine32To16_565(target, source : PBYTE; width_in_pixels : Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+procedure FreeImage_ConvertLine1To24(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine4To24(target, source : PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine8To24(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16To24_555(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16To24_565(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine32To24(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+procedure FreeImage_ConvertLine1To32(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine4To32(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine8To32(target, source: PBYTE; width_in_pixels: Integer; palette: PRGBQUAD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16To32_555(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine16To32_565(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertLine24To32(target, source: PBYTE; width_in_pixels: Integer); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Smart conversion routines ------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_ConvertTo4Bits(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ConvertTo8Bits(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ConvertToGreyscale(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ConvertTo16Bits555(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ConvertTo16Bits565(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ConvertTo24Bits(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ConvertTo32Bits(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ColorQuantize(dib: PFIBITMAP; quantize: FREE_IMAGE_QUANTIZE): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ColorQuantizeEx(dib: PFIBITMAP; quantize: FREE_IMAGE_QUANTIZE = FIQ_WUQUANT; PaletteSize: Integer = 256; ReserveSize: Integer = 0; ReservePalette: PRGBQuad = nil): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_Threshold(dib: PFIBITMAP; T: Byte): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_Dither(dib: PFIBITMAP; algorithm: FREE_IMAGE_DITHER): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_ConvertFromRawBits(bits: PBYTE; width, height, pitch: Integer; bpp, red_mask, green_mask, blue_mask: LongWord; topdown: Boolean): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_ConvertToRawBits(bits: PBYTE; dib: PFIBITMAP; pitch: Integer; bpp, red_mask, green_mask, blue_mask: LongWord; topdown: Boolean); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_ConvertToRGBF(dib: PFIBITMAP): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_ConvertToStandardType(src: PFIBITMAP; scale_linear: Boolean = True): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ConvertToType(src: PFIBITMAP; dst_type: FREE_IMAGE_TYPE; scale_linear: Boolean = True): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// tone mapping operators
+function FreeImage_ToneMapping(dib: PFIBITMAP; tmo: FREE_IMAGE_TMO; first_param: Double = 0; second_param: Double = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_TmoDrago03(src: PFIBITMAP; gamma: Double = 2.2; exposure: Double = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_TmoReinhard05(src: PFIBITMAP; intensity: Double = 0; contrast: Double = 0): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// ZLib interface -----------------------------------------------------------
+// --------------------------------------------------------------------------
+
+function FreeImage_ZLibCompress(target: PBYTE; target_size: DWORD; source: PBYTE; source_size: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ZLibUncompress(target: PBYTE; target_size: DWORD; source: PBYTE; source_size: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_ZLibGZip(target: PBYTE; target_size: DWORD; source: PBYTE; source_size: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ZLibGUnzip(target: PBYTE; target_size: DWORD; source: PBYTE; source_size: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_ZLibCRC32(crc: DWORD; source: PByte; source_size: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Metadata routines --------------------------------------------------------
+// --------------------------------------------------------------------------
+
+// tag creation / destruction
+function FreeImage_CreateTag: PFITAG; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_DeleteTag(tag: PFITAG); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_CloneTag(tag: PFITAG): PFITAG; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// tag getters and setters
+function FreeImage_GetTagKey(tag: PFITAG): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetTagDescription(tag: PFITAG): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetTagID(tag: PFITAG): Word; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetTagType(tag: PFITAG): FREE_IMAGE_MDTYPE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetTagCount(tag: PFITAG): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetTagLength(tag: PFITAG): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetTagValue(tag: PFITAG): Pointer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+function FreeImage_SetTagKey(tag: PFITAG; const key: PChar): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetTagDescription(tag: PFITAG; const description: PChar): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetTagID(tag: PFITAG; id: Word): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetTagType(tag: PFITAG; atype: FREE_IMAGE_MDTYPE): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetTagCount(tag: PFITAG; count: DWORD): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetTagLength(tag: PFITAG; length: DWORD): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetTagValue(tag: PFITAG; const value: Pointer): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// iterator
+function FreeImage_FindFirstMetadata(model: FREE_IMAGE_MDMODEL; dib: PFIBITMAP; var tag: PFITAG): PFIMETADATA; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_FindNextMetadata(mdhandle: PFIMETADATA; var tag: PFITAG): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+procedure FreeImage_FindCloseMetadata(mdhandle: PFIMETADATA); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// metadata setter and getter
+function FreeImage_SetMetadata(model: FREE_IMAGE_MDMODEL; dib: PFIBITMAP; const key: PChar; tag: PFITAG): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetMetadata(model: FREE_IMAGE_MDMODEL; dib: PFIBITMAP; const key: PChar; var tag: PFITAG): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// helpers
+function FreeImage_GetMetadataCount(model: FREE_IMAGE_MDMODEL; dib: PFIBITMAP): Cardinal; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// tag to C string conversion
+function FreeImage_TagToString(model: FREE_IMAGE_MDMODEL; tag: PFITAG; Make: PChar = nil): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// --------------------------------------------------------------------------
+// Image manipulation toolkit -----------------------------------------------
+// --------------------------------------------------------------------------
+
+// rotation and flipping
+function FreeImage_RotateClassic(dib: PFIBITMAP; angle: Double): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_RotateEx(dib: PFIBITMAP; angle, x_shift, y_shift, x_origin, y_origin: Double; use_mask: Boolean): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_FlipHorizontal(dib: PFIBITMAP): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_FlipVertical(dib: PFIBITMAP): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_JPEGTransform(const src_file: PChar; const dst_file: PChar; operation: FREE_IMAGE_JPEG_OPERATION; perfect: Boolean = False): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// upsampling / downsampling
+function FreeImage_Rescale(dib: PFIBITMAP; dst_width, dst_height: Integer; filter: FREE_IMAGE_FILTER): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_MakeThumbnail(dib: PFIBITMAP; max_pixel_size: Integer; convert:boolean = TRUE): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// color manipulation routines (point operations)
+function FreeImage_AdjustCurve(dib: PFIBITMAP; LUT: PBYTE; channel: FREE_IMAGE_COLOR_CHANNEL): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_AdjustGamma(dib: PFIBITMAP; gamma: Double): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_AdjustBrightness(dib: PFIBITMAP; percentage: Double): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_AdjustContrast(dib: PFIBITMAP; percentage: Double): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_Invert(dib: PFIBITMAP): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetHistogram(dib: PFIBITMAP; histo: PDWORD; channel: FREE_IMAGE_COLOR_CHANNEL = FICC_BLACK): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// channel processing routines
+function FreeImage_GetChannel(dib: PFIBITMAP; channel: FREE_IMAGE_COLOR_CHANNEL): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetChannel(dib, dib8: PFIBITMAP; channel: FREE_IMAGE_COLOR_CHANNEL): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_GetComplexChannel(src: PFIBITMAP; channel: FREE_IMAGE_COLOR_CHANNEL): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_SetComplexChannel(src: PFIBITMAP; channel: FREE_IMAGE_COLOR_CHANNEL): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+// copy / paste / composite routines
+
+function FreeImage_Copy(dib: PFIBITMAP; left, top, right, bottom: Integer): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_Paste(dst, src: PFIBITMAP; left, top, alpha: Integer): Boolean; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+function FreeImage_Composite(fg: PFIBITMAP; useFileBkg: Boolean = False; appBkColor: PRGBQUAD = nil; bg: PFIBITMAP = nil): PFIBITMAP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external FIDLL;
+
+{$MINENUMSIZE 1}
+implementation
+
+end.
diff --git a/Game/Code/lib/FreeImage/libfreeimage.dylib b/Game/Code/lib/FreeImage/libfreeimage.dylib
new file mode 100755
index 00000000..5f9aecce
--- /dev/null
+++ b/Game/Code/lib/FreeImage/libfreeimage.dylib
Binary files differ
diff --git a/Game/Code/lib/SQLite/SQLite3.pas b/Game/Code/lib/SQLite/SQLite3.pas
index b7f9d375..4991fc66 100644
--- a/Game/Code/lib/SQLite/SQLite3.pas
+++ b/Game/Code/lib/SQLite/SQLite3.pas
@@ -10,9 +10,19 @@ unit SQLite3;
interface
+{$I switches.inc}
+
const
+{$IFDEF MSWINDOWS}
SQLiteDLL = 'sqlite3.dll';
+{$ENDIF}
+{$IFDEF LINUX}
+ SQLiteDLL = 'sqlite3.so';
+{$ENDIF}
+{$IFDEF DARWIN}
+ SQLiteDLL = 'libsqlite3.dylib';
+{$ENDIF}
// Return values for sqlite3_exec() and sqlite3_step()
diff --git a/Game/Code/lib/SQLite/SQLiteTable3.pas b/Game/Code/lib/SQLite/SQLiteTable3.pas
index 05fbd573..18135765 100644
--- a/Game/Code/lib/SQLite/SQLiteTable3.pas
+++ b/Game/Code/lib/SQLite/SQLiteTable3.pas
@@ -17,9 +17,7 @@ unit SQLiteTable3;
interface
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
+{$I switches.inc}
uses
{$ifdef win32}
diff --git a/Game/Code/lib/bass/MacOSX/Bass.pas b/Game/Code/lib/bass/MacOSX/Bass.pas
new file mode 100755
index 00000000..d065f027
--- /dev/null
+++ b/Game/Code/lib/bass/MacOSX/Bass.pas
@@ -0,0 +1,984 @@
+{
+ BASS 2.3 Audio Library, (c) 1999-2007 Ian Luck.
+ Please report bugs/suggestions/etc... to bass@un4seen.com
+
+ See the BASS.CHM file for more complete documentation
+
+
+ How to install
+ ----------------
+ Copy BASS.PAS to the \LIB subdirectory of your Delphi path or your project dir
+}
+unit Bass;
+
+{$I switches.inc}
+
+interface
+
+uses
+ Windows;
+
+const
+ BASSVERSION = $203; // API version
+
+ // Use these to test for error from functions that return a DWORD or QWORD
+ DW_ERROR = Cardinal(-1); // -1 (DWORD)
+ QW_ERROR = Int64(-1); // -1 (QWORD)
+
+ // Error codes returned by BASS_GetErrorCode()
+ BASS_OK = 0; // all is OK
+ BASS_ERROR_MEM = 1; // memory error
+ BASS_ERROR_FILEOPEN = 2; // can't open the file
+ BASS_ERROR_DRIVER = 3; // can't find a free sound driver
+ BASS_ERROR_BUFLOST = 4; // the sample buffer was lost - please report this!
+ BASS_ERROR_HANDLE = 5; // invalid handle
+ BASS_ERROR_FORMAT = 6; // unsupported sample format
+ BASS_ERROR_POSITION = 7; // invalid playback position
+ BASS_ERROR_INIT = 8; // BASS_Init has not been successfully called
+ BASS_ERROR_START = 9; // BASS_Start has not been successfully called
+ BASS_ERROR_ALREADY = 14; // already initialized/paused/whatever
+ BASS_ERROR_NOPAUSE = 16; // not paused
+ BASS_ERROR_NOCHAN = 18; // can't get a free channel
+ BASS_ERROR_ILLTYPE = 19; // an illegal type was specified
+ BASS_ERROR_ILLPARAM = 20; // an illegal parameter was specified
+ BASS_ERROR_NO3D = 21; // no 3D support
+ BASS_ERROR_NOEAX = 22; // no EAX support
+ BASS_ERROR_DEVICE = 23; // illegal device number
+ BASS_ERROR_NOPLAY = 24; // not playing
+ BASS_ERROR_FREQ = 25; // illegal sample rate
+ BASS_ERROR_NOTFILE = 27; // the stream is not a file stream
+ BASS_ERROR_NOHW = 29; // no hardware voices available
+ BASS_ERROR_EMPTY = 31; // the MOD music has no sequence data
+ BASS_ERROR_NONET = 32; // no internet connection could be opened
+ BASS_ERROR_CREATE = 33; // couldn't create the file
+ BASS_ERROR_NOFX = 34; // effects are not enabled
+ BASS_ERROR_PLAYING = 35; // the channel is playing
+ BASS_ERROR_NOTAVAIL = 37; // requested data is not available
+ BASS_ERROR_DECODE = 38; // the channel is a "decoding channel"
+ BASS_ERROR_DX = 39; // a sufficient DirectX version is not installed
+ BASS_ERROR_TIMEOUT = 40; // connection timedout
+ BASS_ERROR_FILEFORM = 41; // unsupported file format
+ BASS_ERROR_SPEAKER = 42; // unavailable speaker
+ BASS_ERROR_VERSION = 43; // invalid BASS version (used by add-ons)
+ BASS_ERROR_CODEC = 44; // codec is not available/supported
+ BASS_ERROR_UNKNOWN = -1; // some other mystery error
+
+ // Initialization flags
+ BASS_DEVICE_8BITS = 1; // use 8 bit resolution, else 16 bit
+ BASS_DEVICE_MONO = 2; // use mono, else stereo
+ BASS_DEVICE_3D = 4; // enable 3D functionality
+ {
+ If the BASS_DEVICE_3D flag is not specified when
+ initilizing BASS, then the 3D flags (BASS_SAMPLE_3D
+ and BASS_MUSIC_3D) are ignored when loading/creating
+ a sample/stream/music.
+ }
+ BASS_DEVICE_LATENCY = 256; // calculate device latency (BASS_INFO struct)
+ BASS_DEVICE_SPEAKERS = 2048; // force enabling of speaker assignment
+ BASS_DEVICE_NOSPEAKER = 4096; // ignore speaker arrangement
+
+ // DirectSound interfaces (for use with BASS_GetDSoundObject)
+ BASS_OBJECT_DS = 1; // IDirectSound
+ BASS_OBJECT_DS3DL = 2; // IDirectSound3DListener
+
+ // BASS_INFO flags (from DSOUND.H)
+ DSCAPS_CONTINUOUSRATE = $00000010;
+ { supports all sample rates between min/maxrate }
+ DSCAPS_EMULDRIVER = $00000020;
+ { device does NOT have hardware DirectSound support }
+ DSCAPS_CERTIFIED = $00000040;
+ { device driver has been certified by Microsoft }
+ {
+ The following flags tell what type of samples are
+ supported by HARDWARE mixing, all these formats are
+ supported by SOFTWARE mixing
+ }
+ DSCAPS_SECONDARYMONO = $00000100; // mono
+ DSCAPS_SECONDARYSTEREO = $00000200; // stereo
+ DSCAPS_SECONDARY8BIT = $00000400; // 8 bit
+ DSCAPS_SECONDARY16BIT = $00000800; // 16 bit
+
+ // BASS_RECORDINFO flags (from DSOUND.H)
+ DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER;
+ { device does NOT have hardware DirectSound recording support }
+ DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED;
+ { device driver has been certified by Microsoft }
+
+ // defines for formats field of BASS_RECORDINFO (from MMSYSTEM.H)
+ WAVE_FORMAT_1M08 = $00000001; // 11.025 kHz, Mono, 8-bit
+ WAVE_FORMAT_1S08 = $00000002; // 11.025 kHz, Stereo, 8-bit
+ WAVE_FORMAT_1M16 = $00000004; // 11.025 kHz, Mono, 16-bit
+ WAVE_FORMAT_1S16 = $00000008; // 11.025 kHz, Stereo, 16-bit
+ WAVE_FORMAT_2M08 = $00000010; // 22.05 kHz, Mono, 8-bit
+ WAVE_FORMAT_2S08 = $00000020; // 22.05 kHz, Stereo, 8-bit
+ WAVE_FORMAT_2M16 = $00000040; // 22.05 kHz, Mono, 16-bit
+ WAVE_FORMAT_2S16 = $00000080; // 22.05 kHz, Stereo, 16-bit
+ WAVE_FORMAT_4M08 = $00000100; // 44.1 kHz, Mono, 8-bit
+ WAVE_FORMAT_4S08 = $00000200; // 44.1 kHz, Stereo, 8-bit
+ WAVE_FORMAT_4M16 = $00000400; // 44.1 kHz, Mono, 16-bit
+ WAVE_FORMAT_4S16 = $00000800; // 44.1 kHz, Stereo, 16-bit
+
+ // Sample info flags
+ BASS_SAMPLE_8BITS = 1; // 8 bit
+ BASS_SAMPLE_FLOAT = 256; // 32-bit floating-point
+ BASS_SAMPLE_MONO = 2; // mono, else stereo
+ BASS_SAMPLE_LOOP = 4; // looped
+ BASS_SAMPLE_3D = 8; // 3D functionality enabled
+ BASS_SAMPLE_SOFTWARE = 16; // it's NOT using hardware mixing
+ BASS_SAMPLE_MUTEMAX = 32; // muted at max distance (3D only)
+ BASS_SAMPLE_VAM = 64; // uses the DX7 voice allocation & management
+ BASS_SAMPLE_FX = 128; // old implementation of DX8 effects are enabled
+ BASS_SAMPLE_OVER_VOL = $10000; // override lowest volume
+ BASS_SAMPLE_OVER_POS = $20000; // override longest playing
+ BASS_SAMPLE_OVER_DIST = $30000; // override furthest from listener (3D only)
+
+ BASS_STREAM_PRESCAN = $20000; // enable pin-point seeking (MP3/MP2/MP1)
+ BASS_MP3_SETPOS = BASS_STREAM_PRESCAN;
+ BASS_STREAM_AUTOFREE = $40000; // automatically free the stream when it stop/ends
+ BASS_STREAM_RESTRATE = $80000; // restrict the download rate of internet file streams
+ BASS_STREAM_BLOCK = $100000;// download/play internet file stream in small blocks
+ BASS_STREAM_DECODE = $200000;// don't play the stream, only decode (BASS_ChannelGetData)
+ BASS_STREAM_STATUS = $800000;// give server status info (HTTP/ICY tags) in DOWNLOADPROC
+
+ BASS_MUSIC_FLOAT = BASS_SAMPLE_FLOAT; // 32-bit floating-point
+ BASS_MUSIC_MONO = BASS_SAMPLE_MONO; // force mono mixing (less CPU usage)
+ BASS_MUSIC_LOOP = BASS_SAMPLE_LOOP; // loop music
+ BASS_MUSIC_3D = BASS_SAMPLE_3D; // enable 3D functionality
+ BASS_MUSIC_FX = BASS_SAMPLE_FX; // enable old implementation of DX8 effects
+ BASS_MUSIC_AUTOFREE = BASS_STREAM_AUTOFREE; // automatically free the music when it stop/ends
+ BASS_MUSIC_DECODE = BASS_STREAM_DECODE; // don't play the music, only decode (BASS_ChannelGetData)
+ BASS_MUSIC_PRESCAN = BASS_STREAM_PRESCAN; // calculate playback length
+ BASS_MUSIC_CALCLEN = BASS_MUSIC_PRESCAN;
+ BASS_MUSIC_RAMP = $200; // normal ramping
+ BASS_MUSIC_RAMPS = $400; // sensitive ramping
+ BASS_MUSIC_SURROUND = $800; // surround sound
+ BASS_MUSIC_SURROUND2 = $1000; // surround sound (mode 2)
+ BASS_MUSIC_FT2MOD = $2000; // play .MOD as FastTracker 2 does
+ BASS_MUSIC_PT1MOD = $4000; // play .MOD as ProTracker 1 does
+ BASS_MUSIC_NONINTER = $10000; // non-interpolated mixing
+ BASS_MUSIC_POSRESET = $8000; // stop all notes when moving position
+ BASS_MUSIC_POSRESETEX = $400000; // stop all notes and reset bmp/etc when moving position
+ BASS_MUSIC_STOPBACK = $80000; // stop the music on a backwards jump effect
+ BASS_MUSIC_NOSAMPLE = $100000; // don't load the samples
+
+ // Speaker assignment flags
+ BASS_SPEAKER_FRONT = $1000000; // front speakers
+ BASS_SPEAKER_REAR = $2000000; // rear/side speakers
+ BASS_SPEAKER_CENLFE = $3000000; // center & LFE speakers (5.1)
+ BASS_SPEAKER_REAR2 = $4000000; // rear center speakers (7.1)
+ BASS_SPEAKER_LEFT = $10000000; // modifier: left
+ BASS_SPEAKER_RIGHT = $20000000; // modifier: right
+ BASS_SPEAKER_FRONTLEFT = BASS_SPEAKER_FRONT or BASS_SPEAKER_LEFT;
+ BASS_SPEAKER_FRONTRIGHT = BASS_SPEAKER_FRONT or BASS_SPEAKER_RIGHT;
+ BASS_SPEAKER_REARLEFT = BASS_SPEAKER_REAR or BASS_SPEAKER_LEFT;
+ BASS_SPEAKER_REARRIGHT = BASS_SPEAKER_REAR or BASS_SPEAKER_RIGHT;
+ BASS_SPEAKER_CENTER = BASS_SPEAKER_CENLFE or BASS_SPEAKER_LEFT;
+ BASS_SPEAKER_LFE = BASS_SPEAKER_CENLFE or BASS_SPEAKER_RIGHT;
+ BASS_SPEAKER_REAR2LEFT = BASS_SPEAKER_REAR2 or BASS_SPEAKER_LEFT;
+ BASS_SPEAKER_REAR2RIGHT = BASS_SPEAKER_REAR2 or BASS_SPEAKER_RIGHT;
+
+ BASS_UNICODE = $80000000;
+
+ BASS_RECORD_PAUSE = $8000; // start recording paused
+
+ // DX7 voice allocation flags
+ BASS_VAM_HARDWARE = 1;
+ {
+ Play the sample in hardware. If no hardware voices are available then
+ the "play" call will fail
+ }
+ BASS_VAM_SOFTWARE = 2;
+ {
+ Play the sample in software (ie. non-accelerated). No other VAM flags
+ may be used together with this flag.
+ }
+
+ // DX7 voice management flags
+ {
+ These flags enable hardware resource stealing... if the hardware has no
+ available voices, a currently playing buffer will be stopped to make room
+ for the new buffer. NOTE: only samples loaded/created with the
+ BASS_SAMPLE_VAM flag are considered for termination by the DX7 voice
+ management.
+ }
+ BASS_VAM_TERM_TIME = 4;
+ {
+ If there are no free hardware voices, the buffer to be terminated will be
+ the one with the least time left to play.
+ }
+ BASS_VAM_TERM_DIST = 8;
+ {
+ If there are no free hardware voices, the buffer to be terminated will be
+ one that was loaded/created with the BASS_SAMPLE_MUTEMAX flag and is
+ beyond
+ it's max distance. If there are no buffers that match this criteria, then
+ the "play" call will fail.
+ }
+ BASS_VAM_TERM_PRIO = 16;
+ {
+ If there are no free hardware voices, the buffer to be terminated will be
+ the one with the lowest priority.
+ }
+
+ // BASS_CHANNELINFO types
+ BASS_CTYPE_SAMPLE = 1;
+ BASS_CTYPE_RECORD = 2;
+ BASS_CTYPE_STREAM = $10000;
+ BASS_CTYPE_STREAM_OGG = $10002;
+ BASS_CTYPE_STREAM_MP1 = $10003;
+ BASS_CTYPE_STREAM_MP2 = $10004;
+ BASS_CTYPE_STREAM_MP3 = $10005;
+ BASS_CTYPE_STREAM_AIFF = $10006;
+ BASS_CTYPE_STREAM_WAV = $40000; // WAVE flag, LOWORD=codec
+ BASS_CTYPE_STREAM_WAV_PCM = $50001;
+ BASS_CTYPE_STREAM_WAV_FLOAT = $50003;
+ BASS_CTYPE_MUSIC_MOD = $20000;
+ BASS_CTYPE_MUSIC_MTM = $20001;
+ BASS_CTYPE_MUSIC_S3M = $20002;
+ BASS_CTYPE_MUSIC_XM = $20003;
+ BASS_CTYPE_MUSIC_IT = $20004;
+ BASS_CTYPE_MUSIC_MO3 = $00100; // MO3 flag
+
+ // 3D channel modes
+ BASS_3DMODE_NORMAL = 0;
+ { normal 3D processing }
+ BASS_3DMODE_RELATIVE = 1;
+ {
+ The channel's 3D position (position/velocity/
+ orientation) are relative to the listener. When the
+ listener's position/velocity/orientation is changed
+ with BASS_Set3DPosition, the channel's position
+ relative to the listener does not change.
+ }
+ BASS_3DMODE_OFF = 2;
+ {
+ Turn off 3D processing on the channel, the sound will
+ be played in the center.
+ }
+
+ // EAX environments, use with BASS_SetEAXParameters
+ EAX_ENVIRONMENT_GENERIC = 0;
+ EAX_ENVIRONMENT_PADDEDCELL = 1;
+ EAX_ENVIRONMENT_ROOM = 2;
+ EAX_ENVIRONMENT_BATHROOM = 3;
+ EAX_ENVIRONMENT_LIVINGROOM = 4;
+ EAX_ENVIRONMENT_STONEROOM = 5;
+ EAX_ENVIRONMENT_AUDITORIUM = 6;
+ EAX_ENVIRONMENT_CONCERTHALL = 7;
+ EAX_ENVIRONMENT_CAVE = 8;
+ EAX_ENVIRONMENT_ARENA = 9;
+ EAX_ENVIRONMENT_HANGAR = 10;
+ EAX_ENVIRONMENT_CARPETEDHALLWAY = 11;
+ EAX_ENVIRONMENT_HALLWAY = 12;
+ EAX_ENVIRONMENT_STONECORRIDOR = 13;
+ EAX_ENVIRONMENT_ALLEY = 14;
+ EAX_ENVIRONMENT_FOREST = 15;
+ EAX_ENVIRONMENT_CITY = 16;
+ EAX_ENVIRONMENT_MOUNTAINS = 17;
+ EAX_ENVIRONMENT_QUARRY = 18;
+ EAX_ENVIRONMENT_PLAIN = 19;
+ EAX_ENVIRONMENT_PARKINGLOT = 20;
+ EAX_ENVIRONMENT_SEWERPIPE = 21;
+ EAX_ENVIRONMENT_UNDERWATER = 22;
+ EAX_ENVIRONMENT_DRUGGED = 23;
+ EAX_ENVIRONMENT_DIZZY = 24;
+ EAX_ENVIRONMENT_PSYCHOTIC = 25;
+ // total number of environments
+ EAX_ENVIRONMENT_COUNT = 26;
+
+ // software 3D mixing algorithm modes (used with BASS_Set3DAlgorithm)
+ BASS_3DALG_DEFAULT = 0;
+ {
+ default algorithm (currently translates to BASS_3DALG_OFF)
+ }
+ BASS_3DALG_OFF = 1;
+ {
+ Uses normal left and right panning. The vertical axis is ignored except
+ for scaling of volume due to distance. Doppler shift and volume scaling
+ are still applied, but the 3D filtering is not performed. This is the
+ most CPU efficient software implementation, but provides no virtual 3D
+ audio effect. Head Related Transfer Function processing will not be done.
+ Since only normal stereo panning is used, a channel using this algorithm
+ may be accelerated by a 2D hardware voice if no free 3D hardware voices
+ are available.
+ }
+ BASS_3DALG_FULL = 2;
+ {
+ This algorithm gives the highest quality 3D audio effect, but uses more
+ CPU. Requires Windows 98 2nd Edition or Windows 2000 that uses WDM
+ drivers, if this mode is not available then BASS_3DALG_OFF will be used
+ instead.
+ }
+ BASS_3DALG_LIGHT = 3;
+ {
+ This algorithm gives a good 3D audio effect, and uses less CPU than the
+ FULL mode. Requires Windows 98 2nd Edition or Windows 2000 that uses WDM
+ drivers, if this mode is not available then BASS_3DALG_OFF will be used
+ instead.
+ }
+
+ {
+ Sync types (with BASS_ChannelSetSync() "param" and
+ SYNCPROC "data" definitions) & flags.
+ }
+ BASS_SYNC_POS = 0;
+ {
+ Sync when a channel reaches a position.
+ param: position in bytes
+ data : not used
+ }
+ BASS_SYNC_END = 2;
+ {
+ Sync when a channel reaches the end.
+ param: not used
+ data : not used
+ }
+ BASS_SYNC_META = 4;
+ {
+ Sync when metadata is received in a stream.
+ param: not used
+ data : pointer to the metadata
+ }
+ BASS_SYNC_SLIDE = 5;
+ {
+ Sync when an attribute slide is completed.
+ param: not used
+ data : the type of slide completed (one of the BASS_SLIDE_xxx values)
+ }
+ BASS_SYNC_STALL = 6;
+ {
+ Sync when playback has stalled.
+ param: not used
+ data : 0=stalled, 1=resumed
+ }
+ BASS_SYNC_DOWNLOAD = 7;
+ {
+ Sync when downloading of an internet (or "buffered" user file) stream has ended.
+ param: not used
+ data : not used
+ }
+ BASS_SYNC_FREE = 8;
+ {
+ Sync when a channel is freed.
+ param: not used
+ data : not used
+ }
+ BASS_SYNC_SETPOS = 11;
+ {
+ Sync when a channel's position is set.
+ param: not used
+ data : 0 = playback buffer not flushed, 1 = playback buffer flushed
+ }
+ BASS_SYNC_MUSICPOS = 10;
+ {
+ Sync when a MOD music reaches an order:row position.
+ param: LOWORD=order (0=first, -1=all) HIWORD=row (0=first, -1=all)
+ data : LOWORD=order HIWORD=row
+ }
+ BASS_SYNC_MUSICINST = 1;
+ {
+ Sync when an instrument (sample for the non-instrument based formats)
+ is played in a MOD music (not including retrigs).
+ param: LOWORD=instrument (1=first) HIWORD=note (0=c0...119=b9, -1=all)
+ data : LOWORD=note HIWORD=volume (0-64)
+ }
+ BASS_SYNC_MUSICFX = 3;
+ {
+ Sync when the "sync" effect (XM/MTM/MOD: E8x/Wxx, IT/S3M: S2x) is used.
+ param: 0:data=pos, 1:data="x" value
+ data : param=0: LOWORD=order HIWORD=row, param=1: "x" value
+ }
+ BASS_SYNC_MESSAGE = $20000000;
+ { FLAG: post a Windows message (instead of callback)
+ When using a window message "callback", the message to post is given in the "proc"
+ parameter of BASS_ChannelSetSync, and is posted to the window specified in the BASS_Init
+ call. The message parameters are: WPARAM = data, LPARAM = user.
+ }
+ BASS_SYNC_MIXTIME = $40000000;
+ { FLAG: sync at mixtime, else at playtime }
+ BASS_SYNC_ONETIME = $80000000;
+ { FLAG: sync only once, else continuously }
+
+ // BASS_ChannelIsActive return values
+ BASS_ACTIVE_STOPPED = 0;
+ BASS_ACTIVE_PLAYING = 1;
+ BASS_ACTIVE_STALLED = 2;
+ BASS_ACTIVE_PAUSED = 3;
+
+ // BASS_ChannelIsSliding return flags
+ BASS_SLIDE_FREQ = 1;
+ BASS_SLIDE_VOL = 2;
+ BASS_SLIDE_PAN = 4;
+
+ // BASS_ChannelGetData flags
+ BASS_DATA_AVAILABLE = 0; // query how much data is buffered
+ BASS_DATA_FLOAT = $40000000; // flag: return floating-point sample data
+ BASS_DATA_FFT512 = $80000000; // 512 sample FFT
+ BASS_DATA_FFT1024 = $80000001; // 1024 FFT
+ BASS_DATA_FFT2048 = $80000002; // 2048 FFT
+ BASS_DATA_FFT4096 = $80000003; // 4096 FFT
+ BASS_DATA_FFT8192 = $80000004; // 8192 FFT
+ BASS_DATA_FFT_INDIVIDUAL = $10; // FFT flag: FFT for each channel, else all combined
+ BASS_DATA_FFT_NOWINDOW = $20; // FFT flag: no Hanning window
+
+ // BASS_ChannelGetTags types : what's returned
+ BASS_TAG_ID3 = 0; // ID3v1 tags : 128 byte block
+ BASS_TAG_ID3V2 = 1; // ID3v2 tags : variable length block
+ BASS_TAG_OGG = 2; // OGG comments : array of null-terminated strings
+ BASS_TAG_HTTP = 3; // HTTP headers : array of null-terminated strings
+ BASS_TAG_ICY = 4; // ICY headers : array of null-terminated strings
+ BASS_TAG_META = 5; // ICY metadata : null-terminated string
+ BASS_TAG_VENDOR = 9; // OGG encoder : null-terminated string
+ BASS_TAG_LYRICS3 = 10; // Lyric3v2 tag : ASCII string
+ BASS_TAG_RIFF_INFO = $100; // RIFF/WAVE tags : array of null-terminated ANSI strings
+ BASS_TAG_MUSIC_NAME = $10000; // MOD music name : ANSI string
+ BASS_TAG_MUSIC_MESSAGE = $10001; // MOD message : ANSI string
+ BASS_TAG_MUSIC_INST = $10100; // + instrument #, MOD instrument name : ANSI string
+ BASS_TAG_MUSIC_SAMPLE = $10300; // + sample #, MOD sample name : ANSI string
+
+ BASS_FX_CHORUS = 0; // GUID_DSFX_STANDARD_CHORUS
+ BASS_FX_COMPRESSOR = 1; // GUID_DSFX_STANDARD_COMPRESSOR
+ BASS_FX_DISTORTION = 2; // GUID_DSFX_STANDARD_DISTORTION
+ BASS_FX_ECHO = 3; // GUID_DSFX_STANDARD_ECHO
+ BASS_FX_FLANGER = 4; // GUID_DSFX_STANDARD_FLANGER
+ BASS_FX_GARGLE = 5; // GUID_DSFX_STANDARD_GARGLE
+ BASS_FX_I3DL2REVERB = 6; // GUID_DSFX_STANDARD_I3DL2REVERB
+ BASS_FX_PARAMEQ = 7; // GUID_DSFX_STANDARD_PARAMEQ
+ BASS_FX_REVERB = 8; // GUID_DSFX_WAVES_REVERB
+
+ BASS_FX_PHASE_NEG_180 = 0;
+ BASS_FX_PHASE_NEG_90 = 1;
+ BASS_FX_PHASE_ZERO = 2;
+ BASS_FX_PHASE_90 = 3;
+ BASS_FX_PHASE_180 = 4;
+
+ // BASS_RecordSetInput flags
+ BASS_INPUT_OFF = $10000;
+ BASS_INPUT_ON = $20000;
+ BASS_INPUT_LEVEL = $40000;
+
+ BASS_INPUT_TYPE_MASK = $ff000000;
+ BASS_INPUT_TYPE_UNDEF = $00000000;
+ BASS_INPUT_TYPE_DIGITAL = $01000000;
+ BASS_INPUT_TYPE_LINE = $02000000;
+ BASS_INPUT_TYPE_MIC = $03000000;
+ BASS_INPUT_TYPE_SYNTH = $04000000;
+ BASS_INPUT_TYPE_CD = $05000000;
+ BASS_INPUT_TYPE_PHONE = $06000000;
+ BASS_INPUT_TYPE_SPEAKER = $07000000;
+ BASS_INPUT_TYPE_WAVE = $08000000;
+ BASS_INPUT_TYPE_AUX = $09000000;
+ BASS_INPUT_TYPE_ANALOG = $0a000000;
+
+ // BASS_SetNetConfig flags
+ BASS_NET_TIMEOUT = 0;
+ BASS_NET_BUFFER = 1;
+
+ // BASS_StreamGetFilePosition modes
+ BASS_FILEPOS_CURRENT = 0;
+ BASS_FILEPOS_DECODE = BASS_FILEPOS_CURRENT;
+ BASS_FILEPOS_DOWNLOAD = 1;
+ BASS_FILEPOS_END = 2;
+ BASS_FILEPOS_START = 3;
+ BASS_FILEPOS_CONNECTED = 4;
+
+ // STREAMFILEPROC actions
+ BASS_FILE_CLOSE = 0;
+ BASS_FILE_READ = 1;
+ BASS_FILE_LEN = 3;
+ BASS_FILE_SEEK = 4;
+
+ BASS_STREAMPROC_END = $80000000; // end of user stream flag
+
+ // BASS_MusicSet/GetAttribute options
+ BASS_MUSIC_ATTRIB_AMPLIFY = 0;
+ BASS_MUSIC_ATTRIB_PANSEP = 1;
+ BASS_MUSIC_ATTRIB_PSCALER = 2;
+ BASS_MUSIC_ATTRIB_BPM = 3;
+ BASS_MUSIC_ATTRIB_SPEED = 4;
+ BASS_MUSIC_ATTRIB_VOL_GLOBAL = 5;
+ BASS_MUSIC_ATTRIB_VOL_CHAN = $100; // + channel #
+ BASS_MUSIC_ATTRIB_VOL_INST = $200; // + instrument #
+
+ // BASS_Set/GetConfig options
+ BASS_CONFIG_BUFFER = 0;
+ BASS_CONFIG_UPDATEPERIOD = 1;
+ BASS_CONFIG_MAXVOL = 3;
+ BASS_CONFIG_GVOL_SAMPLE = 4;
+ BASS_CONFIG_GVOL_STREAM = 5;
+ BASS_CONFIG_GVOL_MUSIC = 6;
+ BASS_CONFIG_CURVE_VOL = 7;
+ BASS_CONFIG_CURVE_PAN = 8;
+ BASS_CONFIG_FLOATDSP = 9;
+ BASS_CONFIG_3DALGORITHM = 10;
+ BASS_CONFIG_NET_TIMEOUT = 11;
+ BASS_CONFIG_NET_BUFFER = 12;
+ BASS_CONFIG_PAUSE_NOPLAY = 13;
+ BASS_CONFIG_NET_PREBUF = 15;
+ BASS_CONFIG_NET_AGENT = 16;
+ BASS_CONFIG_NET_PROXY = 17;
+ BASS_CONFIG_NET_PASSIVE = 18;
+ BASS_CONFIG_REC_BUFFER = 19;
+ BASS_CONFIG_NET_PLAYLIST = 21;
+ BASS_CONFIG_MUSIC_VIRTUAL = 22;
+
+type
+ DWORD = cardinal;
+ BOOL = LongBool;
+ FLOAT = Single;
+ QWORD = int64; // 64-bit (replace "int64" with "comp" if using Delphi 3)
+
+ HMUSIC = DWORD; // MOD music handle
+ HSAMPLE = DWORD; // sample handle
+ HCHANNEL = DWORD; // playing sample's channel handle
+ HSTREAM = DWORD; // sample stream handle
+ HRECORD = DWORD; // recording handle
+ HSYNC = DWORD; // synchronizer handle
+ HDSP = DWORD; // DSP handle
+ HFX = DWORD; // DX8 effect handle
+ HPLUGIN = DWORD; // Plugin handle
+
+ BASS_INFO = record
+ flags: DWORD; // device capabilities (DSCAPS_xxx flags)
+ hwsize: DWORD; // size of total device hardware memory
+ hwfree: DWORD; // size of free device hardware memory
+ freesam: DWORD; // number of free sample slots in the hardware
+ free3d: DWORD; // number of free 3D sample slots in the hardware
+ minrate: DWORD; // min sample rate supported by the hardware
+ maxrate: DWORD; // max sample rate supported by the hardware
+ eax: BOOL; // device supports EAX? (always FALSE if BASS_DEVICE_3D was not used)
+ minbuf: DWORD; // recommended minimum buffer length in ms (requires BASS_DEVICE_LATENCY)
+ dsver: DWORD; // DirectSound version
+ latency: DWORD; // delay (in ms) before start of playback (requires BASS_DEVICE_LATENCY)
+ initflags: DWORD; // "flags" parameter of BASS_Init call
+ speakers: DWORD; // number of speakers available
+ driver: PChar; // driver
+ freq: DWORD; // current output rate (OSX only)
+ end;
+
+ BASS_RECORDINFO = record
+ flags: DWORD; // device capabilities (DSCCAPS_xxx flags)
+ formats: DWORD; // supported standard formats (WAVE_FORMAT_xxx flags)
+ inputs: DWORD; // number of inputs
+ singlein: BOOL; // only 1 input can be set at a time
+ driver: PChar; // driver
+ freq: DWORD; // current input rate (OSX only)
+ end;
+
+ BASS_CHANNELINFO = record
+ freq: DWORD; // default playback rate
+ chans: DWORD; // channels
+ flags: DWORD; // BASS_SAMPLE/STREAM/MUSIC/SPEAKER flags
+ ctype: DWORD; // type of channel
+ origres: DWORD; // original resolution
+ plugin: HPLUGIN; // plugin
+ end;
+
+ BASS_PLUGINFORM = record
+ ctype: DWORD; // channel type
+ name: PChar; // format description
+ exts: PChar; // file extension filter ( *.ext1;*.ext2;etc...)
+ end;
+ PBASS_PLUGINFORMS = ^TBASS_PLUGINFORMS;
+ TBASS_PLUGINFORMS = array[0..maxInt div sizeOf(BASS_PLUGINFORM) - 1] of BASS_PLUGINFORM;
+
+ BASS_PLUGININFO = record
+ version: DWORD; // version (same form as BASS_GetVersion)
+ formatc: DWORD; // number of formats
+ formats: PBASS_PLUGINFORMS; // the array of formats
+ end;
+ PBASS_PLUGININFO = ^BASS_PLUGININFO;
+
+ // Sample info structure
+ BASS_SAMPLE = record
+ freq: DWORD; // default playback rate
+ volume: DWORD; // default volume (0-100)
+ pan: Integer; // default pan (-100=left, 0=middle, 100=right)
+ flags: DWORD; // BASS_SAMPLE_xxx flags
+ length: DWORD; // length (in samples, not bytes)
+ max: DWORD; // maximum simultaneous playbacks
+ origres: DWORD; // original resolution
+ chans: DWORD; // number of channels
+ mingap: DWORD; // minimum gap (ms) between creating channels
+ {
+ The following are the samples default 3D attributes
+ (if the sample is 3D, BASS_SAMPLE_3D is in flags)
+ see BASS_ChannelSet3DAttributes
+ }
+ mode3d: DWORD; // BASS_3DMODE_xxx mode
+ mindist: FLOAT; // minimum distance
+ maxdist: FLOAT; // maximum distance
+ iangle: DWORD; // angle of inside projection cone
+ oangle: DWORD; // angle of outside projection cone
+ outvol: DWORD; // delta-volume outside the projection cone
+ {
+ The following are the defaults used if the sample uses the DirectX 7
+ voice allocation/management features.
+ }
+ vam: DWORD; // voice allocation/management flags (BASS_VAM_xxx)
+ priority: DWORD; // priority (0=lowest, $ffffffff=highest)
+ end;
+
+ // 3D vector (for 3D positions/velocities/orientations)
+ BASS_3DVECTOR = record
+ x: FLOAT; // +=right, -=left
+ y: FLOAT; // +=up, -=down
+ z: FLOAT; // +=front, -=behind
+ end;
+
+ BASS_FXCHORUS = record
+ fWetDryMix: FLOAT;
+ fDepth: FLOAT;
+ fFeedback: FLOAT;
+ fFrequency: FLOAT;
+ lWaveform: DWORD; // 0=triangle, 1=sine
+ fDelay: FLOAT;
+ lPhase: DWORD; // BASS_FX_PHASE_xxx
+ end;
+
+ BASS_FXCOMPRESSOR = record
+ fGain: FLOAT;
+ fAttack: FLOAT;
+ fRelease: FLOAT;
+ fThreshold: FLOAT;
+ fRatio: FLOAT;
+ fPredelay: FLOAT;
+ end;
+
+ BASS_FXDISTORTION = record
+ fGain: FLOAT;
+ fEdge: FLOAT;
+ fPostEQCenterFrequency: FLOAT;
+ fPostEQBandwidth: FLOAT;
+ fPreLowpassCutoff: FLOAT;
+ end;
+
+ BASS_FXECHO = record
+ fWetDryMix: FLOAT;
+ fFeedback: FLOAT;
+ fLeftDelay: FLOAT;
+ fRightDelay: FLOAT;
+ lPanDelay: BOOL;
+ end;
+
+ BASS_FXFLANGER = record
+ fWetDryMix: FLOAT;
+ fDepth: FLOAT;
+ fFeedback: FLOAT;
+ fFrequency: FLOAT;
+ lWaveform: DWORD; // 0=triangle, 1=sine
+ fDelay: FLOAT;
+ lPhase: DWORD; // BASS_FX_PHASE_xxx
+ end;
+
+ BASS_FXGARGLE = record
+ dwRateHz: DWORD; // Rate of modulation in hz
+ dwWaveShape: DWORD; // 0=triangle, 1=square
+ end;
+
+ BASS_FXI3DL2REVERB = record
+ lRoom: Longint; // [-10000, 0] default: -1000 mB
+ lRoomHF: Longint; // [-10000, 0] default: 0 mB
+ flRoomRolloffFactor: FLOAT; // [0.0, 10.0] default: 0.0
+ flDecayTime: FLOAT; // [0.1, 20.0] default: 1.49s
+ flDecayHFRatio: FLOAT; // [0.1, 2.0] default: 0.83
+ lReflections: Longint; // [-10000, 1000] default: -2602 mB
+ flReflectionsDelay: FLOAT; // [0.0, 0.3] default: 0.007 s
+ lReverb: Longint; // [-10000, 2000] default: 200 mB
+ flReverbDelay: FLOAT; // [0.0, 0.1] default: 0.011 s
+ flDiffusion: FLOAT; // [0.0, 100.0] default: 100.0 %
+ flDensity: FLOAT; // [0.0, 100.0] default: 100.0 %
+ flHFReference: FLOAT; // [20.0, 20000.0] default: 5000.0 Hz
+ end;
+
+ BASS_FXPARAMEQ = record
+ fCenter: FLOAT;
+ fBandwidth: FLOAT;
+ fGain: FLOAT;
+ end;
+
+ BASS_FXREVERB = record
+ fInGain: FLOAT; // [-96.0,0.0] default: 0.0 dB
+ fReverbMix: FLOAT; // [-96.0,0.0] default: 0.0 db
+ fReverbTime: FLOAT; // [0.001,3000.0] default: 1000.0 ms
+ fHighFreqRTRatio: FLOAT; // [0.001,0.999] default: 0.001
+ end;
+
+ // callback function types
+ STREAMPROC = function(handle: HSTREAM; buffer: Pointer; length: DWORD; user: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ {
+ User stream callback function. NOTE: A stream function should obviously be as
+ quick as possible, other streams (and MOD musics) can't be mixed until
+ it's finished.
+ handle : The stream that needs writing
+ buffer : Buffer to write the samples in
+ length : Number of bytes to write
+ user : The 'user' parameter value given when calling BASS_StreamCreate
+ RETURN : Number of bytes written. Set the BASS_STREAMPROC_END flag to end
+ the stream.
+ }
+
+ STREAMFILEPROC = function(action, param1, param2, user: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ {
+ User file stream callback function.
+ action : The action to perform, one of BASS_FILE_xxx values.
+ param1 : Depends on "action"
+ param2 : Depends on "action"
+ user : The 'user' parameter value given when calling BASS_StreamCreate
+ RETURN : Depends on "action"
+ }
+
+ DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: DWORD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ {
+ Internet stream download callback function.
+ buffer : Buffer containing the downloaded data... NULL=end of download
+ length : Number of bytes in the buffer
+ user : The 'user' parameter value given when calling BASS_StreamCreateURL
+ }
+
+ SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: DWORD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ {
+ Sync callback function. NOTE: a sync callback function should be very
+ quick as other syncs cannot be processed until it has finished. If the
+ sync is a "mixtime" sync, then other streams and MOD musics can not be
+ mixed until it's finished either.
+ handle : The sync that has occured
+ channel: Channel that the sync occured in
+ data : Additional data associated with the sync's occurance
+ user : The 'user' parameter given when calling BASS_ChannelSetSync
+ }
+
+ DSPPROC = procedure(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: DWORD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ {
+ DSP callback function. NOTE: A DSP function should obviously be as quick
+ as possible... other DSP functions, streams and MOD musics can not be
+ processed until it's finished.
+ handle : The DSP handle
+ channel: Channel that the DSP is being applied to
+ buffer : Buffer to apply the DSP to
+ length : Number of bytes in the buffer
+ user : The 'user' parameter given when calling BASS_ChannelSetDSP
+ }
+
+ RECORDPROC = function(handle: HRECORD; const buffer: Pointer; length: DWORD; user: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
+ {
+ Recording callback function.
+ handle : The recording handle
+ buffer : Buffer containing the recorded sample data
+ length : Number of bytes
+ user : The 'user' parameter value given when calling BASS_RecordStart
+ RETURN : TRUE = continue recording, FALSE = stop
+ }
+
+
+// Functions
+const
+
+{$IFDEF MSWINDOWS}
+ bassdll = 'bass.dll';
+{$ENDIF}
+{$IFDEF DARWIN}
+ bassdll = 'libbass.dylib';
+{$ENDIF}
+
+function BASS_SetConfig(option, value: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetConfig(option: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetVersion: DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetDeviceDescription(device: DWORD): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ErrorGetCode: Integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Init(device: Integer; freq, flags: DWORD; win: HWND; clsid: PGUID): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SetDevice(device: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetDevice: DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Free: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetDSoundObject(obj: DWORD): Pointer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetInfo(var info: BASS_INFO): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Update: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetCPU: FLOAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Start: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Stop: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Pause: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SetVolume(volume: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetVolume: Integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+
+function BASS_PluginLoad(filename: PChar; flags: DWORD): HPLUGIN; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_PluginFree(handle: HPLUGIN): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_PluginGetInfo(handle: HPLUGIN): PBASS_PLUGININFO; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+
+function BASS_Set3DFactors(distf, rollf, doppf: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Get3DFactors(var distf, rollf, doppf: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Set3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_Get3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+procedure BASS_Apply3D; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+{$IFDEF MSWINDOWS}
+function BASS_SetEAXParameters(env: Integer; vol, decay, damp: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_GetEAXParameters(var env: DWORD; var vol, decay, damp: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+{$ENDIF}
+
+function BASS_MusicLoad(mem: BOOL; f: Pointer; offset, length, flags, freq: DWORD): HMUSIC; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_MusicFree(handle: HMUSIC): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_MusicSetAttribute(handle: HMUSIC; attrib,value: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_MusicGetAttribute(handle: HMUSIC; attrib: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_MusicGetOrders(handle: HMUSIC): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_MusicGetOrderPosition(handle: HMUSIC): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+
+function BASS_SampleLoad(mem: BOOL; f: Pointer; offset, length, max, flags: DWORD): HSAMPLE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SampleCreate(length, freq, chans, max, flags: DWORD): Pointer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SampleCreateDone: HSAMPLE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SampleFree(handle: HSAMPLE): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SampleGetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SampleSetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SampleGetChannel(handle: HSAMPLE; onlynew: BOOL): HCHANNEL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SampleGetChannels(handle: HSAMPLE; channels: Pointer): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_SampleStop(handle: HSAMPLE): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+
+function BASS_StreamCreate(freq, chans, flags: DWORD; proc: Pointer; user: DWORD): HSTREAM; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length, flags: DWORD): HSTREAM; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_StreamCreateURL(url: PChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: DWORD):HSTREAM; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_StreamCreateFileUser(buffered: BOOL; flags: DWORD; proc: STREAMFILEPROC; user: DWORD): HSTREAM; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_StreamFree(handle: HSTREAM): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_StreamGetFilePosition(handle:HSTREAM; mode:DWORD) : DWORD;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_StreamGetLength(handle: DWORD): QWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll name 'BASS_ChannelGetLength';
+
+function BASS_RecordGetDeviceDescription(devnum: DWORD):PChar;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_RecordInit(device: Integer):BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_RecordSetDevice(device: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_RecordGetDevice: DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_RecordFree:BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_RecordGetInfo(var info:BASS_RECORDINFO):BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_RecordGetInputName(input:Integer):PChar;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_RecordSetInput(input:Integer; setting:DWORD):BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_RecordGetInput(input:Integer):DWORD;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_RecordStart(freq,chans,flags:DWORD; proc:RECORDPROC; user:DWORD):HRECORD;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+
+function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): FLOAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: FLOAT): QWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_ChannelGetDevice(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSetDevice(handle, device: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelIsActive(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_ChannelGetInfo(handle: DWORD; var info:BASS_CHANNELINFO):BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_ChannelGetTags(handle: HSTREAM; tags : DWORD): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSetFlags(handle, flags: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelPreBuf(handle, length: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelStop(handle: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelPause(handle: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSetAttributes(handle: DWORD; freq, volume, pan: Integer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelGetAttributes(handle: DWORD; var freq, volume: DWORD; var pan: Integer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSlideAttributes(handle: DWORD; freq, volume, pan: Integer; time: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelIsSliding(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
+function BASS_ChannelSet3DAttributes(handle: DWORD; mode: Integer; min, max: FLOAT; iangle, oangle, outvol: Integer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelGet3DAttributes(handle: DWORD; var mode: DWORD; var min, max: FLOAT; var iangle, oangle, outvol: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelGet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelGetLength(handle: DWORD): QWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelGetPosition(handle: DWORD): QWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelGetLevel(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSetSync(handle: DWORD; stype: DWORD; param: QWORD; proc: SYNCPROC; user: DWORD): HSYNC; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelRemoveSync(handle: DWORD; sync: HSYNC): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSetDSP(handle: DWORD; proc: DSPPROC; user: DWORD; priority: Integer): HDSP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelRemoveDSP(handle: DWORD; dsp: HDSP): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+{$IFDEF MSWINDOWS}
+function BASS_ChannelSetEAXMix(handle: DWORD; mix: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelGetEAXMix(handle: DWORD; var mix: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+{$ENDIF}
+function BASS_ChannelSetLink(handle, chan: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelRemoveLink(handle, chan: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelSetFX(handle, etype: DWORD; priority: Integer): HFX; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_ChannelRemoveFX(handle: DWORD; fx: HFX): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+
+function BASS_FXSetParameters(handle: HFX; par: Pointer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_FXGetParameters(handle: HFX; par: Pointer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+function BASS_FXReset(handle: HFX): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
+
+
+function BASS_SPEAKER_N(n: DWORD): DWORD;
+function MAKEMUSICPOS(order,row: DWORD): DWORD;
+{$IFDEF MSWINDOWS}
+function BASS_SetEAXPreset(env: Integer): BOOL;
+{
+ This function is defined in the implementation part of this unit.
+ It is not part of BASS.DLL but an extra function which makes it easier
+ to set the predefined EAX environments.
+ env : a EAX_ENVIRONMENT_xxx constant
+}
+{$ENDIF}
+
+implementation
+
+function BASS_SPEAKER_N(n: DWORD): DWORD;
+begin
+ Result := n shl 24;
+end;
+
+function MAKEMUSICPOS(order,row: DWORD): DWORD;
+begin
+ Result := $80000000 or DWORD(MAKELONG(order,row));
+end;
+
+{$IFDEF MSWINDOWS}
+function BASS_SetEAXPreset(env: Integer): BOOL;
+begin
+ case (env) of
+ EAX_ENVIRONMENT_GENERIC:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_GENERIC, 0.5, 1.493, 0.5);
+ EAX_ENVIRONMENT_PADDEDCELL:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PADDEDCELL, 0.25, 0.1, 0);
+ EAX_ENVIRONMENT_ROOM:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ROOM, 0.417, 0.4, 0.666);
+ EAX_ENVIRONMENT_BATHROOM:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_BATHROOM, 0.653, 1.499, 0.166);
+ EAX_ENVIRONMENT_LIVINGROOM:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_LIVINGROOM, 0.208, 0.478, 0);
+ EAX_ENVIRONMENT_STONEROOM:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONEROOM, 0.5, 2.309, 0.888);
+ EAX_ENVIRONMENT_AUDITORIUM:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_AUDITORIUM, 0.403, 4.279, 0.5);
+ EAX_ENVIRONMENT_CONCERTHALL:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CONCERTHALL, 0.5, 3.961, 0.5);
+ EAX_ENVIRONMENT_CAVE:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CAVE, 0.5, 2.886, 1.304);
+ EAX_ENVIRONMENT_ARENA:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ARENA, 0.361, 7.284, 0.332);
+ EAX_ENVIRONMENT_HANGAR:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HANGAR, 0.5, 10.0, 0.3);
+ EAX_ENVIRONMENT_CARPETEDHALLWAY:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CARPETEDHALLWAY, 0.153, 0.259, 2.0);
+ EAX_ENVIRONMENT_HALLWAY:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HALLWAY, 0.361, 1.493, 0);
+ EAX_ENVIRONMENT_STONECORRIDOR:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONECORRIDOR, 0.444, 2.697, 0.638);
+ EAX_ENVIRONMENT_ALLEY:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ALLEY, 0.25, 1.752, 0.776);
+ EAX_ENVIRONMENT_FOREST:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_FOREST, 0.111, 3.145, 0.472);
+ EAX_ENVIRONMENT_CITY:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CITY, 0.111, 2.767, 0.224);
+ EAX_ENVIRONMENT_MOUNTAINS:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_MOUNTAINS, 0.194, 7.841, 0.472);
+ EAX_ENVIRONMENT_QUARRY:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_QUARRY, 1, 1.499, 0.5);
+ EAX_ENVIRONMENT_PLAIN:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PLAIN, 0.097, 2.767, 0.224);
+ EAX_ENVIRONMENT_PARKINGLOT:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PARKINGLOT, 0.208, 1.652, 1.5);
+ EAX_ENVIRONMENT_SEWERPIPE:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_SEWERPIPE, 0.652, 2.886, 0.25);
+ EAX_ENVIRONMENT_UNDERWATER:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_UNDERWATER, 1, 1.499, 0);
+ EAX_ENVIRONMENT_DRUGGED:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DRUGGED, 0.875, 8.392, 1.388);
+ EAX_ENVIRONMENT_DIZZY:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DIZZY, 0.139, 17.234, 0.666);
+ EAX_ENVIRONMENT_PSYCHOTIC:
+ Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PSYCHOTIC, 0.486, 7.563, 0.806);
+ else
+ Result := FALSE;
+ end;
+end;
+{$ENDIF}
+
+end.
+// END OF FILE /////////////////////////////////////////////////////////////////
+
diff --git a/Game/Code/switches.inc b/Game/Code/switches.inc
index 578271c0..1e1d4cad 100644
--- a/Game/Code/switches.inc
+++ b/Game/Code/switches.inc
@@ -1,19 +1,43 @@
-{$DEFINE DEBUG} // to-do : Remove b4 release
-
-{$IFDEF FPC}
- {$UNDEF UseSerialPort}
- {$UNDEF UseMIDIPort}
-{$ELSE}
- {$UNDEF UseSerialPort}
- {$DEFINE UseMIDIPort}
-{$ENDIF}
-
-{$IFDEF win32}
- {$DEFINE UseBASS}
- {$IFDEF DEBUG}
- {$APPTYPE CONSOLE}
- {$ENDIF}
-{$ELSE}
- {$UNDEF UseBASS}
-{$ENDIF}
-
+{$DEFINE DEBUG} // to-do : Remove b4 release
+
+// Comment by eddie:
+// The mac port currently also uses the WIN32 define.
+// Once I get the beast compiled, linked and running
+// I will change this.
+// There are some parts where the WIN32 define could not
+// be used. I changed the WIN32 to MSWINDOWS.
+// So, for Windows-only code use the MSWINDOWS define.
+
+
+{$IFDEF FPC}
+ {$IFDEF DARWIN}
+ {$H+}
+ {$R-}
+ {$DEFINE WIN32}
+ {$DEFINE TRANSLATE}
+ {$ELSE}
+ {$DEFINE LAZARUS}
+ {$ENDIF}
+
+ {$MODE DELPHI}
+ {$DEFINE DLL_CDECL}
+ {$UNDEF UseSerialPort}
+ {$UNDEF UseMIDIPort}
+{$ELSE}
+ {$DEFINE DLL_STDCALL}
+ {$UNDEF UseSerialPort}
+ {$DEFINE UseMIDIPort}
+{$ENDIF}
+
+
+{$IFDEF win32}
+ {$DEFINE UseBASS}
+ {$IFDEF DEBUG}
+ {$IFNDEF DARWIN}
+ {$APPTYPE CONSOLE}
+ {$ENDIF}
+ {$ENDIF}
+{$ELSE}
+ {$UNDEF UseBASS}
+{$ENDIF}
+
diff --git a/Modis/SDK/ModiSDK.pas b/Modis/SDK/ModiSDK.pas
index 0127a65c..4423502c 100644
--- a/Modis/SDK/ModiSDK.pas
+++ b/Modis/SDK/ModiSDK.pas
@@ -2,6 +2,8 @@ unit ModiSDK;
interface
+{$I switches.inc}
+
type //PluginInfo, for Init
TPluginInfo = record
//Info
diff --git a/Modis/SDK/StrUtils.pas b/Modis/SDK/StrUtils.pas
index 276d95a2..00cfbf08 100644
--- a/Modis/SDK/StrUtils.pas
+++ b/Modis/SDK/StrUtils.pas
@@ -1,6 +1,9 @@
unit StrUtils;
interface
+
+{$I switches.inc}
+
uses ModiSDK;
//function StrToAChar(Str: String): AChar;
diff --git a/Modis/SDK/UPartyDefs.pas b/Modis/SDK/UPartyDefs.pas
index 2ca8f327..bbe933c6 100644
--- a/Modis/SDK/UPartyDefs.pas
+++ b/Modis/SDK/UPartyDefs.pas
@@ -6,6 +6,9 @@ unit UPartyDefs;
*********************}
interface
+
+{$I switches.inc}
+
uses UPluginDefs;
type
diff --git a/Modis/SDK/UPluginDefs.pas b/Modis/SDK/UPluginDefs.pas
index 69c258fb..4e1ea36b 100644
--- a/Modis/SDK/UPluginDefs.pas
+++ b/Modis/SDK/UPluginDefs.pas
@@ -7,6 +7,8 @@ unit uPluginDefs;
interface
+{$I switches.inc}
+
type
DWORD = LongWord;