diff options
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 Binary files differnew file mode 100755 index 00000000..5f9aecce --- /dev/null +++ b/Game/Code/lib/FreeImage/libfreeimage.dylib 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;
|