Merge branch 'master' of https://github.com/Cxbx-Reloaded/Cxbx-Reloaded into various-bug-fixes
# Conflicts: # src/CxbxKrnl/CxbxKrnl.cpp # src/CxbxKrnl/EmuD3D8.cpp
This commit is contained in:
commit
ab755489c2
|
@ -80,7 +80,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
<AdditionalIncludeDirectories>..\..\import\OpenXDK;..\..\import\zydis\Zydis;..\..\src;..\..\src\Common;..\..\src\Common\Win32;..\..\import\OpenXDK\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\src\Common;..\..\import\OpenXDK\include;..\..\import\zydis\Zydis;..\..\import\glew-2.0.0\include;..\..\src;..\..\src\Common\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CXBXKRNL_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CXBXKRNL_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||||
<LargeAddressAware>false</LargeAddressAware>
|
<LargeAddressAware>false</LargeAddressAware>
|
||||||
<AdditionalLibraryDirectories>..\..\import\zydis\Build\$(Configuration)\</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>..\..\import\zydis\Build\$(Configuration)\;..\..\import\glew-2.0.0\lib\Release\Win32\</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<Bscmake>
|
<Bscmake>
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</Midl>
|
</Midl>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\..\src\Common;..\..\import\zydis\Zydis;..\..\import\OpenXDK\include;..\..\src;..\..\src\Common\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\src\Common;..\..\import\OpenXDK\include;..\..\import\zydis\Zydis;..\..\import\glew-2.0.0\include;..\..\src;..\..\src\Common\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;CXBXKRNL_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;CXBXKRNL_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
@ -168,7 +168,7 @@
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||||
<LargeAddressAware>false</LargeAddressAware>
|
<LargeAddressAware>false</LargeAddressAware>
|
||||||
<AdditionalLibraryDirectories>..\..\import\zydis\Build\$(Configuration)\</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>..\..\import\zydis\Build\$(Configuration)\;..\..\import\glew-2.0.0\lib\Release\Win32\</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<Bscmake>
|
<Bscmake>
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
|
|
@ -12,29 +12,41 @@
|
||||||
#ifndef KERNEL_H
|
#ifndef KERNEL_H
|
||||||
#define KERNEL_H
|
#define KERNEL_H
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x005C - KeAlertResumeThread()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(92) NTSTATUS NTAPI KeAlertResumeThread
|
XBSYSAPI EXPORTNUM(92) NTSTATUS NTAPI KeAlertResumeThread
|
||||||
(
|
(
|
||||||
IN HANDLE ThreadHandle,
|
IN HANDLE ThreadHandle,
|
||||||
IN OUT PULONG PreviousSuspendCount
|
IN OUT PULONG PreviousSuspendCount
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x005D - KeAlertThread()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(93) NTSTATUS NTAPI KeAlertThread
|
XBSYSAPI EXPORTNUM(93) NTSTATUS NTAPI KeAlertThread
|
||||||
(
|
(
|
||||||
IN HANDLE ThreadHandle
|
IN HANDLE ThreadHandle
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x005E - KeBoostPriorityThread()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(94) NTSTATUS NTAPI KeBoostPriorityThread
|
XBSYSAPI EXPORTNUM(94) NTSTATUS NTAPI KeBoostPriorityThread
|
||||||
(
|
(
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeBugCheck
|
// * 0x005F - KeBugCheck()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(95) VOID NTAPI KeBugCheck
|
XBSYSAPI EXPORTNUM(95) VOID NTAPI KeBugCheck
|
||||||
(
|
(
|
||||||
IN ULONG BugCheckMode
|
IN ULONG BugCheckMode
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0060 - KeBugCheckEx()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(96) NTSTATUS NTAPI KeBugCheckEx
|
XBSYSAPI EXPORTNUM(96) NTSTATUS NTAPI KeBugCheckEx
|
||||||
(
|
(
|
||||||
IN DWORD BugCheckCode,
|
IN DWORD BugCheckCode,
|
||||||
|
@ -44,21 +56,24 @@ XBSYSAPI EXPORTNUM(96) NTSTATUS NTAPI KeBugCheckEx
|
||||||
IN PVOID BugCheckParameter4
|
IN PVOID BugCheckParameter4
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0061 - KeCancelTimer()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(97) BOOLEAN NTAPI KeCancelTimer
|
XBSYSAPI EXPORTNUM(97) BOOLEAN NTAPI KeCancelTimer
|
||||||
(
|
(
|
||||||
IN PKTIMER
|
IN PKTIMER
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeConnectInterrupt
|
// * 0x0062 - KeConnectInterrupt()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(98) LONG NTAPI KeConnectInterrupt
|
XBSYSAPI EXPORTNUM(98) BOOLEAN NTAPI KeConnectInterrupt
|
||||||
(
|
(
|
||||||
IN PKINTERRUPT InterruptObject
|
IN PKINTERRUPT InterruptObject
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeDelayExecutionThread
|
// * 0x0063 - KeDelayExecutionThread()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(99) NTSTATUS NTAPI KeDelayExecutionThread
|
XBSYSAPI EXPORTNUM(99) NTSTATUS NTAPI KeDelayExecutionThread
|
||||||
(
|
(
|
||||||
|
@ -68,7 +83,7 @@ XBSYSAPI EXPORTNUM(99) NTSTATUS NTAPI KeDelayExecutionThread
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeDisconnectInterrupt
|
// * 0x0064 - KeDisconnectInterrupt()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(100) VOID NTAPI KeDisconnectInterrupt
|
XBSYSAPI EXPORTNUM(100) VOID NTAPI KeDisconnectInterrupt
|
||||||
(
|
(
|
||||||
|
@ -89,7 +104,7 @@ XBSYSAPI EXPORTNUM(101) VOID NTAPI KeEnterCriticalRegion
|
||||||
XBSYSAPI EXPORTNUM(103) KIRQL NTAPI KeGetCurrentIrql(void);
|
XBSYSAPI EXPORTNUM(103) KIRQL NTAPI KeGetCurrentIrql(void);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeGetCurrentThread
|
// * 0x0068 - KeGetCurrentThread()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(104) PKTHREAD NTAPI KeGetCurrentThread(void);
|
XBSYSAPI EXPORTNUM(104) PKTHREAD NTAPI KeGetCurrentThread(void);
|
||||||
|
|
||||||
|
@ -97,7 +112,7 @@ XBSYSAPI VOID *KeInitializeApc;
|
||||||
XBSYSAPI VOID *KeInitializeDeviceQueue;
|
XBSYSAPI VOID *KeInitializeDeviceQueue;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeInitializeDpc
|
// * 0x006B - KeInitializeDpc()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(107) VOID NTAPI KeInitializeDpc
|
XBSYSAPI EXPORTNUM(107) VOID NTAPI KeInitializeDpc
|
||||||
(
|
(
|
||||||
|
@ -109,7 +124,7 @@ XBSYSAPI EXPORTNUM(107) VOID NTAPI KeInitializeDpc
|
||||||
XBSYSAPI VOID *KeInitializeEvent;
|
XBSYSAPI VOID *KeInitializeEvent;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeInitializeInterrupt
|
// * 0x006D - KeInitializeInterrupt()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(109) VOID NTAPI KeInitializeInterrupt
|
XBSYSAPI EXPORTNUM(109) VOID NTAPI KeInitializeInterrupt
|
||||||
(
|
(
|
||||||
|
@ -128,7 +143,7 @@ XBSYSAPI VOID *KeInitializeQueue;
|
||||||
XBSYSAPI VOID *KeInitializeSemaphore;
|
XBSYSAPI VOID *KeInitializeSemaphore;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeInitializeTimerEx
|
// * 0x0071 - KeInitializeTimerEx()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(113) VOID NTAPI KeInitializeTimerEx
|
XBSYSAPI EXPORTNUM(113) VOID NTAPI KeInitializeTimerEx
|
||||||
(
|
(
|
||||||
|
@ -143,7 +158,7 @@ XBSYSAPI VOID *KeInsertQueue;
|
||||||
XBSYSAPI VOID *KeInsertQueueApc;
|
XBSYSAPI VOID *KeInsertQueueApc;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeInsertQueueDpc
|
// * 0x0077 - KeInsertQueueDpc()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(119) BOOLEAN NTAPI KeInsertQueueDpc
|
XBSYSAPI EXPORTNUM(119) BOOLEAN NTAPI KeInsertQueueDpc
|
||||||
(
|
(
|
||||||
|
@ -167,22 +182,22 @@ XBSYSAPI VOID *KePulseEvent;
|
||||||
XBSYSAPI VOID *KeQueryBasePriorityThread;
|
XBSYSAPI VOID *KeQueryBasePriorityThread;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeQueryInterruptTime
|
// * 0x007D - KeQueryInterruptTime()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(125) ULONGLONG NTAPI KeQueryInterruptTime(void);
|
XBSYSAPI EXPORTNUM(125) ULONGLONG NTAPI KeQueryInterruptTime(void);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeQueryPerformanceCounter
|
// * 0x007E - KeQueryPerformanceCounter()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(126) ULONGLONG NTAPI KeQueryPerformanceCounter(void);
|
XBSYSAPI EXPORTNUM(126) ULONGLONG NTAPI KeQueryPerformanceCounter(void);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeQueryPerformanceFrequency
|
// * 0x007F - KeQueryPerformanceFrequency()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(127) ULONGLONG NTAPI KeQueryPerformanceFrequency(void);
|
XBSYSAPI EXPORTNUM(127) ULONGLONG NTAPI KeQueryPerformanceFrequency(void);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeQuerySystemTime
|
// * 0x0080 - KeQuerySystemTime()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(128) VOID NTAPI KeQuerySystemTime
|
XBSYSAPI EXPORTNUM(128) VOID NTAPI KeQuerySystemTime
|
||||||
(
|
(
|
||||||
|
@ -190,7 +205,7 @@ XBSYSAPI EXPORTNUM(128) VOID NTAPI KeQuerySystemTime
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeRaiseIrqlToDpcLevel
|
// * 0x0081 - KeRaiseIrqlToDpcLevel()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(129) UCHAR NTAPI KeRaiseIrqlToDpcLevel();
|
XBSYSAPI EXPORTNUM(129) UCHAR NTAPI KeRaiseIrqlToDpcLevel();
|
||||||
|
|
||||||
|
@ -209,7 +224,7 @@ XBSYSAPI VOID *KeRundownQueue;
|
||||||
XBSYSAPI VOID *KeSaveFloatingPointState;
|
XBSYSAPI VOID *KeSaveFloatingPointState;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x008F - KeSetBasePriorityThread
|
// * 0x008F - KeSetBasePriorityThread()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(143) LONG NTAPI KeSetBasePriorityThread
|
XBSYSAPI EXPORTNUM(143) LONG NTAPI KeSetBasePriorityThread
|
||||||
(
|
(
|
||||||
|
@ -232,7 +247,9 @@ XBSYSAPI EXPORTNUM(145) LONG NTAPI KeSetEvent
|
||||||
XBSYSAPI VOID *KeSetEventBoostPriority;
|
XBSYSAPI VOID *KeSetEventBoostPriority;
|
||||||
XBSYSAPI VOID *KeSetPriorityProcess;
|
XBSYSAPI VOID *KeSetPriorityProcess;
|
||||||
|
|
||||||
//XBSYSAPI VOID *KeSetPriorityThread;
|
// ******************************************************************
|
||||||
|
// * 0x0094 - KeSetPriorityThread()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(148) BOOLEAN NTAPI KeSetPriorityThread
|
XBSYSAPI EXPORTNUM(148) BOOLEAN NTAPI KeSetPriorityThread
|
||||||
(
|
(
|
||||||
IN PKTHREAD Thread,
|
IN PKTHREAD Thread,
|
||||||
|
@ -240,7 +257,7 @@ XBSYSAPI EXPORTNUM(148) BOOLEAN NTAPI KeSetPriorityThread
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeSetTimer
|
// * 0x0095 - KeSetTimer()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(149) BOOLEAN NTAPI KeSetTimer
|
XBSYSAPI EXPORTNUM(149) BOOLEAN NTAPI KeSetTimer
|
||||||
(
|
(
|
||||||
|
@ -250,7 +267,7 @@ XBSYSAPI EXPORTNUM(149) BOOLEAN NTAPI KeSetTimer
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeSetTimerEx
|
// * 0x0096 - KeSetTimerEx()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(150) BOOLEAN NTAPI KeSetTimerEx
|
XBSYSAPI EXPORTNUM(150) BOOLEAN NTAPI KeSetTimerEx
|
||||||
(
|
(
|
||||||
|
@ -261,7 +278,7 @@ XBSYSAPI EXPORTNUM(150) BOOLEAN NTAPI KeSetTimerEx
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeStallExecutionProcessor
|
// * 0x0097 - KeStallExecutionProcessor()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(151) VOID NTAPI KeStallExecutionProcessor
|
XBSYSAPI EXPORTNUM(151) VOID NTAPI KeStallExecutionProcessor
|
||||||
(
|
(
|
||||||
|
@ -274,12 +291,18 @@ XBSYSAPI VOID *KeSystemTime;
|
||||||
XBSYSAPI VOID *KeTestAlertThread;
|
XBSYSAPI VOID *KeTestAlertThread;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KeTickCount
|
// * 0x009C - KeTickCount
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(156) volatile DWORD KeTickCount;
|
XBSYSAPI EXPORTNUM(156) volatile DWORD KeTickCount;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x009D - KeTimeIncrement
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(157) ULONG KeTimeIncrement;
|
XBSYSAPI EXPORTNUM(157) ULONG KeTimeIncrement;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x009E - KeWaitForMultipleObjects()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(158) NTSTATUS KeWaitForMultipleObjects
|
XBSYSAPI EXPORTNUM(158) NTSTATUS KeWaitForMultipleObjects
|
||||||
(
|
(
|
||||||
IN ULONG Count,
|
IN ULONG Count,
|
||||||
|
@ -292,6 +315,9 @@ XBSYSAPI EXPORTNUM(158) NTSTATUS KeWaitForMultipleObjects
|
||||||
IN PKWAIT_BLOCK WaitBlockArray OPTIONAL
|
IN PKWAIT_BLOCK WaitBlockArray OPTIONAL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x009F - KeWaitForSingleObject()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(159) NTSTATUS KeWaitForSingleObject
|
XBSYSAPI EXPORTNUM(159) NTSTATUS KeWaitForSingleObject
|
||||||
(
|
(
|
||||||
IN PVOID Object,
|
IN PVOID Object,
|
||||||
|
|
|
@ -48,8 +48,8 @@ XBSYSAPI EXPORTNUM(263) NTSTATUS NTAPI RtlAppendUnicodeToString
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(264) VOID NTAPI RtlAssert
|
XBSYSAPI EXPORTNUM(264) VOID NTAPI RtlAssert
|
||||||
(
|
(
|
||||||
PVOID FailedAssertion,
|
PCHAR FailedAssertion,
|
||||||
PVOID FileName,
|
PCHAR FileName,
|
||||||
ULONG LineNumber,
|
ULONG LineNumber,
|
||||||
PCHAR Message
|
PCHAR Message
|
||||||
);
|
);
|
||||||
|
|
|
@ -31,12 +31,12 @@
|
||||||
#define AV_QUERY_AV_CAPABILITIES 6
|
#define AV_QUERY_AV_CAPABILITIES 6
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * AvGetSavedDataAddress
|
// * 0x0001 - AvGetSavedDataAddress()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(1) PVOID NTAPI AvGetSavedDataAddress(void);
|
XBSYSAPI EXPORTNUM(1) PVOID NTAPI AvGetSavedDataAddress(void);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * AvSendTVEncoderOption
|
// * 0x0002 - AvSendTVEncoderOption()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(2) VOID NTAPI AvSendTVEncoderOption
|
XBSYSAPI EXPORTNUM(2) VOID NTAPI AvSendTVEncoderOption
|
||||||
(
|
(
|
||||||
|
@ -47,7 +47,7 @@ XBSYSAPI EXPORTNUM(2) VOID NTAPI AvSendTVEncoderOption
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * AvSetDisplayMode
|
// * 0x0003 - AvSetDisplayMode()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(3) ULONG NTAPI AvSetDisplayMode
|
XBSYSAPI EXPORTNUM(3) ULONG NTAPI AvSetDisplayMode
|
||||||
(
|
(
|
||||||
|
@ -60,7 +60,7 @@ XBSYSAPI EXPORTNUM(3) ULONG NTAPI AvSetDisplayMode
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * AvSetSavedDataAddress
|
// * 0x0004 - AvSetSavedDataAddress()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(4) VOID NTAPI AvSetSavedDataAddress
|
XBSYSAPI EXPORTNUM(4) VOID NTAPI AvSetSavedDataAddress
|
||||||
(
|
(
|
||||||
|
@ -68,25 +68,35 @@ XBSYSAPI EXPORTNUM(4) VOID NTAPI AvSetSavedDataAddress
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * FscGetCacheSize
|
// * 0x0023 - FscGetCacheSize()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(35) ULONG NTAPI FscGetCacheSize();
|
XBSYSAPI EXPORTNUM(35) ULONG NTAPI FscGetCacheSize();
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0024 - FscInvalidateIdleBlocks()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(36) VOID NTAPI FscInvalidateIdleBlocks();
|
XBSYSAPI EXPORTNUM(36) VOID NTAPI FscInvalidateIdleBlocks();
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * FscSetCacheSize
|
// * 0x0025 - FscSetCacheSize()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(37) NTSTATUS NTAPI FscSetCacheSize
|
XBSYSAPI EXPORTNUM(37) NTSTATUS NTAPI FscSetCacheSize
|
||||||
(
|
(
|
||||||
ULONG NumberOfCachePages
|
ULONG NumberOfCachePages
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0058 - KdDebuggerEnabled
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(88) BOOLEAN KdDebuggerEnabled;
|
XBSYSAPI EXPORTNUM(88) BOOLEAN KdDebuggerEnabled;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0059 - KdDebuggerNotPresent
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(89) BOOLEAN KdDebuggerNotPresent;
|
XBSYSAPI EXPORTNUM(89) BOOLEAN KdDebuggerNotPresent;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KfRaiseIrql
|
// * 0x00A0 - KfRaiseIrql()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(160) UCHAR FASTCALL KfRaiseIrql
|
XBSYSAPI EXPORTNUM(160) UCHAR FASTCALL KfRaiseIrql
|
||||||
(
|
(
|
||||||
|
@ -94,30 +104,42 @@ XBSYSAPI EXPORTNUM(160) UCHAR FASTCALL KfRaiseIrql
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * KfLowerIrql
|
// * 0x00A1 - KfLowerIrql()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(161) VOID FASTCALL KfLowerIrql
|
XBSYSAPI EXPORTNUM(161) VOID FASTCALL KfLowerIrql
|
||||||
(
|
(
|
||||||
IN UCHAR NewIrql
|
IN UCHAR NewIrql
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x00A2 - KiBugCheckData
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(162) ULONG_PTR KiBugCheckData[5];
|
XBSYSAPI EXPORTNUM(162) ULONG_PTR KiBugCheckData[5];
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x00A3 - KiUnlockDispatcherDatabase()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(163) VOID FASTCALL KiUnlockDispatcherDatabase
|
XBSYSAPI EXPORTNUM(163) VOID FASTCALL KiUnlockDispatcherDatabase
|
||||||
(
|
(
|
||||||
IN KIRQL OldIrql
|
IN KIRQL OldIrql
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * LaunchDataPage (actually a pointer)
|
// * 0x00A4 - LaunchDataPage (actually a pointer)
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(164) PLAUNCH_DATA_PAGE LaunchDataPage;
|
XBSYSAPI EXPORTNUM(164) PLAUNCH_DATA_PAGE LaunchDataPage;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x00FC - PhyGetLinkState()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(252) NTSTATUS NTAPI PhyGetLinkState
|
XBSYSAPI EXPORTNUM(252) NTSTATUS NTAPI PhyGetLinkState
|
||||||
(
|
(
|
||||||
IN ULONG Mode
|
IN ULONG Mode
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x00FD - PhyInitialize()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(253) NTSTATUS NTAPI PhyInitialize
|
XBSYSAPI EXPORTNUM(253) NTSTATUS NTAPI PhyInitialize
|
||||||
(
|
(
|
||||||
IN ULONG forceReset,
|
IN ULONG forceReset,
|
||||||
|
@ -125,17 +147,17 @@ XBSYSAPI EXPORTNUM(253) NTSTATUS NTAPI PhyInitialize
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * XboxEEPROMKey
|
// * 0x0141 - XboxEEPROMKey
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(321) UCHAR XboxEEPROMKey[16];
|
XBSYSAPI EXPORTNUM(321) UCHAR XboxEEPROMKey[16];
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * XboxHardwareInfo
|
// * 0x0142 - XboxHardwareInfo
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(322) XBOX_HARDWARE_INFO XboxHardwareInfo;
|
XBSYSAPI EXPORTNUM(322) XBOX_HARDWARE_INFO XboxHardwareInfo;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * XboxHDKey
|
// * 0x0143 - XboxHDKey
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(323) UCHAR XboxHDKey[16];
|
XBSYSAPI EXPORTNUM(323) UCHAR XboxHDKey[16];
|
||||||
|
|
||||||
|
@ -146,16 +168,23 @@ typedef struct _XBOX_KRNL_VERSION {
|
||||||
USHORT Qfe;
|
USHORT Qfe;
|
||||||
} XBOX_KRNL_VERSION;
|
} XBOX_KRNL_VERSION;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0144 - XboxKrnlVersion
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(324) XBOX_KRNL_VERSION XboxKrnlVersion;
|
XBSYSAPI EXPORTNUM(324) XBOX_KRNL_VERSION XboxKrnlVersion;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * XboxSignatureKey
|
// * 0x0145 - XboxSignatureKey
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(325) BYTE XboxSignatureKey[16];
|
XBSYSAPI EXPORTNUM(325) BYTE XboxSignatureKey[16];
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(326) OBJECT_STRING XeImageFileName;
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0147 - XeLoadSection
|
// * 0x0146 - XeImageFileName
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(326) OBJECT_STRING XeImageFileName;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0147 - XeLoadSection()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(327) NTSTATUS NTAPI XeLoadSection
|
XBSYSAPI EXPORTNUM(327) NTSTATUS NTAPI XeLoadSection
|
||||||
(
|
(
|
||||||
|
@ -163,7 +192,7 @@ XBSYSAPI EXPORTNUM(327) NTSTATUS NTAPI XeLoadSection
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0148 - XeUnloadSection
|
// * 0x0148 - XeUnloadSection()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(328) NTSTATUS NTAPI XeUnloadSection
|
XBSYSAPI EXPORTNUM(328) NTSTATUS NTAPI XeUnloadSection
|
||||||
(
|
(
|
||||||
|
@ -171,34 +200,55 @@ XBSYSAPI EXPORTNUM(328) NTSTATUS NTAPI XeUnloadSection
|
||||||
);
|
);
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * XcSHAInit
|
// * 0x014F - XcSHAInit()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(335) VOID NTAPI XcSHAInit(UCHAR *pbSHAContext);
|
XBSYSAPI EXPORTNUM(335) VOID NTAPI XcSHAInit
|
||||||
|
|
||||||
// ******************************************************************
|
|
||||||
// * XcSHAUpdate
|
|
||||||
// ******************************************************************
|
|
||||||
XBSYSAPI EXPORTNUM(336) VOID NTAPI XcSHAUpdate(UCHAR *pbSHAContext, UCHAR *pbInput, ULONG dwInputLength);
|
|
||||||
|
|
||||||
// ******************************************************************
|
|
||||||
// * XcSHAFinal
|
|
||||||
// ******************************************************************
|
|
||||||
XBSYSAPI EXPORTNUM(337) VOID NTAPI XcSHAFinal(UCHAR *pbSHAContext, UCHAR *pbDigest);
|
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(338) VOID XcRC4Key
|
|
||||||
(
|
(
|
||||||
IN PUCHAR pbKeyStruct,
|
IN PUCHAR pbSHAContext
|
||||||
IN ULONG dwKeyLength,
|
|
||||||
IN PUCHAR pbKey
|
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(339) VOID XcRC4Crypt
|
// ******************************************************************
|
||||||
|
// * 0x0150 - XcSHAUpdate()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(336) VOID NTAPI XcSHAUpdate
|
||||||
(
|
(
|
||||||
IN PUCHAR pbKeyStruct,
|
IN PUCHAR pbSHAContext,
|
||||||
IN ULONG dwInputLength,
|
IN PUCHAR pbInput,
|
||||||
IN PUCHAR pbInput
|
IN ULONG dwInputLength
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0151 - XcSHAFinal()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(337) VOID NTAPI XcSHAFinal
|
||||||
|
(
|
||||||
|
IN PUCHAR pbSHAContext,
|
||||||
|
IN PUCHAR pbDigest
|
||||||
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0152 - XcRC4Key()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(338) VOID NTAPI XcRC4Key
|
||||||
|
(
|
||||||
|
IN PUCHAR pbKeyStruct,
|
||||||
|
IN ULONG dwKeyLength,
|
||||||
|
IN PUCHAR pbKey
|
||||||
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0153 - XcRC4Crypt()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(339) VOID NTAPI XcRC4Crypt
|
||||||
|
(
|
||||||
|
IN PUCHAR pbKeyStruct,
|
||||||
|
IN ULONG dwInputLength,
|
||||||
|
IN PUCHAR pbInput
|
||||||
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0154 - XcHMAC()
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(340) VOID NTAPI XcHMAC
|
XBSYSAPI EXPORTNUM(340) VOID NTAPI XcHMAC
|
||||||
(
|
(
|
||||||
IN PBYTE pbKeyMaterial,
|
IN PBYTE pbKeyMaterial,
|
||||||
|
@ -210,90 +260,139 @@ XBSYSAPI EXPORTNUM(340) VOID NTAPI XcHMAC
|
||||||
OUT PBYTE HmacData
|
OUT PBYTE HmacData
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(341) VOID XcPKEncPublic
|
// ******************************************************************
|
||||||
|
// * 0x0155 - XcPKEncPublic()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(341) ULONG NTAPI XcPKEncPublic
|
||||||
(
|
(
|
||||||
IN PBYTE pbPubKey,
|
IN PUCHAR pbPubKey,
|
||||||
IN PBYTE pbInput,
|
IN PUCHAR pbInput,
|
||||||
OUT PBYTE pbOutput
|
OUT PUCHAR pbOutput
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(342) VOID XcPKDecPrivate
|
// ******************************************************************
|
||||||
|
// * 0x0156 - XcPKDecPrivate()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(342) ULONG NTAPI XcPKDecPrivate
|
||||||
(
|
(
|
||||||
IN PBYTE pbPrvKey,
|
IN PUCHAR pbPrvKey,
|
||||||
IN PBYTE pbInput,
|
IN PUCHAR pbInput,
|
||||||
OUT PBYTE pbOutput
|
OUT PUCHAR pbOutput
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(343) VOID XcPKGetKeyLen
|
// ******************************************************************
|
||||||
|
// * 0x0157 - XcPKGetKeyLen()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(343) ULONG NTAPI XcPKGetKeyLen
|
||||||
(
|
(
|
||||||
OUT PBYTE pbPubKey
|
OUT PUCHAR pbPubKey
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(344) VOID XcVerifyPKCS1Signature
|
// ******************************************************************
|
||||||
|
// * 0x0158 - XcVerifyPKCS1Signature()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(344) BOOLEAN NTAPI XcVerifyPKCS1Signature
|
||||||
(
|
(
|
||||||
IN PBYTE pbSig,
|
IN PUCHAR pbSig,
|
||||||
IN PBYTE pbPubKey,
|
IN PUCHAR pbPubKey,
|
||||||
IN PBYTE pbDigest
|
IN PUCHAR pbDigest
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(345) VOID XcModExp
|
// ******************************************************************
|
||||||
|
// * 0x0159 - XcModExp()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(345) ULONG NTAPI XcModExp
|
||||||
(
|
(
|
||||||
IN PULONG pA,
|
IN LPDWORD pA,
|
||||||
IN PULONG pB,
|
IN LPDWORD pB,
|
||||||
IN PULONG pC,
|
IN LPDWORD pC,
|
||||||
IN PULONG pD,
|
IN LPDWORD pD,
|
||||||
IN ULONG dwN
|
IN ULONG dwN
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(346) VOID XcDESKeyParity
|
// ******************************************************************
|
||||||
|
// * 0x015A - XcDESKeyParity()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(346) VOID NTAPI XcDESKeyParity
|
||||||
(
|
(
|
||||||
IN PBYTE pbKey,
|
IN PUCHAR pbKey,
|
||||||
IN ULONG dwKeyLength
|
IN ULONG dwKeyLength
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(347) VOID XcKeyTable
|
// ******************************************************************
|
||||||
|
// * 0x015B - XcKeyTable()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(347) VOID NTAPI XcKeyTable
|
||||||
(
|
(
|
||||||
IN ULONG dwCipher,
|
IN ULONG dwCipher,
|
||||||
IN PBYTE pbKeyTable,
|
OUT PUCHAR pbKeyTable,
|
||||||
IN PBYTE pbKey
|
IN PUCHAR pbKey
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(348) VOID XcBlockCrypt
|
// ******************************************************************
|
||||||
|
// * 0x015C - XcBlockCrypt()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(348) VOID NTAPI XcBlockCrypt
|
||||||
(
|
(
|
||||||
IN ULONG dwCipher,
|
IN ULONG dwCipher,
|
||||||
OUT PBYTE pbOutput,
|
OUT PUCHAR pbOutput,
|
||||||
IN PBYTE pbInput,
|
IN PUCHAR pbInput,
|
||||||
IN PBYTE pbKeyTable,
|
IN PUCHAR pbKeyTable,
|
||||||
IN ULONG dwOp
|
IN ULONG dwOp
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(349) VOID XcBlockCryptCBC
|
// ******************************************************************
|
||||||
|
// * 0x015D - XcBlockCryptCBC()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(349) VOID NTAPI XcBlockCryptCBC
|
||||||
(
|
(
|
||||||
IN ULONG dwCipher,
|
IN ULONG dwCipher,
|
||||||
IN ULONG dwInputLength,
|
IN ULONG dwInputLength,
|
||||||
OUT PBYTE pbOutput,
|
OUT PUCHAR pbOutput,
|
||||||
IN PBYTE pbInput,
|
IN PUCHAR pbInput,
|
||||||
IN PBYTE pbKeyTable,
|
IN PUCHAR pbKeyTable,
|
||||||
IN ULONG dwOp,
|
IN ULONG dwOp,
|
||||||
OUT PBYTE pbFeedback
|
IN PUCHAR pbFeedback
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(350) VOID XcCryptService
|
// ******************************************************************
|
||||||
|
// * 0x015E - XcCryptService()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(350) ULONG NTAPI XcCryptService
|
||||||
(
|
(
|
||||||
IN ULONG dwOp,
|
IN ULONG dwOp,
|
||||||
...
|
IN PVOID pArgs
|
||||||
);
|
);
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(351) VOID XcUpdateCrypto
|
typedef PVOID PCRYPTO_VECTOR; // TODO : Expand
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x015F - XcUpdateCrypto()
|
||||||
|
// ******************************************************************
|
||||||
|
XBSYSAPI EXPORTNUM(351) VOID NTAPI XcUpdateCrypto
|
||||||
(
|
(
|
||||||
IN PVOID pNewVector,
|
IN PCRYPTO_VECTOR pNewVector,
|
||||||
IN PVOID pROMVector
|
OUT PCRYPTO_VECTOR pROMVector OPTIONAL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0161 - XboxLANKey
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(353) XBOX_KEY_DATA XboxLANKey;
|
XBSYSAPI EXPORTNUM(353) XBOX_KEY_DATA XboxLANKey;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0162 - XboxAlternateSignatureKeys
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(354) XBOX_KEY_DATA XboxAlternateSignatureKeys;
|
XBSYSAPI EXPORTNUM(354) XBOX_KEY_DATA XboxAlternateSignatureKeys;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0163 - XePublicKeyData
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(355) DWORD XePublicKeyData;
|
XBSYSAPI EXPORTNUM(355) DWORD XePublicKeyData;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * 0x0165 - IdexChannelObject
|
||||||
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(357) BYTE IdexChannelObject[0x100];
|
XBSYSAPI EXPORTNUM(357) BYTE IdexChannelObject[0x100];
|
||||||
|
|
||||||
XBSYSAPI EXPORTNUM(361) VOID *xsnprintf; // prefixed with "x" to avoid xlibc collisions
|
XBSYSAPI EXPORTNUM(361) VOID *xsnprintf; // prefixed with "x" to avoid xlibc collisions
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
|
Mesa 3-D graphics library
|
||||||
|
Version: 7.0
|
||||||
|
|
||||||
|
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
to deal in the Software without restriction, including without limitation
|
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (c) 2007 The Khronos Group Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and/or associated documentation files (the
|
||||||
|
"Materials"), to deal in the Materials without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Materials, and to
|
||||||
|
permit persons to whom the Materials are furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Materials.
|
||||||
|
|
||||||
|
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
@ -0,0 +1,232 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
||||||
|
<tr><td align="center">Source Generation</td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Automatic Code Generation</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Starting from release 1.1.0, the source code and parts of the
|
||||||
|
documentation are automatically generated from the extension
|
||||||
|
specifications in a two-step process. In the first step,
|
||||||
|
specification files from the OpenGL registry are downloaded and
|
||||||
|
parsed. Skeleton descriptors are created for each extension. These
|
||||||
|
descriptors contain all necessary information for creating the source
|
||||||
|
code and documentation in a simple and compact format, including the
|
||||||
|
name of the extension, url link to the specification, tokens, function
|
||||||
|
declarations, typedefs and struct definitions. In the second step,
|
||||||
|
the header files as well as the library and glewinfo source are
|
||||||
|
generated from the descriptor files. The code generation scripts are
|
||||||
|
located in the <tt>auto</tt> subdirectory.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The code generation scripts require GNU make, wget, and perl. On
|
||||||
|
Windows, the simplest way to get access to these tools is to install
|
||||||
|
<a href="http://www.cygwin.com/">Cygwin</a>, but make sure that the
|
||||||
|
root directory is mounted in binary mode. The makefile in the
|
||||||
|
<tt>auto</tt> directory provides the following build targets:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border=0 cellpadding=0 cellspacing=5>
|
||||||
|
<tr><td align="left" valign="top"><tt>make</tt></td>
|
||||||
|
<td align=left>Create the source files from the descriptors.<br/> If the
|
||||||
|
descriptors do not exist, create them from the spec files.<br/> If the spec
|
||||||
|
files do not exist, download them from the OpenGL repository.</td></tr>
|
||||||
|
<tr><td align="left" valign="top"><tt>make clean</tt></td>
|
||||||
|
<td align=left>Delete the source files.</td></tr>
|
||||||
|
<tr><td align="left" valign="top"><tt>make clobber</tt></td>
|
||||||
|
<td align=left>Delete the source files and the descriptors.</td></tr>
|
||||||
|
<tr><td align="left" valign="top"><tt>make destroy</tt></td>
|
||||||
|
<td align=left>Delete the source files, the descriptors, and the spec files.</td></tr>
|
||||||
|
<tr><td align="left" valign="top"><tt>make custom</tt></td>
|
||||||
|
<td align=left>Create the source files for the extensions
|
||||||
|
listed in <tt>auto/custom.txt</tt>.<br/> See "Custom Code
|
||||||
|
Generation" below for more details.</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Adding a New Extension</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To add a new extension, create a descriptor file for the extension in
|
||||||
|
<tt>auto/core</tt> and rerun the code generation scripts by typing
|
||||||
|
<tt>make clean; make</tt> in the <tt>auto</tt> directory.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The format of the descriptor file is given below. Items in
|
||||||
|
brackets are optional.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
<Extension Name><br>
|
||||||
|
[<URL of Specification File>]<br>
|
||||||
|
[<Token Name> <Token Value>]<br>
|
||||||
|
[<Token Name> <Token Value>]<br>
|
||||||
|
...<br>
|
||||||
|
[<Typedef>]<br>
|
||||||
|
[<Typedef>]<br>
|
||||||
|
...<br>
|
||||||
|
[<Function Signature>]<br>
|
||||||
|
[<Function Signature>]<br>
|
||||||
|
...<br>
|
||||||
|
<!-- [<Function Definition>]<br>
|
||||||
|
[<Function Definition>]<br>
|
||||||
|
...<br> -->
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<p>
|
||||||
|
Note that <tt>Function Definitions</tt> are copied to the header files
|
||||||
|
without changes and have to be terminated with a semicolon. In
|
||||||
|
contrast, <tt>Tokens</tt>, <tt>Function signatures</tt>, and
|
||||||
|
<tt>Typedefs</tt> should not be terminated with a semicolon.
|
||||||
|
</p>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Take a look at one of the files in <tt>auto/core</tt> for an
|
||||||
|
example. Note that typedefs and function signatures should not be
|
||||||
|
terminated with a semicolon.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Custom Code Generation</h3>
|
||||||
|
<p>
|
||||||
|
Starting from GLEW 1.3.0, it is possible to control which extensions
|
||||||
|
to include in the libarary by specifying a list in
|
||||||
|
<tt>auto/custom.txt</tt>. This is useful when you do not need all the
|
||||||
|
extensions and would like to reduce the size of the source files.
|
||||||
|
Type <tt>make clean; make custom</tt> in the <tt>auto</tt> directory
|
||||||
|
to rerun the scripts with the custom list of extensions.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
For example, the following is the list of extensions needed to get GLEW and the
|
||||||
|
utilities to compile.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
WGL_ARB_extensions_string<br>
|
||||||
|
WGL_ARB_multisample<br>
|
||||||
|
WGL_ARB_pixel_format<br>
|
||||||
|
WGL_ARB_pbuffer<br>
|
||||||
|
WGL_EXT_extensions_string<br>
|
||||||
|
WGL_ATI_pixel_format_float<br>
|
||||||
|
WGL_NV_float_buffer<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Separate Namespace</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To avoid name clashes when linking with libraries that include the
|
||||||
|
same symbols, extension entry points are declared in a separate
|
||||||
|
namespace (release 1.1.0 and up). This is achieved by aliasing OpenGL
|
||||||
|
function names to their GLEW equivalents. For instance,
|
||||||
|
<tt>glFancyFunction</tt> is simply an alias to
|
||||||
|
<tt>glewFancyFunction</tt>. The separate namespace does not effect
|
||||||
|
token and function pointer definitions.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Known Issues</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
GLEW requires GLX 1.2 for compatibility with GLUT.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
|
@ -0,0 +1,282 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
||||||
|
<tr><td align="center">Usage</td></tr>
|
||||||
|
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Initializing GLEW</h2>
|
||||||
|
<p>
|
||||||
|
First you need to create a valid OpenGL rendering context and call
|
||||||
|
<tt>glewInit()</tt> to initialize the extension entry points. If
|
||||||
|
<tt>glewInit()</tt> returns <tt>GLEW_OK</tt>, the initialization
|
||||||
|
succeeded and you can use the available extensions as well as core
|
||||||
|
OpenGL functionality. For example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
#include <GL/glew.h><br>
|
||||||
|
#include <GL/glut.h><br>
|
||||||
|
...<br>
|
||||||
|
glutInit(&argc, argv);<br>
|
||||||
|
glutCreateWindow("GLEW Test");<br>
|
||||||
|
GLenum err = glewInit();<br>
|
||||||
|
if (GLEW_OK != err)<br>
|
||||||
|
{<br>
|
||||||
|
/* Problem: glewInit failed, something is seriously wrong. */<br>
|
||||||
|
fprintf(stderr, "Error: %s\n", glewGetErrorString(err));<br>
|
||||||
|
...<br>
|
||||||
|
}<br>
|
||||||
|
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Checking for Extensions</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Starting from GLEW 1.1.0, you can find out if a particular extension
|
||||||
|
is available on your platform by querying globally defined variables
|
||||||
|
of the form <tt>GLEW_{extension_name}</tt>:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
if (GLEW_ARB_vertex_program)<br>
|
||||||
|
{<br>
|
||||||
|
/* It is safe to use the ARB_vertex_program extension here. */<br>
|
||||||
|
glGenProgramsARB(...);<br>
|
||||||
|
}<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b>In GLEW 1.0.x, a global structure was used for this task. To ensure
|
||||||
|
binary compatibility between releases, the struct was replaced with a
|
||||||
|
set of variables.</b>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
You can also check for core OpenGL functionality. For example, to
|
||||||
|
see if OpenGL 1.3 is supported, do the following:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
if (GLEW_VERSION_1_3)<br>
|
||||||
|
{<br>
|
||||||
|
/* Yay! OpenGL 1.3 is supported! */<br>
|
||||||
|
}<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In general, you can check if <tt>GLEW_{extension_name}</tt> or
|
||||||
|
<tt>GLEW_VERSION_{version}</tt> is true or false.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
It is also possible to perform extension checks from string
|
||||||
|
input. Starting from the 1.3.0 release, use <tt>glewIsSupported</tt>
|
||||||
|
to check if the required core or extension functionality is
|
||||||
|
available:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
if (glewIsSupported("GL_VERSION_1_4 GL_ARB_point_sprite"))<br>
|
||||||
|
{<br>
|
||||||
|
/* Great, we have OpenGL 1.4 + point sprites. */<br>
|
||||||
|
}<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
For extensions only, <tt>glewGetExtension</tt> provides a slower alternative
|
||||||
|
(GLEW 1.0.x-1.2.x). <b>Note that in the 1.3.0 release </b>
|
||||||
|
<tt>glewGetExtension</tt> <b>was replaced with </b>
|
||||||
|
<tt>glewIsSupported</tt>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
if (glewGetExtension("GL_ARB_fragment_program"))<br>
|
||||||
|
{<br>
|
||||||
|
/* Looks like ARB_fragment_program is supported. */<br>
|
||||||
|
}<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Experimental Drivers</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
GLEW obtains information on the supported extensions from the graphics
|
||||||
|
driver. Experimental or pre-release drivers, however, might not
|
||||||
|
report every available extension through the standard mechanism, in
|
||||||
|
which case GLEW will report it unsupported. To circumvent this
|
||||||
|
situation, the <tt>glewExperimental</tt> global switch can be turned
|
||||||
|
on by setting it to <tt>GL_TRUE</tt> before calling
|
||||||
|
<tt>glewInit()</tt>, which ensures that all extensions with valid
|
||||||
|
entry points will be exposed.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Platform Specific Extensions</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Platform specific extensions are separated into two header files:
|
||||||
|
<tt>wglew.h</tt> and <tt>glxew.h</tt>, which define the available
|
||||||
|
<tt>WGL</tt> and <tt>GLX</tt> extensions. To determine if a certain
|
||||||
|
extension is supported, query <tt>WGLEW_{extension name}</tt> or
|
||||||
|
<tt>GLXEW_{extension_name}</tt>. For example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
#include <GL/wglew.h><br>
|
||||||
|
<br>
|
||||||
|
if (WGLEW_ARB_pbuffer)<br>
|
||||||
|
{<br>
|
||||||
|
/* OK, we can use pbuffers. */<br>
|
||||||
|
}<br>
|
||||||
|
else<br>
|
||||||
|
{<br>
|
||||||
|
/* Sorry, pbuffers will not work on this platform. */<br>
|
||||||
|
}<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Alternatively, use <tt>wglewIsSupported</tt> or
|
||||||
|
<tt>glxewIsSupported</tt> to check for extensions from a string:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
if (wglewIsSupported("WGL_ARB_pbuffer"))<br>
|
||||||
|
{<br>
|
||||||
|
/* OK, we can use pbuffers. */<br>
|
||||||
|
}<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Utilities</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
GLEW provides two command-line utilities: one for creating a list of
|
||||||
|
available extensions and visuals; and another for verifying extension
|
||||||
|
entry points.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>visualinfo: extensions and visuals</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<tt>visualinfo</tt> is an extended version of <tt>glxinfo</tt>. The
|
||||||
|
Windows version creates a file called <tt>visualinfo.txt</tt>, which
|
||||||
|
contains a list of available OpenGL, WGL, and GLU extensions as well
|
||||||
|
as a table of visuals aka. pixel formats. Pbuffer and MRT capable
|
||||||
|
visuals are also included. For additional usage information, type
|
||||||
|
<tt>visualinfo -h</tt>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>glewinfo: extension verification utility</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<tt>glewinfo</tt> allows you to verify the entry points for the
|
||||||
|
extensions supported on your platform. The Windows version
|
||||||
|
reports the results to a text file called <tt>glewinfo.txt</tt>. The
|
||||||
|
Unix version prints the results to <tt>stdout</tt>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>Windows usage:</p>
|
||||||
|
<blockquote><pre>glewinfo [-pf <id>]</pre></blockquote>
|
||||||
|
|
||||||
|
<p>where <tt><id></tt> is the pixel format id for which the
|
||||||
|
capabilities are displayed.</p>
|
||||||
|
|
||||||
|
<p>Unix usage:</p>
|
||||||
|
<blockquote><pre>glewinfo [-display <dpy>] [-visual <id>]</pre></blockquote>
|
||||||
|
|
||||||
|
<p>where <tt><dpy></tt> is the X11 display and <tt><id></tt> is
|
||||||
|
the visual id for which the capabilities are displayed.</p>
|
||||||
|
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
|
@ -0,0 +1,151 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
||||||
|
<tr><td align="center">Building</td></tr>
|
||||||
|
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Building GLEW</h2>
|
||||||
|
|
||||||
|
<h3>Windows</h3>
|
||||||
|
|
||||||
|
<p>A MS Visual Studio project is provided in the <tt>build/vc6</tt> directory.</p>
|
||||||
|
<p>Pre-built shared and static libraries are also available for <a href="index.html">download</a>.</p>
|
||||||
|
|
||||||
|
<h3>Makefile</h3>
|
||||||
|
|
||||||
|
<p>For platforms other than MS Windows, the provided <tt>Makefile</tt> is used.</p>
|
||||||
|
|
||||||
|
<h4>Command-line variables</h4>
|
||||||
|
|
||||||
|
<table border=0 cellpadding=0 cellspacing=10>
|
||||||
|
<tr><td valign=top><tt>SYSTEM</tt></td><td valign=top>auto</td>
|
||||||
|
<td align=left>Target system to build: darwin, linux, solaris, etc.<br/>For a full list of supported targets: <tt>ls config/Makefile.*</tt><br/>
|
||||||
|
<a href="http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree">config.guess</a> is used to auto detect, as necessary.</td></tr>
|
||||||
|
<tr><td valign=top><tt>GLEW_DEST</tt></td><td valign=top><tt>/usr</tt></td>
|
||||||
|
<td align=left>Base directory for installation.</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h4>Make targets</h4>
|
||||||
|
|
||||||
|
<table border=0 cellpadding=0 cellspacing=10>
|
||||||
|
<tr><td valign=top><tt>all</tt></td><td>Build everything.</td><tr>
|
||||||
|
<tr><td valign=top><tt>glew.lib</tt></td><td>Build static and dynamic GLEW libraries.</td><tr>
|
||||||
|
<tr><td valign=top><tt>glew.lib.mx</tt></td><td>Build static and dynamic GLEWmx libraries.</td><tr>
|
||||||
|
<tr><td valign=top><tt>glew.bin</tt></td><td>Build <tt>glewinfo</tt> and <tt>visualinfo</tt> utilities.</td><tr>
|
||||||
|
<tr><td valign=top><tt>clean</tt></td><td>Delete temporary and built files.</td><tr>
|
||||||
|
<tr><td valign=top><tt>install.all</tt></td><td>Install everything.</td><tr>
|
||||||
|
<tr><td valign=top><tt>install</tt></td><td>Install GLEW libraries.</td><tr>
|
||||||
|
<tr><td valign=top><tt>install.mx</tt></td><td>Install GLEWmx libraries.</td><tr>
|
||||||
|
<tr><td valign=top><tt>install.bin</tt></td><td>Install <tt>glewinfo</tt> and <tt>visualinfo</tt> utilities.</td><tr>
|
||||||
|
<tr><td valign=top><tt>uninstall</tt></td><td>Delete installed files.</td><tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h4>Requirements</h4>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>GNU make</li>
|
||||||
|
<li>perl</li>
|
||||||
|
<li>wget</li>
|
||||||
|
<li>GNU sed</li>
|
||||||
|
<li>gcc compiler</li>
|
||||||
|
<li>git</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
Ubuntu: <pre>sudo apt-get install libXmu-dev libXi-dev libgl-dev dos2unix git wget</pre>
|
||||||
|
Fedora: <pre>sudo yum install libXmu-devel libXi-devel libGL-devel dos2unix git wget</pre>
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
|
@ -0,0 +1,104 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<p><a href="https://github.com/nigels-com/glew#copyright-and-licensing">
|
||||||
|
Author, copyright and licensing information</a> on github.</p>
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,187 @@
|
||||||
|
h1
|
||||||
|
{
|
||||||
|
color: black;
|
||||||
|
font: 23px "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 12px;
|
||||||
|
margin-bottom: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2
|
||||||
|
{
|
||||||
|
color: black;
|
||||||
|
font: 18px "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: left;
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
margin-top: 18px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3
|
||||||
|
{
|
||||||
|
color: black;
|
||||||
|
font: 17px "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
text-align: left;
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
margin-top: 12px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
small
|
||||||
|
{
|
||||||
|
font: 8pt "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body
|
||||||
|
{
|
||||||
|
color: black;
|
||||||
|
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
td
|
||||||
|
{
|
||||||
|
color: black;
|
||||||
|
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
tt
|
||||||
|
{
|
||||||
|
color: rgb(0,120,0);
|
||||||
|
}
|
||||||
|
/* color: maroon; */
|
||||||
|
|
||||||
|
td.num
|
||||||
|
{
|
||||||
|
color: lightgrey;
|
||||||
|
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote
|
||||||
|
{
|
||||||
|
color: rgb(0,120,0);
|
||||||
|
background: #f0f0f0;
|
||||||
|
text-align: left;
|
||||||
|
margin-left: 40px;
|
||||||
|
margin-right: 40px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
padding-top: 0px;
|
||||||
|
border-top: 0px;
|
||||||
|
border-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre
|
||||||
|
{
|
||||||
|
color: rgb(0,120,0);
|
||||||
|
background: #f0f0f0;
|
||||||
|
text-align: left;
|
||||||
|
margin-left: 40px;
|
||||||
|
margin-right: 40px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
padding-top: 0px;
|
||||||
|
border-top: 0px;
|
||||||
|
border-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p
|
||||||
|
{
|
||||||
|
color: black;
|
||||||
|
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
text-align: left;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding-bottom: 6px;
|
||||||
|
margin-top: 0px;
|
||||||
|
padding-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.right
|
||||||
|
{
|
||||||
|
color: black;
|
||||||
|
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
||||||
|
text-align: right;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding-bottom: 6px;
|
||||||
|
margin-top: 0px;
|
||||||
|
padding-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.pre
|
||||||
|
{
|
||||||
|
color: rgb(0,120,0);
|
||||||
|
font: 10pt "Courier New", "Courier", monospace;
|
||||||
|
background: #f0f0f0;
|
||||||
|
text-align: left;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
margin-left: 40px;
|
||||||
|
margin-right: 40px;
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-bottom: 6px;
|
||||||
|
padding-left: 6px;
|
||||||
|
padding-right: 6px;
|
||||||
|
border-top: 0px;
|
||||||
|
border-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link
|
||||||
|
{
|
||||||
|
color: rgb(0,0,139);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited
|
||||||
|
{
|
||||||
|
color: rgb(220,20,60);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover
|
||||||
|
{
|
||||||
|
color: rgb(220,20,60);
|
||||||
|
text-decoration: underline;
|
||||||
|
background: "#e8e8e8";
|
||||||
|
}
|
||||||
|
|
||||||
|
ul
|
||||||
|
{
|
||||||
|
list-style-type: disc;
|
||||||
|
text-align: left;
|
||||||
|
margin-left: 40px;
|
||||||
|
margin-top: 0px;
|
||||||
|
padding-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.none
|
||||||
|
{
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol
|
||||||
|
{
|
||||||
|
text-align: left;
|
||||||
|
margin-left: 40px;
|
||||||
|
margin-top: 0px;
|
||||||
|
padding-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr
|
||||||
|
{
|
||||||
|
color: maroon;
|
||||||
|
background-color: maroon;
|
||||||
|
height: 1px;
|
||||||
|
border: 0px;
|
||||||
|
width: 80%;
|
||||||
|
}
|
|
@ -0,0 +1,724 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Supported OpenGL Extensions</h2>
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="1" cellspacing="0" align="center">
|
||||||
|
<tr><td class="num">1</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt">3DFX_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">2</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/tbuffer.txt">3DFX_tbuffer</a></td></tr>
|
||||||
|
<tr><td class="num">3</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/texture_compression_FXT1.txt">3DFX_texture_compression_FXT1</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">4</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/blend_minmax_factor.txt">AMD_blend_minmax_factor</a></td></tr>
|
||||||
|
<tr><td class="num">5</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/conservative_depth.txt">AMD_conservative_depth</a></td></tr>
|
||||||
|
<tr><td class="num">6</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/debug_output.txt">AMD_debug_output</a></td></tr>
|
||||||
|
<tr><td class="num">7</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/depth_clamp_separate.txt">AMD_depth_clamp_separate</a></td></tr>
|
||||||
|
<tr><td class="num">8</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt">AMD_draw_buffers_blend</a></td></tr>
|
||||||
|
<tr><td class="num">9</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/gcn_shader.txt">AMD_gcn_shader</a></td></tr>
|
||||||
|
<tr><td class="num">10</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/gpu_shader_int64.txt">AMD_gpu_shader_int64</a></td></tr>
|
||||||
|
<tr><td class="num">11</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/interleaved_elements.txt">AMD_interleaved_elements</a></td></tr>
|
||||||
|
<tr><td class="num">12</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt">AMD_multi_draw_indirect</a></td></tr>
|
||||||
|
<tr><td class="num">13</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/name_gen_delete.txt">AMD_name_gen_delete</a></td></tr>
|
||||||
|
<tr><td class="num">14</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/occlusion_query_event.txt">AMD_occlusion_query_event</a></td></tr>
|
||||||
|
<tr><td class="num">15</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/performance_monitor.txt">AMD_performance_monitor</a></td></tr>
|
||||||
|
<tr><td class="num">16</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/pinned_memory.txt">AMD_pinned_memory</a></td></tr>
|
||||||
|
<tr><td class="num">17</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/query_buffer_object.txt">AMD_query_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">18</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/sample_positions.txt">AMD_sample_positions</a></td></tr>
|
||||||
|
<tr><td class="num">19</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/seamless_cubemap_per_texture.txt">AMD_seamless_cubemap_per_texture</a></td></tr>
|
||||||
|
<tr><td class="num">20</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_atomic_counter_ops.txt">AMD_shader_atomic_counter_ops</a></td></tr>
|
||||||
|
<tr><td class="num">21</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_explicit_vertex_parameter.txt">AMD_shader_explicit_vertex_parameter</a></td></tr>
|
||||||
|
<tr><td class="num">22</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_stencil_export.txt">AMD_shader_stencil_export</a></td></tr>
|
||||||
|
<tr><td class="num">23</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_stencil_value_export.txt">AMD_shader_stencil_value_export</a></td></tr>
|
||||||
|
<tr><td class="num">24</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_trinary_minmax.txt">AMD_shader_trinary_minmax</a></td></tr>
|
||||||
|
<tr><td class="num">25</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/sparse_texture.txt">AMD_sparse_texture</a></td></tr>
|
||||||
|
<tr><td class="num">26</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/stencil_operation_extended.txt">AMD_stencil_operation_extended</a></td></tr>
|
||||||
|
<tr><td class="num">27</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/texture_texture4.txt">AMD_texture_texture4</a></td></tr>
|
||||||
|
<tr><td class="num">28</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/transform_feedback3_lines_triangles.txt">AMD_transform_feedback3_lines_triangles</a></td></tr>
|
||||||
|
<tr><td class="num">29</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/transform_feedback4.txt">AMD_transform_feedback4</a></td></tr>
|
||||||
|
<tr><td class="num">30</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/vertex_shader_layer.txt">AMD_vertex_shader_layer</a></td></tr>
|
||||||
|
<tr><td class="num">31</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt">AMD_vertex_shader_tessellator</a></td></tr>
|
||||||
|
<tr><td class="num">32</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/vertex_shader_viewport_index.txt">AMD_vertex_shader_viewport_index</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">33</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_depth_texture</a></td></tr>
|
||||||
|
<tr><td class="num">34</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_framebuffer_blit</a></td></tr>
|
||||||
|
<tr><td class="num">35</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_framebuffer_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">36</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_instanced_arrays</a></td></tr>
|
||||||
|
<tr><td class="num">37</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_pack_reverse_row_order</a></td></tr>
|
||||||
|
<tr><td class="num">38</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_program_binary</a></td></tr>
|
||||||
|
<tr><td class="num">39</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_texture_compression_dxt1</a></td></tr>
|
||||||
|
<tr><td class="num">40</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_texture_compression_dxt3</a></td></tr>
|
||||||
|
<tr><td class="num">41</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_texture_compression_dxt5</a></td></tr>
|
||||||
|
<tr><td class="num">42</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_texture_usage</a></td></tr>
|
||||||
|
<tr><td class="num">43</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_timer_query</a></td></tr>
|
||||||
|
<tr><td class="num">44</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_translated_shader_source</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">45</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/aux_depth_stencil.txt">APPLE_aux_depth_stencil</a></td></tr>
|
||||||
|
<tr><td class="num">46</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/client_storage.txt">APPLE_client_storage</a></td></tr>
|
||||||
|
<tr><td class="num">47</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/element_array.txt">APPLE_element_array</a></td></tr>
|
||||||
|
<tr><td class="num">48</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/fence.txt">APPLE_fence</a></td></tr>
|
||||||
|
<tr><td class="num">49</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/float_pixels.txt">APPLE_float_pixels</a></td></tr>
|
||||||
|
<tr><td class="num">50</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt">APPLE_flush_buffer_range</a></td></tr>
|
||||||
|
<tr><td class="num">51</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/object_purgeable.txt">APPLE_object_purgeable</a></td></tr>
|
||||||
|
<tr><td class="num">52</td><td> </td><td>APPLE_pixel_buffer</td></tr>
|
||||||
|
<tr><td class="num">53</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/rgb_422.txt">APPLE_rgb_422</a></td></tr>
|
||||||
|
<tr><td class="num">54</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/row_bytes.txt">APPLE_row_bytes</a></td></tr>
|
||||||
|
<tr><td class="num">55</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/specular_vector.txt">APPLE_specular_vector</a></td></tr>
|
||||||
|
<tr><td class="num">56</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/texture_range.txt">APPLE_texture_range</a></td></tr>
|
||||||
|
<tr><td class="num">57</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/transform_hint.txt">APPLE_transform_hint</a></td></tr>
|
||||||
|
<tr><td class="num">58</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt">APPLE_vertex_array_object</a></td></tr>
|
||||||
|
<tr><td class="num">59</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt">APPLE_vertex_array_range</a></td></tr>
|
||||||
|
<tr><td class="num">60</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt">APPLE_vertex_program_evaluators</a></td></tr>
|
||||||
|
<tr><td class="num">61</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt">APPLE_ycbcr_422</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">62</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt">ARB_ES2_compatibility</a></td></tr>
|
||||||
|
<tr><td class="num">63</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/ES3_1_compatibility.txt">ARB_ES3_1_compatibility</a></td></tr>
|
||||||
|
<tr><td class="num">64</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/ES3_2_compatibility.txt">ARB_ES3_2_compatibility</a></td></tr>
|
||||||
|
<tr><td class="num">65</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/ES3_compatibility.txt">ARB_ES3_compatibility</a></td></tr>
|
||||||
|
<tr><td class="num">66</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/arrays_of_arrays.txt">ARB_arrays_of_arrays</a></td></tr>
|
||||||
|
<tr><td class="num">67</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/base_instance.txt">ARB_base_instance</a></td></tr>
|
||||||
|
<tr><td class="num">68</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/bindless_texture.txt">ARB_bindless_texture</a></td></tr>
|
||||||
|
<tr><td class="num">69</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/blend_func_extended.txt">ARB_blend_func_extended</a></td></tr>
|
||||||
|
<tr><td class="num">70</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/buffer_storage.txt">ARB_buffer_storage</a></td></tr>
|
||||||
|
<tr><td class="num">71</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/cl_event.txt">ARB_cl_event</a></td></tr>
|
||||||
|
<tr><td class="num">72</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/clear_buffer_object.txt">ARB_clear_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">73</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/clear_texture.txt">ARB_clear_texture</a></td></tr>
|
||||||
|
<tr><td class="num">74</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/clip_control.txt">ARB_clip_control</a></td></tr>
|
||||||
|
<tr><td class="num">75</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt">ARB_color_buffer_float</a></td></tr>
|
||||||
|
<tr><td class="num">76</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/compatibility.txt">ARB_compatibility</a></td></tr>
|
||||||
|
<tr><td class="num">77</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/compressed_texture_pixel_storage.txt">ARB_compressed_texture_pixel_storage</a></td></tr>
|
||||||
|
<tr><td class="num">78</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/compute_shader.txt">ARB_compute_shader</a></td></tr>
|
||||||
|
<tr><td class="num">79</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/compute_variable_group_size.txt">ARB_compute_variable_group_size</a></td></tr>
|
||||||
|
<tr><td class="num">80</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/conditional_render_inverted.txt">ARB_conditional_render_inverted</a></td></tr>
|
||||||
|
<tr><td class="num">81</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/conservative_depth.txt">ARB_conservative_depth</a></td></tr>
|
||||||
|
<tr><td class="num">82</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/copy_buffer.txt">ARB_copy_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">83</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/copy_image.txt">ARB_copy_image</a></td></tr>
|
||||||
|
<tr><td class="num">84</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/cull_distance.txt">ARB_cull_distance</a></td></tr>
|
||||||
|
<tr><td class="num">85</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/debug_output.txt">ARB_debug_output</a></td></tr>
|
||||||
|
<tr><td class="num">86</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt">ARB_depth_buffer_float</a></td></tr>
|
||||||
|
<tr><td class="num">87</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/depth_clamp.txt">ARB_depth_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">88</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/depth_texture.txt">ARB_depth_texture</a></td></tr>
|
||||||
|
<tr><td class="num">89</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/derivative_control.txt">ARB_derivative_control</a></td></tr>
|
||||||
|
<tr><td class="num">90</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/direct_state_access.txt">ARB_direct_state_access</a></td></tr>
|
||||||
|
<tr><td class="num">91</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_buffers.txt">ARB_draw_buffers</a></td></tr>
|
||||||
|
<tr><td class="num">92</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt">ARB_draw_buffers_blend</a></td></tr>
|
||||||
|
<tr><td class="num">93</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt">ARB_draw_elements_base_vertex</a></td></tr>
|
||||||
|
<tr><td class="num">94</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_indirect.txt">ARB_draw_indirect</a></td></tr>
|
||||||
|
<tr><td class="num">95</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_instanced.txt">ARB_draw_instanced</a></td></tr>
|
||||||
|
<tr><td class="num">96</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/enhanced_layouts.txt">ARB_enhanced_layouts</a></td></tr>
|
||||||
|
<tr><td class="num">97</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/explicit_attrib_location.txt">ARB_explicit_attrib_location</a></td></tr>
|
||||||
|
<tr><td class="num">98</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/explicit_uniform_location.txt">ARB_explicit_uniform_location</a></td></tr>
|
||||||
|
<tr><td class="num">99</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_coord_conventions.txt">ARB_fragment_coord_conventions</a></td></tr>
|
||||||
|
<tr><td class="num">100</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_layer_viewport.txt">ARB_fragment_layer_viewport</a></td></tr>
|
||||||
|
<tr><td class="num">101</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_program.txt">ARB_fragment_program</a></td></tr>
|
||||||
|
<tr><td class="num">102</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_program_shadow.txt">ARB_fragment_program_shadow</a></td></tr>
|
||||||
|
<tr><td class="num">103</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_shader.txt">ARB_fragment_shader</a></td></tr>
|
||||||
|
<tr><td class="num">104</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_shader_interlock.txt">ARB_fragment_shader_interlock</a></td></tr>
|
||||||
|
<tr><td class="num">105</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_no_attachments.txt">ARB_framebuffer_no_attachments</a></td></tr>
|
||||||
|
<tr><td class="num">106</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt">ARB_framebuffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">107</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt">ARB_framebuffer_sRGB</a></td></tr>
|
||||||
|
<tr><td class="num">108</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt">ARB_geometry_shader4</a></td></tr>
|
||||||
|
<tr><td class="num">109</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/get_program_binary.txt">ARB_get_program_binary</a></td></tr>
|
||||||
|
<tr><td class="num">110</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/get_texture_sub_image.txt">ARB_get_texture_sub_image</a></td></tr>
|
||||||
|
<tr><td class="num">111</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/gl_spirv.txt">ARB_gl_spirv</a></td></tr>
|
||||||
|
<tr><td class="num">112</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/gpu_shader5.txt">ARB_gpu_shader5</a></td></tr>
|
||||||
|
<tr><td class="num">113</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt">ARB_gpu_shader_fp64</a></td></tr>
|
||||||
|
<tr><td class="num">114</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/gpu_shader_int64.txt">ARB_gpu_shader_int64</a></td></tr>
|
||||||
|
<tr><td class="num">115</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/half_float_pixel.txt">ARB_half_float_pixel</a></td></tr>
|
||||||
|
<tr><td class="num">116</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/half_float_vertex.txt">ARB_half_float_vertex</a></td></tr>
|
||||||
|
<tr><td class="num">117</td><td> </td><td>ARB_imaging</td></tr>
|
||||||
|
<tr><td class="num">118</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/indirect_parameters.txt">ARB_indirect_parameters</a></td></tr>
|
||||||
|
<tr><td class="num">119</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt">ARB_instanced_arrays</a></td></tr>
|
||||||
|
<tr><td class="num">120</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/internalformat_query.txt">ARB_internalformat_query</a></td></tr>
|
||||||
|
<tr><td class="num">121</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/internalformat_query2.txt">ARB_internalformat_query2</a></td></tr>
|
||||||
|
<tr><td class="num">122</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/invalidate_subdata.txt">ARB_invalidate_subdata</a></td></tr>
|
||||||
|
<tr><td class="num">123</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/map_buffer_alignment.txt">ARB_map_buffer_alignment</a></td></tr>
|
||||||
|
<tr><td class="num">124</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/map_buffer_range.txt">ARB_map_buffer_range</a></td></tr>
|
||||||
|
<tr><td class="num">125</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/matrix_palette.txt">ARB_matrix_palette</a></td></tr>
|
||||||
|
<tr><td class="num">126</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multi_bind.txt">ARB_multi_bind</a></td></tr>
|
||||||
|
<tr><td class="num">127</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multi_draw_indirect.txt">ARB_multi_draw_indirect</a></td></tr>
|
||||||
|
<tr><td class="num">128</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multisample.txt">ARB_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">129</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/multitexture.txt">ARB_multitexture</a></td></tr>
|
||||||
|
<tr><td class="num">130</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/occlusion_query.txt">ARB_occlusion_query</a></td></tr>
|
||||||
|
<tr><td class="num">131</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/occlusion_query2.txt">ARB_occlusion_query2</a></td></tr>
|
||||||
|
<tr><td class="num">132</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/parallel_shader_compile.txt">ARB_parallel_shader_compile</a></td></tr>
|
||||||
|
<tr><td class="num">133</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/pipeline_statistics_query.txt">ARB_pipeline_statistics_query</a></td></tr>
|
||||||
|
<tr><td class="num">134</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt">ARB_pixel_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">135</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/point_parameters.txt">ARB_point_parameters</a></td></tr>
|
||||||
|
<tr><td class="num">136</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/point_sprite.txt">ARB_point_sprite</a></td></tr>
|
||||||
|
<tr><td class="num">137</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/post_depth_coverage.txt">ARB_post_depth_coverage</a></td></tr>
|
||||||
|
<tr><td class="num">138</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/program_interface_query.txt">ARB_program_interface_query</a></td></tr>
|
||||||
|
<tr><td class="num">139</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/provoking_vertex.txt">ARB_provoking_vertex</a></td></tr>
|
||||||
|
<tr><td class="num">140</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/query_buffer_object.txt">ARB_query_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">141</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/robust_buffer_access_behavior.txt">ARB_robust_buffer_access_behavior</a></td></tr>
|
||||||
|
<tr><td class="num">142</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/robustness.txt">ARB_robustness</a></td></tr>
|
||||||
|
<tr><td class="num">143</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/robustness_isolation.txt">ARB_robustness_application_isolation</a></td></tr>
|
||||||
|
<tr><td class="num">144</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/robustness_isolation.txt">ARB_robustness_share_group_isolation</a></td></tr>
|
||||||
|
<tr><td class="num">145</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sample_locations.txt">ARB_sample_locations</a></td></tr>
|
||||||
|
<tr><td class="num">146</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sample_shading.txt">ARB_sample_shading</a></td></tr>
|
||||||
|
<tr><td class="num">147</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sampler_objects.txt">ARB_sampler_objects</a></td></tr>
|
||||||
|
<tr><td class="num">148</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt">ARB_seamless_cube_map</a></td></tr>
|
||||||
|
<tr><td class="num">149</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/seamless_cubemap_per_texture.txt">ARB_seamless_cubemap_per_texture</a></td></tr>
|
||||||
|
<tr><td class="num">150</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt">ARB_separate_shader_objects</a></td></tr>
|
||||||
|
<tr><td class="num">151</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_atomic_counter_ops.txt">ARB_shader_atomic_counter_ops</a></td></tr>
|
||||||
|
<tr><td class="num">152</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt">ARB_shader_atomic_counters</a></td></tr>
|
||||||
|
<tr><td class="num">153</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_ballot.txt">ARB_shader_ballot</a></td></tr>
|
||||||
|
<tr><td class="num">154</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_bit_encoding.txt">ARB_shader_bit_encoding</a></td></tr>
|
||||||
|
<tr><td class="num">155</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_clock.txt">ARB_shader_clock</a></td></tr>
|
||||||
|
<tr><td class="num">156</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_draw_parameters.txt">ARB_shader_draw_parameters</a></td></tr>
|
||||||
|
<tr><td class="num">157</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_group_vote.txt">ARB_shader_group_vote</a></td></tr>
|
||||||
|
<tr><td class="num">158</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt">ARB_shader_image_load_store</a></td></tr>
|
||||||
|
<tr><td class="num">159</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_image_size.txt">ARB_shader_image_size</a></td></tr>
|
||||||
|
<tr><td class="num">160</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_objects.txt">ARB_shader_objects</a></td></tr>
|
||||||
|
<tr><td class="num">161</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_precision.txt">ARB_shader_precision</a></td></tr>
|
||||||
|
<tr><td class="num">162</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_stencil_export.txt">ARB_shader_stencil_export</a></td></tr>
|
||||||
|
<tr><td class="num">163</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_storage_buffer_object.txt">ARB_shader_storage_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">164</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt">ARB_shader_subroutine</a></td></tr>
|
||||||
|
<tr><td class="num">165</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_texture_image_samples.txt">ARB_shader_texture_image_samples</a></td></tr>
|
||||||
|
<tr><td class="num">166</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_texture_lod.txt">ARB_shader_texture_lod</a></td></tr>
|
||||||
|
<tr><td class="num">167</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_viewport_layer_array.txt">ARB_shader_viewport_layer_array</a></td></tr>
|
||||||
|
<tr><td class="num">168</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shading_language_100.txt">ARB_shading_language_100</a></td></tr>
|
||||||
|
<tr><td class="num">169</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shading_language_420pack.txt">ARB_shading_language_420pack</a></td></tr>
|
||||||
|
<tr><td class="num">170</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shading_language_include.txt">ARB_shading_language_include</a></td></tr>
|
||||||
|
<tr><td class="num">171</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shading_language_packing.txt">ARB_shading_language_packing</a></td></tr>
|
||||||
|
<tr><td class="num">172</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shadow.txt">ARB_shadow</a></td></tr>
|
||||||
|
<tr><td class="num">173</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shadow_ambient.txt">ARB_shadow_ambient</a></td></tr>
|
||||||
|
<tr><td class="num">174</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sparse_buffer.txt">ARB_sparse_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">175</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sparse_texture.txt">ARB_sparse_texture</a></td></tr>
|
||||||
|
<tr><td class="num">176</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sparse_texture2.txt">ARB_sparse_texture2</a></td></tr>
|
||||||
|
<tr><td class="num">177</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sparse_texture_clamp.txt">ARB_sparse_texture_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">178</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/stencil_texturing.txt">ARB_stencil_texturing</a></td></tr>
|
||||||
|
<tr><td class="num">179</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sync.txt">ARB_sync</a></td></tr>
|
||||||
|
<tr><td class="num">180</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/tessellation_shader.txt">ARB_tessellation_shader</a></td></tr>
|
||||||
|
<tr><td class="num">181</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_barrier.txt">ARB_texture_barrier</a></td></tr>
|
||||||
|
<tr><td class="num">182</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt">ARB_texture_border_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">183</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt">ARB_texture_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">184</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_buffer_object_rgb32.txt">ARB_texture_buffer_object_rgb32</a></td></tr>
|
||||||
|
<tr><td class="num">185</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_buffer_range.txt">ARB_texture_buffer_range</a></td></tr>
|
||||||
|
<tr><td class="num">186</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_compression.txt">ARB_texture_compression</a></td></tr>
|
||||||
|
<tr><td class="num">187</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt">ARB_texture_compression_bptc</a></td></tr>
|
||||||
|
<tr><td class="num">188</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt">ARB_texture_compression_rgtc</a></td></tr>
|
||||||
|
<tr><td class="num">189</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_cube_map.txt">ARB_texture_cube_map</a></td></tr>
|
||||||
|
<tr><td class="num">190</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt">ARB_texture_cube_map_array</a></td></tr>
|
||||||
|
<tr><td class="num">191</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_env_add.txt">ARB_texture_env_add</a></td></tr>
|
||||||
|
<tr><td class="num">192</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_env_combine.txt">ARB_texture_env_combine</a></td></tr>
|
||||||
|
<tr><td class="num">193</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_env_crossbar.txt">ARB_texture_env_crossbar</a></td></tr>
|
||||||
|
<tr><td class="num">194</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt">ARB_texture_env_dot3</a></td></tr>
|
||||||
|
<tr><td class="num">195</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_filter_minmax.txt">ARB_texture_filter_minmax</a></td></tr>
|
||||||
|
<tr><td class="num">196</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_float.txt">ARB_texture_float</a></td></tr>
|
||||||
|
<tr><td class="num">197</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_gather.txt">ARB_texture_gather</a></td></tr>
|
||||||
|
<tr><td class="num">198</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_mirror_clamp_to_edge.txt">ARB_texture_mirror_clamp_to_edge</a></td></tr>
|
||||||
|
<tr><td class="num">199</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt">ARB_texture_mirrored_repeat</a></td></tr>
|
||||||
|
<tr><td class="num">200</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_multisample.txt">ARB_texture_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">201</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_non_power_of_two.txt">ARB_texture_non_power_of_two</a></td></tr>
|
||||||
|
<tr><td class="num">202</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_query_levels.txt">ARB_texture_query_levels</a></td></tr>
|
||||||
|
<tr><td class="num">203</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_query_lod.txt">ARB_texture_query_lod</a></td></tr>
|
||||||
|
<tr><td class="num">204</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_rectangle.txt">ARB_texture_rectangle</a></td></tr>
|
||||||
|
<tr><td class="num">205</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_rg.txt">ARB_texture_rg</a></td></tr>
|
||||||
|
<tr><td class="num">206</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_rgb10_a2ui.txt">ARB_texture_rgb10_a2ui</a></td></tr>
|
||||||
|
<tr><td class="num">207</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_stencil8.txt">ARB_texture_stencil8</a></td></tr>
|
||||||
|
<tr><td class="num">208</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_storage.txt">ARB_texture_storage</a></td></tr>
|
||||||
|
<tr><td class="num">209</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_storage_multisample.txt">ARB_texture_storage_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">210</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_swizzle.txt">ARB_texture_swizzle</a></td></tr>
|
||||||
|
<tr><td class="num">211</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_view.txt">ARB_texture_view</a></td></tr>
|
||||||
|
<tr><td class="num">212</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/timer_query.txt">ARB_timer_query</a></td></tr>
|
||||||
|
<tr><td class="num">213</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt">ARB_transform_feedback2</a></td></tr>
|
||||||
|
<tr><td class="num">214</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transform_feedback3.txt">ARB_transform_feedback3</a></td></tr>
|
||||||
|
<tr><td class="num">215</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt">ARB_transform_feedback_instanced</a></td></tr>
|
||||||
|
<tr><td class="num">216</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transform_feedback_overflow_query.txt">ARB_transform_feedback_overflow_query</a></td></tr>
|
||||||
|
<tr><td class="num">217</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transpose_matrix.txt">ARB_transpose_matrix</a></td></tr>
|
||||||
|
<tr><td class="num">218</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt">ARB_uniform_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">219</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt">ARB_vertex_array_bgra</a></td></tr>
|
||||||
|
<tr><td class="num">220</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_array_object.txt">ARB_vertex_array_object</a></td></tr>
|
||||||
|
<tr><td class="num">221</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt">ARB_vertex_attrib_64bit</a></td></tr>
|
||||||
|
<tr><td class="num">222</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_attrib_binding.txt">ARB_vertex_attrib_binding</a></td></tr>
|
||||||
|
<tr><td class="num">223</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt">ARB_vertex_blend</a></td></tr>
|
||||||
|
<tr><td class="num">224</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt">ARB_vertex_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">225</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_program.txt">ARB_vertex_program</a></td></tr>
|
||||||
|
<tr><td class="num">226</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_shader.txt">ARB_vertex_shader</a></td></tr>
|
||||||
|
<tr><td class="num">227</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_type_10f_11f_11f_rev.txt">ARB_vertex_type_10f_11f_11f_rev</a></td></tr>
|
||||||
|
<tr><td class="num">228</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt">ARB_vertex_type_2_10_10_10_rev</a></td></tr>
|
||||||
|
<tr><td class="num">229</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/viewport_array.txt">ARB_viewport_array</a></td></tr>
|
||||||
|
<tr><td class="num">230</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/window_pos.txt">ARB_window_pos</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">231</td><td> </td><td><a href="http://www.ati.com/developer/atiopengl.pdf">ATIX_point_sprites</a></td></tr>
|
||||||
|
<tr><td class="num">232</td><td> </td><td><a href="http://www.ati.com/developer/atiopengl.pdf">ATIX_texture_env_combine3</a></td></tr>
|
||||||
|
<tr><td class="num">233</td><td> </td><td><a href="http://www.ati.com/developer/sdk/RadeonSDK/Html/Info/ATIX_texture_env_route.txt">ATIX_texture_env_route</a></td></tr>
|
||||||
|
<tr><td class="num">234</td><td> </td><td><a href="http://www.ati.com/developer/atiopengl.pdf">ATIX_vertex_shader_output_point_size</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">235</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/draw_buffers.txt">ATI_draw_buffers</a></td></tr>
|
||||||
|
<tr><td class="num">236</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/element_array.txt">ATI_element_array</a></td></tr>
|
||||||
|
<tr><td class="num">237</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ATI/envmap_bumpmap.txt">ATI_envmap_bumpmap</a></td></tr>
|
||||||
|
<tr><td class="num">238</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/fragment_shader.txt">ATI_fragment_shader</a></td></tr>
|
||||||
|
<tr><td class="num">239</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/map_object_buffer.txt">ATI_map_object_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">240</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/meminfo.txt">ATI_meminfo</a></td></tr>
|
||||||
|
<tr><td class="num">241</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/pn_triangles.txt">ATI_pn_triangles</a></td></tr>
|
||||||
|
<tr><td class="num">242</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/separate_stencil.txt">ATI_separate_stencil</a></td></tr>
|
||||||
|
<tr><td class="num">243</td><td> </td><td>ATI_shader_texture_lod</td></tr>
|
||||||
|
<tr><td class="num">244</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/text_fragment_shader.txt">ATI_text_fragment_shader</a></td></tr>
|
||||||
|
<tr><td class="num">245</td><td> </td><td>ATI_texture_compression_3dc</td></tr>
|
||||||
|
<tr><td class="num">246</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/texture_env_combine3.txt">ATI_texture_env_combine3</a></td></tr>
|
||||||
|
<tr><td class="num">247</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/texture_float.txt">ATI_texture_float</a></td></tr>
|
||||||
|
<tr><td class="num">248</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/texture_mirror_once.txt">ATI_texture_mirror_once</a></td></tr>
|
||||||
|
<tr><td class="num">249</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt">ATI_vertex_array_object</a></td></tr>
|
||||||
|
<tr><td class="num">250</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt">ATI_vertex_attrib_array_object</a></td></tr>
|
||||||
|
<tr><td class="num">251</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/vertex_streams.txt">ATI_vertex_streams</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">252</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/robustness_video_memory_purge.txt">EGL_NV_robustness_video_memory_purge</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">253</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/422_pixels.txt">EXT_422_pixels</a></td></tr>
|
||||||
|
<tr><td class="num">254</td><td> </td><td><a href="http://download.nvidia.com/developer/GLSL/GLSL%20Release%20Notes%20for%20Release%2060.pdf">EXT_Cg_shader</a></td></tr>
|
||||||
|
<tr><td class="num">255</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/abgr.txt">EXT_abgr</a></td></tr>
|
||||||
|
<tr><td class="num">256</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/bgra.txt">EXT_bgra</a></td></tr>
|
||||||
|
<tr><td class="num">257</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_bindable_uniform.txt">EXT_bindable_uniform</a></td></tr>
|
||||||
|
<tr><td class="num">258</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_color.txt">EXT_blend_color</a></td></tr>
|
||||||
|
<tr><td class="num">259</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt">EXT_blend_equation_separate</a></td></tr>
|
||||||
|
<tr><td class="num">260</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_func_separate.txt">EXT_blend_func_separate</a></td></tr>
|
||||||
|
<tr><td class="num">261</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_logic_op.txt">EXT_blend_logic_op</a></td></tr>
|
||||||
|
<tr><td class="num">262</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_minmax.txt">EXT_blend_minmax</a></td></tr>
|
||||||
|
<tr><td class="num">263</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_subtract.txt">EXT_blend_subtract</a></td></tr>
|
||||||
|
<tr><td class="num">264</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt">EXT_clip_volume_hint</a></td></tr>
|
||||||
|
<tr><td class="num">265</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/cmyka.txt">EXT_cmyka</a></td></tr>
|
||||||
|
<tr><td class="num">266</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/color_subtable.txt">EXT_color_subtable</a></td></tr>
|
||||||
|
<tr><td class="num">267</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt">EXT_compiled_vertex_array</a></td></tr>
|
||||||
|
<tr><td class="num">268</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/convolution.txt">EXT_convolution</a></td></tr>
|
||||||
|
<tr><td class="num">269</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/coordinate_frame.txt">EXT_coordinate_frame</a></td></tr>
|
||||||
|
<tr><td class="num">270</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/copy_texture.txt">EXT_copy_texture</a></td></tr>
|
||||||
|
<tr><td class="num">271</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/cull_vertex.txt">EXT_cull_vertex</a></td></tr>
|
||||||
|
<tr><td class="num">272</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/EXT_debug_label.txt">EXT_debug_label</a></td></tr>
|
||||||
|
<tr><td class="num">273</td><td> </td><td><a href="http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt">EXT_debug_marker</a></td></tr>
|
||||||
|
<tr><td class="num">274</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_depth_bounds_test.txt">EXT_depth_bounds_test</a></td></tr>
|
||||||
|
<tr><td class="num">275</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/direct_state_access.txt">EXT_direct_state_access</a></td></tr>
|
||||||
|
<tr><td class="num">276</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt">EXT_draw_buffers2</a></td></tr>
|
||||||
|
<tr><td class="num">277</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_draw_instanced.txt">EXT_draw_instanced</a></td></tr>
|
||||||
|
<tr><td class="num">278</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/draw_range_elements.txt">EXT_draw_range_elements</a></td></tr>
|
||||||
|
<tr><td class="num">279</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt">EXT_fog_coord</a></td></tr>
|
||||||
|
<tr><td class="num">280</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt">EXT_fragment_lighting</a></td></tr>
|
||||||
|
<tr><td class="num">281</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt">EXT_framebuffer_blit</a></td></tr>
|
||||||
|
<tr><td class="num">282</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt">EXT_framebuffer_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">283</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/framebuffer_multisample_blit_scaled.txt">EXT_framebuffer_multisample_blit_scaled</a></td></tr>
|
||||||
|
<tr><td class="num">284</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt">EXT_framebuffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">285</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt">EXT_framebuffer_sRGB</a></td></tr>
|
||||||
|
<tr><td class="num">286</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_geometry_shader4.txt">EXT_geometry_shader4</a></td></tr>
|
||||||
|
<tr><td class="num">287</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_program_parameters.txt">EXT_gpu_program_parameters</a></td></tr>
|
||||||
|
<tr><td class="num">288</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_shader4.txt">EXT_gpu_shader4</a></td></tr>
|
||||||
|
<tr><td class="num">289</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/histogram.txt">EXT_histogram</a></td></tr>
|
||||||
|
<tr><td class="num">290</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/index_array_formats.txt">EXT_index_array_formats</a></td></tr>
|
||||||
|
<tr><td class="num">291</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/index_func.txt">EXT_index_func</a></td></tr>
|
||||||
|
<tr><td class="num">292</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/index_material.txt">EXT_index_material</a></td></tr>
|
||||||
|
<tr><td class="num">293</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/index_texture.txt">EXT_index_texture</a></td></tr>
|
||||||
|
<tr><td class="num">294</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/light_texture.txt">EXT_light_texture</a></td></tr>
|
||||||
|
<tr><td class="num">295</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/misc_attribute.txt">EXT_misc_attribute</a></td></tr>
|
||||||
|
<tr><td class="num">296</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt">EXT_multi_draw_arrays</a></td></tr>
|
||||||
|
<tr><td class="num">297</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_multisample.txt">EXT_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">298</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/packed_depth_stencil.txt">EXT_packed_depth_stencil</a></td></tr>
|
||||||
|
<tr><td class="num">299</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt">EXT_packed_float</a></td></tr>
|
||||||
|
<tr><td class="num">300</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/packed_pixels.txt">EXT_packed_pixels</a></td></tr>
|
||||||
|
<tr><td class="num">301</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/paletted_texture.txt">EXT_paletted_texture</a></td></tr>
|
||||||
|
<tr><td class="num">302</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_pixel_buffer_object.txt">EXT_pixel_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">303</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/pixel_transform.txt">EXT_pixel_transform</a></td></tr>
|
||||||
|
<tr><td class="num">304</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/pixel_transform_color_table.txt">EXT_pixel_transform_color_table</a></td></tr>
|
||||||
|
<tr><td class="num">305</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/point_parameters.txt">EXT_point_parameters</a></td></tr>
|
||||||
|
<tr><td class="num">306</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/polygon_offset.txt">EXT_polygon_offset</a></td></tr>
|
||||||
|
<tr><td class="num">307</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/polygon_offset_clamp.txt">EXT_polygon_offset_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">308</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/post_depth_coverage.txt">EXT_post_depth_coverage</a></td></tr>
|
||||||
|
<tr><td class="num">309</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/provoking_vertex.txt">EXT_provoking_vertex</a></td></tr>
|
||||||
|
<tr><td class="num">310</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt">EXT_raster_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">311</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/rescale_normal.txt">EXT_rescale_normal</a></td></tr>
|
||||||
|
<tr><td class="num">312</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/scene_marker.txt">EXT_scene_marker</a></td></tr>
|
||||||
|
<tr><td class="num">313</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/secondary_color.txt">EXT_secondary_color</a></td></tr>
|
||||||
|
<tr><td class="num">314</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt">EXT_separate_shader_objects</a></td></tr>
|
||||||
|
<tr><td class="num">315</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/separate_specular_color.txt">EXT_separate_specular_color</a></td></tr>
|
||||||
|
<tr><td class="num">316</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shader_image_load_formatted.txt">EXT_shader_image_load_formatted</a></td></tr>
|
||||||
|
<tr><td class="num">317</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt">EXT_shader_image_load_store</a></td></tr>
|
||||||
|
<tr><td class="num">318</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shader_integer_mix.txt">EXT_shader_integer_mix</a></td></tr>
|
||||||
|
<tr><td class="num">319</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shadow_funcs.txt">EXT_shadow_funcs</a></td></tr>
|
||||||
|
<tr><td class="num">320</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt">EXT_shared_texture_palette</a></td></tr>
|
||||||
|
<tr><td class="num">321</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/sparse_texture2.txt">EXT_sparse_texture2</a></td></tr>
|
||||||
|
<tr><td class="num">322</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt">EXT_stencil_clear_tag</a></td></tr>
|
||||||
|
<tr><td class="num">323</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/stencil_two_side.txt">EXT_stencil_two_side</a></td></tr>
|
||||||
|
<tr><td class="num">324</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/stencil_wrap.txt">EXT_stencil_wrap</a></td></tr>
|
||||||
|
<tr><td class="num">325</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/subtexture.txt">EXT_subtexture</a></td></tr>
|
||||||
|
<tr><td class="num">326</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture.txt">EXT_texture</a></td></tr>
|
||||||
|
<tr><td class="num">327</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture3D.txt">EXT_texture3D</a></td></tr>
|
||||||
|
<tr><td class="num">328</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_array.txt">EXT_texture_array</a></td></tr>
|
||||||
|
<tr><td class="num">329</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_buffer_object.txt">EXT_texture_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">330</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_compression_dxt1.txt">EXT_texture_compression_dxt1</a></td></tr>
|
||||||
|
<tr><td class="num">331</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_latc.txt">EXT_texture_compression_latc</a></td></tr>
|
||||||
|
<tr><td class="num">332</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_rgtc.txt">EXT_texture_compression_rgtc</a></td></tr>
|
||||||
|
<tr><td class="num">333</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt">EXT_texture_compression_s3tc</a></td></tr>
|
||||||
|
<tr><td class="num">334</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_texture_cube_map.txt">EXT_texture_cube_map</a></td></tr>
|
||||||
|
<tr><td class="num">335</td><td> </td><td><a href="http://www.opengl.org/developers/documentation/Version1.2/1.2specs/texture_edge_clamp.txt">EXT_texture_edge_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">336</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_env.txt">EXT_texture_env</a></td></tr>
|
||||||
|
<tr><td class="num">337</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_env_add.txt">EXT_texture_env_add</a></td></tr>
|
||||||
|
<tr><td class="num">338</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_env_combine.txt">EXT_texture_env_combine</a></td></tr>
|
||||||
|
<tr><td class="num">339</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt">EXT_texture_env_dot3</a></td></tr>
|
||||||
|
<tr><td class="num">340</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt">EXT_texture_filter_anisotropic</a></td></tr>
|
||||||
|
<tr><td class="num">341</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_filter_minmax.txt">EXT_texture_filter_minmax</a></td></tr>
|
||||||
|
<tr><td class="num">342</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_integer.txt">EXT_texture_integer</a></td></tr>
|
||||||
|
<tr><td class="num">343</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt">EXT_texture_lod_bias</a></td></tr>
|
||||||
|
<tr><td class="num">344</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt">EXT_texture_mirror_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">345</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_object.txt">EXT_texture_object</a></td></tr>
|
||||||
|
<tr><td class="num">346</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt">EXT_texture_perturb_normal</a></td></tr>
|
||||||
|
<tr><td class="num">347</td><td> </td><td><a href="http://developer.apple.com/opengl/extensions/ext_texture_rectangle.html">EXT_texture_rectangle</a></td></tr>
|
||||||
|
<tr><td class="num">348</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_sRGB.txt">EXT_texture_sRGB</a></td></tr>
|
||||||
|
<tr><td class="num">349</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_sRGB_decode.txt">EXT_texture_sRGB_decode</a></td></tr>
|
||||||
|
<tr><td class="num">350</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_shared_exponent.txt">EXT_texture_shared_exponent</a></td></tr>
|
||||||
|
<tr><td class="num">351</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_snorm.txt">EXT_texture_snorm</a></td></tr>
|
||||||
|
<tr><td class="num">352</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_swizzle.txt">EXT_texture_swizzle</a></td></tr>
|
||||||
|
<tr><td class="num">353</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_timer_query.txt">EXT_timer_query</a></td></tr>
|
||||||
|
<tr><td class="num">354</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/transform_feedback.txt">EXT_transform_feedback</a></td></tr>
|
||||||
|
<tr><td class="num">355</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/vertex_array.txt">EXT_vertex_array</a></td></tr>
|
||||||
|
<tr><td class="num">356</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/vertex_array_bgra.txt">EXT_vertex_array_bgra</a></td></tr>
|
||||||
|
<tr><td class="num">357</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt">EXT_vertex_attrib_64bit</a></td></tr>
|
||||||
|
<tr><td class="num">358</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/vertex_shader.txt">EXT_vertex_shader</a></td></tr>
|
||||||
|
<tr><td class="num">359</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/vertex_weighting.txt">EXT_vertex_weighting</a></td></tr>
|
||||||
|
<tr><td class="num">360</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/window_rectangles.txt">EXT_window_rectangles</a></td></tr>
|
||||||
|
<tr><td class="num">361</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/x11_sync_object.txt">EXT_x11_sync_object</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">362</td><td> </td><td><a href="http://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt">GREMEDY_frame_terminator</a></td></tr>
|
||||||
|
<tr><td class="num">363</td><td> </td><td><a href="http://www.opengl.org/registry/specs/GREMEDY/string_marker.txt">GREMEDY_string_marker</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">364</td><td> </td><td><a href="http://www.opengl.org/registry/specs/HP/convolution_border_modes.txt">HP_convolution_border_modes</a></td></tr>
|
||||||
|
<tr><td class="num">365</td><td> </td><td><a href="http://www.opengl.org/registry/specs/HP/image_transform.txt">HP_image_transform</a></td></tr>
|
||||||
|
<tr><td class="num">366</td><td> </td><td><a href="http://www.opengl.org/registry/specs/HP/occlusion_test.txt">HP_occlusion_test</a></td></tr>
|
||||||
|
<tr><td class="num">367</td><td> </td><td><a href="http://www.opengl.org/registry/specs/HP/texture_lighting.txt">HP_texture_lighting</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">368</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/cull_vertex.txt">IBM_cull_vertex</a></td></tr>
|
||||||
|
<tr><td class="num">369</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt">IBM_multimode_draw_arrays</a></td></tr>
|
||||||
|
<tr><td class="num">370</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/rasterpos_clip.txt">IBM_rasterpos_clip</a></td></tr>
|
||||||
|
<tr><td class="num">371</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/static_data.txt">IBM_static_data</a></td></tr>
|
||||||
|
<tr><td class="num">372</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/texture_mirrored_repeat.txt">IBM_texture_mirrored_repeat</a></td></tr>
|
||||||
|
<tr><td class="num">373</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/vertex_array_lists.txt">IBM_vertex_array_lists</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">374</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INGR/color_clamp.txt">INGR_color_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">375</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INGR/interlace_read.txt">INGR_interlace_read</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">376</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/conservative_rasterization.txt">INTEL_conservative_rasterization</a></td></tr>
|
||||||
|
<tr><td class="num">377</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/fragment_shader_ordering.txt">INTEL_fragment_shader_ordering</a></td></tr>
|
||||||
|
<tr><td class="num">378</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/framebuffer_CMAA.txt">INTEL_framebuffer_CMAA</a></td></tr>
|
||||||
|
<tr><td class="num">379</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/map_texture.txt">INTEL_map_texture</a></td></tr>
|
||||||
|
<tr><td class="num">380</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt">INTEL_parallel_arrays</a></td></tr>
|
||||||
|
<tr><td class="num">381</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/performance_query.txt">INTEL_performance_query</a></td></tr>
|
||||||
|
<tr><td class="num">382</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/texture_scissor.txt">INTEL_texture_scissor</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">383</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt">KHR_blend_equation_advanced</a></td></tr>
|
||||||
|
<tr><td class="num">384</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt">KHR_blend_equation_advanced_coherent</a></td></tr>
|
||||||
|
<tr><td class="num">385</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/context_flush_control.txt">KHR_context_flush_control</a></td></tr>
|
||||||
|
<tr><td class="num">386</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/debug.txt">KHR_debug</a></td></tr>
|
||||||
|
<tr><td class="num">387</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/no_error.txt">KHR_no_error</a></td></tr>
|
||||||
|
<tr><td class="num">388</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/robust_buffer_access_behavior.txt">KHR_robust_buffer_access_behavior</a></td></tr>
|
||||||
|
<tr><td class="num">389</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/robustness.txt">KHR_robustness</a></td></tr>
|
||||||
|
<tr><td class="num">390</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt">KHR_texture_compression_astc_hdr</a></td></tr>
|
||||||
|
<tr><td class="num">391</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt">KHR_texture_compression_astc_ldr</a></td></tr>
|
||||||
|
<tr><td class="num">392</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_sliced_3d.txt">KHR_texture_compression_astc_sliced_3d</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">393</td><td> </td><td>KTX_buffer_region</td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">394</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESAX/texture_stack.txt">MESAX_texture_stack</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">395</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/pack_invert.txt">MESA_pack_invert</a></td></tr>
|
||||||
|
<tr><td class="num">396</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/resize_buffers.txt">MESA_resize_buffers</a></td></tr>
|
||||||
|
<tr><td class="num">397</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/shader_integer_functions.txt">MESA_shader_integer_functions</a></td></tr>
|
||||||
|
<tr><td class="num">398</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/window_pos.txt">MESA_window_pos</a></td></tr>
|
||||||
|
<tr><td class="num">399</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt">MESA_ycbcr_texture</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">400</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NVX/nvx_blend_equation_advanced_multi_draw_buffers.txt">NVX_blend_equation_advanced_multi_draw_buffers</a></td></tr>
|
||||||
|
<tr><td class="num">401</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt">NVX_conditional_render</a></td></tr>
|
||||||
|
<tr><td class="num">402</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt">NVX_gpu_memory_info</a></td></tr>
|
||||||
|
<tr><td class="num">403</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NVX/nvx_linked_gpu_multicast.txt">NVX_linked_gpu_multicast</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">404</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt">NV_bindless_multi_draw_indirect</a></td></tr>
|
||||||
|
<tr><td class="num">405</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt">NV_bindless_multi_draw_indirect_count</a></td></tr>
|
||||||
|
<tr><td class="num">406</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_texture.txt">NV_bindless_texture</a></td></tr>
|
||||||
|
<tr><td class="num">407</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt">NV_blend_equation_advanced</a></td></tr>
|
||||||
|
<tr><td class="num">408</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt">NV_blend_equation_advanced_coherent</a></td></tr>
|
||||||
|
<tr><td class="num">409</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/blend_square.txt">NV_blend_square</a></td></tr>
|
||||||
|
<tr><td class="num">410</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/clip_space_w_scaling.txt">NV_clip_space_w_scaling</a></td></tr>
|
||||||
|
<tr><td class="num">411</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/command_list.txt">NV_command_list</a></td></tr>
|
||||||
|
<tr><td class="num">412</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/compute_program5.txt">NV_compute_program5</a></td></tr>
|
||||||
|
<tr><td class="num">413</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/conditional_render.txt">NV_conditional_render</a></td></tr>
|
||||||
|
<tr><td class="num">414</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster.txt">NV_conservative_raster</a></td></tr>
|
||||||
|
<tr><td class="num">415</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster_dilate.txt">NV_conservative_raster_dilate</a></td></tr>
|
||||||
|
<tr><td class="num">416</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap_triangles.txt">NV_conservative_raster_pre_snap_triangles</a></td></tr>
|
||||||
|
<tr><td class="num">417</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt">NV_copy_depth_to_color</a></td></tr>
|
||||||
|
<tr><td class="num">418</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/copy_image.txt">NV_copy_image</a></td></tr>
|
||||||
|
<tr><td class="num">419</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/deep_texture3D.txt">NV_deep_texture3D</a></td></tr>
|
||||||
|
<tr><td class="num">420</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_depth_buffer_float.txt">NV_depth_buffer_float</a></td></tr>
|
||||||
|
<tr><td class="num">421</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/depth_clamp.txt">NV_depth_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">422</td><td> </td><td>NV_depth_range_unclamped</td></tr>
|
||||||
|
<tr><td class="num">423</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/draw_texture.txt">NV_draw_texture</a></td></tr>
|
||||||
|
<tr><td class="num">424</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/draw_vulkan_image.txt">NV_draw_vulkan_image</a></td></tr>
|
||||||
|
<tr><td class="num">425</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/evaluators.txt">NV_evaluators</a></td></tr>
|
||||||
|
<tr><td class="num">426</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/explicit_multisample.txt">NV_explicit_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">427</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fence.txt">NV_fence</a></td></tr>
|
||||||
|
<tr><td class="num">428</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fill_rectangle.txt">NV_fill_rectangle</a></td></tr>
|
||||||
|
<tr><td class="num">429</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/float_buffer.txt">NV_float_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">430</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fog_distance.txt">NV_fog_distance</a></td></tr>
|
||||||
|
<tr><td class="num">431</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt">NV_fragment_coverage_to_color</a></td></tr>
|
||||||
|
<tr><td class="num">432</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_program.txt">NV_fragment_program</a></td></tr>
|
||||||
|
<tr><td class="num">433</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program2.txt">NV_fragment_program2</a></td></tr>
|
||||||
|
<tr><td class="num">434</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_fragment_program4.txt">NV_fragment_program4</a></td></tr>
|
||||||
|
<tr><td class="num">435</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program_option.txt">NV_fragment_program_option</a></td></tr>
|
||||||
|
<tr><td class="num">436</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_shader_interlock.txt">NV_fragment_shader_interlock</a></td></tr>
|
||||||
|
<tr><td class="num">437</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt">NV_framebuffer_mixed_samples</a></td></tr>
|
||||||
|
<tr><td class="num">438</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_framebuffer_multisample_coverage.txt">NV_framebuffer_multisample_coverage</a></td></tr>
|
||||||
|
<tr><td class="num">439</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_program4.txt">NV_geometry_program4</a></td></tr>
|
||||||
|
<tr><td class="num">440</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_shader4.txt">NV_geometry_shader4</a></td></tr>
|
||||||
|
<tr><td class="num">441</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/geometry_shader_passthrough.txt">NV_geometry_shader_passthrough</a></td></tr>
|
||||||
|
<tr><td class="num">442</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_multicast.txt">NV_gpu_multicast</a></td></tr>
|
||||||
|
<tr><td class="num">443</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_gpu_program4.txt">NV_gpu_program4</a></td></tr>
|
||||||
|
<tr><td class="num">444</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5.txt">NV_gpu_program5</a></td></tr>
|
||||||
|
<tr><td class="num">445</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5_mem_extended.txt">NV_gpu_program5_mem_extended</a></td></tr>
|
||||||
|
<tr><td class="num">446</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5.txt">NV_gpu_program_fp64</a></td></tr>
|
||||||
|
<tr><td class="num">447</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_shader5.txt">NV_gpu_shader5</a></td></tr>
|
||||||
|
<tr><td class="num">448</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/half_float.txt">NV_half_float</a></td></tr>
|
||||||
|
<tr><td class="num">449</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt">NV_internalformat_sample_query</a></td></tr>
|
||||||
|
<tr><td class="num">450</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/light_max_exponent.txt">NV_light_max_exponent</a></td></tr>
|
||||||
|
<tr><td class="num">451</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_coverage.txt">NV_multisample_coverage</a></td></tr>
|
||||||
|
<tr><td class="num">452</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt">NV_multisample_filter_hint</a></td></tr>
|
||||||
|
<tr><td class="num">453</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/occlusion_query.txt">NV_occlusion_query</a></td></tr>
|
||||||
|
<tr><td class="num">454</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt">NV_packed_depth_stencil</a></td></tr>
|
||||||
|
<tr><td class="num">455</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_parameter_buffer_object.txt">NV_parameter_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">456</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/parameter_buffer_object2.txt">NV_parameter_buffer_object2</a></td></tr>
|
||||||
|
<tr><td class="num">457</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/path_rendering.txt">NV_path_rendering</a></td></tr>
|
||||||
|
<tr><td class="num">458</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt">NV_path_rendering_shared_edge</a></td></tr>
|
||||||
|
<tr><td class="num">459</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/pixel_data_range.txt">NV_pixel_data_range</a></td></tr>
|
||||||
|
<tr><td class="num">460</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/point_sprite.txt">NV_point_sprite</a></td></tr>
|
||||||
|
<tr><td class="num">461</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/present_video.txt">NV_present_video</a></td></tr>
|
||||||
|
<tr><td class="num">462</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/primitive_restart.txt">NV_primitive_restart</a></td></tr>
|
||||||
|
<tr><td class="num">463</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/register_combiners.txt">NV_register_combiners</a></td></tr>
|
||||||
|
<tr><td class="num">464</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/register_combiners2.txt">NV_register_combiners2</a></td></tr>
|
||||||
|
<tr><td class="num">465</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/robustness_video_memory_purge.txt">NV_robustness_video_memory_purge</a></td></tr>
|
||||||
|
<tr><td class="num">466</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/sample_locations.txt">NV_sample_locations</a></td></tr>
|
||||||
|
<tr><td class="num">467</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/sample_mask_override_coverage.txt">NV_sample_mask_override_coverage</a></td></tr>
|
||||||
|
<tr><td class="num">468</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_counters.txt">NV_shader_atomic_counters</a></td></tr>
|
||||||
|
<tr><td class="num">469</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_float.txt">NV_shader_atomic_float</a></td></tr>
|
||||||
|
<tr><td class="num">470</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_float64.txt">NV_shader_atomic_float64</a></td></tr>
|
||||||
|
<tr><td class="num">471</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_fp16_vector.txt">NV_shader_atomic_fp16_vector</a></td></tr>
|
||||||
|
<tr><td class="num">472</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_int64.txt">NV_shader_atomic_int64</a></td></tr>
|
||||||
|
<tr><td class="num">473</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt">NV_shader_buffer_load</a></td></tr>
|
||||||
|
<tr><td class="num">474</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_storage_buffer_object.txt">NV_shader_storage_buffer_object</a></td></tr>
|
||||||
|
<tr><td class="num">475</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_thread_group.txt">NV_shader_thread_group</a></td></tr>
|
||||||
|
<tr><td class="num">476</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_thread_shuffle.txt">NV_shader_thread_shuffle</a></td></tr>
|
||||||
|
<tr><td class="num">477</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/stereo_view_rendering.txt">NV_stereo_view_rendering</a></td></tr>
|
||||||
|
<tr><td class="num">478</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/tessellation_program5.txt">NV_tessellation_program5</a></td></tr>
|
||||||
|
<tr><td class="num">479</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texgen_emboss.txt">NV_texgen_emboss</a></td></tr>
|
||||||
|
<tr><td class="num">480</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texgen_reflection.txt">NV_texgen_reflection</a></td></tr>
|
||||||
|
<tr><td class="num">481</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_barrier.txt">NV_texture_barrier</a></td></tr>
|
||||||
|
<tr><td class="num">482</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_compression_vtc.txt">NV_texture_compression_vtc</a></td></tr>
|
||||||
|
<tr><td class="num">483</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_env_combine4.txt">NV_texture_env_combine4</a></td></tr>
|
||||||
|
<tr><td class="num">484</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_expand_normal.txt">NV_texture_expand_normal</a></td></tr>
|
||||||
|
<tr><td class="num">485</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_multisample.txt">NV_texture_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">486</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_rectangle.txt">NV_texture_rectangle</a></td></tr>
|
||||||
|
<tr><td class="num">487</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader.txt">NV_texture_shader</a></td></tr>
|
||||||
|
<tr><td class="num">488</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader2.txt">NV_texture_shader2</a></td></tr>
|
||||||
|
<tr><td class="num">489</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader3.txt">NV_texture_shader3</a></td></tr>
|
||||||
|
<tr><td class="num">490</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_transform_feedback.txt">NV_transform_feedback</a></td></tr>
|
||||||
|
<tr><td class="num">491</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/transform_feedback2.txt">NV_transform_feedback2</a></td></tr>
|
||||||
|
<tr><td class="num">492</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt">NV_uniform_buffer_unified_memory</a></td></tr>
|
||||||
|
<tr><td class="num">493</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vdpau_interop.txt">NV_vdpau_interop</a></td></tr>
|
||||||
|
<tr><td class="num">494</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_array_range.txt">NV_vertex_array_range</a></td></tr>
|
||||||
|
<tr><td class="num">495</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_array_range2.txt">NV_vertex_array_range2</a></td></tr>
|
||||||
|
<tr><td class="num">496</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt">NV_vertex_attrib_integer_64bit</a></td></tr>
|
||||||
|
<tr><td class="num">497</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt">NV_vertex_buffer_unified_memory</a></td></tr>
|
||||||
|
<tr><td class="num">498</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program.txt">NV_vertex_program</a></td></tr>
|
||||||
|
<tr><td class="num">499</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program1_1.txt">NV_vertex_program1_1</a></td></tr>
|
||||||
|
<tr><td class="num">500</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program2.txt">NV_vertex_program2</a></td></tr>
|
||||||
|
<tr><td class="num">501</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program2_option.txt">NV_vertex_program2_option</a></td></tr>
|
||||||
|
<tr><td class="num">502</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program3.txt">NV_vertex_program3</a></td></tr>
|
||||||
|
<tr><td class="num">503</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_vertex_program4.txt">NV_vertex_program4</a></td></tr>
|
||||||
|
<tr><td class="num">504</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/video_capture.txt">NV_video_capture</a></td></tr>
|
||||||
|
<tr><td class="num">505</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/viewport_array2.txt">NV_viewport_array2</a></td></tr>
|
||||||
|
<tr><td class="num">506</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/viewport_swizzle.txt">NV_viewport_swizzle</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">507</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt">OES_byte_coordinates</a></td></tr>
|
||||||
|
<tr><td class="num">508</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt">OES_compressed_paletted_texture</a></td></tr>
|
||||||
|
<tr><td class="num">509</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OES/OES_read_format.txt">OES_read_format</a></td></tr>
|
||||||
|
<tr><td class="num">510</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OES/OES_single_precision.txt">OES_single_precision</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">511</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/interlace.txt">OML_interlace</a></td></tr>
|
||||||
|
<tr><td class="num">512</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/resample.txt">OML_resample</a></td></tr>
|
||||||
|
<tr><td class="num">513</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/subsample.txt">OML_subsample</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">514</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OVR/multiview.txt">OVR_multiview</a></td></tr>
|
||||||
|
<tr><td class="num">515</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OVR/multiview2.txt">OVR_multiview2</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">516</td><td> </td><td><a href="http://www.opengl.org/registry/specs/PGI/misc_hints.txt">PGI_misc_hints</a></td></tr>
|
||||||
|
<tr><td class="num">517</td><td> </td><td><a href="http://www.opengl.org/registry/specs/PGI/vertex_hints.txt">PGI_vertex_hints</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">518</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_ES1_0_compatibility</a></td></tr>
|
||||||
|
<tr><td class="num">519</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_ES1_1_compatibility</a></td></tr>
|
||||||
|
<tr><td class="num">520</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_enable</a></td></tr>
|
||||||
|
<tr><td class="num">521</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_error_string</a></td></tr>
|
||||||
|
<tr><td class="num">522</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_extension_query</a></td></tr>
|
||||||
|
<tr><td class="num">523</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_log</a></td></tr>
|
||||||
|
<tr><td class="num">524</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_proc_address</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">525</td><td> </td><td><a href="http://www.opengl.org/registry/specs/REND/screen_coordinates.txt">REND_screen_coordinates</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">526</td><td> </td><td><a href="http://www.opengl.org/registry/specs/S3/s3tc.txt">S3_s3tc</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">527</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/color_range.txt">SGIS_color_range</a></td></tr>
|
||||||
|
<tr><td class="num">528</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/detail_texture.txt">SGIS_detail_texture</a></td></tr>
|
||||||
|
<tr><td class="num">529</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/fog_func.txt">SGIS_fog_function</a></td></tr>
|
||||||
|
<tr><td class="num">530</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt">SGIS_generate_mipmap</a></td></tr>
|
||||||
|
<tr><td class="num">531</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/multisample.txt">SGIS_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">532</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/pixel_texture.txt">SGIS_pixel_texture</a></td></tr>
|
||||||
|
<tr><td class="num">533</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt">SGIS_point_line_texgen</a></td></tr>
|
||||||
|
<tr><td class="num">534</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt">SGIS_sharpen_texture</a></td></tr>
|
||||||
|
<tr><td class="num">535</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture4D.txt">SGIS_texture4D</a></td></tr>
|
||||||
|
<tr><td class="num">536</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt">SGIS_texture_border_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">537</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt">SGIS_texture_edge_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">538</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_filter4.txt">SGIS_texture_filter4</a></td></tr>
|
||||||
|
<tr><td class="num">539</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_lod.txt">SGIS_texture_lod</a></td></tr>
|
||||||
|
<tr><td class="num">540</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_select.txt">SGIS_texture_select</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">541</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/async.txt">SGIX_async</a></td></tr>
|
||||||
|
<tr><td class="num">542</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/async_histogram.txt">SGIX_async_histogram</a></td></tr>
|
||||||
|
<tr><td class="num">543</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/async_pixel.txt">SGIX_async_pixel</a></td></tr>
|
||||||
|
<tr><td class="num">544</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt">SGIX_blend_alpha_minmax</a></td></tr>
|
||||||
|
<tr><td class="num">545</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/clipmap.txt">SGIX_clipmap</a></td></tr>
|
||||||
|
<tr><td class="num">546</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt">SGIX_convolution_accuracy</a></td></tr>
|
||||||
|
<tr><td class="num">547</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/depth_texture.txt">SGIX_depth_texture</a></td></tr>
|
||||||
|
<tr><td class="num">548</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/flush_raster.txt">SGIX_flush_raster</a></td></tr>
|
||||||
|
<tr><td class="num">549</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/fog_offset.txt">SGIX_fog_offset</a></td></tr>
|
||||||
|
<tr><td class="num">550</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/fog_texture.txt">SGIX_fog_texture</a></td></tr>
|
||||||
|
<tr><td class="num">551</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt">SGIX_fragment_specular_lighting</a></td></tr>
|
||||||
|
<tr><td class="num">552</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/framezoom.txt">SGIX_framezoom</a></td></tr>
|
||||||
|
<tr><td class="num">553</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/interlace.txt">SGIX_interlace</a></td></tr>
|
||||||
|
<tr><td class="num">554</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt">SGIX_ir_instrument1</a></td></tr>
|
||||||
|
<tr><td class="num">555</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/list_priority.txt">SGIX_list_priority</a></td></tr>
|
||||||
|
<tr><td class="num">556</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt">SGIX_pixel_texture</a></td></tr>
|
||||||
|
<tr><td class="num">557</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/pixel_texture_bits.txt">SGIX_pixel_texture_bits</a></td></tr>
|
||||||
|
<tr><td class="num">558</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/reference_plane.txt">SGIX_reference_plane</a></td></tr>
|
||||||
|
<tr><td class="num">559</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/resample.txt">SGIX_resample</a></td></tr>
|
||||||
|
<tr><td class="num">560</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/shadow.txt">SGIX_shadow</a></td></tr>
|
||||||
|
<tr><td class="num">561</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt">SGIX_shadow_ambient</a></td></tr>
|
||||||
|
<tr><td class="num">562</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/sprite.txt">SGIX_sprite</a></td></tr>
|
||||||
|
<tr><td class="num">563</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt">SGIX_tag_sample_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">564</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_env_add.txt">SGIX_texture_add_env</a></td></tr>
|
||||||
|
<tr><td class="num">565</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt">SGIX_texture_coordinate_clamp</a></td></tr>
|
||||||
|
<tr><td class="num">566</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt">SGIX_texture_lod_bias</a></td></tr>
|
||||||
|
<tr><td class="num">567</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt">SGIX_texture_multi_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">568</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_range.txt">SGIX_texture_range</a></td></tr>
|
||||||
|
<tr><td class="num">569</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt">SGIX_texture_scale_bias</a></td></tr>
|
||||||
|
<tr><td class="num">570</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt">SGIX_vertex_preclip</a></td></tr>
|
||||||
|
<tr><td class="num">571</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt">SGIX_vertex_preclip_hint</a></td></tr>
|
||||||
|
<tr><td class="num">572</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/ycrcb.txt">SGIX_ycrcb</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">573</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/color_matrix.txt">SGI_color_matrix</a></td></tr>
|
||||||
|
<tr><td class="num">574</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/color_table.txt">SGI_color_table</a></td></tr>
|
||||||
|
<tr><td class="num">575</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/texture_color_table.txt">SGI_texture_color_table</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">576</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUNX/constant_data.txt">SUNX_constant_data</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">577</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt">SUN_convolution_border_modes</a></td></tr>
|
||||||
|
<tr><td class="num">578</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/global_alpha.txt">SUN_global_alpha</a></td></tr>
|
||||||
|
<tr><td class="num">579</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/mesh_array.txt">SUN_mesh_array</a></td></tr>
|
||||||
|
<tr><td class="num">580</td><td> </td><td><a href="http://wwws.sun.com/software/graphics/opengl/extensions/gl_sun_read_video_pixels.txt">SUN_read_video_pixels</a></td></tr>
|
||||||
|
<tr><td class="num">581</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/slice_accum.txt">SUN_slice_accum</a></td></tr>
|
||||||
|
<tr><td class="num">582</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/triangle_list.txt">SUN_triangle_list</a></td></tr>
|
||||||
|
<tr><td class="num">583</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/vertex.txt">SUN_vertex</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">584</td><td> </td><td><a href="http://www.opengl.org/registry/specs/WIN/phong_shading.txt">WIN_phong_shading</a></td></tr>
|
||||||
|
<tr><td class="num">585</td><td> </td><td><a href="http://www.opengl.org/registry/specs/WIN/specular_fog.txt">WIN_specular_fog</a></td></tr>
|
||||||
|
<tr><td class="num">586</td><td> </td><td><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc01_16zy.asp">WIN_swap_hint</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 9.1 KiB |
|
@ -0,0 +1,29 @@
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2016, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,185 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Supported GLX Extensions</h2>
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="1" cellspacing="0" align="center">
|
||||||
|
<tr><td class="num">1</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt">3DFX_multisample</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">2</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt">AMD_gpu_association</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">3</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/context_flush_control.txt">ARB_context_flush_control</a></td></tr>
|
||||||
|
<tr><td class="num">4</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_create_context.txt">ARB_create_context</a></td></tr>
|
||||||
|
<tr><td class="num">5</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_create_context.txt">ARB_create_context_profile</a></td></tr>
|
||||||
|
<tr><td class="num">6</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_create_context_robustness.txt">ARB_create_context_robustness</a></td></tr>
|
||||||
|
<tr><td class="num">7</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt">ARB_fbconfig_float</a></td></tr>
|
||||||
|
<tr><td class="num">8</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt">ARB_framebuffer_sRGB</a></td></tr>
|
||||||
|
<tr><td class="num">9</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.txt">ARB_get_proc_address</a></td></tr>
|
||||||
|
<tr><td class="num">10</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multisample.txt">ARB_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">11</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_robustness_isolation.txt">ARB_robustness_application_isolation</a></td></tr>
|
||||||
|
<tr><td class="num">12</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_robustness_isolation.txt">ARB_robustness_share_group_isolation</a></td></tr>
|
||||||
|
<tr><td class="num">13</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt">ARB_vertex_buffer_object</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">14</td><td> </td><td>ATI_pixel_format_float</td></tr>
|
||||||
|
<tr><td class="num">15</td><td> </td><td>ATI_render_texture</td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">16</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_buffer_age.txt">EXT_buffer_age</a></td></tr>
|
||||||
|
<tr><td class="num">17</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_create_context_es2_profile.txt">EXT_create_context_es2_profile</a></td></tr>
|
||||||
|
<tr><td class="num">18</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_create_context_es_profile.txt">EXT_create_context_es_profile</a></td></tr>
|
||||||
|
<tr><td class="num">19</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt">EXT_fbconfig_packed_float</a></td></tr>
|
||||||
|
<tr><td class="num">20</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt">EXT_framebuffer_sRGB</a></td></tr>
|
||||||
|
<tr><td class="num">21</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/import_context.txt">EXT_import_context</a></td></tr>
|
||||||
|
<tr><td class="num">22</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_libglvnd.txt">EXT_libglvnd</a></td></tr>
|
||||||
|
<tr><td class="num">23</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/scene_marker.txt">EXT_scene_marker</a></td></tr>
|
||||||
|
<tr><td class="num">24</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_stereo_tree.txt">EXT_stereo_tree</a></td></tr>
|
||||||
|
<tr><td class="num">25</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/swap_control.txt">EXT_swap_control</a></td></tr>
|
||||||
|
<tr><td class="num">26</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_swap_control_tear.txt">EXT_swap_control_tear</a></td></tr>
|
||||||
|
<tr><td class="num">27</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt">EXT_texture_from_pixmap</a></td></tr>
|
||||||
|
<tr><td class="num">28</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/visual_info.txt">EXT_visual_info</a></td></tr>
|
||||||
|
<tr><td class="num">29</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/visual_rating.txt">EXT_visual_rating</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">30</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/swap_event.txt">INTEL_swap_event</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">31</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/agp_offset.txt">MESA_agp_offset</a></td></tr>
|
||||||
|
<tr><td class="num">32</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/copy_sub_buffer.txt">MESA_copy_sub_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">33</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/pixmap_colormap.txt">MESA_pixmap_colormap</a></td></tr>
|
||||||
|
<tr><td class="num">34</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/glx_query_renderer.txt">MESA_query_renderer</a></td></tr>
|
||||||
|
<tr><td class="num">35</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/release_buffers.txt">MESA_release_buffers</a></td></tr>
|
||||||
|
<tr><td class="num">36</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/set_3dfx_mode.txt">MESA_set_3dfx_mode</a></td></tr>
|
||||||
|
<tr><td class="num">37</td><td> </td><td><a href="http://cgit.freedesktop.org/mesa/mesa/plain/docs/MESA_swap_control.spec">MESA_swap_control</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">38</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/glx_copy_buffer.txt">NV_copy_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">39</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/copy_image.txt">NV_copy_image</a></td></tr>
|
||||||
|
<tr><td class="num">40</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/glx_delay_before_swap.txt">NV_delay_before_swap</a></td></tr>
|
||||||
|
<tr><td class="num">41</td><td> </td><td><a href="http://cvs1.nvidia.com/inc/GL/glxtokens.h">NV_float_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">42</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_coverage.txt">NV_multisample_coverage</a></td></tr>
|
||||||
|
<tr><td class="num">43</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/present_video.txt">NV_present_video</a></td></tr>
|
||||||
|
<tr><td class="num">44</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/robustness_video_memory_purge.txt">NV_robustness_video_memory_purge</a></td></tr>
|
||||||
|
<tr><td class="num">45</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/glx_swap_group.txt">NV_swap_group</a></td></tr>
|
||||||
|
<tr><td class="num">46</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt">NV_vertex_array_range</a></td></tr>
|
||||||
|
<tr><td class="num">47</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/video_capture.txt">NV_video_capture</a></td></tr>
|
||||||
|
<tr><td class="num">48</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/glx_video_output.txt">NV_video_out</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">49</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/glx_swap_method.txt">OML_swap_method</a></td></tr>
|
||||||
|
<tr><td class="num">50</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/glx_sync_control.txt">OML_sync_control</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">51</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/blended_overlay.txt">SGIS_blended_overlay</a></td></tr>
|
||||||
|
<tr><td class="num">52</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/color_range.txt">SGIS_color_range</a></td></tr>
|
||||||
|
<tr><td class="num">53</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/multisample.txt">SGIS_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">54</td><td> </td><td>SGIS_shared_multisample</td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">55</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/fbconfig.txt">SGIX_fbconfig</a></td></tr>
|
||||||
|
<tr><td class="num">56</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/hyperpipe_group.txt">SGIX_hyperpipe</a></td></tr>
|
||||||
|
<tr><td class="num">57</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/pbuffer.txt">SGIX_pbuffer</a></td></tr>
|
||||||
|
<tr><td class="num">58</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/swap_barrier.txt">SGIX_swap_barrier</a></td></tr>
|
||||||
|
<tr><td class="num">59</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/swap_group.txt">SGIX_swap_group</a></td></tr>
|
||||||
|
<tr><td class="num">60</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/video_resize.txt">SGIX_video_resize</a></td></tr>
|
||||||
|
<tr><td class="num">61</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/visual_select_group.txt">SGIX_visual_select_group</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">62</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/cushion.txt">SGI_cushion</a></td></tr>
|
||||||
|
<tr><td class="num">63</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/make_current_read.txt">SGI_make_current_read</a></td></tr>
|
||||||
|
<tr><td class="num">64</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/swap_control.txt">SGI_swap_control</a></td></tr>
|
||||||
|
<tr><td class="num">65</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/video_sync.txt">SGI_video_sync</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">66</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/get_transparent_index.txt">SUN_get_transparent_index</a></td></tr>
|
||||||
|
<tr><td class="num">67</td><td> </td><td><a href="http://wwws.sun.com/software/graphics/opengl/extensions/glx_sun_video_resize.txt">SUN_video_resize</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
|
@ -0,0 +1,340 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
|
@ -0,0 +1,213 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center">Download</td></tr>
|
||||||
|
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The OpenGL Extension Wrangler Library (GLEW) is a cross-platform
|
||||||
|
open-source C/C++ extension loading library. GLEW provides efficient
|
||||||
|
run-time mechanisms for determining which OpenGL extensions are
|
||||||
|
supported on the target platform. OpenGL core and extension
|
||||||
|
functionality is exposed in a single header file. GLEW has been
|
||||||
|
tested on a variety of operating systems, including Windows, Linux,
|
||||||
|
Mac OS X, FreeBSD, Irix, and Solaris.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Downloads</h2>
|
||||||
|
<p>
|
||||||
|
<a href="http://sourceforge.net/projects/glew/">GLEW</a> is distributed
|
||||||
|
as source and precompiled binaries.<br/>
|
||||||
|
The latest release is
|
||||||
|
<a href="https://sourceforge.net/projects/glew/files/glew/2.2.0/">2.2.0</a>[07-24-16]:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<table border="1" cellpadding="5" cellspacing="0" bgcolor="#f0f0f0" align="center">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<table border="0" cellpadding="3" cellspacing="0">
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td align="right"><b>Source</b></td>
|
||||||
|
<td></td>
|
||||||
|
<td align="left">
|
||||||
|
<a href="https://sourceforge.net/projects/glew/files/glew/2.2.0/glew-2.2.0.zip/download">ZIP</a> |
|
||||||
|
<a href="https://sourceforge.net/projects/glew/files/glew/2.2.0/glew-2.2.0.tgz/download">TGZ</a></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td align="right"><b>Binaries</b></td>
|
||||||
|
<td></td>
|
||||||
|
<td align="left">
|
||||||
|
<a href="https://sourceforge.net/projects/glew/files/glew/2.2.0/glew-2.2.0-win32.zip/download">Windows 32-bit and 64-bit</a>
|
||||||
|
</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p></p>
|
||||||
|
<p>
|
||||||
|
An up-to-date copy is also available using <a href="http://git-scm.com/">git</a>:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://github.com/nigels-com/glew">github</a><br/>
|
||||||
|
<tt>git clone https://github.com/nigels-com/glew.git glew</tt><br/> </li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Supported Extensions</h2>
|
||||||
|
<p>
|
||||||
|
The latest release contains support for OpenGL 4.5, compatibility and forward-compatible contexts and the following extensions:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="glew.html">OpenGL extensions</a>
|
||||||
|
<li><a href="wglew.html">WGL extensions</a>
|
||||||
|
<li><a href="glxew.html">GLX extensions</a>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>News</h2>
|
||||||
|
<ul>
|
||||||
|
<li>[07-24-16] <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">GLEW 2.0.0</a> adds support for forward-compatible contexts, adds new extensions, OSMesa and EGL support, MX discontinued and minor bug fixes</li>
|
||||||
|
<li>[08-10-15] <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">GLEW 1.13.0</a> adds support for new extensions, fixes minor bugs</li>
|
||||||
|
<li>[26-01-15] <a href="https://sourceforge.net/projects/glew/files/glew/1.12.0/">GLEW 1.12.0</a> fixes minor bugs and adds new extensions</li>
|
||||||
|
<li>[08-11-14] <a href="https://sourceforge.net/projects/glew/files/glew/1.11.0/">GLEW 1.11.0</a> adds support for OpenGL 4.5, new extensions</li>
|
||||||
|
<li>[07-22-13] <a href="https://sourceforge.net/projects/glew/files/glew/1.10.0/">GLEW 1.10.0</a> adds support for OpenGL 4.4, new extensions</li>
|
||||||
|
<li>[08-06-12] <a href="https://sourceforge.net/projects/glew/files/glew/1.9.0/">GLEW 1.9.0</a> adds support for OpenGL 4.3, new extensions</li>
|
||||||
|
<li>[07-17-12] <a href="https://sourceforge.net/projects/glew/files/glew/1.8.0/">GLEW 1.8.0</a> fixes minor bugs and adds new extensions</li>
|
||||||
|
<li>[08-26-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.7.0/">GLEW 1.7.0</a> adds support for OpenGL 4.2, new extensions, fixes bugs</li>
|
||||||
|
<li>[04-27-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.6.0/">GLEW 1.6.0</a> fixes minor bugs and adds eight new extensions</li>
|
||||||
|
<li>[01-31-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.8/">GLEW 1.5.8</a> fixes minor bugs and adds two new extensions</li>
|
||||||
|
<li>[11-03-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.7/">GLEW 1.5.7</a> fixes minor bugs and adds one new extension</li>
|
||||||
|
<li>[09-07-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.6/">GLEW 1.5.6</a> adds support for OpenGL 4.1, fixes bugs</li>
|
||||||
|
<li>[07-13-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.5/">GLEW 1.5.5</a> fixes minor bugs and adds new extensions</li>
|
||||||
|
<li>[04-21-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.4/">GLEW 1.5.4</a> adds support for OpenGL 3.3, OpenGL 4.0 and new extensions, fixes bugs</li>
|
||||||
|
<li>[02-28-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.3/">GLEW 1.5.3</a> fixes minor bugs and adds three new extensions</li>
|
||||||
|
<li>[12-31-09] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.2/">GLEW 1.5.2</a> adds support for OpenGL 3.1, OpenGL 3.2 and new extensions</li>
|
||||||
|
<li>[11-03-08] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=637800">GLEW 1.5.1</a> adds support for OpenGL 3.0 and 31 new extensions</li>
|
||||||
|
<li>[12-27-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=564464">GLEW 1.5.0</a> is released under less restrictive licenses</li>
|
||||||
|
<li>[04-27-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=504079">GLEW 1.4.0</a> is released</li>
|
||||||
|
<li>[03-08-07] GLEW is included in the <a href="http://developer.nvidia.com/object/sdk_home.html">NVIDIA OpenGL SDK</a></li>
|
||||||
|
<li>[03-04-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=491113">GLEW 1.3.6</a> is released</li>
|
||||||
|
<li>[02-28-07] <a href="http://glew.svn.sourceforge.net/svnroot/glew/trunk/glew/">Repository</a> is migrated to SVN</li>
|
||||||
|
<li>[02-25-07] GLEW is included in the <a href="http://www.opengl.org/sdk/">OpenGL SDK</a></li>
|
||||||
|
<li>[11-21-06] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=465334">GLEW 1.3.5</a> adds OpenGL 2.1 and NVIDIA G80 extensions</li>
|
||||||
|
<li>[03-04-06] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=398455">GLEW 1.3.4</a> adds support for five new extensions</li>
|
||||||
|
<li>[05-16-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=327647">GLEW 1.3.3</a> is released</li>
|
||||||
|
<li>[03-16-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=313345">GLEW 1.3.2</a> adds support for GL_APPLE_pixel_buffer</li>
|
||||||
|
<li>[02-11-05] <a href="http://gljava.sourceforge.net/">gljava</a> and <a href="http://sdljava.sourceforge.net/">sdljava</a> provide a Java binding to OpenGL via GLEW</li>
|
||||||
|
<li>[02-02-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=302049">GLEW 1.3.1</a> adds support for <a href="http://www.opengl.org/documentation/extensions/EXT_framebuffer_object.txt">GL_EXT_framebuffer_object</a></li>
|
||||||
|
<li>[01-04-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=294527">GLEW 1.3.0</a> adds core OpenGL 2.0 support plus many enhancements</li>
|
||||||
|
<li>[12-22-04] <a href="http://glewpy.sf.net/">GLEWpy</a> Python wrapper announced</li>
|
||||||
|
<li>[12-12-04] <a href="https://sourceforge.net/mail/?group_id=67586">Mailing lists</a> created on sourceforge</li>
|
||||||
|
<li>[12-06-04] <a href="http://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=287948">GLEW 1.2.5</a> adds new extensions and support for FreeBSD</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Links</h2>
|
||||||
|
<ul>
|
||||||
|
<li><a href="http://www.opengl.org/sdk/">OpenGL Software Development Kit</a></li>
|
||||||
|
<li><a href="http://www.opengl.org/registry/">OpenGL Extension Registry</a></li>
|
||||||
|
<li><a href="https://www.opengl.org/wiki/OpenGL_Extension">OpenGL Wiki: Extensions</a></li>
|
||||||
|
<li><a href="http://developer.nvidia.com/nvidia-opengl-specs">NVIDIA OpenGL Extension Specifications</a></li>
|
||||||
|
<li><a href="http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/OpenGLExtensionsGuide/Reference/reference.html">Apple OpenGL Extensions Guide</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
|
@ -0,0 +1,228 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
||||||
|
<tr><td align="center">Installation</td></tr>
|
||||||
|
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Installation</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To use the shared library version of GLEW, you need to copy the
|
||||||
|
headers and libraries into their destination directories. On Windows
|
||||||
|
this typically boils down to copying:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center"> <!-- bgcolor="#f0f0f0" -->
|
||||||
|
<tr><td align="left"><tt>bin/glew32.dll</tt></td><td> to </td>
|
||||||
|
<td align="left"><tt>%SystemRoot%/system32</tt></td></tr>
|
||||||
|
<tr><td align="left"><tt>lib/glew32.lib</tt></td><td> to </td>
|
||||||
|
<td align="left"><tt>{VC Root}/Lib</tt></td></tr>
|
||||||
|
<tr><td align="left"><tt>include/GL/glew.h</tt></td><td> to </td>
|
||||||
|
<td align="left"><tt>{VC Root}/Include/GL</tt></td></tr>
|
||||||
|
<tr><td align="left"><tt>include/GL/wglew.h</tt></td><td> to </td>
|
||||||
|
<td align="left"><tt>{VC Root}/Include/GL</tt></td></tr>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
where <tt>{VC Root}</tt> is the Visual C++ root directory, typically
|
||||||
|
<tt>C:/Program Files/Microsoft Visual Studio/VC98</tt> for Visual
|
||||||
|
Studio 6.0 or <tt>C:/Program Files/Microsoft Visual
|
||||||
|
Studio .NET 2003/Vc7/PlatformSDK</tt> for Visual Studio .NET.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
On Unix, typing <tt>make install</tt> will attempt to install GLEW
|
||||||
|
into <tt>/usr/include/GL</tt> and <tt>/usr/lib</tt>. You can
|
||||||
|
customize the installation target via the <tt>GLEW_DEST</tt>
|
||||||
|
environment variable if you do not have write access to these
|
||||||
|
directories.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Building Your Project with GLEW</h2>
|
||||||
|
<p>
|
||||||
|
There are two ways to build your project with GLEW.
|
||||||
|
</p>
|
||||||
|
<h3>Including the source files / project file</h3>
|
||||||
|
<p>
|
||||||
|
The simpler but less flexible way is to include <tt>glew.h</tt> and
|
||||||
|
<tt>glew.c</tt> into your project. On Windows, you also need to
|
||||||
|
define the <tt>GLEW_STATIC</tt> preprocessor token when building a
|
||||||
|
static library or executable, and the <tt>GLEW_BUILD</tt> preprocessor
|
||||||
|
token when building a dll. You also need to replace
|
||||||
|
<tt><GL/gl.h></tt> and <tt><GL/glu.h></tt> with
|
||||||
|
<tt><glew.h></tt> in your code and set the appropriate include
|
||||||
|
flag (<tt>-I</tt>) to tell the compiler where to look for it. For
|
||||||
|
example:
|
||||||
|
</p>
|
||||||
|
<p class="pre">
|
||||||
|
#include <glew.h><br>
|
||||||
|
#include <GL/glut.h><br>
|
||||||
|
<gl, glu, and glut functionality is available here><br>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Depending on where you put <tt>glew.h</tt> you may also need to change
|
||||||
|
the include directives in <tt>glew.c</tt>. Note that if you are using
|
||||||
|
GLEW together with GLUT, you have to include <tt>glew.h</tt> first.
|
||||||
|
In addition, <tt>glew.h</tt> includes <tt>glu.h</tt>, so you do not
|
||||||
|
need to include it separately.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
On Windows, you also have the option of adding the supplied project
|
||||||
|
file <tt>glew_static.dsp</tt> to your workspace (solution) and compile
|
||||||
|
it together with your other projects. In this case you also need to
|
||||||
|
change the <tt>GLEW_BUILD</tt> preprocessor constant to
|
||||||
|
<tt>GLEW_STATIC</tt> when building a static library or executable,
|
||||||
|
otherwise you get build errors.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<b>Note that GLEW does not use the C
|
||||||
|
runtime library, so it does not matter which version (single-threaded,
|
||||||
|
multi-threaded or multi-threaded DLL) it is linked with (without
|
||||||
|
debugging information). It is, however, always a good idea to compile all
|
||||||
|
your projects including GLEW with the same C runtime settings.</b>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Using GLEW as a shared library</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Alternatively, you can use the provided project files / makefile to
|
||||||
|
build a separate shared library you can link your projects with later.
|
||||||
|
In this case the best practice is to install <tt>glew.h</tt>,
|
||||||
|
<tt>glew32.lib</tt>, and <tt>glew32.dll</tt> / <tt>libGLEW.so</tt> to
|
||||||
|
where the OpenGL equivalents <tt>gl.h</tt>, <tt>opengl32.lib</tt>, and
|
||||||
|
<tt>opengl32.dll</tt> / <tt>libGL.so</tt> are located. Note that you
|
||||||
|
need administrative privileges to do this. If you do not have
|
||||||
|
administrator access and your system administrator will not do it for
|
||||||
|
you, you can install GLEW into your own lib and include subdirectories
|
||||||
|
and tell the compiler where to find it. Then you can just replace
|
||||||
|
<tt><GL/gl.h></tt> with <tt><GL/glew.h></tt> in your
|
||||||
|
program:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
#include <GL/glew.h><br>
|
||||||
|
#include <GL/glut.h><br>
|
||||||
|
<gl, glu, and glut functionality is available here><br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
or:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="pre">
|
||||||
|
#include <GL/glew.h><br>
|
||||||
|
<gl and glu functionality is available here><br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Remember to link your project with <tt>glew32.lib</tt>,
|
||||||
|
<tt>glu32.lib</tt>, and <tt>opengl32.lib</tt> on Windows and
|
||||||
|
<tt>libGLEW.so</tt>, <tt>libGLU.so</tt>, and <tt>libGL.so</tt> on
|
||||||
|
Unix (<tt>-lGLEW -lGLU -lGL</tt>).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
It is important to keep in mind that <tt>glew.h</tt> includes neither
|
||||||
|
<tt>windows.h</tt> nor <tt>gl.h</tt>. Also, GLEW will warn you by
|
||||||
|
issuing a preprocessor error in case you have included <tt>gl.h</tt>,
|
||||||
|
<tt>glext.h</tt>, or <tt>glATI.h</tt> before <tt>glew.h</tt>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
Copyright (c) 2007 The Khronos Group Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and/or associated documentation files (the
|
||||||
|
"Materials"), to deal in the Materials without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Materials, and to
|
||||||
|
permit persons to whom the Materials are furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Materials.
|
||||||
|
|
||||||
|
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,21 @@
|
||||||
|
Mesa 3-D graphics library
|
||||||
|
Version: 7.0
|
||||||
|
|
||||||
|
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
to deal in the Software without restriction, including without limitation
|
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,168 @@
|
||||||
|
<!-- begin header.html -->
|
||||||
|
<!--
|
||||||
|
The OpenGL Extension Wrangler Library
|
||||||
|
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
||||||
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||||
|
Copyright (C) 2002, Lev Povalahev
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
* The name of the author may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<link href="glew.css" type="text/css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#fff0d0">
|
||||||
|
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/2.0.0/">2.2.0</a></i></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
||||||
|
<tr><td align="center"><br></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
||||||
|
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#authors">Authors</a></td></tr>
|
||||||
|
<tr><td align="center"><a href="https://github.com/nigels-com/glew#copyright-and-licensing">Licensing</a></td></tr>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><td align="center"><br></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td valign="bottom">
|
||||||
|
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
||||||
|
<tr><td align="center"><i>Last Update: 07-24-16</i></td></tr>
|
||||||
|
<tr><td align="center">
|
||||||
|
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
||||||
|
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
||||||
|
<a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
|
||||||
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td bgcolor="#ffffff" align="left" valign="top">
|
||||||
|
|
||||||
|
<h1>The OpenGL Extension Wrangler Library</h1>
|
||||||
|
|
||||||
|
<!-- end header.html -->
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Supported WGL Extensions</h2>
|
||||||
|
|
||||||
|
<table border="0" width="100%" cellpadding="1" cellspacing="0" align="center">
|
||||||
|
<tr><td class="num">1</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt">3DFX_multisample</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">2</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DL/stereo_control.txt">3DL_stereo_control</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">3</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt">AMD_gpu_association</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">4</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt">ARB_buffer_region</a></td></tr>
|
||||||
|
<tr><td class="num">5</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/context_flush_control.txt">ARB_context_flush_control</a></td></tr>
|
||||||
|
<tr><td class="num">6</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt">ARB_create_context</a></td></tr>
|
||||||
|
<tr><td class="num">7</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt">ARB_create_context_profile</a></td></tr>
|
||||||
|
<tr><td class="num">8</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_create_context_robustness.txt">ARB_create_context_robustness</a></td></tr>
|
||||||
|
<tr><td class="num">9</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_extensions_string.txt">ARB_extensions_string</a></td></tr>
|
||||||
|
<tr><td class="num">10</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt">ARB_framebuffer_sRGB</a></td></tr>
|
||||||
|
<tr><td class="num">11</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_make_current_read.txt">ARB_make_current_read</a></td></tr>
|
||||||
|
<tr><td class="num">12</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multisample.txt">ARB_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">13</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt">ARB_pbuffer</a></td></tr>
|
||||||
|
<tr><td class="num">14</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt">ARB_pixel_format</a></td></tr>
|
||||||
|
<tr><td class="num">15</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt">ARB_pixel_format_float</a></td></tr>
|
||||||
|
<tr><td class="num">16</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_render_texture.txt">ARB_render_texture</a></td></tr>
|
||||||
|
<tr><td class="num">17</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_robustness_isolation.txt">ARB_robustness_application_isolation</a></td></tr>
|
||||||
|
<tr><td class="num">18</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_robustness_isolation.txt">ARB_robustness_share_group_isolation</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">19</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/pixel_format_float.txt">ATI_pixel_format_float</a></td></tr>
|
||||||
|
<tr><td class="num">20</td><td> </td><td>ATI_render_texture_rectangle</td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">21</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_create_context_es2_profile.txt">EXT_create_context_es2_profile</a></td></tr>
|
||||||
|
<tr><td class="num">22</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_create_context_es_profile.txt">EXT_create_context_es_profile</a></td></tr>
|
||||||
|
<tr><td class="num">23</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_depth_float.txt">EXT_depth_float</a></td></tr>
|
||||||
|
<tr><td class="num">24</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt">EXT_display_color_table</a></td></tr>
|
||||||
|
<tr><td class="num">25</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_extensions_string.txt">EXT_extensions_string</a></td></tr>
|
||||||
|
<tr><td class="num">26</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt">EXT_framebuffer_sRGB</a></td></tr>
|
||||||
|
<tr><td class="num">27</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_make_current_read.txt">EXT_make_current_read</a></td></tr>
|
||||||
|
<tr><td class="num">28</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_multisample.txt">EXT_multisample</a></td></tr>
|
||||||
|
<tr><td class="num">29</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt">EXT_pbuffer</a></td></tr>
|
||||||
|
<tr><td class="num">30</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_pixel_format.txt">EXT_pixel_format</a></td></tr>
|
||||||
|
<tr><td class="num">31</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt">EXT_pixel_format_packed_float</a></td></tr>
|
||||||
|
<tr><td class="num">32</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_swap_control.txt">EXT_swap_control</a></td></tr>
|
||||||
|
<tr><td class="num">33</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_swap_control_tear.txt">EXT_swap_control_tear</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">34</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_digital_video_control.txt">I3D_digital_video_control</a></td></tr>
|
||||||
|
<tr><td class="num">35</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_gamma.txt">I3D_gamma</a></td></tr>
|
||||||
|
<tr><td class="num">36</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt">I3D_genlock</a></td></tr>
|
||||||
|
<tr><td class="num">37</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt">I3D_image_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">38</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt">I3D_swap_frame_lock</a></td></tr>
|
||||||
|
<tr><td class="num">39</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt">I3D_swap_frame_usage</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">40</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/DX_interop.txt">NV_DX_interop</a></td></tr>
|
||||||
|
<tr><td class="num">41</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/DX_interop2.txt">NV_DX_interop2</a></td></tr>
|
||||||
|
<tr><td class="num">42</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/copy_image.txt">NV_copy_image</a></td></tr>
|
||||||
|
<tr><td class="num">43</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/wgl_delay_before_swap.txt">NV_delay_before_swap</a></td></tr>
|
||||||
|
<tr><td class="num">44</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/float_buffer.txt">NV_float_buffer</a></td></tr>
|
||||||
|
<tr><td class="num">45</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/WGL_nv_gpu_affinity.txt">NV_gpu_affinity</a></td></tr>
|
||||||
|
<tr><td class="num">46</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_coverage.txt">NV_multisample_coverage</a></td></tr>
|
||||||
|
<tr><td class="num">47</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/present_video.txt">NV_present_video</a></td></tr>
|
||||||
|
<tr><td class="num">48</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/render_depth_texture.txt">NV_render_depth_texture</a></td></tr>
|
||||||
|
<tr><td class="num">49</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/render_texture_rectangle.txt">NV_render_texture_rectangle</a></td></tr>
|
||||||
|
<tr><td class="num">50</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt">NV_swap_group</a></td></tr>
|
||||||
|
<tr><td class="num">51</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt">NV_vertex_array_range</a></td></tr>
|
||||||
|
<tr><td class="num">52</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/video_capture.txt">NV_video_capture</a></td></tr>
|
||||||
|
<tr><td class="num">53</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/wgl_video_output.txt">NV_video_output</a></td></tr>
|
||||||
|
<tr><td><br></td><td></td><td></td></tr>
|
||||||
|
<tr><td class="num">54</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/wgl_sync_control.txt">OML_sync_control</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<!-- begin footer.html -->
|
||||||
|
</td></tr></table></body>
|
||||||
|
<!-- end footer.html -->
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -127,8 +127,8 @@ template<class T>
|
||||||
inline T _log_sanitize(T arg) { return arg; }
|
inline T _log_sanitize(T arg) { return arg; }
|
||||||
|
|
||||||
// Sanitize C-style strings by converting NULL to "<nullptr>" to prevent null dereference
|
// Sanitize C-style strings by converting NULL to "<nullptr>" to prevent null dereference
|
||||||
inline const char * _log_sanitize(const char *arg) { return (NULL == arg) ? "<nullptr>" : arg; }
|
inline const char * _log_sanitize(char *arg) { return (NULL == arg) ? "<nullptr>" : arg; }
|
||||||
inline const wchar_t * _log_sanitize(const wchar_t *arg) { return (NULL == arg) ? L"<nullptr>" : arg; }
|
inline const wchar_t * _log_sanitize(wchar_t *arg) { return (NULL == arg) ? L"<nullptr>" : arg; }
|
||||||
|
|
||||||
// Convert booleans to strings properly
|
// Convert booleans to strings properly
|
||||||
inline const char * _log_sanitize(BOOL value) { return value ? "TRUE" : "FALSE"; }
|
inline const char * _log_sanitize(BOOL value) { return value ? "TRUE" : "FALSE"; }
|
||||||
|
@ -196,6 +196,9 @@ extern thread_local std::string _logPrefix;
|
||||||
// Log function with one argument
|
// Log function with one argument
|
||||||
#define LOG_FUNC_ONE_ARG(arg) LOG_FUNC_BEGIN LOG_FUNC_ARG(arg) LOG_FUNC_END
|
#define LOG_FUNC_ONE_ARG(arg) LOG_FUNC_BEGIN LOG_FUNC_ARG(arg) LOG_FUNC_END
|
||||||
|
|
||||||
|
// Log function with one typed argument
|
||||||
|
#define LOG_FUNC_ONE_ARG_TYPE(type, arg) LOG_FUNC_BEGIN LOG_FUNC_ARG_TYPE(type, arg) LOG_FUNC_END
|
||||||
|
|
||||||
// Log function with one out argument
|
// Log function with one out argument
|
||||||
#define LOG_FUNC_ONE_ARG_OUT(arg) LOG_FUNC_BEGIN LOG_FUNC_ARG_OUT(arg) LOG_FUNC_END
|
#define LOG_FUNC_ONE_ARG_OUT(arg) LOG_FUNC_BEGIN LOG_FUNC_ARG_OUT(arg) LOG_FUNC_END
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@ namespace xboxkrnl
|
||||||
#include "EmuFile.h"
|
#include "EmuFile.h"
|
||||||
#include "EmuFS.h"
|
#include "EmuFS.h"
|
||||||
#include "EmuShared.h"
|
#include "EmuShared.h"
|
||||||
|
#include "EmuNV2A.h" // For InitOpenGLContext
|
||||||
#include "HLEIntercept.h"
|
#include "HLEIntercept.h"
|
||||||
#include "Exe.h"
|
#include "Exe.h"
|
||||||
|
|
||||||
|
@ -586,9 +587,22 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
|
||||||
SetThreadAffinityMask(GetCurrentThread(), g_CPUXbox);
|
SetThreadAffinityMask(GetCurrentThread(), g_CPUXbox);
|
||||||
}
|
}
|
||||||
|
|
||||||
DbgPrintf("EmuMain (0x%X): Initializing Direct3D.\n", GetCurrentThreadId());
|
//
|
||||||
|
// initialize grapchics
|
||||||
|
//
|
||||||
|
DbgPrintf("EmuMain (0x%X): Initializing render window.\n", GetCurrentThreadId());
|
||||||
|
XTL::CxbxInitWindow(pXbeHeader, dwXbeHeaderSize);
|
||||||
|
|
||||||
XTL::EmuD3DInit(pXbeHeader, dwXbeHeaderSize);
|
if (bLLE_GPU)
|
||||||
|
{
|
||||||
|
DbgPrintf("EmuMain (0x%X): Initializing OpenGL.\n", GetCurrentThreadId());
|
||||||
|
InitOpenGLContext();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DbgPrintf("EmuMain (0x%X): Initializing Direct3D.\n", GetCurrentThreadId());
|
||||||
|
XTL::EmuD3DInit(pXbeHeader, dwXbeHeaderSize);
|
||||||
|
}
|
||||||
|
|
||||||
EmuHLEIntercept(pLibraryVersion, pXbeHeader);
|
EmuHLEIntercept(pLibraryVersion, pXbeHeader);
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,8 @@ extern "C" {
|
||||||
#define XBOX_KERNEL_BASE 0x80010000
|
#define XBOX_KERNEL_BASE 0x80010000
|
||||||
#define XBOX_NV2A_INIT_VECTOR 0xFF000008
|
#define XBOX_NV2A_INIT_VECTOR 0xFF000008
|
||||||
|
|
||||||
|
#define MAX_BUS_INTERRUPT_LEVEL 27
|
||||||
|
#define MAX_NUM_INTERRUPTS 256
|
||||||
|
|
||||||
/*! validate version string match */
|
/*! validate version string match */
|
||||||
CXBXKRNL_API bool CxbxKrnlVerifyVersion(const char *szVersion);
|
CXBXKRNL_API bool CxbxKrnlVerifyVersion(const char *szVersion);
|
||||||
|
|
|
@ -79,9 +79,7 @@ static inline void EmuVerifyResourceIsRegistered(XTL::X_D3DReso
|
||||||
static void EmuAdjustPower2(UINT *dwWidth, UINT *dwHeight);
|
static void EmuAdjustPower2(UINT *dwWidth, UINT *dwHeight);
|
||||||
|
|
||||||
// Static Variable(s)
|
// Static Variable(s)
|
||||||
static GUID g_ddguid; // DirectDraw driver GUID
|
|
||||||
static HMONITOR g_hMonitor = NULL; // Handle to DirectDraw monitor
|
static HMONITOR g_hMonitor = NULL; // Handle to DirectDraw monitor
|
||||||
static XTL::LPDIRECT3D8 g_pD3D8 = NULL; // Direct3D8
|
|
||||||
static BOOL g_bSupportsYUY2 = FALSE;// Does device support YUY2 overlays?
|
static BOOL g_bSupportsYUY2 = FALSE;// Does device support YUY2 overlays?
|
||||||
static XTL::LPDIRECTDRAW7 g_pDD7 = NULL; // DirectDraw7
|
static XTL::LPDIRECTDRAW7 g_pDD7 = NULL; // DirectDraw7
|
||||||
static DWORD g_dwOverlayW = 640; // Cached Overlay Width
|
static DWORD g_dwOverlayW = 640; // Cached Overlay Width
|
||||||
|
@ -89,7 +87,6 @@ static DWORD g_dwOverlayH = 480; // Cached Overlay He
|
||||||
static DWORD g_dwOverlayP = 640; // Cached Overlay Pitch
|
static DWORD g_dwOverlayP = 640; // Cached Overlay Pitch
|
||||||
static Xbe::Header *g_XbeHeader = NULL; // XbeHeader
|
static Xbe::Header *g_XbeHeader = NULL; // XbeHeader
|
||||||
static uint32 g_XbeHeaderSize = 0; // XbeHeaderSize
|
static uint32 g_XbeHeaderSize = 0; // XbeHeaderSize
|
||||||
static XTL::D3DCAPS8 g_D3DCaps; // Direct3D8 Caps
|
|
||||||
static HBRUSH g_hBgBrush = NULL; // Background Brush
|
static HBRUSH g_hBgBrush = NULL; // Background Brush
|
||||||
static volatile bool g_bRenderWindowActive = false;
|
static volatile bool g_bRenderWindowActive = false;
|
||||||
static XBVideo g_XBVideo;
|
static XBVideo g_XBVideo;
|
||||||
|
@ -101,6 +98,11 @@ static DWORD g_CallbackParam; // Callback param
|
||||||
static BOOL g_bHasZBuffer = FALSE; // Does device have Z Buffer?
|
static BOOL g_bHasZBuffer = FALSE; // Does device have Z Buffer?
|
||||||
//static DWORD g_dwPrimPerFrame = 0; // Number of primitives within one frame
|
//static DWORD g_dwPrimPerFrame = 0; // Number of primitives within one frame
|
||||||
|
|
||||||
|
// D3D based variables
|
||||||
|
static GUID g_ddguid; // DirectDraw driver GUID
|
||||||
|
static XTL::LPDIRECT3D8 g_pD3D8 = NULL; // Direct3D8
|
||||||
|
static XTL::D3DCAPS8 g_D3DCaps; // Direct3D8 Caps
|
||||||
|
|
||||||
// wireframe toggle
|
// wireframe toggle
|
||||||
static int g_iWireframe = 0;
|
static int g_iWireframe = 0;
|
||||||
|
|
||||||
|
@ -167,8 +169,7 @@ struct EmuD3D8CreateDeviceProxyData
|
||||||
}
|
}
|
||||||
g_EmuCDPD = {0};
|
g_EmuCDPD = {0};
|
||||||
|
|
||||||
// Direct3D initialization (called before emulation begins)
|
VOID XTL::CxbxInitWindow(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
|
||||||
VOID XTL::EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
|
|
||||||
{
|
{
|
||||||
g_EmuShared->GetXBVideo(&g_XBVideo);
|
g_EmuShared->GetXBVideo(&g_XBVideo);
|
||||||
|
|
||||||
|
@ -200,16 +201,6 @@ VOID XTL::EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// create the create device proxy thread
|
|
||||||
{
|
|
||||||
DWORD dwThreadId;
|
|
||||||
|
|
||||||
HANDLE hEmuCreateDeviceProxyThread = CreateThread(NULL, NULL, EmuCreateDeviceProxy, NULL, NULL, &dwThreadId);
|
|
||||||
// Ported from Dxbx :
|
|
||||||
// If possible, assign this thread to another core than the one that runs Xbox1 code :
|
|
||||||
SetThreadAffinityMask(hEmuCreateDeviceProxyThread, g_CPUOthers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TODO : Port this Dxbx code :
|
/* TODO : Port this Dxbx code :
|
||||||
// create vblank handling thread
|
// create vblank handling thread
|
||||||
{
|
{
|
||||||
|
@ -244,7 +235,23 @@ VOID XTL::EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
|
||||||
Sleep(50);
|
Sleep(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create Direct3D8 and retrieve caps
|
SetFocus(g_hEmuWindow);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Direct3D initialization (called before emulation begins)
|
||||||
|
VOID XTL::EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
|
||||||
|
{
|
||||||
|
// create the create device proxy thread
|
||||||
|
{
|
||||||
|
DWORD dwThreadId;
|
||||||
|
|
||||||
|
CreateThread(NULL, NULL, EmuCreateDeviceProxy, NULL, NULL, &dwThreadId);
|
||||||
|
// Ported from Dxbx :
|
||||||
|
// If possible, assign this thread to another core than the one that runs Xbox1 code :
|
||||||
|
SetThreadAffinityMask(&dwThreadId, g_CPUOthers);
|
||||||
|
}
|
||||||
|
|
||||||
|
// create Direct3D8 and retrieve caps
|
||||||
{
|
{
|
||||||
using namespace XTL;
|
using namespace XTL;
|
||||||
|
|
||||||
|
@ -259,8 +266,6 @@ VOID XTL::EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
|
||||||
g_pD3D8->GetDeviceCaps(g_XBVideo.GetDisplayAdapter(), DevType, &g_D3DCaps);
|
g_pD3D8->GetDeviceCaps(g_XBVideo.GetDisplayAdapter(), DevType, &g_D3DCaps);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFocus(g_hEmuWindow);
|
|
||||||
|
|
||||||
// create default device
|
// create default device
|
||||||
{
|
{
|
||||||
XTL::X_D3DPRESENT_PARAMETERS PresParam;
|
XTL::X_D3DPRESENT_PARAMETERS PresParam;
|
||||||
|
|
|
@ -42,6 +42,9 @@
|
||||||
#define DIRECTDRAW_VERSION 0x0700
|
#define DIRECTDRAW_VERSION 0x0700
|
||||||
#include <ddraw.h>
|
#include <ddraw.h>
|
||||||
|
|
||||||
|
// initialize render window
|
||||||
|
extern VOID CxbxInitWindow(Xbe::Header *XbeHeader, uint32 XbeHeaderSize);
|
||||||
|
|
||||||
// initialize direct3d
|
// initialize direct3d
|
||||||
extern VOID EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize);
|
extern VOID EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize);
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -158,7 +158,6 @@ XBSYSAPI EXPORTNUM(43) xboxkrnl::BOOLEAN NTAPI xboxkrnl::HalEnableSystemInterrup
|
||||||
RETURN(FALSE);
|
RETURN(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_BUS_INTERRUPT_LEVEL 27
|
|
||||||
#ifdef _DEBUG_TRACE
|
#ifdef _DEBUG_TRACE
|
||||||
// Source : Xbox Linux
|
// Source : Xbox Linux
|
||||||
char *IRQNames[MAX_BUS_INTERRUPT_LEVEL + 1] =
|
char *IRQNames[MAX_BUS_INTERRUPT_LEVEL + 1] =
|
||||||
|
|
|
@ -186,19 +186,37 @@ XBSYSAPI EXPORTNUM(96) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeCancelTimer
|
||||||
RETURN(TRUE);
|
RETURN(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xboxkrnl::PKINTERRUPT EmuInterruptList[MAX_BUS_INTERRUPT_LEVEL + 1][MAX_NUM_INTERRUPTS] = { 0 };
|
||||||
|
xboxkrnl::DWORD EmuFreeInterrupt[MAX_BUS_INTERRUPT_LEVEL + 1] = { 0 };
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0062 - KeConnectInterrupt()
|
// * 0x0062 - KeConnectInterrupt()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(98) xboxkrnl::LONG NTAPI xboxkrnl::KeConnectInterrupt
|
XBSYSAPI EXPORTNUM(98) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeConnectInterrupt
|
||||||
(
|
(
|
||||||
IN PKINTERRUPT InterruptObject
|
IN PKINTERRUPT InterruptObject
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_ONE_ARG(InterruptObject);
|
LOG_FUNC_ONE_ARG(InterruptObject);
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
BOOLEAN ret = FALSE;
|
||||||
|
|
||||||
RETURN(0);
|
// here we have to connect the interrupt object to the vector
|
||||||
|
// more than 1 interrupt object can be connected!
|
||||||
|
if (!InterruptObject->Connected)
|
||||||
|
{
|
||||||
|
if (EmuFreeInterrupt[InterruptObject->BusInterruptLevel] < MAX_NUM_INTERRUPTS)
|
||||||
|
{
|
||||||
|
InterruptObject->Connected = TRUE;
|
||||||
|
EmuInterruptList[InterruptObject->BusInterruptLevel][EmuFreeInterrupt[InterruptObject->BusInterruptLevel]++] = InterruptObject;
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
EmuWarning("Out of interrupt places!");
|
||||||
|
}
|
||||||
|
// else do nothing
|
||||||
|
|
||||||
|
RETURN(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
|
|
|
@ -180,9 +180,12 @@ XBSYSAPI EXPORTNUM(168) xboxkrnl::PVOID NTAPI xboxkrnl::MmClaimGpuInstanceMemory
|
||||||
MI_CONVERT_PFN_TO_PHYSICAL(MM_INSTANCE_PHYSICAL_PAGE + MM_INSTANCE_PAGE_COUNT);
|
MI_CONVERT_PFN_TO_PHYSICAL(MM_INSTANCE_PHYSICAL_PAGE + MM_INSTANCE_PAGE_COUNT);
|
||||||
// Chihiro arcade should use *NumberOfPaddingBytes = 0;
|
// Chihiro arcade should use *NumberOfPaddingBytes = 0;
|
||||||
|
|
||||||
|
EmuWarning("*NumberOfPaddingBytes = 0x%08X\n", *NumberOfPaddingBytes);
|
||||||
|
|
||||||
if (NumberOfBytes != MAXULONG_PTR)
|
if (NumberOfBytes != MAXULONG_PTR)
|
||||||
{
|
{
|
||||||
LOG_UNIMPLEMENTED();
|
if (NumberOfBytes != 20480)
|
||||||
|
LOG_IGNORED();
|
||||||
}
|
}
|
||||||
|
|
||||||
PVOID Result = (PUCHAR)MI_CONVERT_PFN_TO_PHYSICAL(MM_HIGHEST_PHYSICAL_PAGE + 1)
|
PVOID Result = (PUCHAR)MI_CONVERT_PFN_TO_PHYSICAL(MM_HIGHEST_PHYSICAL_PAGE + 1)
|
||||||
|
|
|
@ -180,8 +180,8 @@ XBSYSAPI EXPORTNUM(263) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAppendUnicodeToStr
|
||||||
// Debug API?
|
// Debug API?
|
||||||
XBSYSAPI EXPORTNUM(264) xboxkrnl::VOID NTAPI xboxkrnl::RtlAssert
|
XBSYSAPI EXPORTNUM(264) xboxkrnl::VOID NTAPI xboxkrnl::RtlAssert
|
||||||
(
|
(
|
||||||
PVOID FailedAssertion, // PCHAR
|
PCHAR FailedAssertion,
|
||||||
PVOID FileName, // PCHAR
|
PCHAR FileName,
|
||||||
ULONG LineNumber,
|
ULONG LineNumber,
|
||||||
PCHAR Message
|
PCHAR Message
|
||||||
)
|
)
|
||||||
|
|
|
@ -59,10 +59,10 @@ namespace NtDll
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(335) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAInit
|
XBSYSAPI EXPORTNUM(335) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAInit
|
||||||
(
|
(
|
||||||
UCHAR *pbSHAContext
|
IN PUCHAR pbSHAContext
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_ONE_ARG_OUT(pbSHAContext);
|
LOG_FUNC_ONE_ARG_TYPE(PBYTE, pbSHAContext);
|
||||||
|
|
||||||
A_SHAInit((SHA_CTX*)pbSHAContext);
|
A_SHAInit((SHA_CTX*)pbSHAContext);
|
||||||
}
|
}
|
||||||
|
@ -72,14 +72,14 @@ XBSYSAPI EXPORTNUM(335) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAInit
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(336) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAUpdate
|
XBSYSAPI EXPORTNUM(336) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAUpdate
|
||||||
(
|
(
|
||||||
UCHAR *pbSHAContext,
|
IN PUCHAR pbSHAContext,
|
||||||
UCHAR *pbInput,
|
IN PUCHAR pbInput,
|
||||||
ULONG dwInputLength
|
IN ULONG dwInputLength
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbSHAContext)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbSHAContext)
|
||||||
LOG_FUNC_ARG_OUT(pbInput)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbInput)
|
||||||
LOG_FUNC_ARG(dwInputLength)
|
LOG_FUNC_ARG(dwInputLength)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
@ -91,13 +91,13 @@ XBSYSAPI EXPORTNUM(336) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAUpdate
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(337) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAFinal
|
XBSYSAPI EXPORTNUM(337) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAFinal
|
||||||
(
|
(
|
||||||
UCHAR *pbSHAContext,
|
IN PUCHAR pbSHAContext,
|
||||||
UCHAR *pbDigest
|
IN PUCHAR pbDigest
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbSHAContext)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbSHAContext)
|
||||||
LOG_FUNC_ARG_OUT(pbDigest)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbDigest)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
A_SHAFinal((SHA_CTX*)pbSHAContext, pbDigest);
|
A_SHAFinal((SHA_CTX*)pbSHAContext, pbDigest);
|
||||||
|
@ -106,7 +106,7 @@ XBSYSAPI EXPORTNUM(337) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAFinal
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0152 - XcRC4Key()
|
// * 0x0152 - XcRC4Key()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(338) xboxkrnl::VOID xboxkrnl::XcRC4Key
|
XBSYSAPI EXPORTNUM(338) xboxkrnl::VOID NTAPI xboxkrnl::XcRC4Key
|
||||||
(
|
(
|
||||||
IN PUCHAR pbKeyStruct,
|
IN PUCHAR pbKeyStruct,
|
||||||
IN ULONG dwKeyLength,
|
IN ULONG dwKeyLength,
|
||||||
|
@ -114,9 +114,9 @@ XBSYSAPI EXPORTNUM(338) xboxkrnl::VOID xboxkrnl::XcRC4Key
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbKeyStruct)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbKeyStruct)
|
||||||
LOG_FUNC_ARG(dwKeyLength)
|
LOG_FUNC_ARG(dwKeyLength)
|
||||||
LOG_FUNC_ARG_OUT(pbKey)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbKey)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
Rc4Initialise((Rc4Context*)pbKeyStruct, pbKey, dwKeyLength, 0);
|
Rc4Initialise((Rc4Context*)pbKeyStruct, pbKey, dwKeyLength, 0);
|
||||||
|
@ -125,7 +125,7 @@ XBSYSAPI EXPORTNUM(338) xboxkrnl::VOID xboxkrnl::XcRC4Key
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0153 - XcRC4Crypt
|
// * 0x0153 - XcRC4Crypt
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(339) xboxkrnl::VOID xboxkrnl::XcRC4Crypt
|
XBSYSAPI EXPORTNUM(339) xboxkrnl::VOID NTAPI xboxkrnl::XcRC4Crypt
|
||||||
(
|
(
|
||||||
IN PUCHAR pbKeyStruct,
|
IN PUCHAR pbKeyStruct,
|
||||||
IN ULONG dwInputLength,
|
IN ULONG dwInputLength,
|
||||||
|
@ -133,9 +133,9 @@ XBSYSAPI EXPORTNUM(339) xboxkrnl::VOID xboxkrnl::XcRC4Crypt
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbKeyStruct)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbKeyStruct)
|
||||||
LOG_FUNC_ARG(dwInputLength)
|
LOG_FUNC_ARG(dwInputLength)
|
||||||
LOG_FUNC_ARG_OUT(pbInput)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbInput)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
Rc4Xor((Rc4Context*)pbKeyStruct, pbInput, pbInput, dwInputLength);
|
Rc4Xor((Rc4Context*)pbKeyStruct, pbInput, pbInput, dwInputLength);
|
||||||
|
@ -144,7 +144,8 @@ XBSYSAPI EXPORTNUM(339) xboxkrnl::VOID xboxkrnl::XcRC4Crypt
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0154 - XcHMAC()
|
// * 0x0154 - XcHMAC()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(340) xboxkrnl::VOID NTAPI xboxkrnl::XcHMAC(
|
XBSYSAPI EXPORTNUM(340) xboxkrnl::VOID NTAPI xboxkrnl::XcHMAC
|
||||||
|
(
|
||||||
IN PBYTE pbKeyMaterial,
|
IN PBYTE pbKeyMaterial,
|
||||||
IN ULONG cbKeyMaterial,
|
IN ULONG cbKeyMaterial,
|
||||||
IN PBYTE pbData,
|
IN PBYTE pbData,
|
||||||
|
@ -155,11 +156,11 @@ XBSYSAPI EXPORTNUM(340) xboxkrnl::VOID NTAPI xboxkrnl::XcHMAC(
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbKeyMaterial)
|
LOG_FUNC_ARG(pbKeyMaterial)
|
||||||
LOG_FUNC_ARG(cbKeyMaterial)
|
LOG_FUNC_ARG(cbKeyMaterial)
|
||||||
LOG_FUNC_ARG_OUT(pbData)
|
LOG_FUNC_ARG(pbData)
|
||||||
LOG_FUNC_ARG(cbData)
|
LOG_FUNC_ARG(cbData)
|
||||||
LOG_FUNC_ARG_OUT(pbData2)
|
LOG_FUNC_ARG(pbData2)
|
||||||
LOG_FUNC_ARG(cbData2)
|
LOG_FUNC_ARG(cbData2)
|
||||||
LOG_FUNC_ARG_OUT(HmacData)
|
LOG_FUNC_ARG_OUT(HmacData)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
@ -205,101 +206,127 @@ XBSYSAPI EXPORTNUM(340) xboxkrnl::VOID NTAPI xboxkrnl::XcHMAC(
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0155 - XcPKEncPublic()
|
// * 0x0155 - XcPKEncPublic()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(341) xboxkrnl::VOID xboxkrnl::XcPKEncPublic(
|
XBSYSAPI EXPORTNUM(341) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKEncPublic
|
||||||
IN PBYTE pbPubKey,
|
(
|
||||||
IN PBYTE pbInput,
|
IN PUCHAR pbPubKey,
|
||||||
OUT PBYTE pbOutput
|
IN PUCHAR pbInput,
|
||||||
)
|
OUT PUCHAR pbOutput
|
||||||
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbPubKey)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbPubKey)
|
||||||
LOG_FUNC_ARG_OUT(pbInput)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbInput)
|
||||||
LOG_FUNC_ARG_OUT(pbOutput)
|
LOG_FUNC_ARG_OUT(pbOutput)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
ULONG ret = 0;
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
LOG_UNIMPLEMENTED();
|
||||||
|
|
||||||
|
RETURN(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0156 - XcPKDecPrivate()
|
// * 0x0156 - XcPKDecPrivate()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(342) xboxkrnl::VOID xboxkrnl::XcPKDecPrivate(
|
XBSYSAPI EXPORTNUM(342) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKDecPrivate
|
||||||
IN PBYTE pbPrvKey,
|
(
|
||||||
IN PBYTE pbInput,
|
IN PUCHAR pbPrvKey,
|
||||||
OUT PBYTE pbOutput
|
IN PUCHAR pbInput,
|
||||||
)
|
OUT PUCHAR pbOutput
|
||||||
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbPrvKey)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbPrvKey)
|
||||||
LOG_FUNC_ARG_OUT(pbInput)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbInput)
|
||||||
LOG_FUNC_ARG_OUT(pbOutput)
|
LOG_FUNC_ARG_OUT(pbOutput)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
ULONG ret = 0;
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
LOG_UNIMPLEMENTED();
|
||||||
|
|
||||||
|
RETURN(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0157 - XcPKGetKeyLen()
|
// * 0x0157 - XcPKGetKeyLen()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(343) xboxkrnl::VOID xboxkrnl::XcPKGetKeyLen(
|
XBSYSAPI EXPORTNUM(343) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKGetKeyLen
|
||||||
OUT PBYTE pbPubKey
|
(
|
||||||
)
|
OUT PUCHAR pbPubKey
|
||||||
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_ONE_ARG(pbPubKey);
|
LOG_FUNC_ONE_ARG_TYPE(PBYTE, pbPubKey);
|
||||||
|
|
||||||
|
ULONG ret = 0;
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
LOG_UNIMPLEMENTED();
|
||||||
|
|
||||||
|
RETURN(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0158 - XcVerifyPKCS1Signature()
|
// * 0x0158 - XcVerifyPKCS1Signature()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(344) xboxkrnl::VOID xboxkrnl::XcVerifyPKCS1Signature(
|
XBSYSAPI EXPORTNUM(344) xboxkrnl::BOOLEAN NTAPI xboxkrnl::XcVerifyPKCS1Signature
|
||||||
IN PBYTE pbSig,
|
(
|
||||||
IN PBYTE pbPubKey,
|
IN PUCHAR pbSig,
|
||||||
IN PBYTE pbDigest
|
IN PUCHAR pbPubKey,
|
||||||
)
|
IN PUCHAR pbDigest
|
||||||
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbSig)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbSig)
|
||||||
LOG_FUNC_ARG_OUT(pbPubKey)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbPubKey)
|
||||||
LOG_FUNC_ARG_OUT(pbDigest)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbDigest)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
BOOLEAN ret = TRUE;
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
LOG_UNIMPLEMENTED();
|
||||||
|
|
||||||
|
RETURN(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x0159 - XcModExp()
|
// * 0x0159 - XcModExp()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(345) xboxkrnl::VOID xboxkrnl::XcModExp(
|
XBSYSAPI EXPORTNUM(345) xboxkrnl::ULONG NTAPI xboxkrnl::XcModExp
|
||||||
IN PULONG pA,
|
(
|
||||||
IN PULONG pB,
|
IN LPDWORD pA,
|
||||||
IN PULONG pC,
|
IN LPDWORD pB,
|
||||||
IN PULONG pD,
|
IN LPDWORD pC,
|
||||||
|
IN LPDWORD pD,
|
||||||
IN ULONG dwN
|
IN ULONG dwN
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pA)
|
LOG_FUNC_ARG(pA)
|
||||||
LOG_FUNC_ARG_OUT(pB)
|
LOG_FUNC_ARG(pB)
|
||||||
LOG_FUNC_ARG_OUT(pC)
|
LOG_FUNC_ARG(pC)
|
||||||
LOG_FUNC_ARG_OUT(pD)
|
LOG_FUNC_ARG(pD)
|
||||||
LOG_FUNC_ARG(dwN)
|
LOG_FUNC_ARG(dwN)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
ULONG ret = 0;
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
LOG_UNIMPLEMENTED();
|
||||||
|
|
||||||
|
RETURN(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x015A - XcDESKeyParity()
|
// * 0x015A - XcDESKeyParity()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(346) xboxkrnl::VOID xboxkrnl::XcDESKeyParity(
|
XBSYSAPI EXPORTNUM(346) xboxkrnl::VOID NTAPI xboxkrnl::XcDESKeyParity
|
||||||
IN PBYTE pbKey,
|
(
|
||||||
|
IN PUCHAR pbKey,
|
||||||
IN ULONG dwKeyLength
|
IN ULONG dwKeyLength
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pbKey)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbKey)
|
||||||
LOG_FUNC_ARG(dwKeyLength)
|
LOG_FUNC_ARG(dwKeyLength)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
@ -309,16 +336,17 @@ XBSYSAPI EXPORTNUM(346) xboxkrnl::VOID xboxkrnl::XcDESKeyParity(
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x015B - XcKeyTable()
|
// * 0x015B - XcKeyTable()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(347) xboxkrnl::VOID xboxkrnl::XcKeyTable(
|
XBSYSAPI EXPORTNUM(347) xboxkrnl::VOID NTAPI xboxkrnl::XcKeyTable
|
||||||
|
(
|
||||||
IN ULONG dwCipher,
|
IN ULONG dwCipher,
|
||||||
IN PBYTE pbKeyTable,
|
OUT PUCHAR pbKeyTable,
|
||||||
IN PBYTE pbKey
|
IN PUCHAR pbKey
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG(dwCipher)
|
LOG_FUNC_ARG(dwCipher)
|
||||||
LOG_FUNC_ARG_OUT(pbKeyTable)
|
LOG_FUNC_ARG_OUT(pbKeyTable)
|
||||||
LOG_FUNC_ARG_OUT(pbKey)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbKey)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
LOG_UNIMPLEMENTED();
|
||||||
|
@ -327,19 +355,20 @@ XBSYSAPI EXPORTNUM(347) xboxkrnl::VOID xboxkrnl::XcKeyTable(
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x015C - XcBlockCrypt()
|
// * 0x015C - XcBlockCrypt()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(348) xboxkrnl::VOID xboxkrnl::XcBlockCrypt(
|
XBSYSAPI EXPORTNUM(348) xboxkrnl::VOID NTAPI xboxkrnl::XcBlockCrypt
|
||||||
|
(
|
||||||
IN ULONG dwCipher,
|
IN ULONG dwCipher,
|
||||||
OUT PBYTE pbOutput,
|
OUT PUCHAR pbOutput,
|
||||||
IN PBYTE pbInput,
|
IN PUCHAR pbInput,
|
||||||
IN PBYTE pbKeyTable,
|
IN PUCHAR pbKeyTable,
|
||||||
IN ULONG dwOp
|
IN ULONG dwOp
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG(dwCipher)
|
LOG_FUNC_ARG(dwCipher)
|
||||||
LOG_FUNC_ARG_OUT(pbOutput)
|
LOG_FUNC_ARG_OUT(pbOutput)
|
||||||
LOG_FUNC_ARG_OUT(pbInput)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbInput)
|
||||||
LOG_FUNC_ARG_OUT(pbKeyTable)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbKeyTable)
|
||||||
LOG_FUNC_ARG(dwOp)
|
LOG_FUNC_ARG(dwOp)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
@ -349,24 +378,25 @@ XBSYSAPI EXPORTNUM(348) xboxkrnl::VOID xboxkrnl::XcBlockCrypt(
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x015D - XcBlockCryptCBC()
|
// * 0x015D - XcBlockCryptCBC()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(349) xboxkrnl::VOID xboxkrnl::XcBlockCryptCBC(
|
XBSYSAPI EXPORTNUM(349) xboxkrnl::VOID NTAPI xboxkrnl::XcBlockCryptCBC
|
||||||
|
(
|
||||||
IN ULONG dwCipher,
|
IN ULONG dwCipher,
|
||||||
IN ULONG dwInputLength,
|
IN ULONG dwInputLength,
|
||||||
OUT PBYTE pbOutput,
|
OUT PUCHAR pbOutput,
|
||||||
IN PBYTE pbInput,
|
IN PUCHAR pbInput,
|
||||||
IN PBYTE pbKeyTable,
|
IN PUCHAR pbKeyTable,
|
||||||
IN ULONG dwOp,
|
IN ULONG dwOp,
|
||||||
OUT PBYTE pbFeedback
|
IN PUCHAR pbFeedback
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG(dwCipher)
|
LOG_FUNC_ARG(dwCipher)
|
||||||
LOG_FUNC_ARG(dwInputLength)
|
LOG_FUNC_ARG(dwInputLength)
|
||||||
LOG_FUNC_ARG_OUT(pbOutput)
|
LOG_FUNC_ARG_OUT(pbOutput)
|
||||||
LOG_FUNC_ARG_OUT(pbInput)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbInput)
|
||||||
LOG_FUNC_ARG_OUT(pbKeyTable)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbKeyTable)
|
||||||
LOG_FUNC_ARG(dwOp)
|
LOG_FUNC_ARG(dwOp)
|
||||||
LOG_FUNC_ARG_OUT(pbFeedback)
|
LOG_FUNC_ARG_TYPE(PBYTE, pbFeedback)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
LOG_UNIMPLEMENTED();
|
||||||
|
@ -375,28 +405,37 @@ XBSYSAPI EXPORTNUM(349) xboxkrnl::VOID xboxkrnl::XcBlockCryptCBC(
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x015E - XcCryptService()
|
// * 0x015E - XcCryptService()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(350) xboxkrnl::VOID xboxkrnl::XcCryptService(
|
XBSYSAPI EXPORTNUM(350) xboxkrnl::ULONG NTAPI xboxkrnl::XcCryptService
|
||||||
|
(
|
||||||
IN ULONG dwOp,
|
IN ULONG dwOp,
|
||||||
...
|
IN PVOID pArgs
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG(dwOp)
|
LOG_FUNC_ARG(dwOp)
|
||||||
|
LOG_FUNC_ARG(pArgs)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
ULONG ret = 0;
|
||||||
|
|
||||||
LOG_UNIMPLEMENTED();
|
LOG_UNIMPLEMENTED();
|
||||||
|
|
||||||
|
RETURN(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef PVOID PCRYPTO_VECTOR;
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * 0x015F - XcUpdateCrypto()
|
// * 0x015F - XcUpdateCrypto()
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
XBSYSAPI EXPORTNUM(351) xboxkrnl::VOID xboxkrnl::XcUpdateCrypto(
|
XBSYSAPI EXPORTNUM(351) xboxkrnl::VOID NTAPI xboxkrnl::XcUpdateCrypto
|
||||||
IN PVOID pNewVector,
|
(
|
||||||
IN PVOID pROMVector
|
IN PCRYPTO_VECTOR pNewVector,
|
||||||
)
|
OUT PCRYPTO_VECTOR pROMVector OPTIONAL
|
||||||
|
)
|
||||||
{
|
{
|
||||||
LOG_FUNC_BEGIN
|
LOG_FUNC_BEGIN
|
||||||
LOG_FUNC_ARG_OUT(pNewVector)
|
LOG_FUNC_ARG(pNewVector)
|
||||||
LOG_FUNC_ARG_OUT(pROMVector)
|
LOG_FUNC_ARG_OUT(pROMVector)
|
||||||
LOG_FUNC_END;
|
LOG_FUNC_END;
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,12 @@
|
||||||
#define _CXBXKRNL_INTERNAL
|
#define _CXBXKRNL_INTERNAL
|
||||||
#define _XBOXKRNL_DEFEXTRN_
|
#define _XBOXKRNL_DEFEXTRN_
|
||||||
|
|
||||||
|
#ifdef _MSC_VER // Check if MS Visual C compiler
|
||||||
|
# pragma comment(lib, "opengl32.lib") // Compiler-specific directive to avoid manually configuration
|
||||||
|
//# pragma comment(lib, "glu32.lib") // Link libraries
|
||||||
|
# pragma comment(lib, "glew32.lib")
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <Zydis.hpp>
|
#include <Zydis.hpp>
|
||||||
|
|
||||||
#include "CxbxKrnl.h"
|
#include "CxbxKrnl.h"
|
||||||
|
@ -48,44 +54,103 @@
|
||||||
#include "EmuNV2A.h"
|
#include "EmuNV2A.h"
|
||||||
#include "nv2a_int.h" // from https://github.com/espes/xqemu/tree/xbox/hw/xbox
|
#include "nv2a_int.h" // from https://github.com/espes/xqemu/tree/xbox/hw/xbox
|
||||||
|
|
||||||
|
#include <gl\glew.h>
|
||||||
|
#include <gl\GL.h>
|
||||||
|
#include <gl\GLU.h>
|
||||||
|
//#include <gl\glut.h>
|
||||||
|
|
||||||
|
#define NV_PMC_ADDR 0x00000000
|
||||||
|
#define NV_PMC_SIZE 0x001000
|
||||||
|
#define NV_PBUS_ADDR 0x00001000
|
||||||
|
#define NV_PBUS_SIZE 0x001000
|
||||||
|
#define NV_PFIFO_ADDR 0x00002000
|
||||||
|
#define NV_PFIFO_SIZE 0x002000
|
||||||
|
#define NV_PRMA_ADDR 0x00007000
|
||||||
|
#define NV_PRMA_SIZE 0x001000
|
||||||
|
#define NV_VIDEO_ADDR 0x00008000
|
||||||
|
#define NV_PVIDEO_SIZE 0x001000
|
||||||
|
#define NV_PTIMER_ADDR 0x00009000
|
||||||
|
#define NV_PTIMER_SIZE 0x001000
|
||||||
|
#define NV_PCOUNTER_ADDR 0x0000A000
|
||||||
|
#define NV_PCOUNTER_SIZE 0x001000
|
||||||
|
#define NV_PVPE_ADDR 0x0000B000
|
||||||
|
#define NV_PVPE_SIZE 0x001000
|
||||||
|
#define NV_PTV_ADDR 0x0000D000
|
||||||
|
#define NV_PTV_SIZE 0x001000
|
||||||
|
#define NV_PRMFB_ADDR 0x000A0000
|
||||||
|
#define NV_PRMFB_SIZE 0x020000
|
||||||
|
#define NV_PRMVIO_ADDR 0x000C0000
|
||||||
|
#define NV_PRMVIO_SIZE 0x001000
|
||||||
|
#define NV_PFB_ADDR 0x00100000
|
||||||
|
#define NV_PFB_SIZE 0x001000
|
||||||
|
#define NV_PSTRAPS_ADDR 0x00101000
|
||||||
|
#define NV_PSTRAPS_SIZE 0x001000
|
||||||
|
#define NV_PGRAPH_ADDR 0x00400000
|
||||||
|
#define NV_PGRAPH_SIZE 0x002000
|
||||||
|
#define NV_PCRTC_ADDR 0x00600000
|
||||||
|
#define NV_PCRTC_SIZE 0x001000
|
||||||
|
#define NV_PRMCIO_ADDR 0x00601000
|
||||||
|
#define NV_PRMCIO_SIZE 0x001000
|
||||||
|
#define NV_PRAMDAC_ADDR 0x00680000
|
||||||
|
#define NV_PRAMDAC_SIZE 0x001000
|
||||||
|
#define NV_PRMDIO_ADDR 0x00681000
|
||||||
|
#define NV_PRMDIO_SIZE 0x001000
|
||||||
|
#define NV_PRAMIN_ADDR 0x00710000
|
||||||
|
#define NV_PRAMIN_SIZE 0x100000
|
||||||
|
#define NV_USER_ADDR 0x00800000
|
||||||
|
#define NV_USER_SIZE 0x800000
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t pending_interrupts;
|
uint32_t pending_interrupts;
|
||||||
uint32_t enabled_interrupts;
|
uint32_t enabled_interrupts;
|
||||||
|
uint32_t regs[NV_PMC_SIZE / sizeof(uint32_t)]; // TODO : union
|
||||||
} pmc;
|
} pmc;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t pending_interrupts;
|
uint32_t pending_interrupts;
|
||||||
uint32_t enabled_interrupts;
|
uint32_t enabled_interrupts;
|
||||||
//TODO:
|
//TODO:
|
||||||
// QemuThread puller_thread;
|
// QemuThread puller_thread;
|
||||||
// Cache1State cache1;
|
// Cache1State cache1;
|
||||||
uint32_t regs[0x2000];
|
uint32_t regs[NV_PFIFO_SIZE / sizeof(uint32_t)]; // TODO : union
|
||||||
} pfifo;
|
} pfifo;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t regs[0x1000];
|
uint32_t regs[NV_PVIDEO_SIZE / sizeof(uint32_t)]; // TODO : union
|
||||||
} pvideo;
|
} pvideo;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t pending_interrupts;
|
uint32_t pending_interrupts;
|
||||||
uint32_t enabled_interrupts;
|
uint32_t enabled_interrupts;
|
||||||
uint32_t numerator;
|
uint32_t numerator;
|
||||||
uint32_t denominator;
|
uint32_t denominator;
|
||||||
uint32_t alarm_time;
|
uint32_t alarm_time;
|
||||||
|
uint32_t regs[NV_PTIMER_SIZE / sizeof(uint32_t)]; // TODO : union
|
||||||
} ptimer;
|
} ptimer;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t regs[0x1000];
|
uint32_t regs[NV_PFB_SIZE / sizeof(uint32_t)]; // TODO : union
|
||||||
} pfb;
|
} pfb;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t pending_interrupts;
|
uint32_t pending_interrupts;
|
||||||
uint32_t enabled_interrupts;
|
uint32_t enabled_interrupts;
|
||||||
uint32_t start;
|
uint32_t start;
|
||||||
|
uint32_t regs[NV_PCRTC_SIZE / sizeof(uint32_t)]; // TODO : union
|
||||||
} pcrtc;
|
} pcrtc;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t core_clock_coeff;
|
uint32_t core_clock_coeff;
|
||||||
uint64_t core_clock_freq;
|
uint64_t core_clock_freq;
|
||||||
uint32_t memory_clock_coeff;
|
uint32_t memory_clock_coeff;
|
||||||
uint32_t video_clock_coeff;
|
uint32_t video_clock_coeff;
|
||||||
|
uint32_t regs[NV_PRAMDAC_SIZE / sizeof(uint32_t)]; // TODO : union
|
||||||
} pramdac;
|
} pramdac;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uint32_t regs[NV_PRAMIN_SIZE / sizeof(uint32_t)]; // TODO : union
|
||||||
|
} pramin;
|
||||||
|
|
||||||
static void update_irq()
|
static void update_irq()
|
||||||
{
|
{
|
||||||
/* PFIFO */
|
/* PFIFO */
|
||||||
|
@ -95,12 +160,14 @@ static void update_irq()
|
||||||
else {
|
else {
|
||||||
pmc.pending_interrupts &= ~NV_PMC_INTR_0_PFIFO;
|
pmc.pending_interrupts &= ~NV_PMC_INTR_0_PFIFO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcrtc.pending_interrupts & pcrtc.enabled_interrupts) {
|
if (pcrtc.pending_interrupts & pcrtc.enabled_interrupts) {
|
||||||
pmc.pending_interrupts |= NV_PMC_INTR_0_PCRTC;
|
pmc.pending_interrupts |= NV_PMC_INTR_0_PCRTC;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pmc.pending_interrupts &= ~NV_PMC_INTR_0_PCRTC;
|
pmc.pending_interrupts &= ~NV_PMC_INTR_0_PCRTC;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO PGRAPH */
|
/* TODO PGRAPH */
|
||||||
/*
|
/*
|
||||||
if (pgraph.pending_interrupts & pgraph.enabled_interrupts) {
|
if (pgraph.pending_interrupts & pgraph.enabled_interrupts) {
|
||||||
|
@ -109,18 +176,19 @@ static void update_irq()
|
||||||
else {
|
else {
|
||||||
pmc.pending_interrupts &= ~NV_PMC_INTR_0_PGRAPH;
|
pmc.pending_interrupts &= ~NV_PMC_INTR_0_PGRAPH;
|
||||||
} */
|
} */
|
||||||
|
|
||||||
if (pmc.pending_interrupts && pmc.enabled_interrupts) {
|
if (pmc.pending_interrupts && pmc.enabled_interrupts) {
|
||||||
// TODO Raise IRQ
|
// TODO Raise IRQ
|
||||||
EmuWarning("EmuNV2A: update_irq : Raise IRQ Not Implemented");
|
EmuWarning("EmuNV2A update_irq() : Raise IRQ Not Implemented");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// TODO: Cancel IRQ
|
// TODO: Cancel IRQ
|
||||||
EmuWarning("EmuNV2A: update_irq : Cancel IRQ Not Implemented");
|
EmuWarning("EmuNV2A update_irq() : Cancel IRQ Not Implemented");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEBUG_START(DEV) const char *DebugNV_##DEV##(uint32_t addr) { switch (addr) {
|
#define DEBUG_START(DEV) const char *DebugNV_##DEV##(uint32_t addr) { switch (addr) {
|
||||||
#define CASE(a) case a: return #a
|
#define CASE(a, c) case a: return #a##c;
|
||||||
#define DEBUG_END(DEV) default: return "Unknown " #DEV " Address"; } }
|
#define DEBUG_END(DEV) default: return "Unknown " #DEV " Address"; } }
|
||||||
|
|
||||||
DEBUG_START(PMC)
|
DEBUG_START(PMC)
|
||||||
|
@ -131,9 +199,30 @@ DEBUG_START(PMC)
|
||||||
DEBUG_END(PMC)
|
DEBUG_END(PMC)
|
||||||
|
|
||||||
DEBUG_START(PBUS)
|
DEBUG_START(PBUS)
|
||||||
CASE(NV_PBUS_PCI_NV_0);
|
CASE(NV_PBUS_PCI_NV_0, "_VENDOR_ID");
|
||||||
CASE(NV_PBUS_PCI_NV_1);
|
CASE(NV_PBUS_PCI_NV_1);
|
||||||
CASE(NV_PBUS_PCI_NV_2);
|
CASE(NV_PBUS_PCI_NV_2, "_REVISION_ID");
|
||||||
|
CASE(NV_PBUS_PCI_NV_3, "_LATENCY_TIMER");
|
||||||
|
CASE(NV_PBUS_PCI_NV_4);
|
||||||
|
CASE(NV_PBUS_PCI_NV_5);
|
||||||
|
CASE(NV_PBUS_PCI_NV_6);
|
||||||
|
CASE(NV_PBUS_PCI_NV_7);
|
||||||
|
CASE(NV_PBUS_PCI_NV_11, "_SUBSYSTEM");
|
||||||
|
CASE(NV_PBUS_PCI_NV_12, "_ROM_BASE");
|
||||||
|
CASE(NV_PBUS_PCI_NV_13, "_CAP_PTR");
|
||||||
|
CASE(NV_PBUS_PCI_NV_14, "_RESERVED");
|
||||||
|
CASE(NV_PBUS_PCI_NV_15);
|
||||||
|
CASE(NV_PBUS_PCI_NV_16, "_SUBSYSTEM");
|
||||||
|
CASE(NV_PBUS_PCI_NV_17);
|
||||||
|
CASE(NV_PBUS_PCI_NV_18, "_AGP_STATUS");
|
||||||
|
CASE(NV_PBUS_PCI_NV_19, "_AGP_COMMAND");
|
||||||
|
CASE(NV_PBUS_PCI_NV_20, "_ROM_SHADOW");
|
||||||
|
CASE(NV_PBUS_PCI_NV_21, "_VGA");
|
||||||
|
CASE(NV_PBUS_PCI_NV_22, "_SCRATCH");
|
||||||
|
CASE(NV_PBUS_PCI_NV_23, "_DT_TIMEOUT");
|
||||||
|
CASE(NV_PBUS_PCI_NV_24, "_PME");
|
||||||
|
CASE(NV_PBUS_PCI_NV_25, "_POWER_STATE");
|
||||||
|
CASE(NV_PBUS_PCI_NV_26, "_RESERVED");
|
||||||
DEBUG_END(PBUS)
|
DEBUG_END(PBUS)
|
||||||
|
|
||||||
DEBUG_START(PFIFO)
|
DEBUG_START(PFIFO)
|
||||||
|
@ -214,9 +303,43 @@ DEBUG_START(PRMVIO)
|
||||||
DEBUG_END(PRMVIO)
|
DEBUG_END(PRMVIO)
|
||||||
|
|
||||||
DEBUG_START(PFB)
|
DEBUG_START(PFB)
|
||||||
CASE(NV_PFB_CFG0);
|
CASE(NV_PFB_CFG0)
|
||||||
CASE(NV_PFB_CSTATUS);
|
CASE(NV_PFB_CSTATUS)
|
||||||
CASE(NV_PFB_WBC);
|
CASE(NV_PFB_REFCTRL)
|
||||||
|
CASE(NV_PFB_NVM) // NV_PFB_NVM_MODE_DISABLE
|
||||||
|
CASE(NV_PFB_PIN)
|
||||||
|
CASE(NV_PFB_PAD)
|
||||||
|
CASE(NV_PFB_TIMING0)
|
||||||
|
CASE(NV_PFB_TIMING1)
|
||||||
|
CASE(NV_PFB_TIMING2)
|
||||||
|
CASE(NV_PFB_TILE)
|
||||||
|
CASE(NV_PFB_TLIMIT)
|
||||||
|
CASE(NV_PFB_TSIZE)
|
||||||
|
CASE(NV_PFB_TSTATUS)
|
||||||
|
CASE(NV_PFB_MRS)
|
||||||
|
CASE(NV_PFB_EMRS)
|
||||||
|
CASE(NV_PFB_MRS_EXT)
|
||||||
|
CASE(NV_PFB_EMRS_EXT)
|
||||||
|
CASE(NV_PFB_REF)
|
||||||
|
CASE(NV_PFB_PRE)
|
||||||
|
CASE(NV_PFB_ZCOMP)
|
||||||
|
CASE(NV_PFB_ARB_PREDIVIDER)
|
||||||
|
CASE(NV_PFB_ARB_TIMEOUT)
|
||||||
|
CASE(NV_PFB_ARB_XFER_REM)
|
||||||
|
CASE(NV_PFB_ARB_DIFF_BANK)
|
||||||
|
CASE(NV_PFB_CLOSE_PAGE0)
|
||||||
|
CASE(NV_PFB_CLOSE_PAGE1)
|
||||||
|
CASE(NV_PFB_CLOSE_PAGE2)
|
||||||
|
CASE(NV_PFB_BPARB)
|
||||||
|
CASE(NV_PFB_CMDQ0)
|
||||||
|
CASE(NV_PFB_CMDQ1)
|
||||||
|
CASE(NV_PFB_ILL_INSTR)
|
||||||
|
CASE(NV_PFB_RT)
|
||||||
|
CASE(NV_PFB_AUTOCLOSE)
|
||||||
|
CASE(NV_PFB_WBC)
|
||||||
|
CASE(NV_PFB_CMDQ_PRT)
|
||||||
|
CASE(NV_PFB_CPU_RRQ)
|
||||||
|
CASE(NV_PFB_BYPASS);
|
||||||
DEBUG_END(PFB)
|
DEBUG_END(PFB)
|
||||||
|
|
||||||
DEBUG_START(PSTRAPS)
|
DEBUG_START(PSTRAPS)
|
||||||
|
@ -349,16 +472,13 @@ DEBUG_START(USER)
|
||||||
DEBUG_END(USER)
|
DEBUG_END(USER)
|
||||||
|
|
||||||
|
|
||||||
#define DEBUG_READ32(DEV) EmuWarning("EmuNV2A_" #DEV "_Read32($%08X) // %s = $%08X", addr, DebugNV_##DEV##(addr), result)
|
|
||||||
#define DEBUG_WRITE32(DEV) EmuWarning("EmuNV2A_" #DEV "_Write32($%08X, $%08X) // %s ", addr, value, DebugNV_##DEV##(addr))
|
|
||||||
|
|
||||||
#define READ32_START(DEV) uint32_t EmuNV2A_##DEV##_Read32(uint32_t addr) { uint32_t result = 0; switch (addr) {
|
#define READ32_START(DEV) uint32_t EmuNV2A_##DEV##_Read32(uint32_t addr) { uint32_t result = 0; switch (addr) {
|
||||||
#define READ32_UNHANDLED(DEV) default: EmuWarning("EmuNV2A_" #DEV "_Read32 Unhandled");
|
#define READ32_UNHANDLED(DEV) default: EmuWarning("EmuX86_Read32 NV2A_" #DEV "(0x%08X) = 0x%08X [Unhandled, %s]", addr, result, DebugNV_##DEV##(addr)); return result;
|
||||||
#define READ32_END(DEV) DEBUG_READ32(DEV); } return result; }
|
#define READ32_END(DEV) } EmuWarning("EmuX86_Read32 NV2A_" #DEV "(0x%08X) = 0x%08X [Handled, %s]", addr, result, DebugNV_##DEV##(addr)); return result; }
|
||||||
|
|
||||||
#define WRITE32_START(DEV) void EmuNV2A_##DEV##_Write32(uint32_t addr, uint32_t value) { DEBUG_WRITE32(DEV); switch (addr) {
|
#define WRITE32_START(DEV) void EmuNV2A_##DEV##_Write32(uint32_t addr, uint32_t value) { switch (addr) {
|
||||||
#define WRITE32_UNHANDLED(DEV) default: EmuWarning("EmuNV2A_" #DEV "_Write32 Unhandled");
|
#define WRITE32_UNHANDLED(DEV) default: EmuWarning("EmuX86_Write32 NV2A_" #DEV "(0x%08X, 0x%08X) [Unhandled, %s]", addr, value, DebugNV_##DEV##(addr)); return;
|
||||||
#define WRITE32_END(DEV) } }
|
#define WRITE32_END(DEV) } EmuWarning("EmuX86_Write32 NV2A_" #DEV "(0x%08X, 0x%08X) [Handled, %s]", addr, value, DebugNV_##DEV##(addr)); }
|
||||||
|
|
||||||
|
|
||||||
READ32_START(PMC)
|
READ32_START(PMC)
|
||||||
|
@ -406,6 +526,10 @@ WRITE32_END(PBUS)
|
||||||
|
|
||||||
|
|
||||||
READ32_START(PFIFO)
|
READ32_START(PFIFO)
|
||||||
|
case NV_PFIFO_RAMHT:
|
||||||
|
result = 0x03000100; // = NV_PFIFO_RAMHT_SIZE_4K | NV_PFIFO_RAMHT_BASE_ADDRESS(NumberOfPaddingBytes >> 12) | NV_PFIFO_RAMHT_SEARCH_128
|
||||||
|
case NV_PFIFO_RAMFC:
|
||||||
|
result = 0x00890110; // = ? | NV_PFIFO_RAMFC_SIZE_2K | ?
|
||||||
READ32_UNHANDLED(PFIFO)
|
READ32_UNHANDLED(PFIFO)
|
||||||
READ32_END(PFIFO)
|
READ32_END(PFIFO)
|
||||||
|
|
||||||
|
@ -525,6 +649,8 @@ WRITE32_END(PRMVIO)
|
||||||
|
|
||||||
|
|
||||||
READ32_START(PFB)
|
READ32_START(PFB)
|
||||||
|
case NV_PFB_CFG0:
|
||||||
|
result = 3; // = NV_PFB_CFG0_PART_4
|
||||||
default:
|
default:
|
||||||
result = pfb.regs[addr];
|
result = pfb.regs[addr];
|
||||||
READ32_END(PFB)
|
READ32_END(PFB)
|
||||||
|
@ -635,11 +761,13 @@ WRITE32_END(PRMDIO)
|
||||||
|
|
||||||
|
|
||||||
READ32_START(PRAMIN)
|
READ32_START(PRAMIN)
|
||||||
READ32_UNHANDLED(PRAMIN)
|
default:
|
||||||
|
result = pramin.regs[addr];
|
||||||
READ32_END(PRAMIN)
|
READ32_END(PRAMIN)
|
||||||
|
|
||||||
WRITE32_START(PRAMIN)
|
WRITE32_START(PRAMIN)
|
||||||
WRITE32_UNHANDLED(PRAMIN)
|
default:
|
||||||
|
pramin.regs[addr] = value;
|
||||||
WRITE32_END(PRAMIN)
|
WRITE32_END(PRAMIN)
|
||||||
|
|
||||||
|
|
||||||
|
@ -659,98 +787,103 @@ typedef struct NV2ABlockInfo {
|
||||||
} NV2ABlockInfo;
|
} NV2ABlockInfo;
|
||||||
|
|
||||||
static const NV2ABlockInfo regions[] = {{
|
static const NV2ABlockInfo regions[] = {{
|
||||||
0x000000,
|
NV_PMC_ADDR, // = 0x000000
|
||||||
0x001000,
|
NV_PMC_SIZE, // = 0x001000
|
||||||
EmuNV2A_PMC_Read32,
|
EmuNV2A_PMC_Read32,
|
||||||
EmuNV2A_PMC_Write32,
|
EmuNV2A_PMC_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x001000,
|
NV_PBUS_ADDR, // = 0x001000
|
||||||
0x001000,
|
NV_PBUS_SIZE, // = 0x001000
|
||||||
EmuNV2A_PBUS_Read32,
|
EmuNV2A_PBUS_Read32,
|
||||||
EmuNV2A_PBUS_Write32,
|
EmuNV2A_PBUS_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x002000,
|
NV_PFIFO_ADDR, // = 0x002000
|
||||||
0x002000,
|
NV_PFIFO_SIZE, // = 0x002000
|
||||||
EmuNV2A_PFIFO_Read32,
|
EmuNV2A_PFIFO_Read32,
|
||||||
EmuNV2A_PFIFO_Write32,
|
EmuNV2A_PFIFO_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x007000,
|
NV_PRMA_ADDR, // = 0x007000
|
||||||
0x001000,
|
NV_PRMA_SIZE, // = 0x001000
|
||||||
EmuNV2A_PRMA_Read32,
|
EmuNV2A_PRMA_Read32,
|
||||||
EmuNV2A_PRMA_Write32,
|
EmuNV2A_PRMA_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x008000,
|
NV_VIDEO_ADDR, // = 0x008000
|
||||||
0x001000,
|
NV_PVIDEO_SIZE, // = 0x001000
|
||||||
EmuNV2A_PVIDEO_Read32,
|
EmuNV2A_PVIDEO_Read32,
|
||||||
EmuNV2A_PVIDEO_Write32,
|
EmuNV2A_PVIDEO_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x009000,
|
NV_PTIMER_ADDR, // = 0x009000
|
||||||
0x001000,
|
NV_PTIMER_SIZE, // = 0x001000
|
||||||
EmuNV2A_PTIMER_Read32,
|
EmuNV2A_PTIMER_Read32,
|
||||||
EmuNV2A_PTIMER_Write32,
|
EmuNV2A_PTIMER_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x00a000,
|
NV_PCOUNTER_ADDR, // = 0x00a000
|
||||||
0x001000,
|
NV_PCOUNTER_SIZE, // = 0x001000
|
||||||
EmuNV2A_PCOUNTER_Read32,
|
EmuNV2A_PCOUNTER_Read32,
|
||||||
EmuNV2A_PCOUNTER_Write32,
|
EmuNV2A_PCOUNTER_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x00b000,
|
NV_PVPE_ADDR, // = 0x00b000
|
||||||
0x001000,
|
NV_PVPE_SIZE, // = 0x001000
|
||||||
EmuNV2A_PVPE_Read32,
|
EmuNV2A_PVPE_Read32,
|
||||||
EmuNV2A_PVPE_Write32,
|
EmuNV2A_PVPE_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x00d000,
|
NV_PTV_ADDR, // = 0x00d000
|
||||||
0x001000,
|
NV_PTV_SIZE, // = 0x001000
|
||||||
EmuNV2A_PTV_Read32,
|
EmuNV2A_PTV_Read32,
|
||||||
EmuNV2A_PTV_Write32,
|
EmuNV2A_PTV_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x0a0000,
|
NV_PRMFB_ADDR, // = 0x0a0000
|
||||||
0x020000,
|
NV_PRMFB_SIZE, // = 0x020000
|
||||||
EmuNV2A_PRMFB_Read32,
|
EmuNV2A_PRMFB_Read32,
|
||||||
EmuNV2A_PRMFB_Write32,
|
EmuNV2A_PRMFB_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x0c0000,
|
NV_PRMVIO_ADDR, // = 0x0c0000
|
||||||
0x001000,
|
NV_PRMVIO_SIZE, // = 0x001000
|
||||||
EmuNV2A_PRMVIO_Read32,
|
EmuNV2A_PRMVIO_Read32,
|
||||||
EmuNV2A_PRMVIO_Write32,
|
EmuNV2A_PRMVIO_Write32,
|
||||||
},{
|
},{
|
||||||
0x100000,
|
NV_PFB_ADDR, // = 0x100000
|
||||||
0x001000,
|
NV_PFB_SIZE, // = 0x001000
|
||||||
EmuNV2A_PFB_Read32,
|
EmuNV2A_PFB_Read32,
|
||||||
EmuNV2A_PFB_Write32,
|
EmuNV2A_PFB_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x101000,
|
NV_PSTRAPS_ADDR, // = 0x101000
|
||||||
0x001000,
|
NV_PSTRAPS_SIZE, // = 0x001000
|
||||||
EmuNV2A_PSTRAPS_Read32,
|
EmuNV2A_PSTRAPS_Read32,
|
||||||
EmuNV2A_PSTRAPS_Write32,
|
EmuNV2A_PSTRAPS_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x400000,
|
NV_PGRAPH_ADDR, // = 0x400000
|
||||||
0x002000,
|
NV_PGRAPH_SIZE, // = 0x002000
|
||||||
EmuNV2A_PGRAPH_Read32,
|
EmuNV2A_PGRAPH_Read32,
|
||||||
EmuNV2A_PGRAPH_Write32,
|
EmuNV2A_PGRAPH_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x600000,
|
NV_PCRTC_ADDR, // = 0x600000
|
||||||
0x001000,
|
NV_PCRTC_SIZE, // = 0x001000
|
||||||
EmuNV2A_PCRTC_Read32,
|
EmuNV2A_PCRTC_Read32,
|
||||||
EmuNV2A_PCRTC_Write32,
|
EmuNV2A_PCRTC_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x601000,
|
NV_PRMCIO_ADDR, // = 0x601000
|
||||||
0x001000,
|
NV_PRMCIO_SIZE, // = 0x001000
|
||||||
EmuNV2A_PRMCIO_Read32,
|
EmuNV2A_PRMCIO_Read32,
|
||||||
EmuNV2A_PRMCIO_Write32,
|
EmuNV2A_PRMCIO_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x680000,
|
NV_PRAMDAC_ADDR, // = 0x680000
|
||||||
0x001000,
|
NV_PRAMDAC_SIZE, // = 0x001000
|
||||||
EmuNV2A_PRAMDAC_Read32,
|
EmuNV2A_PRAMDAC_Read32,
|
||||||
EmuNV2A_PRAMDAC_Write32,
|
EmuNV2A_PRAMDAC_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x681000,
|
NV_PRMDIO_ADDR, // = 0x681000
|
||||||
0x001000,
|
NV_PRMDIO_SIZE, // = 0x001000
|
||||||
EmuNV2A_PRMDIO_Read32,
|
EmuNV2A_PRMDIO_Read32,
|
||||||
EmuNV2A_PRMDIO_Write32,
|
EmuNV2A_PRMDIO_Write32,
|
||||||
}, {
|
}, {
|
||||||
0x800000,
|
NV_PRAMIN_ADDR, // = 0x710000
|
||||||
0x800000,
|
NV_PRAMIN_SIZE, // = 0x100000
|
||||||
|
EmuNV2A_PRAMIN_Read32,
|
||||||
|
EmuNV2A_PRAMIN_Write32,
|
||||||
|
},{
|
||||||
|
NV_USER_ADDR, // = 0x800000,
|
||||||
|
NV_USER_SIZE, // = 0x800000,
|
||||||
EmuNV2A_USER_Read32,
|
EmuNV2A_USER_Read32,
|
||||||
EmuNV2A_USER_Write32,
|
EmuNV2A_USER_Write32,
|
||||||
}, {
|
}, {
|
||||||
|
@ -786,7 +919,7 @@ uint32_t EmuNV2A_Read32(uint32_t addr)
|
||||||
return block->read(addr - block->offset);
|
return block->read(addr - block->offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
EmuWarning("EmuNV2A_Write32: Unhandled Read Address %08X", addr);
|
EmuWarning("EmuNV2A_Read32: Unhandled Read Address %08X", addr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -796,8 +929,276 @@ void EmuNV2A_Write32(uint32_t addr, uint32_t value)
|
||||||
|
|
||||||
if (block != nullptr) {
|
if (block != nullptr) {
|
||||||
block->write(addr - block->offset, value);
|
block->write(addr - block->offset, value);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EmuWarning("EmuNV2A_Write32: Unhandled Write Address %08X (value %08X)", addr, value);
|
EmuWarning("EmuNV2A_Write32: Unhandled Write Address %08X (value %08X)", addr, value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// OPENGL
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
#define X_D3DTS_STAGECOUNT 4
|
||||||
|
|
||||||
|
HDC g_EmuWindowsDC = 0;
|
||||||
|
GLuint VertexProgramIDs[4] = { 0, 0, 0, 0 };
|
||||||
|
uint ActiveVertexProgramID = 0;
|
||||||
|
GLuint TextureIDs[X_D3DTS_STAGECOUNT]= { 0, 0, 0, 0 };
|
||||||
|
|
||||||
|
// Vertex shader header, mapping Xbox1 registers to the ARB syntax (original version by KingOfC).
|
||||||
|
// Note about the use of 'conventional' attributes in here: Since we prefer to use only one shader
|
||||||
|
// for both immediate and deferred mode rendering, we alias all attributes to conventional inputs
|
||||||
|
// as much as possible. Only when there's no conventional attribute available, we use generic attributes.
|
||||||
|
// So in the following header, we use conventional attributes first, and generic attributes for the
|
||||||
|
// rest of the vertex attribute slots. This makes it possible to support immediate and deferred mode
|
||||||
|
// rendering with the same shader, and the use of the OpenGL fixed-function pipeline without a shader.
|
||||||
|
std::string DxbxVertexShaderHeader =
|
||||||
|
"!!ARBvp1.0\n"
|
||||||
|
"TEMP R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12;\n"
|
||||||
|
"ADDRESS A0;\n"
|
||||||
|
#ifdef DXBX_OPENGL_CONVENTIONAL
|
||||||
|
"ATTRIB v0 = vertex.position;\n" // Was: vertex.attrib[0] (See "conventional" note above)
|
||||||
|
"ATTRIB v1 = vertex.%s;\n" // Note : We replace this with "weight" or "attrib[1]" depending GL_ARB_vertex_blend
|
||||||
|
"ATTRIB v2 = vertex.normal;\n" // Was: vertex.attrib[2]
|
||||||
|
"ATTRIB v3 = vertex.color.primary;\n" // Was: vertex.attrib[3]
|
||||||
|
"ATTRIB v4 = vertex.color.secondary;\n" // Was: vertex.attrib[4]
|
||||||
|
"ATTRIB v5 = vertex.fogcoord;\n" // Was: vertex.attrib[5]
|
||||||
|
"ATTRIB v6 = vertex.attrib[6];\n"
|
||||||
|
"ATTRIB v7 = vertex.attrib[7];\n"
|
||||||
|
"ATTRIB v8 = vertex.texcoord[0];\n" // Was: vertex.attrib[8]
|
||||||
|
"ATTRIB v9 = vertex.texcoord[1];\n" // Was: vertex.attrib[9]
|
||||||
|
"ATTRIB v10 = vertex.texcoord[2];\n" // Was: vertex.attrib[10]
|
||||||
|
"ATTRIB v11 = vertex.texcoord[3];\n" // Was: vertex.attrib[11]
|
||||||
|
#else
|
||||||
|
"ATTRIB v0 = vertex.attrib[0];\n"
|
||||||
|
"ATTRIB v1 = vertex.attrib[1];\n"
|
||||||
|
"ATTRIB v2 = vertex.attrib[2];\n"
|
||||||
|
"ATTRIB v3 = vertex.attrib[3];\n"
|
||||||
|
"ATTRIB v4 = vertex.attrib[4];\n"
|
||||||
|
"ATTRIB v5 = vertex.attrib[5];\n"
|
||||||
|
"ATTRIB v6 = vertex.attrib[6];\n"
|
||||||
|
"ATTRIB v7 = vertex.attrib[7];\n"
|
||||||
|
"ATTRIB v8 = vertex.attrib[8];\n"
|
||||||
|
"ATTRIB v9 = vertex.attrib[9];\n"
|
||||||
|
"ATTRIB v10 = vertex.attrib[10];\n"
|
||||||
|
"ATTRIB v11 = vertex.attrib[11];\n"
|
||||||
|
#endif
|
||||||
|
"ATTRIB v12 = vertex.attrib[12];\n"
|
||||||
|
"ATTRIB v13 = vertex.attrib[13];\n"
|
||||||
|
"ATTRIB v14 = vertex.attrib[14];\n"
|
||||||
|
"ATTRIB v15 = vertex.attrib[15];\n"
|
||||||
|
"OUTPUT oPos = result.position;\n"
|
||||||
|
"OUTPUT oD0 = result.color.front.primary;\n"
|
||||||
|
"OUTPUT oD1 = result.color.front.secondary;\n"
|
||||||
|
"OUTPUT oB0 = result.color.back.primary;\n"
|
||||||
|
"OUTPUT oB1 = result.color.back.secondary;\n"
|
||||||
|
"OUTPUT oPts = result.pointsize;\n"
|
||||||
|
"OUTPUT oFog = result.fogcoord;\n"
|
||||||
|
"OUTPUT oT0 = result.texcoord[0];\n"
|
||||||
|
"OUTPUT oT1 = result.texcoord[1];\n"
|
||||||
|
"OUTPUT oT2 = result.texcoord[2];\n"
|
||||||
|
"OUTPUT oT3 = result.texcoord[3];\n"
|
||||||
|
"PARAM c[] = { program.env[0..191] };\n" // All constants in 1 array declaration (requires NV_gpu_program4?)
|
||||||
|
"PARAM mvp[4] = { state.matrix.mvp };\n";
|
||||||
|
|
||||||
|
void SetupPixelFormat(HDC DC)
|
||||||
|
{
|
||||||
|
const PIXELFORMATDESCRIPTOR pfd = {
|
||||||
|
/* .nSize = */ sizeof(PIXELFORMATDESCRIPTOR), // size
|
||||||
|
/* .nVersion = */ 1, // version
|
||||||
|
/* .dwFlags = */ PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER, // support double-buffering
|
||||||
|
/* .iPixelType = */ PFD_TYPE_RGBA, // color type
|
||||||
|
/* .cColorBits = */ 32, // preferred color depth
|
||||||
|
/* .cRedBits = */ 0,
|
||||||
|
/* .cRedShift = */ 0, // color bits (ignored)
|
||||||
|
/* .cGreenBits = */ 0,
|
||||||
|
/* .cGreenShift = */ 0,
|
||||||
|
/* .cBlueBits = */ 0,
|
||||||
|
/* .cBlueShift = */ 0,
|
||||||
|
/* .cAlphaBits = */ 0,
|
||||||
|
/* .cAlphaShift = */ 0, // no alpha buffer
|
||||||
|
/* .cAccumBits = */ 0,
|
||||||
|
/* .cAccumRedBits = */ 0, // no accumulation buffer,
|
||||||
|
/* .cAccumGreenBits = */ 0, // accum bits (ignored)
|
||||||
|
/* .cAccumBlueBits = */ 0,
|
||||||
|
/* .cAccumAlphaBits = */ 0,
|
||||||
|
/* .cDepthBits = */ 16, // depth buffer
|
||||||
|
/* .cStencilBits = */ 0, // no stencil buffer
|
||||||
|
/* .cAuxBuffers = */ 0, // no auxiliary buffers
|
||||||
|
/* .iLayerType= */ PFD_MAIN_PLANE, // main layer
|
||||||
|
/* .bReserved = */ 0,
|
||||||
|
/* .dwLayerMask = */ 0,
|
||||||
|
/* .dwVisibleMask = */ 0,
|
||||||
|
/* .dwDamageMask = */ 0 // no layer, visible, damage masks
|
||||||
|
};
|
||||||
|
|
||||||
|
int PixelFormat = ChoosePixelFormat(DC, &pfd);
|
||||||
|
if (PixelFormat == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (SetPixelFormat(DC, PixelFormat, &pfd) != TRUE)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// From https://github.com/inolen/redream/blob/master/src/video/gl_backend.c
|
||||||
|
static int rb_compile_shader(const char *source, GLenum shader_type, GLuint *shader)
|
||||||
|
{
|
||||||
|
size_t sourceLength = strlen(source);
|
||||||
|
|
||||||
|
*shader = glCreateShader(shader_type);
|
||||||
|
glShaderSource(*shader, 1, (const GLchar **)&source,
|
||||||
|
(const GLint *)&sourceLength);
|
||||||
|
glCompileShader(*shader);
|
||||||
|
|
||||||
|
GLint compiled;
|
||||||
|
glGetShaderiv(*shader, GL_COMPILE_STATUS, &compiled);
|
||||||
|
|
||||||
|
if (!compiled) {
|
||||||
|
// rb_print_shader_log(*shader);
|
||||||
|
glDeleteShader(*shader);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DxbxCompileShader(std::string Shader)
|
||||||
|
{
|
||||||
|
int GLErrorPos;
|
||||||
|
|
||||||
|
// if (MayLog(lfUnit))
|
||||||
|
// DbgPrintf(" NV2A: New vertex program :\n" + Shader);
|
||||||
|
|
||||||
|
/*
|
||||||
|
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, Shader.size(), Shader.c_str());
|
||||||
|
|
||||||
|
// errors are catched
|
||||||
|
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &GLErrorPos);
|
||||||
|
*/
|
||||||
|
GLuint shader;
|
||||||
|
|
||||||
|
GLErrorPos = rb_compile_shader(Shader.c_str(), GL_VERTEX_SHADER, &shader); // TODO : GL_VERTEX_SHADER_ARB ??
|
||||||
|
/*
|
||||||
|
if (GLErrorPos > 0)
|
||||||
|
{
|
||||||
|
Shader.insert(GLErrorPos, "{ERROR}");
|
||||||
|
EmuWarning("Program error at position %d:", GLErrorPos);
|
||||||
|
EmuWarning((char*)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||||
|
EmuWarning(Shader.c_str());
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
void InitOpenGLContext()
|
||||||
|
{
|
||||||
|
HGLRC RC;
|
||||||
|
std::string szCode;
|
||||||
|
|
||||||
|
//glutInit();
|
||||||
|
{ // rb_init_context();
|
||||||
|
/* link in gl functions at runtime */
|
||||||
|
glewExperimental = GL_TRUE;
|
||||||
|
GLenum err = glewInit();
|
||||||
|
if (err != GLEW_OK) {
|
||||||
|
//LOG_WARNING("GLEW initialization failed: %s", glewGetErrorString(err));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_EmuWindowsDC = GetDC(g_hEmuWindow); // Actually, you can use any windowed control here
|
||||||
|
SetupPixelFormat(g_EmuWindowsDC);
|
||||||
|
|
||||||
|
RC = wglCreateContext(g_EmuWindowsDC); // makes OpenGL window out of DC
|
||||||
|
wglMakeCurrent(g_EmuWindowsDC, RC); // makes OpenGL window active
|
||||||
|
//ReadImplementationProperties(); // Determine a set of booleans indicating which OpenGL extensions are available
|
||||||
|
//ReadExtensions(); // Assign all OpenGL extension API's (DON'T call them if the extension is not available!)
|
||||||
|
|
||||||
|
// Initialize the viewport :
|
||||||
|
//Viewport.X = 0;
|
||||||
|
//Viewport.Y = 0;
|
||||||
|
//Viewport.Width = g_EmuCDPD.pPresentationParameters.BackBufferWidth;
|
||||||
|
//Viewport.Height = g_EmuCDPD.pPresentationParameters.BackBufferHeight;
|
||||||
|
//Viewport.MinZ = -1.0;
|
||||||
|
//Viewport.MaxZ = 1.0;
|
||||||
|
|
||||||
|
//DxbxUpdateTransformProjection();
|
||||||
|
//DxbxUpdateViewport();
|
||||||
|
|
||||||
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
glLoadIdentity();
|
||||||
|
// Switch to left-handed coordinate space (as per http://www.opengl.org/resources/faq/technical/transformations.htm) :
|
||||||
|
// glScalef(1.0, 1.0, -1.0);
|
||||||
|
|
||||||
|
// Set some defaults :
|
||||||
|
glEnable(GL_CULL_FACE);
|
||||||
|
glCullFace(GL_FRONT);
|
||||||
|
|
||||||
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
glDepthFunc(GL_LEQUAL); // Nearer Z coordinates cover further Z
|
||||||
|
|
||||||
|
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||||
|
glAlphaFunc(GL_GEQUAL, 0.5);
|
||||||
|
|
||||||
|
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); // GL_LINE for wireframe
|
||||||
|
|
||||||
|
/*
|
||||||
|
// TODO : The following code only works on cards that support the
|
||||||
|
// vertex program extensions (NVidia cards mainly); So for ATI we
|
||||||
|
// have to come up with another solution !!!
|
||||||
|
glGenProgramsARB(4, &VertexProgramIDs[0]);
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef DXBX_OPENGL_CONVENTIONAL
|
||||||
|
if (GL_ARB_vertex_blend)
|
||||||
|
DxbxVertexShaderHeader = sprintf(DxbxVertexShaderHeader, "weight");
|
||||||
|
else
|
||||||
|
DxbxVertexShaderHeader = sprintf(DxbxVertexShaderHeader, "attrib[1]");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Precompiled shader for the fixed function pipeline :
|
||||||
|
szCode = DxbxVertexShaderHeader +
|
||||||
|
"# This part adjusts the vertex position by the super-sampling scale & offset :\n"
|
||||||
|
"MOV R0, v0;\n"
|
||||||
|
"RCP R0.w, R0.w;\n"
|
||||||
|
"MUL R0, R0, c[0];\n" // c[-96] in D3D speak - applies SuperSampleScale
|
||||||
|
// Note : Use R12 instead of oPos because this is not yet the final assignment :
|
||||||
|
"ADD R12, R0, c[1];\n" // c[-95] in D3D speak - applies SuperSampleOffset
|
||||||
|
|
||||||
|
"# This part just reads all other components and passes them to the output :\n"
|
||||||
|
"MOV oD0, v3;\n"
|
||||||
|
"MOV oD1, v4;\n"
|
||||||
|
"MOV oFog, v4.w;\n" // specular fog
|
||||||
|
// "MOV oFog, v0.z;\n" // z fog
|
||||||
|
// "RCP oFog, v0.w;\n" // w fog
|
||||||
|
"MOV oPts, v1.x;\n"
|
||||||
|
"MOV oB0, v7;\n"
|
||||||
|
"MOV oB1, v8;\n"
|
||||||
|
"MOV oT0, v9;\n"
|
||||||
|
"MOV oT1, v10;\n"
|
||||||
|
"MOV oT2, v11;\n"
|
||||||
|
"MOV oT3, v12;\n"
|
||||||
|
|
||||||
|
"# This part applies the screen-space transform (not present when '#pragma screenspace' was used) :\n"
|
||||||
|
"MUL R12.xyz, R12, c[58];\n" // c[-38] in D3D speak - see EmuNV2A_ViewportScale,
|
||||||
|
"RCP R1.x, R12.w;\n" // Originally RCC, but that"s not supported in ARBvp1.0 (use "MIN R1, R1, 0" and "MAX R1, R1, 1"?)
|
||||||
|
"MAD R12.xyz, R12, R1.x, c[59];\n" // c[-37] in D3D speak - see EmuNV2A_ViewportOffset
|
||||||
|
|
||||||
|
"# Dxbx addition : Transform the vertex to clip coordinates :\n"
|
||||||
|
"DP4 R0.x, mvp[0], R12;\n"
|
||||||
|
"DP4 R0.y, mvp[1], R12;\n"
|
||||||
|
"DP4 R0.z, mvp[2], R12;\n"
|
||||||
|
"DP4 R0.w, mvp[3], R12;\n"
|
||||||
|
"MOV R12, R0;\n"
|
||||||
|
|
||||||
|
"# Apply Z coord mapping\n"
|
||||||
|
"ADD R12.z, R12.z, R12.z;\n"
|
||||||
|
"ADD R12.z, R12.z, -R12.w;\n"
|
||||||
|
|
||||||
|
"# Here""s the final assignment to oPos :\n"
|
||||||
|
"MOV oPos, R12;\n"
|
||||||
|
"END\n"; // TODO : Check if newline is required?
|
||||||
|
|
||||||
|
// glBindProgramARB(GL_VERTEX_PROGRAM_ARB, VertexProgramIDs[0]);
|
||||||
|
DxbxCompileShader(szCode);
|
||||||
|
}
|
||||||
|
|
|
@ -34,7 +34,12 @@
|
||||||
#ifndef EMUNV2A_H
|
#ifndef EMUNV2A_H
|
||||||
#define EMUNV2A_H
|
#define EMUNV2A_H
|
||||||
|
|
||||||
|
#define NV2A_ADDR 0xFD000000
|
||||||
|
#define NV2A_SIZE 0x01000000
|
||||||
|
|
||||||
uint32_t EmuNV2A_Read32(uint32_t addr);
|
uint32_t EmuNV2A_Read32(uint32_t addr);
|
||||||
void EmuNV2A_Write32(uint32_t addr, uint32_t value);
|
void EmuNV2A_Write32(uint32_t addr, uint32_t value);
|
||||||
|
|
||||||
|
void InitOpenGLContext();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -44,46 +44,61 @@
|
||||||
#include "EmuNV2A.h"
|
#include "EmuNV2A.h"
|
||||||
|
|
||||||
|
|
||||||
uint8_t EmuX86_Read8(uint32_t addr)
|
uint32_t EmuX86_Read32(uint32_t addr)
|
||||||
{
|
{
|
||||||
EmuWarning("EmuX86_Read8: Unknown Read Address %02X", addr);
|
uint32_t value = 0;
|
||||||
return 0;
|
if (addr >= NV2A_ADDR && addr < NV2A_ADDR + NV2A_SIZE)
|
||||||
|
value = EmuNV2A_Read32(addr - NV2A_ADDR);
|
||||||
|
else
|
||||||
|
EmuWarning("EmuX86_Read32(0x%08X) = 0x%08X [Unknown address]", addr, value);
|
||||||
|
|
||||||
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t EmuX86_Read16(uint32_t addr)
|
uint16_t EmuX86_Read16(uint32_t addr)
|
||||||
{
|
{
|
||||||
EmuWarning("EmuX86_Read16: Unknown Read Address %04X", addr);
|
EmuWarning("EmuX86_Read16(0x%08X) Forwarding to EmuX86_Read32...", addr);
|
||||||
return 0;
|
uint16_t value;
|
||||||
|
if (addr & 2)
|
||||||
|
value = (uint16_t)EmuX86_Read32(addr - 2);
|
||||||
|
else
|
||||||
|
value = (uint16_t)(EmuX86_Read32(addr) >> 16);
|
||||||
|
|
||||||
|
EmuWarning("EmuX86_Read16(0x%08X) = 0x%04X", addr, value);
|
||||||
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t EmuX86_Read32(uint32_t addr)
|
uint8_t EmuX86_Read8(uint32_t addr)
|
||||||
{
|
{
|
||||||
if (addr >= 0xFD000000 && addr <= 0xFE000000) {
|
EmuWarning("EmuX86_Read8(0x%08X) Forwarding to EmuX86_Read16...", addr);
|
||||||
return EmuNV2A_Read32(addr & 0x00FFFFFF);
|
uint8_t value;
|
||||||
}
|
if (addr & 1)
|
||||||
|
value = (uint8_t)EmuX86_Read16(addr - 1);
|
||||||
|
else
|
||||||
|
value = (uint8_t)(EmuX86_Read16(addr) >> 8);
|
||||||
|
|
||||||
EmuWarning("EmuX86_Read32: Unknown Read Address %08X", addr);
|
EmuWarning("EmuX86_Read8(0x%08X) = 0x%02X", addr, value);
|
||||||
return 0;
|
return value;
|
||||||
}
|
|
||||||
|
|
||||||
void EmuX86_Write8(uint32_t addr, uint8_t value)
|
|
||||||
{
|
|
||||||
EmuWarning("EmuX86_Write8: Unknown Write Address %08X (value %02X)", addr, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EmuX86_Write16(uint32_t addr, uint16_t value)
|
|
||||||
{
|
|
||||||
EmuWarning("EmuX86_Write8: Unknown Write Address %08X (value %04X)", addr, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EmuX86_Write32(uint32_t addr, uint32_t value)
|
void EmuX86_Write32(uint32_t addr, uint32_t value)
|
||||||
{
|
{
|
||||||
if (addr >= 0xFD000000 && addr <= 0xFE000000) {
|
if (addr >= NV2A_ADDR && addr < NV2A_ADDR + NV2A_SIZE) {
|
||||||
EmuNV2A_Write32(addr & 0x00FFFFFF, value);
|
EmuNV2A_Write32(addr - NV2A_ADDR, value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EmuWarning("EmuX86_Write32: Unknown Write Address %08X (value %08X)", addr, value);
|
EmuWarning("EmuX86_Write32(0x%08X, 0x%04X) [Unknown address]", addr, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmuX86_Write16(uint32_t addr, uint16_t value)
|
||||||
|
{
|
||||||
|
EmuWarning("EmuX86_Write16(0x%08X, 0x%04X) [Unknown address]", addr, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmuX86_Write8(uint32_t addr, uint8_t value)
|
||||||
|
{
|
||||||
|
EmuWarning("EmuX86_Write8(0x%08X, 0x%02X) [Unknown address]", addr, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline DWORD* EmuX86_GetRegisterPointer(LPEXCEPTION_POINTERS e, Zydis::Register reg)
|
inline DWORD* EmuX86_GetRegisterPointer(LPEXCEPTION_POINTERS e, Zydis::Register reg)
|
||||||
|
|
Binary file not shown.
|
@ -64,6 +64,27 @@
|
||||||
#define NV_PBUS_PCI_NV_2 0x00000808
|
#define NV_PBUS_PCI_NV_2 0x00000808
|
||||||
# define NV_PBUS_PCI_NV_2_REVISION_ID 0x000000FF
|
# define NV_PBUS_PCI_NV_2_REVISION_ID 0x000000FF
|
||||||
# define NV_PBUS_PCI_NV_2_CLASS_CODE 0xFFFFFF00
|
# define NV_PBUS_PCI_NV_2_CLASS_CODE 0xFFFFFF00
|
||||||
|
#define NV_PBUS_PCI_NV_3 0x0000080C
|
||||||
|
#define NV_PBUS_PCI_NV_4 0x00000810
|
||||||
|
#define NV_PBUS_PCI_NV_5 0x00000814
|
||||||
|
#define NV_PBUS_PCI_NV_6 0x00000818
|
||||||
|
#define NV_PBUS_PCI_NV_7 0x0000081C
|
||||||
|
#define NV_PBUS_PCI_NV_11 0x0000082C
|
||||||
|
#define NV_PBUS_PCI_NV_12 0x00000830
|
||||||
|
#define NV_PBUS_PCI_NV_13 0x00000834
|
||||||
|
#define NV_PBUS_PCI_NV_14 0x00000838
|
||||||
|
#define NV_PBUS_PCI_NV_15 0x0000083C
|
||||||
|
#define NV_PBUS_PCI_NV_16 0x00000840
|
||||||
|
#define NV_PBUS_PCI_NV_17 0x00000844
|
||||||
|
#define NV_PBUS_PCI_NV_18 0x00000848
|
||||||
|
#define NV_PBUS_PCI_NV_19 0x0000084C
|
||||||
|
#define NV_PBUS_PCI_NV_20 0x00000850
|
||||||
|
#define NV_PBUS_PCI_NV_21 0x00000854
|
||||||
|
#define NV_PBUS_PCI_NV_22 0x00000858
|
||||||
|
#define NV_PBUS_PCI_NV_23 0x0000085C
|
||||||
|
#define NV_PBUS_PCI_NV_24 0x00000860
|
||||||
|
#define NV_PBUS_PCI_NV_25 0x00000864
|
||||||
|
#define NV_PBUS_PCI_NV_26 0x00000868
|
||||||
|
|
||||||
|
|
||||||
#define NV_PFIFO_INTR_0 0x00000100
|
#define NV_PFIFO_INTR_0 0x00000100
|
||||||
|
@ -592,11 +613,46 @@
|
||||||
#define NV_PTIMER_ALARM_0 0x00000420
|
#define NV_PTIMER_ALARM_0 0x00000420
|
||||||
|
|
||||||
|
|
||||||
|
#define NV_PFB_DEBUG_0 0x00000080
|
||||||
#define NV_PFB_CFG0 0x00000200
|
#define NV_PFB_CFG0 0x00000200
|
||||||
# define NV_PFB_CFG0_PART 0x00000003
|
# define NV_PFB_CFG0_PART 0x00000003
|
||||||
#define NV_PFB_CSTATUS 0x0000020C
|
#define NV_PFB_CSTATUS 0x0000020C
|
||||||
|
#define NV_PFB_REFCTRL 0x00000210
|
||||||
|
#define NV_PFB_NVM 0x00000214 // NV_PFB_NVM_MODE_DISABLE
|
||||||
|
#define NV_PFB_PIN 0x00000218
|
||||||
|
#define NV_PFB_PAD 0x0000021C
|
||||||
|
#define NV_PFB_TIMING0 0x00000220
|
||||||
|
#define NV_PFB_TIMING1 0x00000224
|
||||||
|
#define NV_PFB_TIMING2 0x00000228
|
||||||
|
#define NV_PFB_TILE 0x00000240
|
||||||
|
#define NV_PFB_TLIMIT 0x00000244
|
||||||
|
#define NV_PFB_TSIZE 0x00000248
|
||||||
|
#define NV_PFB_TSTATUS 0x0000024C
|
||||||
|
#define NV_PFB_MRS 0x000002C0
|
||||||
|
#define NV_PFB_EMRS 0x000002C4
|
||||||
|
#define NV_PFB_MRS_EXT 0x000002C8
|
||||||
|
#define NV_PFB_EMRS_EXT 0x000002CC
|
||||||
|
#define NV_PFB_REF 0x000002D0
|
||||||
|
#define NV_PFB_PRE 0x000002D4
|
||||||
|
#define NV_PFB_ZCOMP 0x00000300
|
||||||
|
#define NV_PFB_ARB_PREDIVIDER 0x00000328
|
||||||
|
#define NV_PFB_ARB_TIMEOUT 0x0000032C
|
||||||
|
#define NV_PFB_ARB_XFER_REM 0x00000334
|
||||||
|
#define NV_PFB_ARB_DIFF_BANK 0x00000338
|
||||||
|
#define NV_PFB_CLOSE_PAGE0 0x00000340
|
||||||
|
#define NV_PFB_CLOSE_PAGE1 0x00000344
|
||||||
|
#define NV_PFB_CLOSE_PAGE2 0x00000348
|
||||||
|
#define NV_PFB_BPARB 0x0000034C
|
||||||
|
#define NV_PFB_CMDQ0 0x00000350
|
||||||
|
#define NV_PFB_CMDQ1 0x00000354
|
||||||
|
#define NV_PFB_ILL_INSTR 0x00000360
|
||||||
|
#define NV_PFB_RT 0x00000400
|
||||||
|
#define NV_PFB_AUTOCLOSE 0x00000404
|
||||||
#define NV_PFB_WBC 0x00000410
|
#define NV_PFB_WBC 0x00000410
|
||||||
# define NV_PFB_WBC_FLUSH (1 << 16)
|
# define NV_PFB_WBC_FLUSH (1 << 16)
|
||||||
|
#define NV_PFB_CMDQ_PRT 0x00000418
|
||||||
|
#define NV_PFB_CPU_RRQ 0x00000420
|
||||||
|
#define NV_PFB_BYPASS 0x00000424
|
||||||
|
|
||||||
|
|
||||||
#define NV_PRAMDAC_NVPLL_COEFF 0x00000500
|
#define NV_PRAMDAC_NVPLL_COEFF 0x00000500
|
||||||
|
|
Loading…
Reference in New Issue