#line 1 "..\\tutorials\\tutorial06_keyboard_and_mouse\\tutorial06.cpp" // Include standard headers #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /*** *stdio.h - definitions/declarations for standard I/O routines * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file defines the structures, values, macros, and functions * used by the level 2 I/O ("standard I/O") routines. * [ANSI/System V] * * [Public] * ****/ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 22 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 23 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 42 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 46 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Note on use of "deprecate": * Various places in this header and other headers use __declspec(deprecate) or macros that have the term DEPRECATE in them. * We use deprecate here ONLY to signal the compiler to emit a warning about these items. The use of deprecate * should NOT be taken to imply that any standard committee has deprecated these functions from the relevant standards. * In fact, these functions are NOT deprecated from the standard. * * Full details can be found in our documentation by searching for "Security Enhancements in the CRT". */ #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" /*** *sal.h - markers for documenting the semantics of APIs * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * sal.h provides a set of annotations to describe how a function uses its * parameters - the assumptions it makes about them, and the guarantees it makes * upon finishing. * * [Public] * ****/ #pragma once /*========================================================================== The macros are defined in 3 layers: _In_\_Out_ Layer: ---------------- This layer provides the highest abstraction and its macros should be used in most cases. Its macros start with _In_, _Out_ or _Inout_. For the typical case they provide the most concise annotations. _Pre_\_Post_ Layer: ------------------ The macros of this layer only should be used when there is no suitable macro in the _In_\_Out_ layer. Its macros start with _Pre_, _Post_, _Ret_, _Deref_pre_ _Deref_post_ and _Deref_ret_. This layer provides the most flexibility for annotations. Implementation Abstraction Layer: -------------------------------- Macros from this layer should never be used directly. The layer only exists to hide the implementation of the annotation macros. Annotation Syntax: |--------------|----------|----------------|-----------------------------| | Usage | Nullness | ZeroTerminated | Extent | |--------------|----------|----------------|-----------------------------| | _In_ | <> | <> | <> | | _Out_ | opt_ | z_ | [byte]cap_[c_|x_]( size ) | | _Inout_ | | | [byte]count_[c_|x_]( size ) | | _Deref_out_ | | | ptrdiff_cap_( ptr ) | |--------------| | | ptrdiff_count_( ptr ) | | _Ret_ | | | | | _Deref_ret_ | | | | |--------------| | | | | _Pre_ | | | | | _Post_ | | | | | _Deref_pre_ | | | | | _Deref_post_ | | | | |--------------|----------|----------------|-----------------------------| Usage: ----- _In_, _Out_, _Inout_, _Pre_, _Post_, _Deref_pre_, _Deref_post_ are for formal parameters. _Ret_, _Deref_ret_ must be used for return values. Nullness: -------- If the pointer can be NULL the annotation contains _opt. If the macro does not contain '_opt' the pointer may not be NULL. String Type: ----------- _z: NullTerminated string for _In_ parameters the buffer must have the specified stringtype before the call for _Out_ parameters the buffer must have the specified stringtype after the call for _Inout_ parameters both conditions apply Extent Syntax: |------|---------------|---------------| | Unit | Writ\Readable | Argument Type | |------|---------------|---------------| | <> | cap_ | <> | | byte | count_ | c_ | | | | x_ | |------|---------------|---------------| 'cap' (capacity) describes the writable size of the buffer and is typically used with _Out_. The default unit is elements. Use 'bytecap' if the size is given in bytes 'count' describes the readable size of the buffer and is typically used with _In_. The default unit is elements. Use 'bytecount' if the size is given in bytes. Argument syntax for cap_, bytecap_, count_, bytecount_: (|return)[+n] e.g. cch, return, cb+2 If the buffer size is a constant expression use the c_ postfix. E.g. cap_c_(20), count_c_(MAX_PATH), bytecount_c_(16) If the buffer size is given by a limiting pointer use the ptrdiff_ versions of the macros. If the buffer size is neither a parameter nor a constant expression use the x_ postfix. e.g. bytecount_x_(num*size) x_ annotations accept any arbitrary string. No analysis can be done for x_ annotations but they at least tell the tool that the buffer has some sort of extent description. x_ annotations might be supported by future compiler versions. ============================================================================*/ // Disable expansion of SAL macros in non-Prefast mode to // improve compiler throughput. #line 145 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 148 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" // safeguard for MIDL and RC builds #line 154 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 158 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 1 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" /*** *SourceAnnotations.h - Source Annotation definitions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * Defines internal structures used by the Source Code analysis engine. * ****/ #pragma once #line 21 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" #line 23 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" #line 24 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" typedef unsigned __int64 size_t; #line 31 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" #line 33 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" #line 50 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" namespace vc_attributes { #line 55 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" enum YesNoMaybe { // Choose values that we can detect as invalid if they are or'd together No = 0x0fff0001, Maybe = 0x0fff0010, Yes = 0x0fff0100 }; typedef enum YesNoMaybe YesNoMaybe; enum AccessType { NoAccess = 0, Read = 1, Write = 2, ReadWrite = 3 }; typedef enum AccessType AccessType; [repeatable] [source_annotation_attribute( Parameter )] struct PreAttribute { PreAttribute(); #line 85 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" unsigned int Deref; YesNoMaybe Valid; YesNoMaybe Null; YesNoMaybe Tainted; AccessType Access; size_t ValidElementsConst; size_t ValidBytesConst; const wchar_t* ValidElements; const wchar_t* ValidBytes; const wchar_t* ValidElementsLength; const wchar_t* ValidBytesLength; size_t WritableElementsConst; size_t WritableBytesConst; const wchar_t* WritableElements; const wchar_t* WritableBytes; const wchar_t* WritableElementsLength; const wchar_t* WritableBytesLength; size_t ElementSizeConst; const wchar_t* ElementSize; YesNoMaybe NullTerminated; const wchar_t* Condition; }; [repeatable] [source_annotation_attribute( Parameter|ReturnValue )] struct PostAttribute { PostAttribute(); #line 116 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" unsigned int Deref; YesNoMaybe Valid; YesNoMaybe Null; YesNoMaybe Tainted; AccessType Access; size_t ValidElementsConst; size_t ValidBytesConst; const wchar_t* ValidElements; const wchar_t* ValidBytes; const wchar_t* ValidElementsLength; const wchar_t* ValidBytesLength; size_t WritableElementsConst; size_t WritableBytesConst; const wchar_t* WritableElements; const wchar_t* WritableBytes; const wchar_t* WritableElementsLength; const wchar_t* WritableBytesLength; size_t ElementSizeConst; const wchar_t* ElementSize; YesNoMaybe NullTerminated; YesNoMaybe MustCheck; const wchar_t* Condition; }; [source_annotation_attribute( Parameter )] struct FormatStringAttribute { FormatStringAttribute(); #line 147 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" const wchar_t* Style; const wchar_t* UnformattedAlternative; }; [repeatable] [source_annotation_attribute( ReturnValue )] struct InvalidCheckAttribute { InvalidCheckAttribute(); #line 159 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" long Value; }; [source_annotation_attribute( Method )] struct SuccessAttribute { SuccessAttribute(); #line 169 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" const wchar_t* Condition; }; [repeatable] [source_annotation_attribute( Parameter )] struct PreBoundAttribute { PreBoundAttribute(); #line 180 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" unsigned int Deref; }; [repeatable] [source_annotation_attribute( Parameter|ReturnValue )] struct PostBoundAttribute { PostBoundAttribute(); #line 190 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" unsigned int Deref; }; [repeatable] [source_annotation_attribute( Parameter )] struct PreRangeAttribute { PreRangeAttribute(); #line 200 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" unsigned int Deref; const char* MinVal; const char* MaxVal; }; [repeatable] [source_annotation_attribute( Parameter|ReturnValue )] struct PostRangeAttribute { PostRangeAttribute(); #line 212 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" unsigned int Deref; const char* MinVal; const char* MaxVal; }; #line 218 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" }; // namespace vc_attributes #line 222 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" typedef ::vc_attributes::YesNoMaybe SA_YesNoMaybe; const ::vc_attributes::YesNoMaybe SA_Yes = ::vc_attributes::Yes; const ::vc_attributes::YesNoMaybe SA_No = ::vc_attributes::No; const ::vc_attributes::YesNoMaybe SA_Maybe = ::vc_attributes::Maybe; typedef ::vc_attributes::AccessType SA_AccessType; const ::vc_attributes::AccessType SA_NoAccess = ::vc_attributes::NoAccess; const ::vc_attributes::AccessType SA_Read = ::vc_attributes::Read; const ::vc_attributes::AccessType SA_Write = ::vc_attributes::Write; const ::vc_attributes::AccessType SA_ReadWrite = ::vc_attributes::ReadWrite; typedef ::vc_attributes::PreAttribute SA_Pre; typedef ::vc_attributes::PostAttribute SA_Post; typedef ::vc_attributes::FormatStringAttribute SA_FormatString; typedef ::vc_attributes::InvalidCheckAttribute SA_InvalidCheck; /*???*/ typedef ::vc_attributes::SuccessAttribute SA_Success; typedef ::vc_attributes::PreBoundAttribute SA_PreBound; typedef ::vc_attributes::PostBoundAttribute SA_PostBound; typedef ::vc_attributes::PreRangeAttribute SA_PreRange; typedef ::vc_attributes::PostRangeAttribute SA_PostRange; #line 266 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" #line 282 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" #line 284 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" // Windows SDK Update Vista Beta2 (June 2006): __analysis_assume defined by specstrings.h // #define __analysis_assume(expr) #line 305 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" #line 308 "c:\\program files (x86)\\microsoft visual studio 10.0\\vc\\include\\codeanalysis\\sourceannotations.h" #line 161 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 162 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" //============================================================================ // _In_\_Out_ Layer: //============================================================================ // 'in' parameters -------------------------- // input pointer parameter // e.g. void SetPoint( _In_ const POINT* pPT ); // nullterminated 'in' parameters. // e.g. void CopyStr( _In_z_ const char* szFrom, _Out_z_cap_(cchTo) char* szTo, size_t cchTo ); // 'input' buffers with given size // e.g. void SetCharRange( _In_count_(cch) const char* rgch, size_t cch ) // valid buffer extent described by another parameter // valid buffer extent described by a constant extression // nullterminated 'input' buffers with given size // e.g. void SetCharRange( _In_count_(cch) const char* rgch, size_t cch ) // nullterminated valid buffer extent described by another parameter // nullterminated valid buffer extent described by a constant extression // buffer capacity is described by another pointer // e.g. void Foo( _In_ptrdiff_count_(pchMax) const char* pch, const char* pchMax ) { while pch < pchMax ) pch++; } // 'x' version for complex expressions that are not supported by the current compiler version // e.g. void Set3ColMatrix( _In_count_x_(3*cRows) const Elem* matrix, int cRows ); // 'out' parameters -------------------------- // output pointer parameter // e.g. void GetPoint( _Out_ POINT* pPT ); // 'out' with buffer size // e.g. void GetIndeces( _Out_cap_(cIndeces) int* rgIndeces, size_t cIndices ); // buffer capacity is described by another parameter // buffer capacity is described by a constant expression // buffer capacity is described by another parameter multiplied by a constant expression // buffer capacity is described by another pointer // e.g. void Foo( _Out_ptrdiff_cap_(pchMax) char* pch, const char* pchMax ) { while pch < pchMax ) pch++; } // buffer capacity is described by a complex expression // a zero terminated string is filled into a buffer of given capacity // e.g. void CopyStr( _In_z_ const char* szFrom, _Out_z_cap_(cchTo) char* szTo, size_t cchTo ); // buffer capacity is described by another parameter // buffer capacity is described by a constant expression // buffer capacity is described by a complex expression // a zero terminated string is filled into a buffer of given capacity // e.g. size_t CopyCharRange( _In_count_(cchFrom) const char* rgchFrom, size_t cchFrom, _Out_cap_post_count_(cchTo,return)) char* rgchTo, size_t cchTo ); // a zero terminated string is filled into a buffer of given capacity // e.g. size_t CopyStr( _In_z_ const char* szFrom, _Out_z_cap_post_count_(cchTo,return+1) char* szTo, size_t cchTo ); // only use with dereferenced arguments e.g. '*pcch' // e.g. GetString( _Out_z_capcount_(*pLen+1) char* sz, size_t* pLen ); // inout parameters ---------------------------- // inout pointer parameter // e.g. void ModifyPoint( _Inout_ POINT* pPT ); // string buffers // e.g. void toupper( _Inout_z_ char* sz ); // 'inout' buffers with initialized elements before and after the call // e.g. void ModifyIndices( _Inout_count_(cIndices) int* rgIndeces, size_t cIndices ); // nullterminated 'inout' buffers with initialized elements before and after the call // e.g. void ModifyIndices( _Inout_count_(cIndices) int* rgIndeces, size_t cIndices ); // e.g. void AppendToLPSTR( _In_ LPCSTR szFrom, _Inout_cap_(cchTo) LPSTR* szTo, size_t cchTo ); // inout string buffers with writable size // e.g. void AppendStr( _In_z_ const char* szFrom, _Inout_z_cap_(cchTo) char* szTo, size_t cchTo ); // return values ------------------------------- // returning pointers to valid objects // More _Ret_ annotations are defined below // Pointer to pointers ------------------------- // e.g. HRESULT HrCreatePoint( _Deref_out_opt_ POINT** ppPT ); // e.g. void CloneString( _In_z_ const wchar_t* wzFrom, _Deref_out_z_ wchar_t** pWzTo ); // More _Deref_ annotations are defined below // Other annotations // Check the return value of a function e.g. _Check_return_ ErrorCode Foo(); // e.g. MyPrintF( _Printf_format_string_ const wchar_t* wzFormat, ... ); // indicates whether post conditions apply // annotations to express 'boundedness' of integral value parameter // annotations to express upper and lower bounds of integral value parameter //============================================================================ // _Pre_\_Post_ Layer: //============================================================================ // // _Pre_ annotation --- // // describing conditions that must be met before the call of the function // e.g. int strlen( _Pre_z_ const char* sz ); // buffer is a zero terminated string // e.g. void FreeMemory( _Pre_bytecap_(cb) _Post_ptr_invalid_ void* pv, size_t cb ); // buffer capacity described by another parameter // buffer capacity described by a constant expression // buffer capacity is described by another parameter multiplied by a constant expression // buffer capacity described by size of other buffer, only used by dangerous legacy APIs // e.g. int strcpy(_Pre_cap_for_(src) char* dst, const char* src); // buffer capacity described by a complex condition // buffer capacity described by the difference to another pointer parameter // e.g. void AppendStr( _Pre_z_ const char* szFrom, _Pre_z_cap_(cchTo) _Post_z_ char* szTo, size_t cchTo ); // known capacity and valid but unknown readable extent // e.g. void AppendCharRange( _Pre_count_(cchFrom) const char* rgFrom, size_t cchFrom, _Out_z_cap_(cchTo) char* szTo, size_t cchTo ); // Valid buffer extent described by another parameter // Valid buffer extent described by a constant expression // Valid buffer extent described by a complex expression // Valid buffer extent described by the difference to another pointer parameter // valid size unknown or indicated by type (e.g.:LPSTR) // used with allocated but not yet initialized objects // restrict access rights // // _Post_ annotations --- // // describing conditions that hold after the function call // void CopyStr( _In_z_ const char* szFrom, _Pre_cap_(cch) _Post_z_ char* szFrom, size_t cchFrom ); // buffer will be a zero-terminated string after the call // char * strncpy(_Out_cap_(_Count) _Post_maybez_ char * _Dest, _In_z_ const char * _Source, _In_ size_t _Count) // buffer maybe zero-terminated after the call // e.g. SIZE_T HeapSize( _In_ HANDLE hHeap, DWORD dwFlags, _Pre_notnull_ _Post_bytecap_(return) LPCVOID lpMem ); // e.g. int strlen( _In_z_ _Post_count_(return+1) const char* sz ); // e.g. size_t CopyStr( _In_z_ const char* szFrom, _Pre_cap_(cch) _Post_z_count_(return+1) char* szFrom, size_t cchFrom ); // e.g. void free( _Post_ptr_invalid_ void* pv ); // e.g. HRESULT InitStruct( _Post_valid_ Struct* pobj ); // e.g. void ThrowExceptionIfNull( _Post_notnull_ const void* pv ); // // _Ret_ annotations // // describing conditions that hold for return values after the call // e.g. _Ret_z_ CString::operator const wchar_t*() const throw(); // e.g. _Ret_opt_bytecap_(cb) void* AllocateMemory( size_t cb ); // Buffer capacity is described by another parameter // Buffer capacity is described by a constant expression // Buffer capacity is described by a complex condition // return value is nullterminated and capacity is given by another parameter // e.g. _Ret_opt_bytecount_(cb) void* AllocateZeroInitializedMemory( size_t cb ); // Valid Buffer extent is described by another parameter // Valid Buffer extent is described by a constant expression // Valid Buffer extent is described by a complex expression // return value is nullterminated and length is given by another parameter // e.g. _Ret_opt_valid_ LPSTR void* CloneSTR( _Pre_valid_ LPSTR src ); // used with allocated but not yet initialized objects // // _Deref_pre_ --- // // describing conditions for array elements of dereferenced pointer parameters that must be met before the call // e.g. void SaveStringArray( _In_count_(cStrings) _Deref_pre_z_ const wchar_t* const rgpwch[] ); // e.g. void FillInArrayOfStr32( _In_count_(cStrings) _Deref_pre_cap_c_(32) _Deref_post_z_ wchar_t* const rgpwch[] ); // buffer capacity is described by another parameter // buffer capacity is described by a constant expression // buffer capacity is described by a complex condition // convenience macros for nullterminated buffers with given capacity // known capacity and valid but unknown readable extent // e.g. void SaveMatrix( _In_count_(n) _Deref_pre_count_(n) const Elem** matrix, size_t n ); // valid buffer extent is described by another parameter // valid buffer extent is described by a constant expression // valid buffer extent is described by a complex expression // e.g. void PrintStringArray( _In_count_(cElems) _Deref_pre_valid_ LPCSTR rgStr[], size_t cElems ); // restrict access rights // // _Deref_post_ --- // // describing conditions for array elements or dereferenced pointer parameters that hold after the call // e.g. void CloneString( _In_z_ const Wchar_t* wzIn _Out_ _Deref_post_z_ wchar_t** pWzOut ); // e.g. HRESULT HrAllocateMemory( size_t cb, _Out_ _Deref_post_bytecap_(cb) void** ppv ); // buffer capacity is described by another parameter // buffer capacity is described by a constant expression // buffer capacity is described by a complex expression // convenience macros for nullterminated buffers with given capacity // known capacity and valid but unknown readable extent // e.g. HRESULT HrAllocateZeroInitializedMemory( size_t cb, _Out_ _Deref_post_bytecount_(cb) void** ppv ); // valid buffer extent is described by another parameter // buffer capacity is described by a constant expression // buffer capacity is described by a complex expression // e.g. void GetStrings( _Out_count_(cElems) _Deref_post_valid_ LPSTR const rgStr[], size_t cElems ); // // _Deref_ret_ --- // // // special _Deref_ --- // // Convenience macros for more concise annotations // // _Pre_post --- // // describing conditions that hold before and after the function call // // _Deref_ --- // // short version for _Deref_pre_ _Deref_post_ // describing conditions for array elements or dereferenced pointer parameters that hold before and after the call // // _Deref_ // // used with references to arrays //============================================================================ // Implementation Layer: //============================================================================ #line 1034 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 1130 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 1230 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 1282 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" // This section contains the deprecated annotations /* ------------------------------------------------------------------------------- Introduction sal.h provides a set of annotations to describe how a function uses its parameters - the assumptions it makes about them, and the guarantees it makes upon finishing. Annotations may be placed before either a function parameter's type or its return type, and describe the function's behavior regarding the parameter or return value. There are two classes of annotations: buffer annotations and advanced annotations. Buffer annotations describe how functions use their pointer parameters, and advanced annotations either describe complex/unusual buffer behavior, or provide additional information about a parameter that is not otherwise expressible. ------------------------------------------------------------------------------- Buffer Annotations The most important annotations in sal.h provide a consistent way to annotate buffer parameters or return values for a function. Each of these annotations describes a single buffer (which could be a string, a fixed-length or variable-length array, or just a pointer) that the function interacts with: where it is, how large it is, how much is initialized, and what the function does with it. The appropriate macro for a given buffer can be constructed using the table below. Just pick the appropriate values from each category, and combine them together with a leading underscore. Some combinations of values do not make sense as buffer annotations. Only meaningful annotations can be added to your code; for a list of these, see the buffer annotation definitions section. Only a single buffer annotation should be used for each parameter. |------------|------------|---------|--------|----------|----------|---------------| | Level | Usage | Size | Output | NullTerm | Optional | Parameters | |------------|------------|---------|--------|----------|----------|---------------| | <> | <> | <> | <> | _z | <> | <> | | _deref | _in | _ecount | _full | _nz | _opt | (size) | | _deref_opt | _out | _bcount | _part | | | (size,length) | | | _inout | | | | | | | | | | | | | | |------------|------------|---------|--------|----------|----------|---------------| Level: Describes the buffer pointer's level of indirection from the parameter or return value 'p'. <> : p is the buffer pointer. _deref : *p is the buffer pointer. p must not be NULL. _deref_opt : *p may be the buffer pointer. p may be NULL, in which case the rest of the annotation is ignored. Usage: Describes how the function uses the buffer. <> : The buffer is not accessed. If used on the return value or with _deref, the function will provide the buffer, and it will be uninitialized at exit. Otherwise, the caller must provide the buffer. This should only be used for alloc and free functions. _in : The function will only read from the buffer. The caller must provide the buffer and initialize it. Cannot be used with _deref. _out : The function will only write to the buffer. If used on the return value or with _deref, the function will provide the buffer and initialize it. Otherwise, the caller must provide the buffer, and the function will initialize it. _inout : The function may freely read from and write to the buffer. The caller must provide the buffer and initialize it. If used with _deref, the buffer may be reallocated by the function. Size: Describes the total size of the buffer. This may be less than the space actually allocated for the buffer, in which case it describes the accessible amount. <> : No buffer size is given. If the type specifies the buffer size (such as with LPSTR and LPWSTR), that amount is used. Otherwise, the buffer is one element long. Must be used with _in, _out, or _inout. _ecount : The buffer size is an explicit element count. _bcount : The buffer size is an explicit byte count. Output: Describes how much of the buffer will be initialized by the function. For _inout buffers, this also describes how much is initialized at entry. Omit this category for _in buffers; they must be fully initialized by the caller. <> : The type specifies how much is initialized. For instance, a function initializing an LPWSTR must NULL-terminate the string. _full : The function initializes the entire buffer. _part : The function initializes part of the buffer, and explicitly indicates how much. NullTerm: States if the present of a '\0' marks the end of valid elements in the buffer. _z : A '\0' indicated the end of the buffer _nz : The buffer may not be null terminated and a '\0' does not indicate the end of the buffer. Optional: Describes if the buffer itself is optional. <> : The pointer to the buffer must not be NULL. _opt : The pointer to the buffer might be NULL. It will be checked before being dereferenced. Parameters: Gives explicit counts for the size and length of the buffer. <> : There is no explicit count. Use when neither _ecount nor _bcount is used. (size) : Only the buffer's total size is given. Use with _ecount or _bcount but not _part. (size,length) : The buffer's total size and initialized length are given. Use with _ecount_part and _bcount_part. ------------------------------------------------------------------------------- Buffer Annotation Examples LWSTDAPI_(BOOL) StrToIntExA( LPCSTR pszString, -- No annotation required, const implies __in. DWORD dwFlags, __out int *piRet -- A pointer whose dereference will be filled in. ); void MyPaintingFunction( __in HWND hwndControl, -- An initialized read-only parameter. __in_opt HDC hdcOptional, -- An initialized read-only parameter that might be NULL. __inout IPropertyStore *ppsStore -- An initialized parameter that may be freely used -- and modified. ); LWSTDAPI_(BOOL) PathCompactPathExA( __out_ecount(cchMax) LPSTR pszOut, -- A string buffer with cch elements that will -- be NULL terminated on exit. LPCSTR pszSrc, -- No annotation required, const implies __in. UINT cchMax, DWORD dwFlags ); HRESULT SHLocalAllocBytes( size_t cb, __deref_bcount(cb) T **ppv -- A pointer whose dereference will be set to an -- uninitialized buffer with cb bytes. ); __inout_bcount_full(cb) : A buffer with cb elements that is fully initialized at entry and exit, and may be written to by this function. __out_ecount_part(count, *countOut) : A buffer with count elements that will be partially initialized by this function. The function indicates how much it initialized by setting *countOut. ------------------------------------------------------------------------------- Advanced Annotations Advanced annotations describe behavior that is not expressible with the regular buffer macros. These may be used either to annotate buffer parameters that involve complex or conditional behavior, or to enrich existing annotations with additional information. __success(expr) f : indicates whether function f succeeded or not. If is true at exit, all the function's guarantees (as given by other annotations) must hold. If is false at exit, the caller should not expect any of the function's guarantees to hold. If not used, the function must always satisfy its guarantees. Added automatically to functions that indicate success in standard ways, such as by returning an HRESULT. __nullterminated p : Pointer p is a buffer that may be read or written up to and including the first NULL character or pointer. May be used on typedefs, which marks valid (properly initialized) instances of that type as being NULL-terminated. __nullnullterminated p : Pointer p is a buffer that may be read or written up to and including the first sequence of two NULL characters or pointers. May be used on typedefs, which marks valid instances of that type as being double-NULL terminated. __reserved v : Value v must be 0/NULL, reserved for future use. __checkReturn v : Return value v must not be ignored by callers of this function. __typefix(ctype) v : Value v should be treated as an instance of ctype, rather than its declared type. __override f : Specify C#-style 'override' behaviour for overriding virtual methods. __callback f : Function f can be used as a function pointer. __format_string p : Pointer p is a string that contains % markers in the style of printf. __blocksOn(resource) f : Function f blocks on the resource 'resource'. __fallthrough : Annotates switch statement labels where fall-through is desired, to distinguish from forgotten break statements. ------------------------------------------------------------------------------- Advanced Annotation Examples __success(return == TRUE) LWSTDAPI_(BOOL) PathCanonicalizeA(__out_ecount(MAX_PATH) LPSTR pszBuf, LPCSTR pszPath) : pszBuf is only guaranteed to be NULL-terminated when TRUE is returned. typedef __nullterminated WCHAR* LPWSTR : Initialized LPWSTRs are NULL-terminated strings. __out_ecount(cch) __typefix(LPWSTR) void *psz : psz is a buffer parameter which will be a NULL-terminated WCHAR string at exit, and which initially contains cch WCHARs. ------------------------------------------------------------------------------- */ #line 1494 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" extern "C" { #line 1500 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" /* ------------------------------------------------------------------------------- Helper Macro Definitions These express behavior common to many of the high-level annotations. DO NOT USE THESE IN YOUR CODE. ------------------------------------------------------------------------------- */ /* The helper annotations are only understood by the compiler version used by various defect detection tools. When the regular compiler is running, they are defined into nothing, and do not affect the compiled code. */ #line 1721 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 1755 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" /* ------------------------------------------------------------------------------- Buffer Annotation Definitions Any of these may be used to directly annotate functions, but only one should be used for each parameter. To determine which annotation to use for a given buffer, use the table in the buffer annotations section. ------------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------------- Advanced Annotation Definitions Any of these may be used to directly annotate functions, and may be used in combination with each other or with regular buffer macros. For an explanation of each annotation, see the advanced annotations section. ------------------------------------------------------------------------------- */ #line 1985 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 1992 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 1993 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" } #line 1997 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\sal.h" #line 57 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #pragma pack(push,8) #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" /*** *vadefs.h - defines helper macros for stdarg.h * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This is a helper file for stdarg.h * * [Public] * ****/ #pragma once #line 21 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) extern "C" { #line 34 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 43 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" typedef unsigned __int64 uintptr_t; #line 50 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 52 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" typedef char * va_list; #line 59 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 61 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 67 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 79 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 82 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 96 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 104 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 119 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" extern void __cdecl __va_start(va_list *, ...); #line 141 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" } #line 145 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #pragma pack(pop) #line 149 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\vadefs.h" #line 64 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" extern "C" { #line 68 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* preprocessor string helpers */ #line 74 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 79 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 84 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 92 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _CRTIMP_NOIA64 */ #line 99 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 101 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 102 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _CRTIMP2 */ #line 111 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 112 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _CRTIMP_ALTERNATIVE */ #line 123 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 126 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 127 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _MRTIMP */ #line 133 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _MRTIMP2 */ #line 143 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 145 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 153 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 154 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 159 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 161 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 162 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 167 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 169 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 170 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 175 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 177 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 178 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 189 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 190 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 197 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 198 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* define a specific constant for mixed mode */ /* Define __STDC_SECURE_LIB__ */ /* Retain__GOT_SECURE_LIB__ for back-compat */ /* Default value for __STDC_WANT_SECURE_LIB__ is 1 */ #line 216 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Turn off warnings if __STDC_WANT_SECURE_LIB__ is 0 */ #line 221 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* See note on use of deprecate at the top of this file */ /* Define _CRT_INSECURE_DEPRECATE */ /* See note on use of deprecate at the top of this file */ #line 230 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 237 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 238 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _CRT_INSECURE_DEPRECATE_MEMORY */ /* See note on use of deprecate at the top of this file */ #line 244 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 251 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 252 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _CRT_INSECURE_DEPRECATE_GLOBALS */ /* See note on use of deprecate at the top of this file */ #line 259 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 260 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 265 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 268 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 270 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 271 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 272 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _CRT_MANAGED_HEAP_DEPRECATE */ /* See note on use of deprecate at the top of this file */ #line 278 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 289 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 291 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 292 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 293 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Change the __FILL_BUFFER_PATTERN to 0xFE to fix security function buffer overrun detection bug */ /* obsolete stuff */ /* Define _CRT_OBSOLETE */ /* See note on use of deprecate at the top of this file */ #line 304 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 311 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 312 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* jit64 instrinsic stuff */ #line 320 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 322 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 323 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define overload switches */ #line 333 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 334 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT is ignored if _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES is set to 0 */ #line 344 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 345 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 353 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 358 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 359 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 368 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 369 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 378 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 379 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 383 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _CRT_NONSTDC_DEPRECATE */ /* See note on use of deprecate at the top of this file */ #line 389 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 394 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 396 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 397 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef size_t rsize_t; #line 412 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 413 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef __int64 intptr_t; #line 420 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 422 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef __int64 ptrdiff_t; #line 438 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 440 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef unsigned short wint_t; typedef unsigned short wctype_t; #line 451 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef int errno_t; #line 471 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef long __time32_t; /* 32-bit time value */ #line 476 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef __int64 __time64_t; /* 64-bit time value */ #line 481 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef __time64_t time_t; /* time value */ #line 488 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 490 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 498 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 499 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 506 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 507 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 512 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 514 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 515 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* Define _CRTNOALIAS, _CRTRESTRICT */ #line 521 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 525 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 530 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 532 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 533 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* error reporting helpers */ /* invalid_parameter */ __declspec(dllimport) void __cdecl _invalid_parameter( const wchar_t *, const wchar_t *, const wchar_t *, unsigned int, uintptr_t); #line 548 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" __declspec(dllimport) __declspec(noreturn) void __cdecl _invoke_watson( const wchar_t *, const wchar_t *, const wchar_t *, unsigned int, uintptr_t); #line 556 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 569 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* _TRUNCATE */ #line 577 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /* helper macros for cpp overloads */ #line 740 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 741 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 1807 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 1951 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 1952 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" struct threadlocaleinfostruct; struct threadmbcinfostruct; typedef struct threadlocaleinfostruct * pthreadlocinfo; typedef struct threadmbcinfostruct * pthreadmbcinfo; struct __lc_time_data; typedef struct localeinfo_struct { pthreadlocinfo locinfo; pthreadmbcinfo mbcinfo; } _locale_tstruct, *_locale_t; typedef struct tagLC_ID { unsigned short wLanguage; unsigned short wCountry; unsigned short wCodePage; } LC_ID, *LPLC_ID; #line 1973 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" typedef struct threadlocaleinfostruct { int refcount; unsigned int lc_codepage; unsigned int lc_collate_cp; unsigned long lc_handle[6]; /* LCID */ LC_ID lc_id[6]; struct { char *locale; wchar_t *wlocale; int *refcount; int *wrefcount; } lc_category[6]; int lc_clike; int mb_cur_max; int * lconv_intl_refcount; int * lconv_num_refcount; int * lconv_mon_refcount; struct lconv * lconv; int * ctype1_refcount; unsigned short * ctype1; const unsigned short * pctype; const unsigned char * pclmap; const unsigned char * pcumap; struct __lc_time_data * lc_time_curr; } threadlocinfo; #line 2002 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" } #line 2006 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 2010 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 2012 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 2016 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 2018 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 2022 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 2024 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 2031 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 2035 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #pragma pack(pop) #line 2039 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" #line 21 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) extern "C" { #line 31 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* Buffered I/O macros */ /* * Default number of supported streams. _NFILE is confusing and obsolete, but * supported anyway for backwards compatibility. */ /* * Number of entries in _iob[] (declared below). Note that _NSTREAM_ must be * greater than or equal to _IOB_ENTRIES. */ struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; }; typedef struct _iobuf FILE; #line 69 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* Directory where temporary files may be created. */ #line 80 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* L_tmpnam = length of string _P_tmpdir * + 1 if _P_tmpdir does not end in "/" or "\", else 0 * + 12 (for the filename string) * + 1 (for the null terminator) * L_tmpnam_s = length of string _P_tmpdir * + 1 if _P_tmpdir does not end in "/" or "\", else 0 * + 16 (for the filename string) * + 1 (for the null terminator) */ #line 94 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* Seek method constants */ #line 116 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* Define NULL pointer value */ #line 124 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 125 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* Declare _iob[] array */ __declspec(dllimport) FILE * __cdecl __iob_func(void); #line 131 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* Define file position type */ #line 142 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* At this point we could switch both to long long, but we won't do that till next version to avoid any potential compat issues */ typedef __int64 fpos_t; #line 151 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 152 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 155 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 162 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* constants used by _set_output_format */ /* Function prototypes */ __declspec(dllimport) int __cdecl _filbuf( FILE * _File ); __declspec(dllimport) int __cdecl _flsbuf( int _Ch, FILE * _File); __declspec(dllimport) FILE * __cdecl _fsopen( const char * _Filename, const char * _Mode, int _ShFlag); #line 194 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) void __cdecl clearerr( FILE * _File); __declspec(dllimport) errno_t __cdecl clearerr_s( FILE * _File ); #line 199 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl fclose( FILE * _File); __declspec(dllimport) int __cdecl _fcloseall(void); __declspec(dllimport) FILE * __cdecl _fdopen( int _FileHandle, const char * _Mode); #line 207 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl feof( FILE * _File); __declspec(dllimport) int __cdecl ferror( FILE * _File); __declspec(dllimport) int __cdecl fflush( FILE * _File); __declspec(dllimport) int __cdecl fgetc( FILE * _File); __declspec(dllimport) int __cdecl _fgetchar(void); __declspec(dllimport) int __cdecl fgetpos( FILE * _File , fpos_t * _Pos); __declspec(dllimport) char * __cdecl fgets( char * _Buf, int _MaxCount, FILE * _File); __declspec(dllimport) int __cdecl _fileno( FILE * _File); #line 221 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 226 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) char * __cdecl _tempnam( const char * _DirName, const char * _FilePrefix); #line 232 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _flushall(void); __declspec(dllimport) FILE * __cdecl fopen( const char * _Filename, const char * _Mode); __declspec(dllimport) errno_t __cdecl fopen_s( FILE ** _File, const char * _Filename, const char * _Mode); #line 238 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl fprintf( FILE * _File, const char * _Format, ...); __declspec(dllimport) int __cdecl fprintf_s( FILE * _File, const char * _Format, ...); #line 242 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl fputc( int _Ch, FILE * _File); __declspec(dllimport) int __cdecl _fputchar( int _Ch); __declspec(dllimport) int __cdecl fputs( const char * _Str, FILE * _File); __declspec(dllimport) size_t __cdecl fread( void * _DstBuf, size_t _ElementSize, size_t _Count, FILE * _File); __declspec(dllimport) size_t __cdecl fread_s( void * _DstBuf, size_t _DstSize, size_t _ElementSize, size_t _Count, FILE * _File); #line 249 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) FILE * __cdecl freopen( const char * _Filename, const char * _Mode, FILE * _File); __declspec(dllimport) errno_t __cdecl freopen_s( FILE ** _File, const char * _Filename, const char * _Mode, FILE * _OldFile); #line 253 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl fscanf( FILE * _File, const char * _Format, ...); __declspec(dllimport) int __cdecl _fscanf_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); #pragma warning(push) #pragma warning(disable:6530) __declspec(dllimport) int __cdecl fscanf_s( FILE * _File, const char * _Format, ...); #line 260 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _fscanf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); #pragma warning(pop) __declspec(dllimport) int __cdecl fsetpos( FILE * _File, const fpos_t * _Pos); __declspec(dllimport) int __cdecl fseek( FILE * _File, long _Offset, int _Origin); __declspec(dllimport) long __cdecl ftell( FILE * _File); __declspec(dllimport) int __cdecl _fseeki64( FILE * _File, __int64 _Offset, int _Origin); __declspec(dllimport) __int64 __cdecl _ftelli64( FILE * _File); __declspec(dllimport) size_t __cdecl fwrite( const void * _Str, size_t _Size, size_t _Count, FILE * _File); __declspec(dllimport) int __cdecl getc( FILE * _File); __declspec(dllimport) int __cdecl getchar(void); __declspec(dllimport) int __cdecl _getmaxstdio(void); __declspec(dllimport) char * __cdecl gets_s( char * _Buf, rsize_t _Size); #line 276 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" extern "C++" { template inline char * __cdecl gets_s(char (&_Buffer)[_Size]) throw() { return gets_s(_Buffer, _Size); } } __declspec(dllimport) char * __cdecl gets( char *_Buffer); int __cdecl _getw( FILE * _File); __declspec(dllimport) void __cdecl perror( const char * _ErrMsg); #line 283 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _pclose( FILE * _File); __declspec(dllimport) FILE * __cdecl _popen( const char * _Command, const char * _Mode); __declspec(dllimport) int __cdecl printf( const char * _Format, ...); __declspec(dllimport) int __cdecl printf_s( const char * _Format, ...); #line 289 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl putc( int _Ch, FILE * _File); __declspec(dllimport) int __cdecl putchar( int _Ch); __declspec(dllimport) int __cdecl puts( const char * _Str); __declspec(dllimport) int __cdecl _putw( int _Word, FILE * _File); __declspec(dllimport) int __cdecl remove( const char * _Filename); __declspec(dllimport) int __cdecl rename( const char * _OldFilename, const char * _NewFilename); __declspec(dllimport) int __cdecl _unlink( const char * _Filename); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_unlink" ". See online help for details.")) __declspec(dllimport) int __cdecl unlink( const char * _Filename); #line 301 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 302 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) void __cdecl rewind( FILE * _File); __declspec(dllimport) int __cdecl _rmtmp(void); __declspec(dllimport) int __cdecl scanf( const char * _Format, ...); __declspec(dllimport) int __cdecl _scanf_l( const char * _Format, _locale_t _Locale, ...); #pragma warning(push) #pragma warning(disable:6530) __declspec(dllimport) int __cdecl scanf_s( const char * _Format, ...); #line 311 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _scanf_s_l( const char * _Format, _locale_t _Locale, ...); #pragma warning(pop) __declspec(dllimport) void __cdecl setbuf( FILE * _File, char * _Buffer); __declspec(dllimport) int __cdecl _setmaxstdio( int _Max); __declspec(dllimport) unsigned int __cdecl _set_output_format( unsigned int _Format); __declspec(dllimport) unsigned int __cdecl _get_output_format(void); __declspec(dllimport) int __cdecl setvbuf( FILE * _File, char * _Buf, int _Mode, size_t _Size); __declspec(dllimport) int __cdecl _snprintf_s( char * _DstBuf, size_t _SizeInBytes, size_t _MaxCount, const char * _Format, ...); extern "C++" { __pragma(warning(push)); __pragma(warning(disable: 4793)); template inline int __cdecl _snprintf_s( char (&_Dest)[_Size], size_t _MaxCount, const char * _Format, ...) throw() { va_list _ArgList; ( __va_start(&_ArgList, _Format) ); return _vsnprintf_s(_Dest, _Size, _MaxCount, _Format, _ArgList); } __pragma(warning(pop)); } __declspec(dllimport) int __cdecl sprintf_s( char * _DstBuf, size_t _SizeInBytes, const char * _Format, ...); #line 323 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" extern "C++" { __pragma(warning(push)); __pragma(warning(disable: 4793)); template inline int __cdecl sprintf_s( char (&_Dest)[_Size], const char * _Format, ...) throw() { va_list _ArgList; ( __va_start(&_ArgList, _Format) ); return vsprintf_s(_Dest, _Size, _Format, _ArgList); } __pragma(warning(pop)); } __declspec(dllimport) int __cdecl _scprintf( const char * _Format, ...); __declspec(dllimport) int __cdecl sscanf( const char * _Src, const char * _Format, ...); __declspec(dllimport) int __cdecl _sscanf_l( const char * _Src, const char * _Format, _locale_t _Locale, ...); #pragma warning(push) #pragma warning(disable:6530) __declspec(dllimport) int __cdecl sscanf_s( const char * _Src, const char * _Format, ...); #line 332 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _sscanf_s_l( const char * _Src, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snscanf( const char * _Src, size_t _MaxCount, const char * _Format, ...); __declspec(dllimport) int __cdecl _snscanf_l( const char * _Src, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snscanf_s( const char * _Src, size_t _MaxCount, const char * _Format, ...); __declspec(dllimport) int __cdecl _snscanf_s_l( const char * _Src, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); #pragma warning(pop) __declspec(dllimport) FILE * __cdecl tmpfile(void); __declspec(dllimport) errno_t __cdecl tmpfile_s( FILE ** _File); __declspec(dllimport) errno_t __cdecl tmpnam_s( char * _Buf, rsize_t _Size); #line 343 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" extern "C++" { template inline errno_t __cdecl tmpnam_s( char (&_Buf)[_Size]) throw() { return tmpnam_s(_Buf, _Size); } } __declspec(dllimport) char * __cdecl tmpnam( char *_Buffer); __declspec(dllimport) int __cdecl ungetc( int _Ch, FILE * _File); __declspec(dllimport) int __cdecl vfprintf( FILE * _File, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vfprintf_s( FILE * _File, const char * _Format, va_list _ArgList); #line 350 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl vprintf( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vprintf_s( const char * _Format, va_list _ArgList); #line 354 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl vsnprintf( char * _DstBuf, size_t _MaxCount, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vsnprintf_s( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, va_list _ArgList); extern "C++" { template inline int __cdecl vsnprintf_s( char (&_Dest)[_Size], size_t _MaxCount, const char * _Format, va_list _Args) throw() { return vsnprintf_s(_Dest, _Size, _MaxCount, _Format, _Args); } } #line 359 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _vsnprintf_s( char * _DstBuf, size_t _SizeInBytes, size_t _MaxCount, const char * _Format, va_list _ArgList); extern "C++" { template inline int __cdecl _vsnprintf_s( char (&_Dest)[_Size], size_t _MaxCount, const char * _Format, va_list _Args) throw() { return _vsnprintf_s(_Dest, _Size, _MaxCount, _Format, _Args); } } #pragma warning(push) #pragma warning(disable:4793) __declspec(dllimport) int __cdecl _snprintf( char *_Dest, size_t _Count, const char * _Format, ...); __declspec(dllimport) int __cdecl _vsnprintf( char *_Dest, size_t _Count, const char * _Format, va_list _Args); #pragma warning(pop) __declspec(dllimport) int __cdecl vsprintf_s( char * _DstBuf, size_t _SizeInBytes, const char * _Format, va_list _ArgList); extern "C++" { template inline int __cdecl vsprintf_s( char (&_Dest)[_Size], const char * _Format, va_list _Args) throw() { return vsprintf_s(_Dest, _Size, _Format, _Args); } } #line 369 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #pragma warning(push) #pragma warning(disable:4793) __declspec(dllimport) int __cdecl sprintf( char *_Dest, const char * _Format, ...); __declspec(dllimport) int __cdecl vsprintf( char *_Dest, const char * _Format, va_list _Args); #pragma warning(pop) __declspec(dllimport) int __cdecl _vscprintf( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _snprintf_c( char * _DstBuf, size_t _MaxCount, const char * _Format, ...); __declspec(dllimport) int __cdecl _vsnprintf_c( char *_DstBuf, size_t _MaxCount, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _fprintf_p( FILE * _File, const char * _Format, ...); __declspec(dllimport) int __cdecl _printf_p( const char * _Format, ...); __declspec(dllimport) int __cdecl _sprintf_p( char * _Dst, size_t _MaxCount, const char * _Format, ...); __declspec(dllimport) int __cdecl _vfprintf_p( FILE * _File, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vprintf_p( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vsprintf_p( char * _Dst, size_t _MaxCount, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _scprintf_p( const char * _Format, ...); __declspec(dllimport) int __cdecl _vscprintf_p( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _set_printf_count_output( int _Value); __declspec(dllimport) int __cdecl _get_printf_count_output(void); __declspec(dllimport) int __cdecl _printf_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _printf_p_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _printf_s_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vprintf_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vprintf_p_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vprintf_s_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _fprintf_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _fprintf_p_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _fprintf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vfprintf_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vfprintf_p_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vfprintf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _sprintf_l( char * _DstBuf, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _sprintf_p_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _sprintf_s_l( char * _DstBuf, size_t _DstSize, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vsprintf_l( char * _DstBuf, const char * _Format, _locale_t, va_list _ArgList); __declspec(dllimport) int __cdecl _vsprintf_p_l( char * _DstBuf, size_t _MaxCount, const char* _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vsprintf_s_l( char * _DstBuf, size_t _DstSize, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _scprintf_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _scprintf_p_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vscprintf_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vscprintf_p_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _snprintf_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snprintf_c_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snprintf_s_l( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vsnprintf_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vsnprintf_c_l( char * _DstBuf, size_t _MaxCount, const char *, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vsnprintf_s_l( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char* _Format, _locale_t _Locale, va_list _ArgList); /* wide function prototypes, also declared in wchar.h */ #line 428 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) FILE * __cdecl _wfsopen( const wchar_t * _Filename, const wchar_t * _Mode, int _ShFlag); #line 434 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) wint_t __cdecl fgetwc( FILE * _File); __declspec(dllimport) wint_t __cdecl _fgetwchar(void); __declspec(dllimport) wint_t __cdecl fputwc( wchar_t _Ch, FILE * _File); __declspec(dllimport) wint_t __cdecl _fputwchar( wchar_t _Ch); __declspec(dllimport) wint_t __cdecl getwc( FILE * _File); __declspec(dllimport) wint_t __cdecl getwchar(void); __declspec(dllimport) wint_t __cdecl putwc( wchar_t _Ch, FILE * _File); __declspec(dllimport) wint_t __cdecl putwchar( wchar_t _Ch); __declspec(dllimport) wint_t __cdecl ungetwc( wint_t _Ch, FILE * _File); __declspec(dllimport) wchar_t * __cdecl fgetws( wchar_t * _Dst, int _SizeInWords, FILE * _File); __declspec(dllimport) int __cdecl fputws( const wchar_t * _Str, FILE * _File); __declspec(dllimport) wchar_t * __cdecl _getws_s( wchar_t * _Str, size_t _SizeInWords); extern "C++" { template inline wchar_t * __cdecl _getws_s( wchar_t (&_String)[_Size]) throw() { return _getws_s(_String, _Size); } } __declspec(dllimport) wchar_t * __cdecl _getws( wchar_t *_String); __declspec(dllimport) int __cdecl _putws( const wchar_t * _Str); __declspec(dllimport) int __cdecl fwprintf( FILE * _File, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl fwprintf_s( FILE * _File, const wchar_t * _Format, ...); #line 456 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl wprintf( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl wprintf_s( const wchar_t * _Format, ...); #line 460 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _scwprintf( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl vfwprintf( FILE * _File, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vfwprintf_s( FILE * _File, const wchar_t * _Format, va_list _ArgList); #line 465 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl vwprintf( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vwprintf_s( const wchar_t * _Format, va_list _ArgList); #line 469 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl swprintf_s( wchar_t * _Dst, size_t _SizeInWords, const wchar_t * _Format, ...); #line 473 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" extern "C++" { __pragma(warning(push)); __pragma(warning(disable: 4793)); template inline int __cdecl swprintf_s( wchar_t (&_Dest)[_Size], const wchar_t * _Format, ...) throw() { va_list _ArgList; ( __va_start(&_ArgList, _Format) ); return vswprintf_s(_Dest, _Size, _Format, _ArgList); } __pragma(warning(pop)); } __declspec(dllimport) int __cdecl vswprintf_s( wchar_t * _Dst, size_t _SizeInWords, const wchar_t * _Format, va_list _ArgList); #line 477 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" extern "C++" { template inline int __cdecl vswprintf_s( wchar_t (&_Dest)[_Size], const wchar_t * _Format, va_list _Args) throw() { return vswprintf_s(_Dest, _Size, _Format, _Args); } } __declspec(dllimport) int __cdecl _swprintf_c( wchar_t * _DstBuf, size_t _SizeInWords, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vswprintf_c( wchar_t * _DstBuf, size_t _SizeInWords, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _snwprintf_s( wchar_t * _DstBuf, size_t _SizeInWords, size_t _MaxCount, const wchar_t * _Format, ...); extern "C++" { __pragma(warning(push)); __pragma(warning(disable: 4793)); template inline int __cdecl _snwprintf_s( wchar_t (&_Dest)[_Size], size_t _Count, const wchar_t * _Format, ...) throw() { va_list _ArgList; ( __va_start(&_ArgList, _Format) ); return _vsnwprintf_s(_Dest, _Size, _Count, _Format, _ArgList); } __pragma(warning(pop)); } __declspec(dllimport) int __cdecl _vsnwprintf_s( wchar_t * _DstBuf, size_t _SizeInWords, size_t _MaxCount, const wchar_t * _Format, va_list _ArgList); extern "C++" { template inline int __cdecl _vsnwprintf_s( wchar_t (&_Dest)[_Size], size_t _Count, const wchar_t * _Format, va_list _Args) throw() { return _vsnwprintf_s(_Dest, _Size, _Count, _Format, _Args); } } #pragma warning(push) #pragma warning(disable:4793) __declspec(dllimport) int __cdecl _snwprintf( wchar_t *_Dest, size_t _Count, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vsnwprintf( wchar_t *_Dest, size_t _Count, const wchar_t * _Format, va_list _Args); #pragma warning(pop) __declspec(dllimport) int __cdecl _fwprintf_p( FILE * _File, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _wprintf_p( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vfwprintf_p( FILE * _File, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vwprintf_p( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _swprintf_p( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vswprintf_p( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _scwprintf_p( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vscwprintf_p( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _wprintf_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _wprintf_p_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _wprintf_s_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vwprintf_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vwprintf_s_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _fwprintf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _fwprintf_p_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _fwprintf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vfwprintf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vfwprintf_p_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vfwprintf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _swprintf_c_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _swprintf_p_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _swprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vswprintf_c_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vswprintf_p_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vswprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _scwprintf_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _scwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vscwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _snwprintf_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snwprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vsnwprintf_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vsnwprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); #line 540 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* we could end up with a double deprecation, disable warnings 4141 and 4996 */ #pragma warning(push) #pragma warning(disable:4141 4996 4793) __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(dllimport) int __cdecl _swprintf( wchar_t *_Dest, const wchar_t * _Format, ...); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(dllimport) int __cdecl _vswprintf( wchar_t *_Dest, const wchar_t * _Format, va_list _Args); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(dllimport) int __cdecl __swprintf_l( wchar_t *_Dest, const wchar_t * _Format, _locale_t _Plocinfo, ...); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(dllimport) int __cdecl __vswprintf_l( wchar_t *_Dest, const wchar_t * _Format, _locale_t _Plocinfo, va_list _Args); #pragma warning(pop) #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\swprintf.inl" /*** *swprintf.inl - inline definitions for (v)swprintf * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the function definitions for (v)swprintf * * [Public] * ****/ #pragma once #line 22 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\swprintf.inl" #line 33 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\swprintf.inl" #pragma warning( push ) #pragma warning( disable : 4793 4412 ) static __inline int swprintf(wchar_t * _String, size_t _Count, const wchar_t * _Format, ...) { va_list _Arglist; int _Ret; ( __va_start(&_Arglist, _Format) ); _Ret = _vswprintf_c_l(_String, _Count, _Format, 0, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4412 ) static __inline int __cdecl vswprintf(wchar_t * _String, size_t _Count, const wchar_t * _Format, va_list _Ap) { return _vswprintf_c_l(_String, _Count, _Format, 0, _Ap); } #pragma warning( pop ) #line 57 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\swprintf.inl" #pragma warning( push ) #pragma warning( disable : 4793 4412 ) static __inline int _swprintf_l(wchar_t * _String, size_t _Count, const wchar_t * _Format, _locale_t _Plocinfo, ...) { va_list _Arglist; int _Ret; ( __va_start(&_Arglist, _Plocinfo) ); _Ret = _vswprintf_c_l(_String, _Count, _Format, _Plocinfo, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4412 ) static __inline int __cdecl _vswprintf_l(wchar_t * _String, size_t _Count, const wchar_t * _Format, _locale_t _Plocinfo, va_list _Ap) { return _vswprintf_c_l(_String, _Count, _Format, _Plocinfo, _Ap); } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4996 ) #pragma warning( push ) #pragma warning( disable : 4793 4141 ) extern "C++" __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __inline int swprintf( wchar_t * _String, const wchar_t * _Format, ...) { va_list _Arglist; ( __va_start(&_Arglist, _Format) ); int _Ret = _vswprintf(_String, _Format, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4141 ) extern "C++" __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __inline int __cdecl vswprintf( wchar_t * _String, const wchar_t * _Format, va_list _Ap) { return _vswprintf(_String, _Format, _Ap); } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4793 4141 ) extern "C++" __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __inline int _swprintf_l( wchar_t * _String, const wchar_t * _Format, _locale_t _Plocinfo, ...) { va_list _Arglist; ( __va_start(&_Arglist, _Plocinfo) ); int _Ret = __vswprintf_l(_String, _Format, _Plocinfo, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4141 ) extern "C++" __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __inline int __cdecl _vswprintf_l( wchar_t * _String, const wchar_t * _Format, _locale_t _Plocinfo, va_list _Ap) { return __vswprintf_l(_String, _Format, _Plocinfo, _Ap); } #pragma warning( pop ) #pragma warning( pop ) #line 126 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\swprintf.inl" #line 128 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\swprintf.inl" #line 129 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\swprintf.inl" #line 550 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 551 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 565 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) wchar_t * __cdecl _wtempnam( const wchar_t * _Directory, const wchar_t * _FilePrefix); #line 571 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _vscwprintf( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vscwprintf_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl fwscanf( FILE * _File, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _fwscanf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); #pragma warning(push) #pragma warning(disable:6530) __declspec(dllimport) int __cdecl fwscanf_s( FILE * _File, const wchar_t * _Format, ...); #line 581 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _fwscanf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl swscanf( const wchar_t * _Src, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _swscanf_l( const wchar_t * _Src, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl swscanf_s( const wchar_t *_Src, const wchar_t * _Format, ...); #line 587 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _swscanf_s_l( const wchar_t * _Src, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snwscanf( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _snwscanf_l( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snwscanf_s( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _snwscanf_s_l( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl wscanf( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _wscanf_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl wscanf_s( const wchar_t * _Format, ...); #line 597 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) int __cdecl _wscanf_s_l( const wchar_t * _Format, _locale_t _Locale, ...); #pragma warning(pop) __declspec(dllimport) FILE * __cdecl _wfdopen( int _FileHandle , const wchar_t * _Mode); __declspec(dllimport) FILE * __cdecl _wfopen( const wchar_t * _Filename, const wchar_t * _Mode); __declspec(dllimport) errno_t __cdecl _wfopen_s( FILE ** _File, const wchar_t * _Filename, const wchar_t * _Mode); __declspec(dllimport) FILE * __cdecl _wfreopen( const wchar_t * _Filename, const wchar_t * _Mode, FILE * _OldFile); __declspec(dllimport) errno_t __cdecl _wfreopen_s( FILE ** _File, const wchar_t * _Filename, const wchar_t * _Mode, FILE * _OldFile); __declspec(dllimport) void __cdecl _wperror( const wchar_t * _ErrMsg); #line 610 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) FILE * __cdecl _wpopen( const wchar_t *_Command, const wchar_t * _Mode); __declspec(dllimport) int __cdecl _wremove( const wchar_t * _Filename); __declspec(dllimport) errno_t __cdecl _wtmpnam_s( wchar_t * _DstBuf, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wtmpnam_s( wchar_t (&_Buffer)[_Size]) throw() { return _wtmpnam_s(_Buffer, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wtmpnam( wchar_t *_Buffer); __declspec(dllimport) wint_t __cdecl _fgetwc_nolock( FILE * _File); __declspec(dllimport) wint_t __cdecl _fputwc_nolock( wchar_t _Ch, FILE * _File); __declspec(dllimport) wint_t __cdecl _ungetwc_nolock( wint_t _Ch, FILE * _File); #line 626 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" inline wint_t __cdecl getwchar() {return (fgetwc((&__iob_func()[0]))); } /* stdin */ inline wint_t __cdecl putwchar(wchar_t _C) {return (fputwc(_C, (&__iob_func()[1]))); } /* stdout */ #line 631 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 642 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 645 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 648 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* Macro definitions */ #line 664 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(dllimport) void __cdecl _lock_file( FILE * _File); __declspec(dllimport) void __cdecl _unlock_file( FILE * _File); __declspec(dllimport) int __cdecl _fclose_nolock( FILE * _File); __declspec(dllimport) int __cdecl _fflush_nolock( FILE * _File); __declspec(dllimport) size_t __cdecl _fread_nolock( void * _DstBuf, size_t _ElementSize, size_t _Count, FILE * _File); __declspec(dllimport) size_t __cdecl _fread_nolock_s( void * _DstBuf, size_t _DstSize, size_t _ElementSize, size_t _Count, FILE * _File); __declspec(dllimport) int __cdecl _fseek_nolock( FILE * _File, long _Offset, int _Origin); __declspec(dllimport) long __cdecl _ftell_nolock( FILE * _File); __declspec(dllimport) int __cdecl _fseeki64_nolock( FILE * _File, __int64 _Offset, int _Origin); __declspec(dllimport) __int64 __cdecl _ftelli64_nolock( FILE * _File); __declspec(dllimport) size_t __cdecl _fwrite_nolock( const void * _DstBuf, size_t _Size, size_t _Count, FILE * _File); __declspec(dllimport) int __cdecl _ungetc_nolock( int _Ch, FILE * _File); #line 701 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" /* Non-ANSI names for compatibility */ #line 713 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_tempnam" ". See online help for details.")) __declspec(dllimport) char * __cdecl tempnam( const char * _Directory, const char * _FilePrefix); #line 719 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fcloseall" ". See online help for details.")) __declspec(dllimport) int __cdecl fcloseall(void); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fdopen" ". See online help for details.")) __declspec(dllimport) FILE * __cdecl fdopen( int _FileHandle, const char * _Format); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fgetchar" ". See online help for details.")) __declspec(dllimport) int __cdecl fgetchar(void); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fileno" ". See online help for details.")) __declspec(dllimport) int __cdecl fileno( FILE * _File); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_flushall" ". See online help for details.")) __declspec(dllimport) int __cdecl flushall(void); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fputchar" ". See online help for details.")) __declspec(dllimport) int __cdecl fputchar( int _Ch); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_getw" ". See online help for details.")) __declspec(dllimport) int __cdecl getw( FILE * _File); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_putw" ". See online help for details.")) __declspec(dllimport) int __cdecl putw( int _Ch, FILE * _File); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_rmtmp" ". See online help for details.")) __declspec(dllimport) int __cdecl rmtmp(void); #line 731 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" } #line 735 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #pragma pack(pop) #line 739 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdio.h" #line 3 "..\\tutorials\\tutorial06_keyboard_and_mouse\\tutorial06.cpp" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /*** *stdlib.h - declarations/definitions for commonly used library functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This include file contains the function declarations for commonly * used library functions which either don't fit somewhere else, or, * cannot be declared in the normal place for other reasons. * [ANSI] * * [Public] * ****/ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 22 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" /*** *limits.h - implementation dependent values * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * Contains defines for a number of implementation dependent values * which are commonly used in C programs. * [ANSI] * * [Public] * ****/ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 18 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" #line 35 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" /* minimum signed 64 bit value */ /* maximum signed 64 bit value */ /* maximum unsigned 64 bit value */ #line 77 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" #line 84 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" #line 85 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" /* While waiting to the C standard committee to finalize the decision on RSIZE_MAX and rsize_t, * we define RSIZE_MAX as SIZE_MAX */ #line 93 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" #line 94 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" #line 127 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits.h" #line 23 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) extern "C" { #line 33 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* Define NULL pointer value */ /* Definition of the argument values for the exit() function */ typedef int (__cdecl * _onexit_t)(void); #line 57 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 61 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* Non-ANSI name for compatibility */ #line 66 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 69 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* Data structure definitions for div and ldiv runtimes. */ typedef struct _div_t { int quot; int rem; } div_t; typedef struct _ldiv_t { long quot; long rem; } ldiv_t; typedef struct _lldiv_t { long long quot; long long rem; } lldiv_t; #line 92 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* * structs used to fool the compiler into not generating floating point * instructions when copying and pushing [long] double values */ #pragma pack(4) typedef struct { unsigned char ld[10]; } _LDOUBLE; #pragma pack() #line 121 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" typedef struct { double x; } _CRT_DOUBLE; typedef struct { float f; } _CRT_FLOAT; /* push and pop long, which is #defined as __int64 by a spec2k test */ typedef struct { /* * Assume there is a long double type */ long double x; } _LONGDOUBLE; #pragma pack(4) typedef struct { unsigned char ld12[12]; } _LDBL12; #pragma pack() #line 151 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* Maximum value that can be returned by the rand function. */ /* * Maximum number of bytes in multi-byte character in the current locale * (also defined in ctype.h). */ __declspec(dllimport) extern int __mb_cur_max; #line 168 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) int __cdecl ___mb_cur_max_func(void); __declspec(dllimport) int __cdecl ___mb_cur_max_l_func(_locale_t); #line 171 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* Minimum and maximum macros */ /* * Sizes for buffers used by the _makepath() and _splitpath() functions. * note that the sizes include space for 0-terminator */ /* * Argument values for _set_error_mode(). */ /* * Argument values for _set_abort_behavior(). */ /* * Sizes for buffers used by the getenv/putenv family of functions. */ /* a purecall handler procedure. Never returns normally */ typedef void (__cdecl *_purecall_handler)(void); /* establishes a purecall handler for the process */ __declspec(dllimport) _purecall_handler __cdecl _set_purecall_handler( _purecall_handler _Handler); __declspec(dllimport) _purecall_handler __cdecl _get_purecall_handler(void); #line 214 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" extern "C++" { #line 223 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" } #line 225 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* a invalid_arg handler procedure. */ typedef void (__cdecl *_invalid_parameter_handler)(const wchar_t *, const wchar_t *, const wchar_t *, unsigned int, uintptr_t); /* establishes a invalid_arg handler for the process */ __declspec(dllimport) _invalid_parameter_handler __cdecl _set_invalid_parameter_handler( _invalid_parameter_handler _Handler); __declspec(dllimport) _invalid_parameter_handler __cdecl _get_invalid_parameter_handler(void); #line 234 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" extern "C++" { #line 243 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" } #line 245 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* External variable declarations */ __declspec(dllimport) extern int * __cdecl _errno(void); errno_t __cdecl _set_errno( int _Value); errno_t __cdecl _get_errno( int * _Value); #line 255 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) unsigned long * __cdecl __doserrno(void); errno_t __cdecl _set_doserrno( unsigned long _Value); errno_t __cdecl _get_doserrno( unsigned long * _Value); /* you can't modify this, but it is non-const for backcompat */ __declspec(dllimport) char ** __cdecl __sys_errlist(void); __declspec(dllimport) int * __cdecl __sys_nerr(void); #line 281 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) extern int __argc; /* count of cmd line args */ __declspec(dllimport) extern char ** __argv; /* pointer to table of cmd line args */ __declspec(dllimport) extern wchar_t ** __wargv; /* pointer to table of wide cmd line args */ #line 294 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) extern char ** _environ; /* pointer to environment table */ __declspec(dllimport) extern wchar_t ** _wenviron; /* pointer to wide environment table */ #line 302 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) extern char * _pgmptr; /* points to the module (EXE) name */ __declspec(dllimport) extern wchar_t * _wpgmptr; /* points to the module (EXE) wide name */ #line 320 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" errno_t __cdecl _get_pgmptr( char ** _Value); errno_t __cdecl _get_wpgmptr( wchar_t ** _Value); __declspec(dllimport) extern int _fmode; /* default file translation mode */ #line 331 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _set_fmode( int _Mode); __declspec(dllimport) errno_t __cdecl _get_fmode( int * _PMode); /* _countof helper */ #line 340 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" extern "C++" { template char (*__countof_helper(__unaligned _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray]; } #line 347 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 348 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* function prototypes */ __declspec(dllimport) __declspec(noreturn) void __cdecl exit( int _Code); __declspec(dllimport) __declspec(noreturn) void __cdecl _exit( int _Code); __declspec(dllimport) void __cdecl abort(void); #line 357 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) unsigned int __cdecl _set_abort_behavior( unsigned int _Flags, unsigned int _Mask); int __cdecl abs( int _X); long __cdecl labs( long _X); long long __cdecl llabs( long long _X); #line 366 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __int64 __cdecl _abs64(__int64); #line 384 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 398 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" int __cdecl atexit(void (__cdecl *)(void)); #line 400 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) double __cdecl atof( const char *_String); __declspec(dllimport) double __cdecl _atof_l( const char *_String, _locale_t _Locale); #line 405 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) int __cdecl atoi( const char *_Str); __declspec(dllimport) int __cdecl _atoi_l( const char *_Str, _locale_t _Locale); __declspec(dllimport) long __cdecl atol( const char *_Str); __declspec(dllimport) long __cdecl _atol_l( const char *_Str, _locale_t _Locale); __declspec(dllimport) void * __cdecl bsearch_s( const void * _Key, const void * _Base, rsize_t _NumOfElements, rsize_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void * _Context); #line 416 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) void * __cdecl bsearch( const void * _Key, const void * _Base, size_t _NumOfElements, size_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(const void *, const void *)); __declspec(dllimport) void __cdecl qsort_s( void * _Base, rsize_t _NumOfElements, rsize_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void *_Context); #line 425 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) void __cdecl qsort( void * _Base, size_t _NumOfElements, size_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(const void *, const void *)); #line 429 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" unsigned short __cdecl _byteswap_ushort( unsigned short _Short); unsigned long __cdecl _byteswap_ulong ( unsigned long _Long); unsigned __int64 __cdecl _byteswap_uint64( unsigned __int64 _Int64); __declspec(dllimport) div_t __cdecl div( int _Numerator, int _Denominator); __declspec(dllimport) char * __cdecl getenv( const char * _VarName); __declspec(dllimport) errno_t __cdecl getenv_s( size_t * _ReturnSize, char * _DstBuf, rsize_t _DstSize, const char * _VarName); #line 437 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" extern "C++" { template inline errno_t __cdecl getenv_s( size_t * _ReturnSize, char (&_Dest)[_Size], const char * _VarName) throw() { return getenv_s(_ReturnSize, _Dest, _Size, _VarName); } } #line 442 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _dupenv_s( char **_PBuffer, size_t * _PBufferSizeInBytes, const char * _VarName); #line 448 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _itoa_s( int _Value, char * _DstBuf, size_t _Size, int _Radix); extern "C++" { template inline errno_t __cdecl _itoa_s( int _Value, char (&_Dest)[_Size], int _Radix) throw() { return _itoa_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) char * __cdecl _itoa( int _Value, char *_Dest, int _Radix); __declspec(dllimport) errno_t __cdecl _i64toa_s( __int64 _Val, char * _DstBuf, size_t _Size, int _Radix); __declspec(dllimport) char * __cdecl _i64toa( __int64 _Val, char * _DstBuf, int _Radix); __declspec(dllimport) errno_t __cdecl _ui64toa_s( unsigned __int64 _Val, char * _DstBuf, size_t _Size, int _Radix); __declspec(dllimport) char * __cdecl _ui64toa( unsigned __int64 _Val, char * _DstBuf, int _Radix); __declspec(dllimport) __int64 __cdecl _atoi64( const char * _String); __declspec(dllimport) __int64 __cdecl _atoi64_l( const char * _String, _locale_t _Locale); __declspec(dllimport) __int64 __cdecl _strtoi64( const char * _String, char ** _EndPtr, int _Radix); __declspec(dllimport) __int64 __cdecl _strtoi64_l( const char * _String, char ** _EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) unsigned __int64 __cdecl _strtoui64( const char * _String, char ** _EndPtr, int _Radix); __declspec(dllimport) unsigned __int64 __cdecl _strtoui64_l( const char * _String, char ** _EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) ldiv_t __cdecl ldiv( long _Numerator, long _Denominator); __declspec(dllimport) lldiv_t __cdecl lldiv( long long _Numerator, long long _Denominator); extern "C++" { inline long abs(long _X) { return labs(_X); } inline long long abs(long long _X) { return llabs(_X); } inline ldiv_t div(long _A1, long _A2) { return ldiv(_A1, _A2); } inline lldiv_t div(long long _A1, long long _A2) { return lldiv(_A1, _A2); } } #line 485 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _ltoa_s( long _Val, char * _DstBuf, size_t _Size, int _Radix); extern "C++" { template inline errno_t __cdecl _ltoa_s( long _Value, char (&_Dest)[_Size], int _Radix) throw() { return _ltoa_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) char * __cdecl _ltoa( long _Value, char *_Dest, int _Radix); __declspec(dllimport) int __cdecl mblen( const char * _Ch, size_t _MaxCount); __declspec(dllimport) int __cdecl _mblen_l( const char * _Ch, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) size_t __cdecl _mbstrlen( const char * _Str); __declspec(dllimport) size_t __cdecl _mbstrlen_l( const char *_Str, _locale_t _Locale); __declspec(dllimport) size_t __cdecl _mbstrnlen( const char *_Str, size_t _MaxCount); __declspec(dllimport) size_t __cdecl _mbstrnlen_l( const char *_Str, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl mbtowc( wchar_t * _DstCh, const char * _SrcCh, size_t _SrcSizeInBytes); __declspec(dllimport) int __cdecl _mbtowc_l( wchar_t * _DstCh, const char * _SrcCh, size_t _SrcSizeInBytes, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl mbstowcs_s( size_t * _PtNumOfCharConverted, wchar_t * _DstBuf, size_t _SizeInWords, const char * _SrcBuf, size_t _MaxCount ); extern "C++" { template inline errno_t __cdecl mbstowcs_s( size_t * _PtNumOfCharConverted, wchar_t (&_Dest)[_Size], const char * _Source, size_t _MaxCount) throw() { return mbstowcs_s(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount); } } __declspec(dllimport) size_t __cdecl mbstowcs( wchar_t *_Dest, const char * _Source, size_t _MaxCount); __declspec(dllimport) errno_t __cdecl _mbstowcs_s_l( size_t * _PtNumOfCharConverted, wchar_t * _DstBuf, size_t _SizeInWords, const char * _SrcBuf, size_t _MaxCount, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _mbstowcs_s_l( size_t * _PtNumOfCharConverted, wchar_t (&_Dest)[_Size], const char * _Source, size_t _MaxCount, _locale_t _Locale) throw() { return _mbstowcs_s_l(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount, _Locale); } } __declspec(dllimport) size_t __cdecl _mbstowcs_l( wchar_t *_Dest, const char * _Source, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl rand(void); #line 508 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) int __cdecl _set_error_mode( int _Mode); __declspec(dllimport) void __cdecl srand( unsigned int _Seed); __declspec(dllimport) double __cdecl strtod( const char * _Str, char ** _EndPtr); __declspec(dllimport) double __cdecl _strtod_l( const char * _Str, char ** _EndPtr, _locale_t _Locale); __declspec(dllimport) long __cdecl strtol( const char * _Str, char ** _EndPtr, int _Radix ); __declspec(dllimport) long __cdecl _strtol_l( const char *_Str, char **_EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) unsigned long __cdecl strtoul( const char * _Str, char ** _EndPtr, int _Radix); __declspec(dllimport) unsigned long __cdecl _strtoul_l(const char * _Str, char **_EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) int __cdecl system( const char * _Command); #line 522 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _ultoa_s( unsigned long _Val, char * _DstBuf, size_t _Size, int _Radix); extern "C++" { template inline errno_t __cdecl _ultoa_s( unsigned long _Value, char (&_Dest)[_Size], int _Radix) throw() { return _ultoa_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) char * __cdecl _ultoa( unsigned long _Value, char *_Dest, int _Radix); __declspec(dllimport) int __cdecl wctomb( char * _MbCh, wchar_t _WCh); __declspec(dllimport) int __cdecl _wctomb_l( char * _MbCh, wchar_t _WCh, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl wctomb_s( int * _SizeConverted, char * _MbCh, rsize_t _SizeInBytes, wchar_t _WCh); #line 530 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _wctomb_s_l( int * _SizeConverted, char * _MbCh, size_t _SizeInBytes, wchar_t _WCh, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl wcstombs_s( size_t * _PtNumOfCharConverted, char * _Dst, size_t _DstSizeInBytes, const wchar_t * _Src, size_t _MaxCountInBytes); extern "C++" { template inline errno_t __cdecl wcstombs_s( size_t * _PtNumOfCharConverted, char (&_Dest)[_Size], const wchar_t * _Source, size_t _MaxCount) throw() { return wcstombs_s(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount); } } __declspec(dllimport) size_t __cdecl wcstombs( char *_Dest, const wchar_t * _Source, size_t _MaxCount); __declspec(dllimport) errno_t __cdecl _wcstombs_s_l( size_t * _PtNumOfCharConverted, char * _Dst, size_t _DstSizeInBytes, const wchar_t * _Src, size_t _MaxCountInBytes, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _wcstombs_s_l( size_t * _PtNumOfCharConverted, char (&_Dest)[_Size], const wchar_t * _Source, size_t _MaxCount, _locale_t _Locale) throw() { return _wcstombs_s_l(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount, _Locale); } } __declspec(dllimport) size_t __cdecl _wcstombs_l( char *_Dest, const wchar_t * _Source, size_t _MaxCount, _locale_t _Locale); #line 563 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 598 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl calloc( size_t _Count, size_t _Size); __declspec(dllimport) __declspec(noalias) void __cdecl free( void * _Memory); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl malloc( size_t _Size); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl realloc( void * _Memory, size_t _NewSize); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _recalloc( void * _Memory, size_t _Count, size_t _Size); __declspec(dllimport) __declspec(noalias) void __cdecl _aligned_free( void * _Memory); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_malloc( size_t _Size, size_t _Alignment); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_malloc( size_t _Size, size_t _Alignment, size_t _Offset); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_realloc( void * _Memory, size_t _NewSize, size_t _Alignment); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_recalloc( void * _Memory, size_t _Count, size_t _Size, size_t _Alignment); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_realloc( void * _Memory, size_t _NewSize, size_t _Alignment, size_t _Offset); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_recalloc( void * _Memory, size_t _Count, size_t _Size, size_t _Alignment, size_t _Offset); __declspec(dllimport) size_t __cdecl _aligned_msize( void * _Memory, size_t _Alignment, size_t _Offset); #line 636 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 638 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* wide function prototypes, also declared in wchar.h */ __declspec(dllimport) errno_t __cdecl _itow_s ( int _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); extern "C++" { template inline errno_t __cdecl _itow_s( int _Value, wchar_t (&_Dest)[_Size], int _Radix) throw() { return _itow_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) wchar_t * __cdecl _itow( int _Value, wchar_t *_Dest, int _Radix); __declspec(dllimport) errno_t __cdecl _ltow_s ( long _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); extern "C++" { template inline errno_t __cdecl _ltow_s( long _Value, wchar_t (&_Dest)[_Size], int _Radix) throw() { return _ltow_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) wchar_t * __cdecl _ltow( long _Value, wchar_t *_Dest, int _Radix); __declspec(dllimport) errno_t __cdecl _ultow_s ( unsigned long _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); extern "C++" { template inline errno_t __cdecl _ultow_s( unsigned long _Value, wchar_t (&_Dest)[_Size], int _Radix) throw() { return _ultow_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) wchar_t * __cdecl _ultow( unsigned long _Value, wchar_t *_Dest, int _Radix); __declspec(dllimport) double __cdecl wcstod( const wchar_t * _Str, wchar_t ** _EndPtr); __declspec(dllimport) double __cdecl _wcstod_l( const wchar_t *_Str, wchar_t ** _EndPtr, _locale_t _Locale); __declspec(dllimport) long __cdecl wcstol( const wchar_t *_Str, wchar_t ** _EndPtr, int _Radix); __declspec(dllimport) long __cdecl _wcstol_l( const wchar_t *_Str, wchar_t **_EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) unsigned long __cdecl wcstoul( const wchar_t *_Str, wchar_t ** _EndPtr, int _Radix); __declspec(dllimport) unsigned long __cdecl _wcstoul_l( const wchar_t *_Str, wchar_t **_EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) wchar_t * __cdecl _wgetenv( const wchar_t * _VarName); __declspec(dllimport) errno_t __cdecl _wgetenv_s( size_t * _ReturnSize, wchar_t * _DstBuf, size_t _DstSizeInWords, const wchar_t * _VarName); extern "C++" { template inline errno_t __cdecl _wgetenv_s( size_t * _ReturnSize, wchar_t (&_Dest)[_Size], const wchar_t * _VarName) throw() { return _wgetenv_s(_ReturnSize, _Dest, _Size, _VarName); } } #line 666 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _wdupenv_s( wchar_t **_Buffer, size_t *_BufferSizeInWords, const wchar_t *_VarName); #line 672 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) int __cdecl _wsystem( const wchar_t * _Command); #line 677 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) double __cdecl _wtof( const wchar_t *_Str); __declspec(dllimport) double __cdecl _wtof_l( const wchar_t *_Str, _locale_t _Locale); __declspec(dllimport) int __cdecl _wtoi( const wchar_t *_Str); __declspec(dllimport) int __cdecl _wtoi_l( const wchar_t *_Str, _locale_t _Locale); __declspec(dllimport) long __cdecl _wtol( const wchar_t *_Str); __declspec(dllimport) long __cdecl _wtol_l( const wchar_t *_Str, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl _i64tow_s( __int64 _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); __declspec(dllimport) wchar_t * __cdecl _i64tow( __int64 _Val, wchar_t * _DstBuf, int _Radix); __declspec(dllimport) errno_t __cdecl _ui64tow_s( unsigned __int64 _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); __declspec(dllimport) wchar_t * __cdecl _ui64tow( unsigned __int64 _Val, wchar_t * _DstBuf, int _Radix); __declspec(dllimport) __int64 __cdecl _wtoi64( const wchar_t *_Str); __declspec(dllimport) __int64 __cdecl _wtoi64_l( const wchar_t *_Str, _locale_t _Locale); __declspec(dllimport) __int64 __cdecl _wcstoi64( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix); __declspec(dllimport) __int64 __cdecl _wcstoi64_l( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) unsigned __int64 __cdecl _wcstoui64( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix); __declspec(dllimport) unsigned __int64 __cdecl _wcstoui64_l( const wchar_t *_Str , wchar_t ** _EndPtr, int _Radix, _locale_t _Locale); #line 697 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* Buffer size required to be passed to _gcvt, fcvt and other fp conversion routines */ #line 712 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) char * __cdecl _fullpath( char * _FullPath, const char * _Path, size_t _SizeInBytes); #line 720 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _ecvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDights, int * _PtDec, int * _PtSign); extern "C++" { template inline errno_t __cdecl _ecvt_s(char (&_Dest)[_Size], double _Value, int _NumOfDigits, int * _PtDec, int * _PtSign) throw() { return _ecvt_s(_Dest, _Size, _Value, _NumOfDigits, _PtDec, _PtSign); } } __declspec(dllimport) char * __cdecl _ecvt( double _Val, int _NumOfDigits, int * _PtDec, int * _PtSign); __declspec(dllimport) errno_t __cdecl _fcvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); extern "C++" { template inline errno_t __cdecl _fcvt_s(char (&_Dest)[_Size], double _Value, int _NumOfDigits, int * _PtDec, int * _PtSign) throw() { return _fcvt_s(_Dest, _Size, _Value, _NumOfDigits, _PtDec, _PtSign); } } __declspec(dllimport) char * __cdecl _fcvt( double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); __declspec(dllimport) errno_t __cdecl _gcvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDigits); extern "C++" { template inline errno_t __cdecl _gcvt_s(char (&_Dest)[_Size], double _Value, int _NumOfDigits) throw() { return _gcvt_s(_Dest, _Size, _Value, _NumOfDigits); } } __declspec(dllimport) char * __cdecl _gcvt( double _Val, int _NumOfDigits, char * _DstBuf); __declspec(dllimport) int __cdecl _atodbl( _CRT_DOUBLE * _Result, char * _Str); __declspec(dllimport) int __cdecl _atoldbl( _LDOUBLE * _Result, char * _Str); __declspec(dllimport) int __cdecl _atoflt( _CRT_FLOAT * _Result, char * _Str); __declspec(dllimport) int __cdecl _atodbl_l( _CRT_DOUBLE * _Result, char * _Str, _locale_t _Locale); __declspec(dllimport) int __cdecl _atoldbl_l( _LDOUBLE * _Result, char * _Str, _locale_t _Locale); __declspec(dllimport) int __cdecl _atoflt_l( _CRT_FLOAT * _Result, char * _Str, _locale_t _Locale); unsigned long __cdecl _lrotl( unsigned long _Val, int _Shift); unsigned long __cdecl _lrotr( unsigned long _Val, int _Shift); __declspec(dllimport) errno_t __cdecl _makepath_s( char * _PathResult, size_t _SizeInWords, const char * _Drive, const char * _Dir, const char * _Filename, const char * _Ext); extern "C++" { template inline errno_t __cdecl _makepath_s(char (&_Path)[_Size], const char * _Drive, const char * _Dir, const char * _Filename, const char * _Ext) throw() { return _makepath_s(_Path, _Size, _Drive, _Dir, _Filename, _Ext); } } __declspec(dllimport) void __cdecl _makepath( char *_Path, const char * _Drive, const char * _Dir, const char * _Filename, const char * _Ext); #line 756 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 769 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" _onexit_t __cdecl _onexit( _onexit_t _Func); #line 771 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #pragma warning (push) #pragma warning (disable:6540) __declspec(dllimport) int __cdecl _putenv( const char * _EnvString); __declspec(dllimport) errno_t __cdecl _putenv_s( const char * _Name, const char * _Value); unsigned int __cdecl _rotl( unsigned int _Val, int _Shift); unsigned __int64 __cdecl _rotl64( unsigned __int64 _Val, int _Shift); unsigned int __cdecl _rotr( unsigned int _Val, int _Shift); unsigned __int64 __cdecl _rotr64( unsigned __int64 _Val, int _Shift); #pragma warning (pop) __declspec(dllimport) errno_t __cdecl _searchenv_s( const char * _Filename, const char * _EnvVar, char * _ResultPath, size_t _SizeInBytes); extern "C++" { template inline errno_t __cdecl _searchenv_s( const char * _Filename, const char * _EnvVar, char (&_ResultPath)[_Size]) throw() { return _searchenv_s(_Filename, _EnvVar, _ResultPath, _Size); } } __declspec(dllimport) void __cdecl _searchenv( const char * _Filename, const char * _EnvVar, char *_ResultPath); __declspec(dllimport) void __cdecl _splitpath( const char * _FullPath, char * _Drive, char * _Dir, char * _Filename, char * _Ext); __declspec(dllimport) errno_t __cdecl _splitpath_s( const char * _FullPath, char * _Drive, size_t _DriveSize, char * _Dir, size_t _DirSize, char * _Filename, size_t _FilenameSize, char * _Ext, size_t _ExtSize); extern "C++" { template inline errno_t __cdecl _splitpath_s( const char *_Dest, char (&_Drive)[_DriveSize], char (&_Dir)[_DirSize], char (&_Name)[_NameSize], char (&_Ext)[_ExtSize]) throw() { return _splitpath_s(_Dest, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); } } __declspec(dllimport) void __cdecl _swab( char * _Buf1, char * _Buf2, int _SizeInBytes); /* wide function prototypes, also declared in wchar.h */ #line 809 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) wchar_t * __cdecl _wfullpath( wchar_t * _FullPath, const wchar_t * _Path, size_t _SizeInWords); #line 815 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" __declspec(dllimport) errno_t __cdecl _wmakepath_s( wchar_t * _PathResult, size_t _SIZE, const wchar_t * _Drive, const wchar_t * _Dir, const wchar_t * _Filename, const wchar_t * _Ext); extern "C++" { template inline errno_t __cdecl _wmakepath_s(wchar_t (&_ResultPath)[_Size], const wchar_t * _Drive, const wchar_t * _Dir, const wchar_t * _Filename, const wchar_t * _Ext) throw() { return _wmakepath_s(_ResultPath, _Size, _Drive, _Dir, _Filename, _Ext); } } __declspec(dllimport) void __cdecl _wmakepath( wchar_t *_ResultPath, const wchar_t * _Drive, const wchar_t * _Dir, const wchar_t * _Filename, const wchar_t * _Ext); __declspec(dllimport) int __cdecl _wputenv( const wchar_t * _EnvString); __declspec(dllimport) errno_t __cdecl _wputenv_s( const wchar_t * _Name, const wchar_t * _Value); __declspec(dllimport) errno_t __cdecl _wsearchenv_s( const wchar_t * _Filename, const wchar_t * _EnvVar, wchar_t * _ResultPath, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wsearchenv_s( const wchar_t * _Filename, const wchar_t * _EnvVar, wchar_t (&_ResultPath)[_Size]) throw() { return _wsearchenv_s(_Filename, _EnvVar, _ResultPath, _Size); } } __declspec(dllimport) void __cdecl _wsearchenv( const wchar_t * _Filename, const wchar_t * _EnvVar, wchar_t *_ResultPath); __declspec(dllimport) void __cdecl _wsplitpath( const wchar_t * _FullPath, wchar_t * _Drive, wchar_t * _Dir, wchar_t * _Filename, wchar_t * _Ext); __declspec(dllimport) errno_t __cdecl _wsplitpath_s( const wchar_t * _FullPath, wchar_t * _Drive, size_t _DriveSize, wchar_t * _Dir, size_t _DirSize, wchar_t * _Filename, size_t _FilenameSize, wchar_t * _Ext, size_t _ExtSize); extern "C++" { template inline errno_t __cdecl _wsplitpath_s( const wchar_t *_Path, wchar_t (&_Drive)[_DriveSize], wchar_t (&_Dir)[_DirSize], wchar_t (&_Name)[_NameSize], wchar_t (&_Ext)[_ExtSize]) throw() { return _wsplitpath_s(_Path, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); } } #line 839 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* The Win32 API SetErrorMode, Beep and Sleep should be used instead. */ __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "SetErrorMode" " instead. See online help for details.")) __declspec(dllimport) void __cdecl _seterrormode( int _Mode); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "Beep" " instead. See online help for details.")) __declspec(dllimport) void __cdecl _beep( unsigned _Frequency, unsigned _Duration); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "Sleep" " instead. See online help for details.")) __declspec(dllimport) void __cdecl _sleep( unsigned long _Duration); #line 846 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" /* Non-ANSI names for compatibility */ #pragma warning(push) #pragma warning(disable: 4141) __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_ecvt" ". See online help for details.")) __declspec(dllimport) char * __cdecl ecvt( double _Val, int _NumOfDigits, int * _PtDec, int * _PtSign); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fcvt" ". See online help for details.")) __declspec(dllimport) char * __cdecl fcvt( double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_gcvt" ". See online help for details.")) __declspec(dllimport) char * __cdecl gcvt( double _Val, int _NumOfDigits, char * _DstBuf); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_itoa" ". See online help for details.")) __declspec(dllimport) char * __cdecl itoa( int _Val, char * _DstBuf, int _Radix); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_ltoa" ". See online help for details.")) __declspec(dllimport) char * __cdecl ltoa( long _Val, char * _DstBuf, int _Radix); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_putenv" ". See online help for details.")) __declspec(dllimport) int __cdecl putenv( const char * _EnvString); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_swab" ". See online help for details.")) __declspec(dllimport) void __cdecl swab( char * _Buf1, char * _Buf2, int _SizeInBytes); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_ultoa" ". See online help for details.")) __declspec(dllimport) char * __cdecl ultoa( unsigned long _Val, char * _Dstbuf, int _Radix); #pragma warning(pop) _onexit_t __cdecl onexit( _onexit_t _Func); #line 876 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 878 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" } #line 883 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #pragma pack(pop) #line 887 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stdlib.h" #line 4 "..\\tutorials\\tutorial06_keyboard_and_mouse\\tutorial06.cpp" // Include GLEW #line 1 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ** The OpenGL Extension Wrangler Library ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** 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. */ #line 86 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 89 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 92 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* * GLEW does not include to avoid name space pollution. * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t * defined properly. */ /* */ #line 113 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 117 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 118 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 122 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 123 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* */ #line 129 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 131 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 133 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 134 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* and */ #line 139 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* */ #line 144 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* */ #line 152 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 161 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 166 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 168 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 169 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 173 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* * GLEW_STATIC is defined for static library. * GLEW_BUILD is defined for building the DLL library. */ #line 188 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 238 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" extern "C" { #line 242 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_1_1 ---------------------------- */ typedef unsigned int GLenum; typedef unsigned int GLbitfield; typedef unsigned int GLuint; typedef int GLint; typedef int GLsizei; typedef unsigned char GLboolean; typedef signed char GLbyte; typedef short GLshort; typedef unsigned char GLubyte; typedef unsigned short GLushort; typedef unsigned long GLulong; typedef float GLfloat; typedef float GLclampf; typedef double GLdouble; typedef double GLclampd; typedef void GLvoid; #line 268 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" typedef signed long long GLint64EXT; typedef unsigned long long GLuint64EXT; #line 277 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" typedef GLint64EXT GLint64; typedef GLuint64EXT GLuint64; typedef struct __GLsync *GLsync; typedef char GLchar; __declspec(dllimport) void __stdcall glAccum (GLenum op, GLfloat value); __declspec(dllimport) void __stdcall glAlphaFunc (GLenum func, GLclampf ref); __declspec(dllimport) GLboolean __stdcall glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); __declspec(dllimport) void __stdcall glArrayElement (GLint i); __declspec(dllimport) void __stdcall glBegin (GLenum mode); __declspec(dllimport) void __stdcall glBindTexture (GLenum target, GLuint texture); __declspec(dllimport) void __stdcall glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); __declspec(dllimport) void __stdcall glBlendFunc (GLenum sfactor, GLenum dfactor); __declspec(dllimport) void __stdcall glCallList (GLuint list); __declspec(dllimport) void __stdcall glCallLists (GLsizei n, GLenum type, const GLvoid *lists); __declspec(dllimport) void __stdcall glClear (GLbitfield mask); __declspec(dllimport) void __stdcall glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); __declspec(dllimport) void __stdcall glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); __declspec(dllimport) void __stdcall glClearDepth (GLclampd depth); __declspec(dllimport) void __stdcall glClearIndex (GLfloat c); __declspec(dllimport) void __stdcall glClearStencil (GLint s); __declspec(dllimport) void __stdcall glClipPlane (GLenum plane, const GLdouble *equation); __declspec(dllimport) void __stdcall glColor3b (GLbyte red, GLbyte green, GLbyte blue); __declspec(dllimport) void __stdcall glColor3bv (const GLbyte *v); __declspec(dllimport) void __stdcall glColor3d (GLdouble red, GLdouble green, GLdouble blue); __declspec(dllimport) void __stdcall glColor3dv (const GLdouble *v); __declspec(dllimport) void __stdcall glColor3f (GLfloat red, GLfloat green, GLfloat blue); __declspec(dllimport) void __stdcall glColor3fv (const GLfloat *v); __declspec(dllimport) void __stdcall glColor3i (GLint red, GLint green, GLint blue); __declspec(dllimport) void __stdcall glColor3iv (const GLint *v); __declspec(dllimport) void __stdcall glColor3s (GLshort red, GLshort green, GLshort blue); __declspec(dllimport) void __stdcall glColor3sv (const GLshort *v); __declspec(dllimport) void __stdcall glColor3ub (GLubyte red, GLubyte green, GLubyte blue); __declspec(dllimport) void __stdcall glColor3ubv (const GLubyte *v); __declspec(dllimport) void __stdcall glColor3ui (GLuint red, GLuint green, GLuint blue); __declspec(dllimport) void __stdcall glColor3uiv (const GLuint *v); __declspec(dllimport) void __stdcall glColor3us (GLushort red, GLushort green, GLushort blue); __declspec(dllimport) void __stdcall glColor3usv (const GLushort *v); __declspec(dllimport) void __stdcall glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); __declspec(dllimport) void __stdcall glColor4bv (const GLbyte *v); __declspec(dllimport) void __stdcall glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); __declspec(dllimport) void __stdcall glColor4dv (const GLdouble *v); __declspec(dllimport) void __stdcall glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); __declspec(dllimport) void __stdcall glColor4fv (const GLfloat *v); __declspec(dllimport) void __stdcall glColor4i (GLint red, GLint green, GLint blue, GLint alpha); __declspec(dllimport) void __stdcall glColor4iv (const GLint *v); __declspec(dllimport) void __stdcall glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); __declspec(dllimport) void __stdcall glColor4sv (const GLshort *v); __declspec(dllimport) void __stdcall glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); __declspec(dllimport) void __stdcall glColor4ubv (const GLubyte *v); __declspec(dllimport) void __stdcall glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); __declspec(dllimport) void __stdcall glColor4uiv (const GLuint *v); __declspec(dllimport) void __stdcall glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); __declspec(dllimport) void __stdcall glColor4usv (const GLushort *v); __declspec(dllimport) void __stdcall glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); __declspec(dllimport) void __stdcall glColorMaterial (GLenum face, GLenum mode); __declspec(dllimport) void __stdcall glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); __declspec(dllimport) void __stdcall glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); __declspec(dllimport) void __stdcall glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); __declspec(dllimport) void __stdcall glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); __declspec(dllimport) void __stdcall glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); __declspec(dllimport) void __stdcall glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); __declspec(dllimport) void __stdcall glCullFace (GLenum mode); __declspec(dllimport) void __stdcall glDeleteLists (GLuint list, GLsizei range); __declspec(dllimport) void __stdcall glDeleteTextures (GLsizei n, const GLuint *textures); __declspec(dllimport) void __stdcall glDepthFunc (GLenum func); __declspec(dllimport) void __stdcall glDepthMask (GLboolean flag); __declspec(dllimport) void __stdcall glDepthRange (GLclampd zNear, GLclampd zFar); __declspec(dllimport) void __stdcall glDisable (GLenum cap); __declspec(dllimport) void __stdcall glDisableClientState (GLenum array); __declspec(dllimport) void __stdcall glDrawArrays (GLenum mode, GLint first, GLsizei count); __declspec(dllimport) void __stdcall glDrawBuffer (GLenum mode); __declspec(dllimport) void __stdcall glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); __declspec(dllimport) void __stdcall glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); __declspec(dllimport) void __stdcall glEdgeFlag (GLboolean flag); __declspec(dllimport) void __stdcall glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); __declspec(dllimport) void __stdcall glEdgeFlagv (const GLboolean *flag); __declspec(dllimport) void __stdcall glEnable (GLenum cap); __declspec(dllimport) void __stdcall glEnableClientState (GLenum array); __declspec(dllimport) void __stdcall glEnd (void); __declspec(dllimport) void __stdcall glEndList (void); __declspec(dllimport) void __stdcall glEvalCoord1d (GLdouble u); __declspec(dllimport) void __stdcall glEvalCoord1dv (const GLdouble *u); __declspec(dllimport) void __stdcall glEvalCoord1f (GLfloat u); __declspec(dllimport) void __stdcall glEvalCoord1fv (const GLfloat *u); __declspec(dllimport) void __stdcall glEvalCoord2d (GLdouble u, GLdouble v); __declspec(dllimport) void __stdcall glEvalCoord2dv (const GLdouble *u); __declspec(dllimport) void __stdcall glEvalCoord2f (GLfloat u, GLfloat v); __declspec(dllimport) void __stdcall glEvalCoord2fv (const GLfloat *u); __declspec(dllimport) void __stdcall glEvalMesh1 (GLenum mode, GLint i1, GLint i2); __declspec(dllimport) void __stdcall glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); __declspec(dllimport) void __stdcall glEvalPoint1 (GLint i); __declspec(dllimport) void __stdcall glEvalPoint2 (GLint i, GLint j); __declspec(dllimport) void __stdcall glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); __declspec(dllimport) void __stdcall glFinish (void); __declspec(dllimport) void __stdcall glFlush (void); __declspec(dllimport) void __stdcall glFogf (GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glFogfv (GLenum pname, const GLfloat *params); __declspec(dllimport) void __stdcall glFogi (GLenum pname, GLint param); __declspec(dllimport) void __stdcall glFogiv (GLenum pname, const GLint *params); __declspec(dllimport) void __stdcall glFrontFace (GLenum mode); __declspec(dllimport) void __stdcall glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); __declspec(dllimport) GLuint __stdcall glGenLists (GLsizei range); __declspec(dllimport) void __stdcall glGenTextures (GLsizei n, GLuint *textures); __declspec(dllimport) void __stdcall glGetBooleanv (GLenum pname, GLboolean *params); __declspec(dllimport) void __stdcall glGetClipPlane (GLenum plane, GLdouble *equation); __declspec(dllimport) void __stdcall glGetDoublev (GLenum pname, GLdouble *params); __declspec(dllimport) GLenum __stdcall glGetError (void); __declspec(dllimport) void __stdcall glGetFloatv (GLenum pname, GLfloat *params); __declspec(dllimport) void __stdcall glGetIntegerv (GLenum pname, GLint *params); __declspec(dllimport) void __stdcall glGetLightfv (GLenum light, GLenum pname, GLfloat *params); __declspec(dllimport) void __stdcall glGetLightiv (GLenum light, GLenum pname, GLint *params); __declspec(dllimport) void __stdcall glGetMapdv (GLenum target, GLenum query, GLdouble *v); __declspec(dllimport) void __stdcall glGetMapfv (GLenum target, GLenum query, GLfloat *v); __declspec(dllimport) void __stdcall glGetMapiv (GLenum target, GLenum query, GLint *v); __declspec(dllimport) void __stdcall glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); __declspec(dllimport) void __stdcall glGetMaterialiv (GLenum face, GLenum pname, GLint *params); __declspec(dllimport) void __stdcall glGetPixelMapfv (GLenum map, GLfloat *values); __declspec(dllimport) void __stdcall glGetPixelMapuiv (GLenum map, GLuint *values); __declspec(dllimport) void __stdcall glGetPixelMapusv (GLenum map, GLushort *values); __declspec(dllimport) void __stdcall glGetPointerv (GLenum pname, GLvoid* *params); __declspec(dllimport) void __stdcall glGetPolygonStipple (GLubyte *mask); __declspec(dllimport) const GLubyte * __stdcall glGetString (GLenum name); __declspec(dllimport) void __stdcall glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); __declspec(dllimport) void __stdcall glGetTexEnviv (GLenum target, GLenum pname, GLint *params); __declspec(dllimport) void __stdcall glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); __declspec(dllimport) void __stdcall glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); __declspec(dllimport) void __stdcall glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); __declspec(dllimport) void __stdcall glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); __declspec(dllimport) void __stdcall glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); __declspec(dllimport) void __stdcall glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); __declspec(dllimport) void __stdcall glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); __declspec(dllimport) void __stdcall glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); __declspec(dllimport) void __stdcall glHint (GLenum target, GLenum mode); __declspec(dllimport) void __stdcall glIndexMask (GLuint mask); __declspec(dllimport) void __stdcall glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); __declspec(dllimport) void __stdcall glIndexd (GLdouble c); __declspec(dllimport) void __stdcall glIndexdv (const GLdouble *c); __declspec(dllimport) void __stdcall glIndexf (GLfloat c); __declspec(dllimport) void __stdcall glIndexfv (const GLfloat *c); __declspec(dllimport) void __stdcall glIndexi (GLint c); __declspec(dllimport) void __stdcall glIndexiv (const GLint *c); __declspec(dllimport) void __stdcall glIndexs (GLshort c); __declspec(dllimport) void __stdcall glIndexsv (const GLshort *c); __declspec(dllimport) void __stdcall glIndexub (GLubyte c); __declspec(dllimport) void __stdcall glIndexubv (const GLubyte *c); __declspec(dllimport) void __stdcall glInitNames (void); __declspec(dllimport) void __stdcall glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); __declspec(dllimport) GLboolean __stdcall glIsEnabled (GLenum cap); __declspec(dllimport) GLboolean __stdcall glIsList (GLuint list); __declspec(dllimport) GLboolean __stdcall glIsTexture (GLuint texture); __declspec(dllimport) void __stdcall glLightModelf (GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glLightModelfv (GLenum pname, const GLfloat *params); __declspec(dllimport) void __stdcall glLightModeli (GLenum pname, GLint param); __declspec(dllimport) void __stdcall glLightModeliv (GLenum pname, const GLint *params); __declspec(dllimport) void __stdcall glLightf (GLenum light, GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glLightfv (GLenum light, GLenum pname, const GLfloat *params); __declspec(dllimport) void __stdcall glLighti (GLenum light, GLenum pname, GLint param); __declspec(dllimport) void __stdcall glLightiv (GLenum light, GLenum pname, const GLint *params); __declspec(dllimport) void __stdcall glLineStipple (GLint factor, GLushort pattern); __declspec(dllimport) void __stdcall glLineWidth (GLfloat width); __declspec(dllimport) void __stdcall glListBase (GLuint base); __declspec(dllimport) void __stdcall glLoadIdentity (void); __declspec(dllimport) void __stdcall glLoadMatrixd (const GLdouble *m); __declspec(dllimport) void __stdcall glLoadMatrixf (const GLfloat *m); __declspec(dllimport) void __stdcall glLoadName (GLuint name); __declspec(dllimport) void __stdcall glLogicOp (GLenum opcode); __declspec(dllimport) void __stdcall glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); __declspec(dllimport) void __stdcall glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); __declspec(dllimport) void __stdcall glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); __declspec(dllimport) void __stdcall glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); __declspec(dllimport) void __stdcall glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); __declspec(dllimport) void __stdcall glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); __declspec(dllimport) void __stdcall glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); __declspec(dllimport) void __stdcall glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); __declspec(dllimport) void __stdcall glMaterialf (GLenum face, GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); __declspec(dllimport) void __stdcall glMateriali (GLenum face, GLenum pname, GLint param); __declspec(dllimport) void __stdcall glMaterialiv (GLenum face, GLenum pname, const GLint *params); __declspec(dllimport) void __stdcall glMatrixMode (GLenum mode); __declspec(dllimport) void __stdcall glMultMatrixd (const GLdouble *m); __declspec(dllimport) void __stdcall glMultMatrixf (const GLfloat *m); __declspec(dllimport) void __stdcall glNewList (GLuint list, GLenum mode); __declspec(dllimport) void __stdcall glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); __declspec(dllimport) void __stdcall glNormal3bv (const GLbyte *v); __declspec(dllimport) void __stdcall glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); __declspec(dllimport) void __stdcall glNormal3dv (const GLdouble *v); __declspec(dllimport) void __stdcall glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); __declspec(dllimport) void __stdcall glNormal3fv (const GLfloat *v); __declspec(dllimport) void __stdcall glNormal3i (GLint nx, GLint ny, GLint nz); __declspec(dllimport) void __stdcall glNormal3iv (const GLint *v); __declspec(dllimport) void __stdcall glNormal3s (GLshort nx, GLshort ny, GLshort nz); __declspec(dllimport) void __stdcall glNormal3sv (const GLshort *v); __declspec(dllimport) void __stdcall glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); __declspec(dllimport) void __stdcall glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); __declspec(dllimport) void __stdcall glPassThrough (GLfloat token); __declspec(dllimport) void __stdcall glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); __declspec(dllimport) void __stdcall glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); __declspec(dllimport) void __stdcall glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); __declspec(dllimport) void __stdcall glPixelStoref (GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glPixelStorei (GLenum pname, GLint param); __declspec(dllimport) void __stdcall glPixelTransferf (GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glPixelTransferi (GLenum pname, GLint param); __declspec(dllimport) void __stdcall glPixelZoom (GLfloat xfactor, GLfloat yfactor); __declspec(dllimport) void __stdcall glPointSize (GLfloat size); __declspec(dllimport) void __stdcall glPolygonMode (GLenum face, GLenum mode); __declspec(dllimport) void __stdcall glPolygonOffset (GLfloat factor, GLfloat units); __declspec(dllimport) void __stdcall glPolygonStipple (const GLubyte *mask); __declspec(dllimport) void __stdcall glPopAttrib (void); __declspec(dllimport) void __stdcall glPopClientAttrib (void); __declspec(dllimport) void __stdcall glPopMatrix (void); __declspec(dllimport) void __stdcall glPopName (void); __declspec(dllimport) void __stdcall glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); __declspec(dllimport) void __stdcall glPushAttrib (GLbitfield mask); __declspec(dllimport) void __stdcall glPushClientAttrib (GLbitfield mask); __declspec(dllimport) void __stdcall glPushMatrix (void); __declspec(dllimport) void __stdcall glPushName (GLuint name); __declspec(dllimport) void __stdcall glRasterPos2d (GLdouble x, GLdouble y); __declspec(dllimport) void __stdcall glRasterPos2dv (const GLdouble *v); __declspec(dllimport) void __stdcall glRasterPos2f (GLfloat x, GLfloat y); __declspec(dllimport) void __stdcall glRasterPos2fv (const GLfloat *v); __declspec(dllimport) void __stdcall glRasterPos2i (GLint x, GLint y); __declspec(dllimport) void __stdcall glRasterPos2iv (const GLint *v); __declspec(dllimport) void __stdcall glRasterPos2s (GLshort x, GLshort y); __declspec(dllimport) void __stdcall glRasterPos2sv (const GLshort *v); __declspec(dllimport) void __stdcall glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); __declspec(dllimport) void __stdcall glRasterPos3dv (const GLdouble *v); __declspec(dllimport) void __stdcall glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); __declspec(dllimport) void __stdcall glRasterPos3fv (const GLfloat *v); __declspec(dllimport) void __stdcall glRasterPos3i (GLint x, GLint y, GLint z); __declspec(dllimport) void __stdcall glRasterPos3iv (const GLint *v); __declspec(dllimport) void __stdcall glRasterPos3s (GLshort x, GLshort y, GLshort z); __declspec(dllimport) void __stdcall glRasterPos3sv (const GLshort *v); __declspec(dllimport) void __stdcall glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); __declspec(dllimport) void __stdcall glRasterPos4dv (const GLdouble *v); __declspec(dllimport) void __stdcall glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); __declspec(dllimport) void __stdcall glRasterPos4fv (const GLfloat *v); __declspec(dllimport) void __stdcall glRasterPos4i (GLint x, GLint y, GLint z, GLint w); __declspec(dllimport) void __stdcall glRasterPos4iv (const GLint *v); __declspec(dllimport) void __stdcall glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); __declspec(dllimport) void __stdcall glRasterPos4sv (const GLshort *v); __declspec(dllimport) void __stdcall glReadBuffer (GLenum mode); __declspec(dllimport) void __stdcall glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); __declspec(dllimport) void __stdcall glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); __declspec(dllimport) void __stdcall glRectdv (const GLdouble *v1, const GLdouble *v2); __declspec(dllimport) void __stdcall glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); __declspec(dllimport) void __stdcall glRectfv (const GLfloat *v1, const GLfloat *v2); __declspec(dllimport) void __stdcall glRecti (GLint x1, GLint y1, GLint x2, GLint y2); __declspec(dllimport) void __stdcall glRectiv (const GLint *v1, const GLint *v2); __declspec(dllimport) void __stdcall glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); __declspec(dllimport) void __stdcall glRectsv (const GLshort *v1, const GLshort *v2); __declspec(dllimport) GLint __stdcall glRenderMode (GLenum mode); __declspec(dllimport) void __stdcall glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); __declspec(dllimport) void __stdcall glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); __declspec(dllimport) void __stdcall glScaled (GLdouble x, GLdouble y, GLdouble z); __declspec(dllimport) void __stdcall glScalef (GLfloat x, GLfloat y, GLfloat z); __declspec(dllimport) void __stdcall glScissor (GLint x, GLint y, GLsizei width, GLsizei height); __declspec(dllimport) void __stdcall glSelectBuffer (GLsizei size, GLuint *buffer); __declspec(dllimport) void __stdcall glShadeModel (GLenum mode); __declspec(dllimport) void __stdcall glStencilFunc (GLenum func, GLint ref, GLuint mask); __declspec(dllimport) void __stdcall glStencilMask (GLuint mask); __declspec(dllimport) void __stdcall glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); __declspec(dllimport) void __stdcall glTexCoord1d (GLdouble s); __declspec(dllimport) void __stdcall glTexCoord1dv (const GLdouble *v); __declspec(dllimport) void __stdcall glTexCoord1f (GLfloat s); __declspec(dllimport) void __stdcall glTexCoord1fv (const GLfloat *v); __declspec(dllimport) void __stdcall glTexCoord1i (GLint s); __declspec(dllimport) void __stdcall glTexCoord1iv (const GLint *v); __declspec(dllimport) void __stdcall glTexCoord1s (GLshort s); __declspec(dllimport) void __stdcall glTexCoord1sv (const GLshort *v); __declspec(dllimport) void __stdcall glTexCoord2d (GLdouble s, GLdouble t); __declspec(dllimport) void __stdcall glTexCoord2dv (const GLdouble *v); __declspec(dllimport) void __stdcall glTexCoord2f (GLfloat s, GLfloat t); __declspec(dllimport) void __stdcall glTexCoord2fv (const GLfloat *v); __declspec(dllimport) void __stdcall glTexCoord2i (GLint s, GLint t); __declspec(dllimport) void __stdcall glTexCoord2iv (const GLint *v); __declspec(dllimport) void __stdcall glTexCoord2s (GLshort s, GLshort t); __declspec(dllimport) void __stdcall glTexCoord2sv (const GLshort *v); __declspec(dllimport) void __stdcall glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); __declspec(dllimport) void __stdcall glTexCoord3dv (const GLdouble *v); __declspec(dllimport) void __stdcall glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); __declspec(dllimport) void __stdcall glTexCoord3fv (const GLfloat *v); __declspec(dllimport) void __stdcall glTexCoord3i (GLint s, GLint t, GLint r); __declspec(dllimport) void __stdcall glTexCoord3iv (const GLint *v); __declspec(dllimport) void __stdcall glTexCoord3s (GLshort s, GLshort t, GLshort r); __declspec(dllimport) void __stdcall glTexCoord3sv (const GLshort *v); __declspec(dllimport) void __stdcall glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); __declspec(dllimport) void __stdcall glTexCoord4dv (const GLdouble *v); __declspec(dllimport) void __stdcall glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); __declspec(dllimport) void __stdcall glTexCoord4fv (const GLfloat *v); __declspec(dllimport) void __stdcall glTexCoord4i (GLint s, GLint t, GLint r, GLint q); __declspec(dllimport) void __stdcall glTexCoord4iv (const GLint *v); __declspec(dllimport) void __stdcall glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); __declspec(dllimport) void __stdcall glTexCoord4sv (const GLshort *v); __declspec(dllimport) void __stdcall glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); __declspec(dllimport) void __stdcall glTexEnvf (GLenum target, GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); __declspec(dllimport) void __stdcall glTexEnvi (GLenum target, GLenum pname, GLint param); __declspec(dllimport) void __stdcall glTexEnviv (GLenum target, GLenum pname, const GLint *params); __declspec(dllimport) void __stdcall glTexGend (GLenum coord, GLenum pname, GLdouble param); __declspec(dllimport) void __stdcall glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); __declspec(dllimport) void __stdcall glTexGenf (GLenum coord, GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); __declspec(dllimport) void __stdcall glTexGeni (GLenum coord, GLenum pname, GLint param); __declspec(dllimport) void __stdcall glTexGeniv (GLenum coord, GLenum pname, const GLint *params); __declspec(dllimport) void __stdcall glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); __declspec(dllimport) void __stdcall glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); __declspec(dllimport) void __stdcall glTexParameterf (GLenum target, GLenum pname, GLfloat param); __declspec(dllimport) void __stdcall glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); __declspec(dllimport) void __stdcall glTexParameteri (GLenum target, GLenum pname, GLint param); __declspec(dllimport) void __stdcall glTexParameteriv (GLenum target, GLenum pname, const GLint *params); __declspec(dllimport) void __stdcall glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); __declspec(dllimport) void __stdcall glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); __declspec(dllimport) void __stdcall glTranslated (GLdouble x, GLdouble y, GLdouble z); __declspec(dllimport) void __stdcall glTranslatef (GLfloat x, GLfloat y, GLfloat z); __declspec(dllimport) void __stdcall glVertex2d (GLdouble x, GLdouble y); __declspec(dllimport) void __stdcall glVertex2dv (const GLdouble *v); __declspec(dllimport) void __stdcall glVertex2f (GLfloat x, GLfloat y); __declspec(dllimport) void __stdcall glVertex2fv (const GLfloat *v); __declspec(dllimport) void __stdcall glVertex2i (GLint x, GLint y); __declspec(dllimport) void __stdcall glVertex2iv (const GLint *v); __declspec(dllimport) void __stdcall glVertex2s (GLshort x, GLshort y); __declspec(dllimport) void __stdcall glVertex2sv (const GLshort *v); __declspec(dllimport) void __stdcall glVertex3d (GLdouble x, GLdouble y, GLdouble z); __declspec(dllimport) void __stdcall glVertex3dv (const GLdouble *v); __declspec(dllimport) void __stdcall glVertex3f (GLfloat x, GLfloat y, GLfloat z); __declspec(dllimport) void __stdcall glVertex3fv (const GLfloat *v); __declspec(dllimport) void __stdcall glVertex3i (GLint x, GLint y, GLint z); __declspec(dllimport) void __stdcall glVertex3iv (const GLint *v); __declspec(dllimport) void __stdcall glVertex3s (GLshort x, GLshort y, GLshort z); __declspec(dllimport) void __stdcall glVertex3sv (const GLshort *v); __declspec(dllimport) void __stdcall glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); __declspec(dllimport) void __stdcall glVertex4dv (const GLdouble *v); __declspec(dllimport) void __stdcall glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); __declspec(dllimport) void __stdcall glVertex4fv (const GLfloat *v); __declspec(dllimport) void __stdcall glVertex4i (GLint x, GLint y, GLint z, GLint w); __declspec(dllimport) void __stdcall glVertex4iv (const GLint *v); __declspec(dllimport) void __stdcall glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); __declspec(dllimport) void __stdcall glVertex4sv (const GLshort *v); __declspec(dllimport) void __stdcall glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); __declspec(dllimport) void __stdcall glViewport (GLint x, GLint y, GLsizei width, GLsizei height); #line 1158 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------------- GLU ---------------------------------- */ /* this is where we can safely include GLU */ #line 1165 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 1 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" /*++ BUILD Version: 0004 // Increment this if a change has global effects Copyright (c) 1985-95, Microsoft Corporation Module Name: glu.h Abstract: Procedure declarations, constant definitions and macros for the OpenGL Utility Library. --*/ #line 1 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/gl.h" /*++ BUILD Version: 0004 // Increment this if a change has global effects Copyright (c) 1985-96, Microsoft Corporation Module Name: gl.h Abstract: Procedure declarations, constant definitions and macros for the OpenGL component. --*/ #line 23 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" extern "C" { #line 27 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" /* ** Copyright 1991-1993, Silicon Graphics, Inc. ** All Rights Reserved. ** ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.; ** the contents of this file may not be disclosed to third parties, copied or ** duplicated in any form, in whole or in part, without the prior written ** permission of Silicon Graphics, Inc. ** ** RESTRICTED RIGHTS LEGEND: ** Use, duplication or disclosure by the Government is subject to restrictions ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished - ** rights reserved under the Copyright Laws of the United States. */ /* ** Return the error string associated with a particular error code. ** This will return 0 for an invalid error code. ** ** The generic function prototype that can be compiled for ANSI or Unicode ** is defined as follows: ** ** LPCTSTR APIENTRY gluErrorStringWIN (GLenum errCode); */ #line 59 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" const GLubyte* __stdcall gluErrorString ( GLenum errCode); const wchar_t* __stdcall gluErrorUnicodeStringEXT ( GLenum errCode); const GLubyte* __stdcall gluGetString ( GLenum name); void __stdcall gluOrtho2D ( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); void __stdcall gluPerspective ( GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar); void __stdcall gluPickMatrix ( GLdouble x, GLdouble y, GLdouble width, GLdouble height, GLint viewport[4]); void __stdcall gluLookAt ( GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz); int __stdcall gluProject ( GLdouble objx, GLdouble objy, GLdouble objz, const GLdouble modelMatrix[16], const GLdouble projMatrix[16], const GLint viewport[4], GLdouble *winx, GLdouble *winy, GLdouble *winz); int __stdcall gluUnProject ( GLdouble winx, GLdouble winy, GLdouble winz, const GLdouble modelMatrix[16], const GLdouble projMatrix[16], const GLint viewport[4], GLdouble *objx, GLdouble *objy, GLdouble *objz); int __stdcall gluScaleImage ( GLenum format, GLint widthin, GLint heightin, GLenum typein, const void *datain, GLint widthout, GLint heightout, GLenum typeout, void *dataout); int __stdcall gluBuild1DMipmaps ( GLenum target, GLint components, GLint width, GLenum format, GLenum type, const void *data); int __stdcall gluBuild2DMipmaps ( GLenum target, GLint components, GLint width, GLint height, GLenum format, GLenum type, const void *data); class GLUnurbs; class GLUquadric; class GLUtesselator; /* backwards compatibility: */ typedef class GLUnurbs GLUnurbsObj; typedef class GLUquadric GLUquadricObj; typedef class GLUtesselator GLUtesselatorObj; typedef class GLUtesselator GLUtriangulatorObj; #line 176 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" GLUquadric* __stdcall gluNewQuadric (void); void __stdcall gluDeleteQuadric ( GLUquadric *state); void __stdcall gluQuadricNormals ( GLUquadric *quadObject, GLenum normals); void __stdcall gluQuadricTexture ( GLUquadric *quadObject, GLboolean textureCoords); void __stdcall gluQuadricOrientation ( GLUquadric *quadObject, GLenum orientation); void __stdcall gluQuadricDrawStyle ( GLUquadric *quadObject, GLenum drawStyle); void __stdcall gluCylinder ( GLUquadric *qobj, GLdouble baseRadius, GLdouble topRadius, GLdouble height, GLint slices, GLint stacks); void __stdcall gluDisk ( GLUquadric *qobj, GLdouble innerRadius, GLdouble outerRadius, GLint slices, GLint loops); void __stdcall gluPartialDisk ( GLUquadric *qobj, GLdouble innerRadius, GLdouble outerRadius, GLint slices, GLint loops, GLdouble startAngle, GLdouble sweepAngle); void __stdcall gluSphere ( GLUquadric *qobj, GLdouble radius, GLint slices, GLint stacks); void __stdcall gluQuadricCallback ( GLUquadric *qobj, GLenum which, void (* fn)()); GLUtesselator* __stdcall gluNewTess( void ); void __stdcall gluDeleteTess( GLUtesselator *tess ); void __stdcall gluTessBeginPolygon( GLUtesselator *tess, void *polygon_data ); void __stdcall gluTessBeginContour( GLUtesselator *tess ); void __stdcall gluTessVertex( GLUtesselator *tess, GLdouble coords[3], void *data ); void __stdcall gluTessEndContour( GLUtesselator *tess ); void __stdcall gluTessEndPolygon( GLUtesselator *tess ); void __stdcall gluTessProperty( GLUtesselator *tess, GLenum which, GLdouble value ); void __stdcall gluTessNormal( GLUtesselator *tess, GLdouble x, GLdouble y, GLdouble z ); void __stdcall gluTessCallback( GLUtesselator *tess, GLenum which, void ( *fn)()); void __stdcall gluGetTessProperty( GLUtesselator *tess, GLenum which, GLdouble *value ); GLUnurbs* __stdcall gluNewNurbsRenderer (void); void __stdcall gluDeleteNurbsRenderer ( GLUnurbs *nobj); void __stdcall gluBeginSurface ( GLUnurbs *nobj); void __stdcall gluBeginCurve ( GLUnurbs *nobj); void __stdcall gluEndCurve ( GLUnurbs *nobj); void __stdcall gluEndSurface ( GLUnurbs *nobj); void __stdcall gluBeginTrim ( GLUnurbs *nobj); void __stdcall gluEndTrim ( GLUnurbs *nobj); void __stdcall gluPwlCurve ( GLUnurbs *nobj, GLint count, GLfloat *array, GLint stride, GLenum type); void __stdcall gluNurbsCurve ( GLUnurbs *nobj, GLint nknots, GLfloat *knot, GLint stride, GLfloat *ctlarray, GLint order, GLenum type); void __stdcall gluNurbsSurface( GLUnurbs *nobj, GLint sknot_count, float *sknot, GLint tknot_count, GLfloat *tknot, GLint s_stride, GLint t_stride, GLfloat *ctlarray, GLint sorder, GLint torder, GLenum type); void __stdcall gluLoadSamplingMatrices ( GLUnurbs *nobj, const GLfloat modelMatrix[16], const GLfloat projMatrix[16], const GLint viewport[4] ); void __stdcall gluNurbsProperty ( GLUnurbs *nobj, GLenum property, GLfloat value ); void __stdcall gluGetNurbsProperty ( GLUnurbs *nobj, GLenum property, GLfloat *value ); void __stdcall gluNurbsCallback ( GLUnurbs *nobj, GLenum which, void (* fn)() ); /**** Callback function prototypes ****/ /* gluQuadricCallback */ typedef void (* GLUquadricErrorProc) (GLenum); /* gluTessCallback */ typedef void (* GLUtessBeginProc) (GLenum); typedef void (* GLUtessEdgeFlagProc) (GLboolean); typedef void (* GLUtessVertexProc) (void *); typedef void (* GLUtessEndProc) (void); typedef void (* GLUtessErrorProc) (GLenum); typedef void (* GLUtessCombineProc) (GLdouble[3], void*[4], GLfloat[4], void** ); typedef void (* GLUtessBeginDataProc) (GLenum, void *); typedef void (* GLUtessEdgeFlagDataProc) (GLboolean, void *); typedef void (* GLUtessVertexDataProc) (void *, void *); typedef void (* GLUtessEndDataProc) (void *); typedef void (* GLUtessErrorDataProc) (GLenum, void *); typedef void (* GLUtessCombineDataProc) (GLdouble[3], void*[4], GLfloat[4], void**, void* ); /* gluNurbsCallback */ typedef void (* GLUnurbsErrorProc) (GLenum); /**** Generic constants ****/ /* Version */ /* Errors: (return value 0 = no error) */ /* StringName */ /* Boolean */ /**** Quadric constants ****/ /* QuadricNormal */ /* QuadricDrawStyle */ /* QuadricOrientation */ /* Callback types: */ /* GLU_ERROR 100103 */ /**** Tesselation constants ****/ /* TessProperty */ /* TessWinding */ /* TessCallback */ /* TessError */ /**** NURBS constants ****/ /* NurbsProperty */ /* NurbsSampling */ /* NurbsTrim */ /* NurbsDisplay */ /* GLU_FILL 100012 */ /* NurbsCallback */ /* GLU_ERROR 100103 */ /* NurbsErrors */ /**** Backwards compatibility for old tesselator ****/ void __stdcall gluBeginPolygon( GLUtesselator *tess ); void __stdcall gluNextContour( GLUtesselator *tess, GLenum type ); void __stdcall gluEndPolygon( GLUtesselator *tess ); /* Contours types -- obsolete! */ /* Names without "TESS_" prefix */ } #line 582 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" #line 584 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" #line 585 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" #line 1166 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 1167 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_1_2 ---------------------------- */ typedef void (__stdcall * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); typedef void (__stdcall * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); typedef void (__stdcall * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); #line 1228 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_VERSION_1_2_1 --------------------------- */ #line 1237 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_1_3 ---------------------------- */ typedef void (__stdcall * PFNGLACTIVETEXTUREPROC) (GLenum texture); typedef void (__stdcall * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); typedef void (__stdcall * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (__stdcall * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLvoid *img); typedef void (__stdcall * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); typedef void (__stdcall * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); typedef void (__stdcall * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); typedef void (__stdcall * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); typedef void (__stdcall * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); typedef void (__stdcall * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); typedef void (__stdcall * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); typedef void (__stdcall * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); typedef void (__stdcall * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); typedef void (__stdcall * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); typedef void (__stdcall * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); typedef void (__stdcall * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); typedef void (__stdcall * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); typedef void (__stdcall * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); typedef void (__stdcall * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); typedef void (__stdcall * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); typedef void (__stdcall * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); typedef void (__stdcall * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); typedef void (__stdcall * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); typedef void (__stdcall * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); typedef void (__stdcall * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); typedef void (__stdcall * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); typedef void (__stdcall * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); typedef void (__stdcall * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); typedef void (__stdcall * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); typedef void (__stdcall * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); typedef void (__stdcall * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); typedef void (__stdcall * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); typedef void (__stdcall * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); typedef void (__stdcall * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); typedef void (__stdcall * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); typedef void (__stdcall * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); typedef void (__stdcall * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); typedef void (__stdcall * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); typedef void (__stdcall * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); typedef void (__stdcall * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); typedef void (__stdcall * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); #line 1437 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_1_4 ---------------------------- */ typedef void (__stdcall * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); typedef void (__stdcall * PFNGLBLENDEQUATIONPROC) (GLenum mode); typedef void (__stdcall * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); typedef void (__stdcall * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (__stdcall * PFNGLFOGCOORDDPROC) (GLdouble coord); typedef void (__stdcall * PFNGLFOGCOORDDVPROC) (const GLdouble *coord); typedef void (__stdcall * PFNGLFOGCOORDFPROC) (GLfloat coord); typedef void (__stdcall * PFNGLFOGCOORDFVPROC) (const GLfloat *coord); typedef void (__stdcall * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); typedef void (__stdcall * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); typedef void (__stdcall * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); typedef void (__stdcall * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); typedef void (__stdcall * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); typedef void (__stdcall * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); typedef void (__stdcall * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (__stdcall * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); typedef void (__stdcall * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p); typedef void (__stdcall * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); typedef void (__stdcall * PFNGLWINDOWPOS2IVPROC) (const GLint *p); typedef void (__stdcall * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); typedef void (__stdcall * PFNGLWINDOWPOS2SVPROC) (const GLshort *p); typedef void (__stdcall * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p); typedef void (__stdcall * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p); typedef void (__stdcall * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); typedef void (__stdcall * PFNGLWINDOWPOS3IVPROC) (const GLint *p); typedef void (__stdcall * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); typedef void (__stdcall * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); #line 1582 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_1_5 ---------------------------- */ typedef ptrdiff_t GLintptr; typedef ptrdiff_t GLsizeiptr; typedef void (__stdcall * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); typedef void (__stdcall * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); typedef void (__stdcall * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); typedef void (__stdcall * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); typedef void (__stdcall * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); typedef void (__stdcall * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids); typedef void (__stdcall * PFNGLENDQUERYPROC) (GLenum target); typedef void (__stdcall * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); typedef void (__stdcall * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids); typedef void (__stdcall * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid** params); typedef void (__stdcall * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data); typedef void (__stdcall * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params); typedef void (__stdcall * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISBUFFERPROC) (GLuint buffer); typedef GLboolean (__stdcall * PFNGLISQUERYPROC) (GLuint id); typedef GLvoid* (__stdcall * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); typedef GLboolean (__stdcall * PFNGLUNMAPBUFFERPROC) (GLenum target); #line 1685 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_2_0 ---------------------------- */ typedef void (__stdcall * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); typedef void (__stdcall * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); typedef void (__stdcall * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum); typedef void (__stdcall * PFNGLCOMPILESHADERPROC) (GLuint shader); typedef GLuint (__stdcall * PFNGLCREATEPROGRAMPROC) (void); typedef GLuint (__stdcall * PFNGLCREATESHADERPROC) (GLenum type); typedef void (__stdcall * PFNGLDELETEPROGRAMPROC) (GLuint program); typedef void (__stdcall * PFNGLDELETESHADERPROC) (GLuint shader); typedef void (__stdcall * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); typedef void (__stdcall * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); typedef void (__stdcall * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs); typedef void (__stdcall * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint); typedef void (__stdcall * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); typedef void (__stdcall * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); typedef void (__stdcall * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); typedef GLint (__stdcall * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); typedef void (__stdcall * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); typedef void (__stdcall * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); typedef void (__stdcall * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); typedef void (__stdcall * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source); typedef void (__stdcall * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); typedef GLint (__stdcall * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name); typedef void (__stdcall * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); typedef void (__stdcall * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint, GLenum, GLvoid**); typedef void (__stdcall * PFNGLGETVERTEXATTRIBDVPROC) (GLuint, GLenum, GLdouble*); typedef void (__stdcall * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*); typedef void (__stdcall * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*); typedef GLboolean (__stdcall * PFNGLISPROGRAMPROC) (GLuint program); typedef GLboolean (__stdcall * PFNGLISSHADERPROC) (GLuint shader); typedef void (__stdcall * PFNGLLINKPROGRAMPROC) (GLuint program); typedef void (__stdcall * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths); typedef void (__stdcall * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); typedef void (__stdcall * PFNGLSTENCILMASKSEPARATEPROC) (GLenum, GLuint); typedef void (__stdcall * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (__stdcall * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); typedef void (__stdcall * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); typedef void (__stdcall * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); typedef void (__stdcall * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); typedef void (__stdcall * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (__stdcall * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); typedef void (__stdcall * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (__stdcall * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (__stdcall * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLUSEPROGRAMPROC) (GLuint program); typedef void (__stdcall * PFNGLVALIDATEPROGRAMPROC) (GLuint program); typedef void (__stdcall * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); typedef void (__stdcall * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); typedef void (__stdcall * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); typedef void (__stdcall * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); typedef void (__stdcall * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); typedef void (__stdcall * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); typedef void (__stdcall * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); typedef void (__stdcall * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v); typedef void (__stdcall * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* pointer); #line 1967 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_2_1 ---------------------------- */ typedef void (__stdcall * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (__stdcall * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (__stdcall * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (__stdcall * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (__stdcall * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (__stdcall * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); #line 2014 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_3_0 ---------------------------- */ typedef void (__stdcall * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint, GLenum); typedef void (__stdcall * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum); typedef void (__stdcall * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint, GLuint, const GLchar*); typedef void (__stdcall * PFNGLCLAMPCOLORPROC) (GLenum, GLenum); typedef void (__stdcall * PFNGLCLEARBUFFERFIPROC) (GLenum, GLint, GLfloat, GLint); typedef void (__stdcall * PFNGLCLEARBUFFERFVPROC) (GLenum, GLint, const GLfloat*); typedef void (__stdcall * PFNGLCLEARBUFFERIVPROC) (GLenum, GLint, const GLint*); typedef void (__stdcall * PFNGLCLEARBUFFERUIVPROC) (GLenum, GLint, const GLuint*); typedef void (__stdcall * PFNGLCOLORMASKIPROC) (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); typedef void (__stdcall * PFNGLDISABLEIPROC) (GLenum, GLuint); typedef void (__stdcall * PFNGLENABLEIPROC) (GLenum, GLuint); typedef void (__stdcall * PFNGLENDCONDITIONALRENDERPROC) (void); typedef void (__stdcall * PFNGLENDTRANSFORMFEEDBACKPROC) (void); typedef void (__stdcall * PFNGLGETBOOLEANI_VPROC) (GLenum, GLuint, GLboolean*); typedef GLint (__stdcall * PFNGLGETFRAGDATALOCATIONPROC) (GLuint, const GLchar*); typedef const GLubyte* (__stdcall * PFNGLGETSTRINGIPROC) (GLenum, GLuint); typedef void (__stdcall * PFNGLGETTEXPARAMETERIIVPROC) (GLenum, GLenum, GLint*); typedef void (__stdcall * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum, GLenum, GLuint*); typedef void (__stdcall * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); typedef void (__stdcall * PFNGLGETUNIFORMUIVPROC) (GLuint, GLint, GLuint*); typedef void (__stdcall * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint, GLenum, GLint*); typedef void (__stdcall * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint, GLenum, GLuint*); typedef GLboolean (__stdcall * PFNGLISENABLEDIPROC) (GLenum, GLuint); typedef void (__stdcall * PFNGLTEXPARAMETERIIVPROC) (GLenum, GLenum, const GLint*); typedef void (__stdcall * PFNGLTEXPARAMETERIUIVPROC) (GLenum, GLenum, const GLuint*); typedef void (__stdcall * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint, GLsizei, const GLchar **, GLenum); typedef void (__stdcall * PFNGLUNIFORM1UIPROC) (GLint, GLuint); typedef void (__stdcall * PFNGLUNIFORM1UIVPROC) (GLint, GLsizei, const GLuint*); typedef void (__stdcall * PFNGLUNIFORM2UIPROC) (GLint, GLuint, GLuint); typedef void (__stdcall * PFNGLUNIFORM2UIVPROC) (GLint, GLsizei, const GLuint*); typedef void (__stdcall * PFNGLUNIFORM3UIPROC) (GLint, GLuint, GLuint, GLuint); typedef void (__stdcall * PFNGLUNIFORM3UIVPROC) (GLint, GLsizei, const GLuint*); typedef void (__stdcall * PFNGLUNIFORM4UIPROC) (GLint, GLuint, GLuint, GLuint, GLuint); typedef void (__stdcall * PFNGLUNIFORM4UIVPROC) (GLint, GLsizei, const GLuint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI1IPROC) (GLuint, GLint); typedef void (__stdcall * PFNGLVERTEXATTRIBI1IVPROC) (GLuint, const GLint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI1UIPROC) (GLuint, GLuint); typedef void (__stdcall * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint, const GLuint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI2IPROC) (GLuint, GLint, GLint); typedef void (__stdcall * PFNGLVERTEXATTRIBI2IVPROC) (GLuint, const GLint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI2UIPROC) (GLuint, GLuint, GLuint); typedef void (__stdcall * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint, const GLuint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI3IPROC) (GLuint, GLint, GLint, GLint); typedef void (__stdcall * PFNGLVERTEXATTRIBI3IVPROC) (GLuint, const GLint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI3UIPROC) (GLuint, GLuint, GLuint, GLuint); typedef void (__stdcall * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint, const GLuint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI4BVPROC) (GLuint, const GLbyte*); typedef void (__stdcall * PFNGLVERTEXATTRIBI4IPROC) (GLuint, GLint, GLint, GLint, GLint); typedef void (__stdcall * PFNGLVERTEXATTRIBI4IVPROC) (GLuint, const GLint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI4SVPROC) (GLuint, const GLshort*); typedef void (__stdcall * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint, const GLubyte*); typedef void (__stdcall * PFNGLVERTEXATTRIBI4UIPROC) (GLuint, GLuint, GLuint, GLuint, GLuint); typedef void (__stdcall * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint, const GLuint*); typedef void (__stdcall * PFNGLVERTEXATTRIBI4USVPROC) (GLuint, const GLushort*); typedef void (__stdcall * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint, GLint, GLenum, GLsizei, const GLvoid*); #line 2244 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_3_1 ---------------------------- */ typedef void (__stdcall * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum, GLint, GLsizei, GLsizei); typedef void (__stdcall * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum, GLsizei, GLenum, const GLvoid*, GLsizei); typedef void (__stdcall * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint); typedef void (__stdcall * PFNGLTEXBUFFERPROC) (GLenum, GLenum, GLuint); #line 2298 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_3_2 ---------------------------- */ typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum, GLenum, GLuint, GLint); typedef void (__stdcall * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum, GLenum, GLint64 *); typedef void (__stdcall * PFNGLGETINTEGER64I_VPROC) (GLenum, GLuint, GLint64 *); #line 2338 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_3_3 ---------------------------- */ typedef void (__stdcall * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); #line 2360 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_4_0 ---------------------------- */ typedef void (__stdcall * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); typedef void (__stdcall * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); typedef void (__stdcall * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); typedef void (__stdcall * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); typedef void (__stdcall * PFNGLMINSAMPLESHADINGPROC) (GLclampf value); #line 2399 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_VERSION_4_1 ---------------------------- */ #line 2408 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_3DFX_multisample -------------------------- */ #line 2422 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_3DFX_tbuffer ---------------------------- */ typedef void (__stdcall * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); #line 2435 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */ #line 2447 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_AMD_conservative_depth ----------------------- */ #line 2456 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_AMD_debug_output -------------------------- */ typedef void (__stdcall *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); typedef void (__stdcall * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void* userParam); typedef void (__stdcall * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); typedef void (__stdcall * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const char* buf); typedef GLuint (__stdcall * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, char* message); #line 2492 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */ #line 2504 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */ typedef void (__stdcall * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); typedef void (__stdcall * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); typedef void (__stdcall * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); typedef void (__stdcall * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); #line 2523 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_AMD_name_gen_delete ------------------------ */ typedef void (__stdcall * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names); typedef void (__stdcall * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names); typedef GLboolean (__stdcall * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); #line 2546 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_AMD_performance_monitor ---------------------- */ typedef void (__stdcall * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); typedef void (__stdcall * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); typedef void (__stdcall * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); typedef void (__stdcall * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); typedef void (__stdcall * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten); typedef void (__stdcall * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void* data); typedef void (__stdcall * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char *counterString); typedef void (__stdcall * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); typedef void (__stdcall * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, char *groupString); typedef void (__stdcall * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups); typedef void (__stdcall * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList); #line 2589 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */ #line 2600 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_AMD_shader_stencil_export --------------------- */ #line 2609 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_AMD_texture_texture4 ------------------------ */ #line 2618 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */ #line 2627 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */ typedef void (__stdcall * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); typedef void (__stdcall * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); #line 2650 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */ #line 2661 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_APPLE_client_storage ------------------------ */ #line 2672 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_APPLE_element_array ------------------------ */ typedef void (__stdcall * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); typedef void (__stdcall * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); typedef void (__stdcall * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void* pointer); typedef void (__stdcall * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); typedef void (__stdcall * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount); #line 2697 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_APPLE_fence ---------------------------- */ typedef void (__stdcall * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences); typedef void (__stdcall * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); typedef void (__stdcall * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); typedef void (__stdcall * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences); typedef GLboolean (__stdcall * PFNGLISFENCEAPPLEPROC) (GLuint fence); typedef void (__stdcall * PFNGLSETFENCEAPPLEPROC) (GLuint fence); typedef GLboolean (__stdcall * PFNGLTESTFENCEAPPLEPROC) (GLuint fence); typedef GLboolean (__stdcall * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); #line 2727 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_APPLE_float_pixels ------------------------- */ #line 2751 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */ typedef void (__stdcall * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); typedef void (__stdcall * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); #line 2769 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_APPLE_object_purgeable ----------------------- */ typedef void (__stdcall * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params); typedef GLenum (__stdcall * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); typedef GLenum (__stdcall * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); #line 2793 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_APPLE_pixel_buffer ------------------------- */ #line 2804 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_APPLE_rgb_422 --------------------------- */ #line 2817 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_APPLE_row_bytes -------------------------- */ #line 2829 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_APPLE_specular_vector ----------------------- */ #line 2840 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_APPLE_texture_range ------------------------ */ typedef void (__stdcall * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params); typedef void (__stdcall * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, GLvoid *pointer); #line 2862 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_APPLE_transform_hint ------------------------ */ #line 2873 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_APPLE_vertex_array_object --------------------- */ typedef void (__stdcall * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); typedef void (__stdcall * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); typedef void (__stdcall * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); typedef GLboolean (__stdcall * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); #line 2894 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_APPLE_vertex_array_range ---------------------- */ typedef void (__stdcall * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); typedef void (__stdcall * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); typedef void (__stdcall * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); #line 2920 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */ typedef void (__stdcall * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); typedef void (__stdcall * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); typedef GLboolean (__stdcall * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); typedef void (__stdcall * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points); typedef void (__stdcall * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points); typedef void (__stdcall * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points); typedef void (__stdcall * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points); #line 2956 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */ #line 2969 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_ES2_compatibility ----------------------- */ typedef void (__stdcall * PFNGLCLEARDEPTHFPROC) (GLclampf d); typedef void (__stdcall * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); typedef void (__stdcall * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision); typedef void (__stdcall * PFNGLRELEASESHADERCOMPILERPROC) (void); typedef void (__stdcall * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const GLvoid*binary, GLsizei length); #line 3006 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_blend_func_extended ---------------------- */ typedef void (__stdcall * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const char * name); typedef GLint (__stdcall * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const char * name); #line 3026 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_ARB_cl_event ---------------------------- */ typedef struct _cl_context *cl_context; typedef struct _cl_event *cl_event; typedef GLsync (__stdcall * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); #line 3045 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_color_buffer_float ----------------------- */ typedef void (__stdcall * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); #line 3064 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_compatibility ------------------------- */ #line 3073 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_ARB_copy_buffer -------------------------- */ typedef void (__stdcall * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); #line 3089 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_debug_output -------------------------- */ typedef void (__stdcall *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); typedef void (__stdcall * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, void* userParam); typedef void (__stdcall * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); typedef void (__stdcall * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* buf); typedef GLuint (__stdcall * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, char* messageLog); #line 3133 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_depth_buffer_float ----------------------- */ #line 3146 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_ARB_depth_clamp -------------------------- */ #line 3157 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_depth_texture ------------------------- */ #line 3172 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_draw_buffers -------------------------- */ typedef void (__stdcall * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs); #line 3203 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */ typedef void (__stdcall * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); typedef void (__stdcall * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); typedef void (__stdcall * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); typedef void (__stdcall * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); #line 3222 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */ typedef void (__stdcall * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, void* indices, GLint basevertex); typedef void (__stdcall * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex); typedef void (__stdcall * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void* indices, GLint basevertex); typedef void (__stdcall * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei* count, GLenum type, GLvoid**indices, GLsizei primcount, GLint *basevertex); #line 3241 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_draw_indirect ------------------------- */ typedef void (__stdcall * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void* indirect); typedef void (__stdcall * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void* indirect); #line 3259 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_draw_instanced ------------------------- */ typedef void (__stdcall * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); typedef void (__stdcall * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); #line 3274 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_ARB_explicit_attrib_location -------------------- */ #line 3283 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_ARB_fragment_coord_conventions ------------------- */ #line 3292 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_fragment_program ------------------------ */ #line 3317 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_ARB_fragment_program_shadow -------------------- */ #line 3326 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_fragment_shader ------------------------ */ #line 3339 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_framebuffer_object ----------------------- */ typedef void (__stdcall * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); typedef void (__stdcall * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); typedef void (__stdcall * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef GLenum (__stdcall * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); typedef void (__stdcall * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers); typedef void (__stdcall * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers); typedef void (__stdcall * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer); typedef void (__stdcall * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); typedef void (__stdcall * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); typedef void (__stdcall * PFNGLGENERATEMIPMAPPROC) (GLenum target); typedef void (__stdcall * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); typedef GLboolean (__stdcall * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); typedef void (__stdcall * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #line 3465 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */ #line 3476 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_geometry_shader4 ------------------------ */ typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void (__stdcall * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); #line 3515 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_get_program_binary ----------------------- */ typedef void (__stdcall * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, GLvoid*binary); typedef void (__stdcall * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void* binary, GLsizei length); typedef void (__stdcall * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); #line 3537 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ #line 3553 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */ typedef void (__stdcall * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); typedef void (__stdcall * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); #line 3647 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_half_float_pixel ------------------------ */ #line 3658 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_half_float_vertex ----------------------- */ #line 3669 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_ARB_imaging ---------------------------- */ typedef void (__stdcall * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); typedef void (__stdcall * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); typedef void (__stdcall * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (__stdcall * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (__stdcall * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); typedef void (__stdcall * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); typedef void (__stdcall * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); typedef void (__stdcall * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (__stdcall * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); typedef void (__stdcall * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (__stdcall * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); typedef void (__stdcall * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (__stdcall * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (__stdcall * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); typedef void (__stdcall * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (__stdcall * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (__stdcall * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); typedef void (__stdcall * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (__stdcall * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (__stdcall * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); typedef void (__stdcall * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (__stdcall * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (__stdcall * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values); typedef void (__stdcall * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (__stdcall * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (__stdcall * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); typedef void (__stdcall * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); typedef void (__stdcall * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); typedef void (__stdcall * PFNGLRESETHISTOGRAMPROC) (GLenum target); typedef void (__stdcall * PFNGLRESETMINMAXPROC) (GLenum target); typedef void (__stdcall * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); #line 3822 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_instanced_arrays ------------------------ */ typedef void (__stdcall * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); #line 3837 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_map_buffer_range ------------------------ */ typedef void (__stdcall * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); typedef GLvoid * (__stdcall * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); #line 3859 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_matrix_palette ------------------------- */ typedef void (__stdcall * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); typedef void (__stdcall * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); typedef void (__stdcall * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices); typedef void (__stdcall * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices); typedef void (__stdcall * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices); #line 3891 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_ARB_multisample -------------------------- */ typedef void (__stdcall * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); #line 3914 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_multitexture -------------------------- */ typedef void (__stdcall * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); typedef void (__stdcall * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); typedef void (__stdcall * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); typedef void (__stdcall * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); typedef void (__stdcall * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); typedef void (__stdcall * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); typedef void (__stdcall * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); typedef void (__stdcall * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); typedef void (__stdcall * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); typedef void (__stdcall * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); typedef void (__stdcall * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); typedef void (__stdcall * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); typedef void (__stdcall * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); typedef void (__stdcall * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); typedef void (__stdcall * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); typedef void (__stdcall * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); typedef void (__stdcall * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); typedef void (__stdcall * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); typedef void (__stdcall * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); typedef void (__stdcall * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); typedef void (__stdcall * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); typedef void (__stdcall * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); typedef void (__stdcall * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); typedef void (__stdcall * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); typedef void (__stdcall * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); typedef void (__stdcall * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); typedef void (__stdcall * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); typedef void (__stdcall * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); typedef void (__stdcall * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); typedef void (__stdcall * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); typedef void (__stdcall * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); typedef void (__stdcall * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); typedef void (__stdcall * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); typedef void (__stdcall * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); #line 4029 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_occlusion_query ------------------------ */ typedef void (__stdcall * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); typedef void (__stdcall * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids); typedef void (__stdcall * PFNGLENDQUERYARBPROC) (GLenum target); typedef void (__stdcall * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids); typedef void (__stdcall * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params); typedef void (__stdcall * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISQUERYARBPROC) (GLuint id); #line 4062 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_occlusion_query2 ------------------------ */ #line 4073 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */ #line 4087 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_point_parameters ------------------------ */ typedef void (__stdcall * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params); #line 4107 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_point_sprite -------------------------- */ #line 4119 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_provoking_vertex ------------------------ */ typedef void (__stdcall * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); #line 4137 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_ARB_robustness --------------------------- */ typedef void (__stdcall * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table); typedef void (__stdcall * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img); typedef void (__stdcall * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image); typedef void (__stdcall * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); typedef void (__stdcall * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v); typedef void (__stdcall * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v); typedef void (__stdcall * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v); typedef void (__stdcall * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); typedef void (__stdcall * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values); typedef void (__stdcall * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values); typedef void (__stdcall * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values); typedef void (__stdcall * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern); typedef void (__stdcall * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, GLvoid*column, GLvoid*span); typedef void (__stdcall * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img); typedef void (__stdcall * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params); typedef void (__stdcall * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); typedef void (__stdcall * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); typedef void (__stdcall * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); typedef void (__stdcall * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data); #line 4194 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_sample_shading ------------------------- */ typedef void (__stdcall * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); #line 4210 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_sampler_objects ------------------------ */ typedef void (__stdcall * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); typedef void (__stdcall * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers); typedef void (__stdcall * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers); typedef void (__stdcall * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params); typedef void (__stdcall * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISSAMPLERPROC) (GLuint sampler); typedef void (__stdcall * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params); typedef void (__stdcall * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); typedef void (__stdcall * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params); #line 4251 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_seamless_cube_map ----------------------- */ #line 4262 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_ARB_separate_shader_objects -------------------- */ typedef void (__stdcall * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); typedef void (__stdcall * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); typedef GLuint (__stdcall * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const char ** strings); typedef void (__stdcall * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines); typedef void (__stdcall * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); typedef void (__stdcall * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, char *infoLog); typedef void (__stdcall * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); typedef void (__stdcall * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); #line 4403 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */ #line 4412 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_shader_objects ------------------------- */ typedef char GLcharARB; typedef unsigned int GLhandleARB; typedef void (__stdcall * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); typedef void (__stdcall * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); typedef GLhandleARB (__stdcall * PFNGLCREATEPROGRAMOBJECTARBPROC) (void); typedef GLhandleARB (__stdcall * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); typedef void (__stdcall * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); typedef void (__stdcall * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); typedef void (__stdcall * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); typedef void (__stdcall * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj); typedef GLhandleARB (__stdcall * PFNGLGETHANDLEARBPROC) (GLenum pname); typedef void (__stdcall * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog); typedef void (__stdcall * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source); typedef GLint (__stdcall * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); typedef void (__stdcall * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params); typedef void (__stdcall * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params); typedef void (__stdcall * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); typedef void (__stdcall * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length); typedef void (__stdcall * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); typedef void (__stdcall * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); typedef void (__stdcall * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); typedef void (__stdcall * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); typedef void (__stdcall * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (__stdcall * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); typedef void (__stdcall * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (__stdcall * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (__stdcall * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); typedef void (__stdcall * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); #line 4539 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_shader_precision ------------------------ */ #line 4548 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ARB_shader_stencil_export --------------------- */ #line 4557 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_shader_subroutine ----------------------- */ typedef void (__stdcall * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); typedef void (__stdcall * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); typedef void (__stdcall * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values); typedef void (__stdcall * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values); typedef GLuint (__stdcall * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const char* name); typedef GLint (__stdcall * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const char* name); typedef void (__stdcall * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params); typedef void (__stdcall * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices); #line 4594 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_shader_texture_lod ----------------------- */ #line 4603 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ARB_shading_language_100 ---------------------- */ #line 4614 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_ARB_shading_language_include -------------------- */ typedef void (__stdcall * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const char ** path, const GLint *length); typedef void (__stdcall * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const char* name); typedef void (__stdcall * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const char* name, GLsizei bufSize, GLint *stringlen, char *string); typedef void (__stdcall * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const char* name, GLenum pname, GLint *params); typedef GLboolean (__stdcall * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const char* name); typedef void (__stdcall * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const char* name, GLint stringlen, const char *string); #line 4641 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_ARB_shadow ----------------------------- */ #line 4654 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_shadow_ambient ------------------------- */ #line 4665 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------------ GL_ARB_sync ------------------------------ */ typedef GLenum (__stdcall * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); typedef void (__stdcall * PFNGLDELETESYNCPROC) (GLsync GLsync); typedef GLsync (__stdcall * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags); typedef void (__stdcall * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params); typedef void (__stdcall * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values); typedef GLboolean (__stdcall * PFNGLISSYNCPROC) (GLsync GLsync); typedef void (__stdcall * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); #line 4706 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_tessellation_shader ---------------------- */ typedef void (__stdcall * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values); typedef void (__stdcall * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); #line 4754 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ARB_texture_border_clamp ---------------------- */ #line 4765 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ARB_texture_buffer_object --------------------- */ typedef void (__stdcall * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); #line 4784 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */ #line 4793 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_texture_compression ---------------------- */ typedef void (__stdcall * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void* img); #line 4830 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_ARB_texture_compression_bptc -------------------- */ #line 4844 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_ARB_texture_compression_rgtc -------------------- */ #line 4858 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_texture_cube_map ------------------------ */ #line 4880 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_ARB_texture_cube_map_array --------------------- */ #line 4897 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_texture_env_add ------------------------ */ #line 4906 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_texture_env_combine ---------------------- */ #line 4938 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */ #line 4947 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */ #line 4959 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_texture_float ------------------------- */ #line 4989 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_texture_gather ------------------------- */ #line 5002 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */ #line 5013 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_texture_multisample ---------------------- */ typedef void (__stdcall * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); typedef void (__stdcall * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); typedef void (__stdcall * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); typedef void (__stdcall * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); #line 5054 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_ARB_texture_non_power_of_two -------------------- */ #line 5063 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_texture_query_lod ----------------------- */ #line 5072 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_texture_rectangle ----------------------- */ #line 5088 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_ARB_texture_rg --------------------------- */ #line 5123 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */ #line 5134 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_texture_swizzle ------------------------ */ #line 5149 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_ARB_timer_query -------------------------- */ typedef void (__stdcall * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params); typedef void (__stdcall * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params); typedef void (__stdcall * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); #line 5169 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_transform_feedback2 ---------------------- */ typedef void (__stdcall * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); typedef void (__stdcall * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids); typedef void (__stdcall * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); typedef void (__stdcall * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); typedef GLboolean (__stdcall * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); typedef void (__stdcall * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); typedef void (__stdcall * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); #line 5199 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_transform_feedback3 ---------------------- */ typedef void (__stdcall * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); typedef void (__stdcall * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); typedef void (__stdcall * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); typedef void (__stdcall * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); #line 5221 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_transpose_matrix ------------------------ */ typedef void (__stdcall * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); typedef void (__stdcall * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); typedef void (__stdcall * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); typedef void (__stdcall * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); #line 5245 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ARB_uniform_buffer_object --------------------- */ typedef void (__stdcall * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (__stdcall * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (__stdcall * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, char* uniformBlockName); typedef void (__stdcall * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, char* uniformName); typedef void (__stdcall * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); typedef GLuint (__stdcall * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const char* uniformBlockName); typedef void (__stdcall * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const char** uniformNames, GLuint* uniformIndices); typedef void (__stdcall * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); #line 5310 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */ #line 5321 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_vertex_array_object ---------------------- */ typedef void (__stdcall * PFNGLBINDVERTEXARRAYPROC) (GLuint array); typedef void (__stdcall * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); typedef void (__stdcall * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); typedef GLboolean (__stdcall * PFNGLISVERTEXARRAYPROC) (GLuint array); #line 5342 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */ typedef void (__stdcall * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params); typedef void (__stdcall * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); typedef void (__stdcall * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); #line 5380 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_vertex_blend -------------------------- */ typedef void (__stdcall * PFNGLVERTEXBLENDARBPROC) (GLint count); typedef void (__stdcall * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); typedef void (__stdcall * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights); typedef void (__stdcall * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights); typedef void (__stdcall * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights); typedef void (__stdcall * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights); typedef void (__stdcall * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights); typedef void (__stdcall * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights); typedef void (__stdcall * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights); typedef void (__stdcall * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights); #line 5454 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */ typedef ptrdiff_t GLintptrARB; typedef ptrdiff_t GLsizeiptrARB; typedef void (__stdcall * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); typedef void (__stdcall * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid* data, GLenum usage); typedef void (__stdcall * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid* data); typedef void (__stdcall * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers); typedef void (__stdcall * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers); typedef void (__stdcall * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid** params); typedef void (__stdcall * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid* data); typedef GLboolean (__stdcall * PFNGLISBUFFERARBPROC) (GLuint buffer); typedef GLvoid * (__stdcall * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); typedef GLboolean (__stdcall * PFNGLUNMAPBUFFERARBPROC) (GLenum target); #line 5522 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_vertex_program ------------------------- */ typedef void (__stdcall * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); typedef void (__stdcall * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs); typedef void (__stdcall * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); typedef void (__stdcall * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); typedef void (__stdcall * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs); typedef void (__stdcall * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); typedef void (__stdcall * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); typedef void (__stdcall * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); typedef void (__stdcall * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); typedef void (__stdcall * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void* string); typedef void (__stdcall * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid** pointer); typedef void (__stdcall * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISPROGRAMARBPROC) (GLuint program); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); typedef void (__stdcall * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void* string); typedef void (__stdcall * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); typedef void (__stdcall * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); typedef void (__stdcall * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); typedef void (__stdcall * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); typedef void (__stdcall * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); typedef void (__stdcall * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); typedef void (__stdcall * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); typedef void (__stdcall * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v); typedef void (__stdcall * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); #line 5737 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ARB_vertex_shader ------------------------- */ typedef void (__stdcall * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name); typedef void (__stdcall * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); typedef GLint (__stdcall * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); #line 5762 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */ typedef void (__stdcall * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); typedef void (__stdcall * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color); typedef void (__stdcall * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); typedef void (__stdcall * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color); typedef void (__stdcall * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); typedef void (__stdcall * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); typedef void (__stdcall * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); typedef void (__stdcall * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); typedef void (__stdcall * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); typedef void (__stdcall * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); typedef void (__stdcall * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color); typedef void (__stdcall * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); typedef void (__stdcall * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); typedef void (__stdcall * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); typedef void (__stdcall * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); typedef void (__stdcall * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords); typedef void (__stdcall * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); typedef void (__stdcall * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); typedef void (__stdcall * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); typedef void (__stdcall * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); typedef void (__stdcall * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); typedef void (__stdcall * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); typedef void (__stdcall * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); typedef void (__stdcall * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); typedef void (__stdcall * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); typedef void (__stdcall * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value); typedef void (__stdcall * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); typedef void (__stdcall * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value); typedef void (__stdcall * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); typedef void (__stdcall * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value); #line 5852 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ARB_viewport_array ------------------------- */ typedef void (__stdcall * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v); typedef void (__stdcall * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); typedef void (__stdcall * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data); typedef void (__stdcall * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data); typedef void (__stdcall * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v); typedef void (__stdcall * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v); typedef void (__stdcall * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v); typedef void (__stdcall * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); typedef void (__stdcall * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v); #line 5897 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_ARB_window_pos --------------------------- */ typedef void (__stdcall * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p); typedef void (__stdcall * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p); typedef void (__stdcall * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); typedef void (__stdcall * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p); typedef void (__stdcall * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); typedef void (__stdcall * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p); typedef void (__stdcall * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p); typedef void (__stdcall * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p); typedef void (__stdcall * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); typedef void (__stdcall * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p); typedef void (__stdcall * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); typedef void (__stdcall * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); #line 5940 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ATIX_point_sprites ------------------------- */ #line 5956 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */ #line 5969 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ATIX_texture_env_route ----------------------- */ #line 5982 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */ #line 5993 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ATI_draw_buffers -------------------------- */ typedef void (__stdcall * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs); #line 6024 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ATI_element_array ------------------------- */ typedef void (__stdcall * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); typedef void (__stdcall * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); typedef void (__stdcall * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void* pointer); #line 6045 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */ typedef void (__stdcall * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); typedef void (__stdcall * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); typedef void (__stdcall * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); typedef void (__stdcall * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); #line 6073 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ATI_fragment_shader ------------------------ */ typedef void (__stdcall * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); typedef void (__stdcall * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); typedef void (__stdcall * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); typedef void (__stdcall * PFNGLBEGINFRAGMENTSHADERATIPROC) (void); typedef void (__stdcall * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); typedef void (__stdcall * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); typedef void (__stdcall * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); typedef void (__stdcall * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); typedef void (__stdcall * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); typedef void (__stdcall * PFNGLENDFRAGMENTSHADERATIPROC) (void); typedef GLuint (__stdcall * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); typedef void (__stdcall * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); typedef void (__stdcall * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); typedef void (__stdcall * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value); #line 6167 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ATI_map_object_buffer ----------------------- */ typedef void* (__stdcall * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); typedef void (__stdcall * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); #line 6182 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_ATI_meminfo ---------------------------- */ #line 6195 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ATI_pn_triangles -------------------------- */ typedef void (__stdcall * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); #line 6220 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_ATI_separate_stencil ------------------------ */ typedef void (__stdcall * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); typedef void (__stdcall * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); #line 6240 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ATI_shader_texture_lod ----------------------- */ #line 6249 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ATI_text_fragment_shader ---------------------- */ #line 6260 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_ATI_texture_compression_3dc -------------------- */ #line 6271 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */ #line 6284 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_ATI_texture_float ------------------------- */ #line 6306 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ATI_texture_mirror_once ---------------------- */ #line 6318 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_ATI_vertex_array_object ---------------------- */ typedef void (__stdcall * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); typedef void (__stdcall * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); typedef void (__stdcall * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); typedef GLuint (__stdcall * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void* pointer, GLenum usage); typedef void (__stdcall * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void* pointer, GLenum preserve); typedef void (__stdcall * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); #line 6362 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */ typedef void (__stdcall * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); #line 6379 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_ATI_vertex_streams ------------------------- */ typedef void (__stdcall * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); typedef void (__stdcall * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z); typedef void (__stdcall * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *v); typedef void (__stdcall * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); typedef void (__stdcall * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); typedef void (__stdcall * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); typedef void (__stdcall * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *v); typedef void (__stdcall * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); typedef void (__stdcall * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); typedef void (__stdcall * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); typedef void (__stdcall * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *v); typedef void (__stdcall * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *v); typedef void (__stdcall * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); typedef void (__stdcall * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *v); typedef void (__stdcall * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); typedef void (__stdcall * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *v); typedef void (__stdcall * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); typedef void (__stdcall * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); typedef void (__stdcall * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); typedef void (__stdcall * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *v); typedef void (__stdcall * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); typedef void (__stdcall * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); typedef void (__stdcall * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *v); typedef void (__stdcall * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *v); typedef void (__stdcall * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); typedef void (__stdcall * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *v); typedef void (__stdcall * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); typedef void (__stdcall * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *v); #line 6475 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_422_pixels --------------------------- */ #line 6489 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_EXT_Cg_shader --------------------------- */ #line 6501 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------------ GL_EXT_abgr ------------------------------ */ #line 6512 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------------ GL_EXT_bgra ------------------------------ */ #line 6524 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_bindable_uniform ------------------------ */ typedef GLint (__stdcall * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); typedef GLintptr (__stdcall * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); typedef void (__stdcall * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); #line 6548 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_blend_color -------------------------- */ typedef void (__stdcall * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); #line 6567 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_blend_equation_separate -------------------- */ typedef void (__stdcall * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); #line 6583 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_blend_func_separate ---------------------- */ typedef void (__stdcall * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); #line 6601 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_blend_logic_op ------------------------- */ #line 6610 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_blend_minmax -------------------------- */ typedef void (__stdcall * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); #line 6628 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_blend_subtract ------------------------- */ #line 6640 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ #line 6651 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------------ GL_EXT_cmyka ----------------------------- */ #line 6665 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_color_subtable ------------------------- */ typedef void (__stdcall * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void* data); typedef void (__stdcall * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); #line 6680 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_EXT_compiled_vertex_array --------------------- */ typedef void (__stdcall * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); typedef void (__stdcall * PFNGLUNLOCKARRAYSEXTPROC) (void); #line 6698 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_convolution -------------------------- */ typedef void (__stdcall * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* image); typedef void (__stdcall * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* image); typedef void (__stdcall * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); typedef void (__stdcall * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (__stdcall * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* image); typedef void (__stdcall * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* row, void* column, void* span); typedef void (__stdcall * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* row, const void* column); #line 6756 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_coordinate_frame ------------------------ */ typedef void (__stdcall * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); typedef void (__stdcall * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); #line 6786 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_copy_texture -------------------------- */ typedef void (__stdcall * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); typedef void (__stdcall * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (__stdcall * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); typedef void (__stdcall * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); #line 6807 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_cull_vertex -------------------------- */ typedef void (__stdcall * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); typedef void (__stdcall * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); #line 6826 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_depth_bounds_test ----------------------- */ typedef void (__stdcall * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); #line 6842 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_direct_state_access ---------------------- */ typedef void (__stdcall * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); typedef GLenum (__stdcall * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); typedef void (__stdcall * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); typedef void (__stdcall * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); typedef void (__stdcall * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); typedef void (__stdcall * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (__stdcall * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); typedef void (__stdcall * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); typedef void (__stdcall * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (__stdcall * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); typedef void (__stdcall * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); typedef void (__stdcall * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); typedef void (__stdcall * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); typedef void (__stdcall * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); typedef void (__stdcall * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); typedef void (__stdcall * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); typedef void (__stdcall * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); typedef void (__stdcall * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); typedef void (__stdcall * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); typedef void (__stdcall * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); typedef void (__stdcall * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); typedef void (__stdcall * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); typedef void (__stdcall * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); typedef void (__stdcall * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); typedef void (__stdcall * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void* img); typedef void (__stdcall * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void* img); typedef void (__stdcall * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params); typedef void (__stdcall * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params); typedef void (__stdcall * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params); typedef void (__stdcall * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params); typedef void (__stdcall * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param); typedef void (__stdcall * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params); typedef void (__stdcall * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); typedef void (__stdcall * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params); typedef void (__stdcall * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params); typedef void (__stdcall * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void* data); typedef void (__stdcall * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params); typedef void (__stdcall * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params); typedef void (__stdcall * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params); typedef void (__stdcall * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params); typedef void (__stdcall * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void* string); typedef void (__stdcall * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid** params); typedef void (__stdcall * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, GLvoid** params); typedef void (__stdcall * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); typedef void (__stdcall * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params); typedef void (__stdcall * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); typedef void (__stdcall * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param); typedef void (__stdcall * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLvoid** param); typedef void (__stdcall * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, GLvoid** param); typedef GLvoid * (__stdcall * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); typedef GLvoid * (__stdcall * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (__stdcall * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); typedef void (__stdcall * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode); typedef void (__stdcall * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); typedef void (__stdcall * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); typedef void (__stdcall * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m); typedef void (__stdcall * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m); typedef void (__stdcall * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); typedef void (__stdcall * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); typedef void (__stdcall * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m); typedef void (__stdcall * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m); typedef void (__stdcall * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); typedef void (__stdcall * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode); typedef void (__stdcall * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode); typedef void (__stdcall * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); typedef void (__stdcall * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void* pointer); typedef void (__stdcall * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); typedef void (__stdcall * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); typedef void (__stdcall * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params); typedef void (__stdcall * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); typedef void (__stdcall * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params); typedef void (__stdcall * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param); typedef void (__stdcall * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); typedef void (__stdcall * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param); typedef void (__stdcall * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); typedef void (__stdcall * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void* data, GLenum usage); typedef void (__stdcall * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void* data); typedef void (__stdcall * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); typedef void (__stdcall * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (__stdcall * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (__stdcall * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (__stdcall * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); typedef void (__stdcall * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); typedef void (__stdcall * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); typedef void (__stdcall * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params); typedef void (__stdcall * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params); typedef void (__stdcall * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void* string); typedef void (__stdcall * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (__stdcall * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); typedef void (__stdcall * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); typedef void (__stdcall * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params); typedef void (__stdcall * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param); typedef void (__stdcall * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); typedef void (__stdcall * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param); typedef void (__stdcall * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); typedef void (__stdcall * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); typedef GLboolean (__stdcall * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); typedef void (__stdcall * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); #line 7283 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ typedef void (__stdcall * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); typedef void (__stdcall * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); typedef void (__stdcall * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); typedef void (__stdcall * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data); typedef void (__stdcall * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data); typedef GLboolean (__stdcall * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); #line 7306 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_draw_instanced ------------------------- */ typedef void (__stdcall * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); typedef void (__stdcall * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); #line 7321 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_draw_range_elements ---------------------- */ typedef void (__stdcall * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); #line 7337 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_EXT_fog_coord --------------------------- */ typedef void (__stdcall * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (__stdcall * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); typedef void (__stdcall * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); typedef void (__stdcall * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); typedef void (__stdcall * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); #line 7367 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_fragment_lighting ----------------------- */ typedef void (__stdcall * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode); typedef void (__stdcall * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param); typedef void (__stdcall * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params); typedef void (__stdcall * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param); typedef void (__stdcall * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param); typedef void (__stdcall * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param); typedef void (__stdcall * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param); #line 7429 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_framebuffer_blit ------------------------ */ typedef void (__stdcall * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #line 7447 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_framebuffer_multisample -------------------- */ typedef void (__stdcall * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #line 7464 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_framebuffer_object ----------------------- */ typedef void (__stdcall * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); typedef void (__stdcall * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); typedef GLenum (__stdcall * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); typedef void (__stdcall * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers); typedef void (__stdcall * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers); typedef void (__stdcall * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); typedef void (__stdcall * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers); typedef void (__stdcall * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers); typedef void (__stdcall * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); typedef void (__stdcall * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); typedef GLboolean (__stdcall * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); typedef void (__stdcall * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); #line 7561 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */ #line 7573 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void (__stdcall * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); #line 7613 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_gpu_program_parameters --------------------- */ typedef void (__stdcall * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); #line 7628 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_gpu_shader4 -------------------------- */ typedef void (__stdcall * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); typedef GLint (__stdcall * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); typedef void (__stdcall * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); typedef void (__stdcall * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); typedef void (__stdcall * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (__stdcall * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); typedef void (__stdcall * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (__stdcall * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (__stdcall * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (__stdcall * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (__stdcall * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (__stdcall * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); typedef void (__stdcall * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); typedef void (__stdcall * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); typedef void (__stdcall * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); typedef void (__stdcall * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); typedef void (__stdcall * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); typedef void (__stdcall * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (__stdcall * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (__stdcall * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); typedef void (__stdcall * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); typedef void (__stdcall * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); #line 7734 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_EXT_histogram --------------------------- */ typedef void (__stdcall * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); typedef void (__stdcall * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); typedef void (__stdcall * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); typedef void (__stdcall * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); typedef void (__stdcall * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); typedef void (__stdcall * PFNGLRESETMINMAXEXTPROC) (GLenum target); #line 7779 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_index_array_formats ---------------------- */ #line 7788 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_index_func --------------------------- */ typedef void (__stdcall * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref); #line 7801 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_index_material ------------------------- */ typedef void (__stdcall * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); #line 7814 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_index_texture ------------------------- */ #line 7823 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_light_texture ------------------------- */ typedef void (__stdcall * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); typedef void (__stdcall * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); typedef void (__stdcall * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); #line 7851 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_misc_attribute ------------------------- */ #line 7860 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */ typedef void (__stdcall * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); typedef void (__stdcall * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const GLvoid **indices, GLsizei primcount); #line 7875 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_multisample -------------------------- */ typedef void (__stdcall * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); typedef void (__stdcall * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); #line 7908 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ #line 7922 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_packed_float -------------------------- */ #line 7935 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_packed_pixels ------------------------- */ #line 7950 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_paletted_texture ------------------------ */ typedef void (__stdcall * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void* data); typedef void (__stdcall * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void* data); typedef void (__stdcall * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); #line 7993 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */ #line 8007 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_pixel_transform ------------------------ */ typedef void (__stdcall * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param); typedef void (__stdcall * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param); typedef void (__stdcall * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); #line 8040 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_EXT_pixel_transform_color_table ------------------ */ #line 8049 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_point_parameters ------------------------ */ typedef void (__stdcall * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params); #line 8069 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_polygon_offset ------------------------- */ typedef void (__stdcall * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); #line 8086 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_provoking_vertex ------------------------ */ typedef void (__stdcall * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); #line 8104 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_rescale_normal ------------------------- */ #line 8115 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_scene_marker -------------------------- */ typedef void (__stdcall * PFNGLBEGINSCENEEXTPROC) (void); typedef void (__stdcall * PFNGLENDSCENEEXTPROC) (void); #line 8130 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_secondary_color ------------------------ */ typedef void (__stdcall * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); typedef void (__stdcall * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); #line 8183 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_separate_shader_objects -------------------- */ typedef void (__stdcall * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); typedef GLuint (__stdcall * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const char* string); typedef void (__stdcall * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); #line 8202 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_separate_specular_color -------------------- */ #line 8215 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_shader_image_load_store -------------------- */ typedef void (__stdcall * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); typedef void (__stdcall * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #line 8286 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_shadow_funcs -------------------------- */ #line 8295 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_shared_texture_palette --------------------- */ #line 8306 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ #line 8318 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_stencil_two_side ------------------------ */ typedef void (__stdcall * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); #line 8334 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_stencil_wrap -------------------------- */ #line 8346 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_subtexture --------------------------- */ typedef void (__stdcall * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); #line 8363 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_EXT_texture ---------------------------- */ #line 8415 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_EXT_texture3D --------------------------- */ typedef void (__stdcall * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); #line 8438 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_texture_array ------------------------- */ #line 8456 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_EXT_texture_buffer_object --------------------- */ typedef void (__stdcall * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); #line 8475 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ #line 8487 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_EXT_texture_compression_latc -------------------- */ #line 8501 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_EXT_texture_compression_rgtc -------------------- */ #line 8515 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_EXT_texture_compression_s3tc -------------------- */ #line 8529 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_texture_cube_map ------------------------ */ #line 8551 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ #line 8562 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_texture_env -------------------------- */ #line 8583 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_texture_env_add ------------------------ */ #line 8592 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_texture_env_combine ---------------------- */ #line 8623 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */ #line 8635 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */ #line 8647 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_texture_integer ------------------------ */ typedef void (__stdcall * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); typedef void (__stdcall * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); typedef void (__stdcall * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (__stdcall * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); typedef void (__stdcall * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (__stdcall * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); #line 8718 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_texture_lod_bias ------------------------ */ #line 8731 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */ #line 8744 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_texture_object ------------------------- */ typedef GLboolean (__stdcall * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences); typedef void (__stdcall * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); typedef void (__stdcall * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures); typedef void (__stdcall * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures); typedef GLboolean (__stdcall * PFNGLISTEXTUREEXTPROC) (GLuint texture); typedef void (__stdcall * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities); #line 8773 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_texture_perturb_normal --------------------- */ typedef void (__stdcall * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #line 8789 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_texture_rectangle ----------------------- */ #line 8803 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_texture_sRGB -------------------------- */ #line 8829 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ #line 8842 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_EXT_texture_shared_exponent -------------------- */ #line 8855 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_texture_snorm ------------------------- */ #line 8890 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_EXT_texture_swizzle ------------------------ */ #line 8905 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_EXT_timer_query -------------------------- */ typedef void (__stdcall * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); typedef void (__stdcall * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); #line 8922 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_transform_feedback ----------------------- */ typedef void (__stdcall * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); typedef void (__stdcall * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (__stdcall * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); typedef void (__stdcall * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (__stdcall * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); typedef void (__stdcall * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, char *name); typedef void (__stdcall * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode); #line 8963 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_vertex_array -------------------------- */ typedef void (__stdcall * PFNGLARRAYELEMENTEXTPROC) (GLint i); typedef void (__stdcall * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); typedef void (__stdcall * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); typedef void (__stdcall * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer); typedef void (__stdcall * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); typedef void (__stdcall * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); typedef void (__stdcall * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); typedef void (__stdcall * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); #line 9024 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */ #line 9035 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ typedef void (__stdcall * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params); typedef void (__stdcall * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (__stdcall * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); typedef void (__stdcall * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); #line 9081 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_EXT_vertex_shader ------------------------- */ typedef void (__stdcall * PFNGLBEGINVERTEXSHADEREXTPROC) (void); typedef GLuint (__stdcall * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); typedef GLuint (__stdcall * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); typedef GLuint (__stdcall * PFNGLBINDPARAMETEREXTPROC) (GLenum value); typedef GLuint (__stdcall * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); typedef GLuint (__stdcall * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); typedef void (__stdcall * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); typedef void (__stdcall * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); typedef void (__stdcall * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); typedef void (__stdcall * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); typedef void (__stdcall * PFNGLENDVERTEXSHADEREXTPROC) (void); typedef void (__stdcall * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); typedef GLuint (__stdcall * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components); typedef GLuint (__stdcall * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); typedef void (__stdcall * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); typedef void (__stdcall * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); typedef void (__stdcall * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); typedef void (__stdcall * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); typedef void (__stdcall * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); typedef void (__stdcall * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); typedef void (__stdcall * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); typedef void (__stdcall * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); typedef void (__stdcall * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); typedef void (__stdcall * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid **data); typedef void (__stdcall * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); typedef GLboolean (__stdcall * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); typedef void (__stdcall * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); typedef void (__stdcall * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); typedef void (__stdcall * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); typedef void (__stdcall * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); typedef void (__stdcall * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); typedef void (__stdcall * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); typedef void (__stdcall * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, GLvoid *addr); typedef void (__stdcall * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr); typedef void (__stdcall * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr); typedef void (__stdcall * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr); typedef void (__stdcall * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr); typedef void (__stdcall * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr); typedef void (__stdcall * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr); typedef void (__stdcall * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr); typedef void (__stdcall * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr); typedef void (__stdcall * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); #line 9287 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_EXT_vertex_weighting ------------------------ */ typedef void (__stdcall * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void* pointer); typedef void (__stdcall * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); typedef void (__stdcall * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); #line 9318 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ typedef void (__stdcall * PFNGLFRAMETERMINATORGREMEDYPROC) (void); #line 9331 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_GREMEDY_string_marker ----------------------- */ typedef void (__stdcall * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void* string); #line 9344 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_HP_convolution_border_modes -------------------- */ #line 9353 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_HP_image_transform ------------------------- */ typedef void (__stdcall * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param); typedef void (__stdcall * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param); typedef void (__stdcall * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); #line 9376 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_HP_occlusion_test ------------------------- */ #line 9388 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_HP_texture_lighting ------------------------ */ #line 9397 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_IBM_cull_vertex -------------------------- */ #line 9408 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */ typedef void (__stdcall * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); typedef void (__stdcall * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride); #line 9423 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_IBM_rasterpos_clip ------------------------- */ #line 9434 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_IBM_static_data -------------------------- */ #line 9446 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */ #line 9457 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_IBM_vertex_array_lists ----------------------- */ typedef void (__stdcall * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); typedef void (__stdcall * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride); typedef void (__stdcall * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); typedef void (__stdcall * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); typedef void (__stdcall * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); typedef void (__stdcall * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); typedef void (__stdcall * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); typedef void (__stdcall * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); #line 9501 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_INGR_color_clamp -------------------------- */ #line 9519 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_INGR_interlace_read ------------------------ */ #line 9530 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_INTEL_parallel_arrays ----------------------- */ typedef void (__stdcall * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); typedef void (__stdcall * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer); typedef void (__stdcall * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); typedef void (__stdcall * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); #line 9555 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_INTEL_texture_scissor ----------------------- */ typedef void (__stdcall * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc); typedef void (__stdcall * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh); #line 9570 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_KTX_buffer_region ------------------------- */ typedef GLuint (__stdcall * PFNGLBUFFERREGIONENABLEDEXTPROC) (void); typedef void (__stdcall * PFNGLDELETEBUFFERREGIONEXTPROC) (GLenum region); typedef void (__stdcall * PFNGLDRAWBUFFERREGIONEXTPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); typedef GLuint (__stdcall * PFNGLNEWBUFFERREGIONEXTPROC) (GLenum region); typedef void (__stdcall * PFNGLREADBUFFERREGIONEXTPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height); #line 9596 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_MESAX_texture_stack ------------------------ */ #line 9612 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_MESA_pack_invert -------------------------- */ #line 9623 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_MESA_resize_buffers ------------------------ */ typedef void (__stdcall * PFNGLRESIZEBUFFERSMESAPROC) (void); #line 9636 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_MESA_window_pos -------------------------- */ typedef void (__stdcall * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p); typedef void (__stdcall * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p); typedef void (__stdcall * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); typedef void (__stdcall * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p); typedef void (__stdcall * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); typedef void (__stdcall * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p); typedef void (__stdcall * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p); typedef void (__stdcall * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p); typedef void (__stdcall * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); typedef void (__stdcall * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p); typedef void (__stdcall * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); typedef void (__stdcall * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p); typedef void (__stdcall * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble); typedef void (__stdcall * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p); typedef void (__stdcall * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p); typedef void (__stdcall * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); typedef void (__stdcall * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p); typedef void (__stdcall * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); typedef void (__stdcall * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); #line 9695 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_MESA_ycbcr_texture ------------------------- */ #line 9708 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NVX_gpu_memory_info ------------------------ */ #line 9723 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_NV_blend_square -------------------------- */ #line 9732 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_conditional_render ----------------------- */ typedef void (__stdcall * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); typedef void (__stdcall * PFNGLENDCONDITIONALRENDERNVPROC) (void); #line 9752 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ #line 9764 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_NV_copy_image --------------------------- */ typedef void (__stdcall * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #line 9777 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_depth_buffer_float ----------------------- */ typedef void (__stdcall * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); typedef void (__stdcall * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); typedef void (__stdcall * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); #line 9799 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_NV_depth_clamp --------------------------- */ #line 9810 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ #line 9825 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_NV_evaluators --------------------------- */ typedef void (__stdcall * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); typedef void (__stdcall * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void* points); typedef void (__stdcall * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void* points); typedef void (__stdcall * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params); #line 9879 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_NV_explicit_multisample ---------------------- */ typedef void (__stdcall * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val); typedef void (__stdcall * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); typedef void (__stdcall * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); #line 9907 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------------ GL_NV_fence ------------------------------ */ typedef void (__stdcall * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences); typedef void (__stdcall * PFNGLFINISHFENCENVPROC) (GLuint fence); typedef void (__stdcall * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences); typedef void (__stdcall * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISFENCENVPROC) (GLuint fence); typedef void (__stdcall * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); typedef GLboolean (__stdcall * PFNGLTESTFENCENVPROC) (GLuint fence); #line 9936 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_NV_float_buffer -------------------------- */ #line 9961 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_NV_fog_distance -------------------------- */ #line 9974 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_fragment_program ------------------------ */ typedef void (__stdcall * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params); typedef void (__stdcall * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params); typedef void (__stdcall * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]); typedef void (__stdcall * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]); #line 10004 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_fragment_program2 ------------------------ */ #line 10019 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_fragment_program4 ------------------------ */ #line 10028 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_NV_fragment_program_option --------------------- */ #line 10037 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ typedef void (__stdcall * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); #line 10055 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_geometry_program4 ------------------------ */ typedef void (__stdcall * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); #line 10072 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_geometry_shader4 ------------------------ */ #line 10081 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_NV_gpu_program4 -------------------------- */ typedef void (__stdcall * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); typedef void (__stdcall * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); typedef void (__stdcall * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); #line 10125 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_NV_gpu_program5 -------------------------- */ #line 10141 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */ #line 10150 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_NV_gpu_shader5 --------------------------- */ typedef void (__stdcall * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params); typedef void (__stdcall * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); typedef void (__stdcall * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); typedef void (__stdcall * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); typedef void (__stdcall * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); typedef void (__stdcall * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); typedef void (__stdcall * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); typedef void (__stdcall * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); typedef void (__stdcall * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); typedef void (__stdcall * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); typedef void (__stdcall * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); typedef void (__stdcall * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); typedef void (__stdcall * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); typedef void (__stdcall * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); typedef void (__stdcall * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); typedef void (__stdcall * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); typedef void (__stdcall * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); typedef void (__stdcall * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); typedef void (__stdcall * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); typedef void (__stdcall * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); typedef void (__stdcall * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); typedef void (__stdcall * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); #line 10258 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_NV_half_float --------------------------- */ typedef unsigned short GLhalf; typedef void (__stdcall * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); typedef void (__stdcall * PFNGLCOLOR3HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha); typedef void (__stdcall * PFNGLCOLOR4HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLFOGCOORDHNVPROC) (GLhalf fog); typedef void (__stdcall * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog); typedef void (__stdcall * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s); typedef void (__stdcall * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v); typedef void (__stdcall * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t); typedef void (__stdcall * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v); typedef void (__stdcall * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r); typedef void (__stdcall * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v); typedef void (__stdcall * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q); typedef void (__stdcall * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v); typedef void (__stdcall * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz); typedef void (__stdcall * PFNGLNORMAL3HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); typedef void (__stdcall * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLTEXCOORD1HNVPROC) (GLhalf s); typedef void (__stdcall * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t); typedef void (__stdcall * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r); typedef void (__stdcall * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q); typedef void (__stdcall * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y); typedef void (__stdcall * PFNGLVERTEX2HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z); typedef void (__stdcall * PFNGLVERTEX3HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w); typedef void (__stdcall * PFNGLVERTEX4HVNVPROC) (const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x); typedef void (__stdcall * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y); typedef void (__stdcall * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z); typedef void (__stdcall * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w); typedef void (__stdcall * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); typedef void (__stdcall * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight); typedef void (__stdcall * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); #line 10365 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_light_max_exponent ----------------------- */ #line 10377 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_NV_multisample_coverage ---------------------- */ #line 10389 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_NV_multisample_filter_hint --------------------- */ #line 10400 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_occlusion_query ------------------------- */ typedef void (__stdcall * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); typedef void (__stdcall * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids); typedef void (__stdcall * PFNGLENDOCCLUSIONQUERYNVPROC) (void); typedef void (__stdcall * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids); typedef void (__stdcall * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params); typedef GLboolean (__stdcall * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); #line 10430 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ #line 10442 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_NV_parameter_buffer_object --------------------- */ typedef void (__stdcall * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); typedef void (__stdcall * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); typedef void (__stdcall * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); #line 10465 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_NV_parameter_buffer_object2 -------------------- */ #line 10474 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_pixel_data_range ------------------------ */ typedef void (__stdcall * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); typedef void (__stdcall * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void* pointer); #line 10496 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_NV_point_sprite -------------------------- */ typedef void (__stdcall * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); typedef void (__stdcall * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params); #line 10515 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_NV_present_video -------------------------- */ typedef void (__stdcall * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params); typedef void (__stdcall * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params); typedef void (__stdcall * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params); typedef void (__stdcall * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); typedef void (__stdcall * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); #line 10545 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_primitive_restart ------------------------ */ typedef void (__stdcall * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); typedef void (__stdcall * PFNGLPRIMITIVERESTARTNVPROC) (void); #line 10563 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_register_combiners ----------------------- */ typedef void (__stdcall * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); typedef void (__stdcall * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); typedef void (__stdcall * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); typedef void (__stdcall * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); typedef void (__stdcall * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params); #line 10652 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_NV_register_combiners2 ----------------------- */ typedef void (__stdcall * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params); #line 10669 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_shader_buffer_load ----------------------- */ typedef void (__stdcall * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params); typedef void (__stdcall * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result); typedef void (__stdcall * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params); typedef GLboolean (__stdcall * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); typedef GLboolean (__stdcall * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); typedef void (__stdcall * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); typedef void (__stdcall * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); typedef void (__stdcall * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); typedef void (__stdcall * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); typedef void (__stdcall * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); typedef void (__stdcall * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); typedef void (__stdcall * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); typedef void (__stdcall * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); #line 10710 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_NV_tessellation_program5 ---------------------- */ #line 10725 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_NV_texgen_emboss -------------------------- */ #line 10738 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_texgen_reflection ------------------------ */ #line 10750 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_texture_barrier ------------------------- */ typedef void (__stdcall * PFNGLTEXTUREBARRIERNVPROC) (void); #line 10763 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------- GL_NV_texture_compression_vtc --------------------- */ #line 10772 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_NV_texture_env_combine4 ---------------------- */ #line 10787 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_NV_texture_expand_normal ---------------------- */ #line 10798 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_texture_rectangle ------------------------ */ #line 10812 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_NV_texture_shader ------------------------- */ #line 10895 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_texture_shader2 ------------------------- */ #line 10933 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_texture_shader3 ------------------------- */ #line 10960 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_transform_feedback ----------------------- */ typedef void (__stdcall * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); typedef void (__stdcall * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); typedef void (__stdcall * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (__stdcall * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); typedef void (__stdcall * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (__stdcall * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); typedef void (__stdcall * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); typedef void (__stdcall * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); typedef GLint (__stdcall * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); typedef void (__stdcall * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); typedef void (__stdcall * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); #line 11019 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_NV_transform_feedback2 ----------------------- */ typedef void (__stdcall * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); typedef void (__stdcall * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids); typedef void (__stdcall * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); typedef void (__stdcall * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids); typedef GLboolean (__stdcall * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); typedef void (__stdcall * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); typedef void (__stdcall * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); #line 11049 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_NV_vdpau_interop -------------------------- */ typedef GLintptr GLvdpauSurfaceNV; typedef void (__stdcall * PFNGLVDPAUFININVPROC) (void); typedef void (__stdcall * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); typedef void (__stdcall * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const GLvoid*getProcAddress); typedef void (__stdcall * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); typedef void (__stdcall * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces); typedef GLvdpauSurfaceNV (__stdcall * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); typedef GLvdpauSurfaceNV (__stdcall * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); typedef void (__stdcall * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); typedef void (__stdcall * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces); typedef void (__stdcall * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); #line 11087 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_vertex_array_range ----------------------- */ typedef void (__stdcall * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); typedef void (__stdcall * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void* pointer); #line 11108 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_NV_vertex_array_range2 ----------------------- */ #line 11119 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */ typedef void (__stdcall * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params); typedef void (__stdcall * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); typedef void (__stdcall * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); typedef void (__stdcall * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); typedef void (__stdcall * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); typedef void (__stdcall * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); typedef void (__stdcall * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); typedef void (__stdcall * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); typedef void (__stdcall * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v); typedef void (__stdcall * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); typedef void (__stdcall * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v); typedef void (__stdcall * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); #line 11171 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */ typedef void (__stdcall * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); typedef void (__stdcall * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); typedef void (__stdcall * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); typedef void (__stdcall * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); typedef void (__stdcall * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]); typedef void (__stdcall * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); typedef void (__stdcall * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); typedef void (__stdcall * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); typedef void (__stdcall * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); typedef void (__stdcall * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); typedef void (__stdcall * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); typedef void (__stdcall * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); #line 11232 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_NV_vertex_program ------------------------- */ typedef GLboolean (__stdcall * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences); typedef void (__stdcall * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); typedef void (__stdcall * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids); typedef void (__stdcall * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params); typedef void (__stdcall * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids); typedef void (__stdcall * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params); typedef void (__stdcall * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program); typedef void (__stdcall * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid** pointer); typedef void (__stdcall * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params); typedef GLboolean (__stdcall * PFNGLISPROGRAMNVPROC) (GLuint id); typedef void (__stdcall * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program); typedef void (__stdcall * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params); typedef void (__stdcall * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params); typedef void (__stdcall * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params); typedef void (__stdcall * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params); typedef void (__stdcall * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids); typedef void (__stdcall * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); typedef void (__stdcall * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); typedef void (__stdcall * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); typedef void (__stdcall * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); typedef void (__stdcall * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (__stdcall * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); typedef void (__stdcall * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (__stdcall * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); typedef void (__stdcall * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (__stdcall * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); typedef void (__stdcall * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); typedef void (__stdcall * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v); typedef void (__stdcall * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); typedef void (__stdcall * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); typedef void (__stdcall * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v); #line 11455 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_NV_vertex_program1_1 ------------------------ */ #line 11464 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_vertex_program2 ------------------------- */ #line 11473 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_NV_vertex_program2_option --------------------- */ #line 11485 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_vertex_program3 ------------------------- */ #line 11496 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_NV_vertex_program4 ------------------------- */ #line 11507 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_OES_byte_coordinates ------------------------ */ #line 11518 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_OES_compressed_paletted_texture ------------------ */ #line 11538 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_OES_read_format -------------------------- */ #line 11550 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_OES_single_precision ------------------------ */ typedef void (__stdcall * PFNGLCLEARDEPTHFOESPROC) (GLclampd depth); typedef void (__stdcall * PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat* equation); typedef void (__stdcall * PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); typedef void (__stdcall * PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); typedef void (__stdcall * PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat* equation); typedef void (__stdcall * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); #line 11573 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_OML_interlace --------------------------- */ #line 11585 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_OML_resample ---------------------------- */ #line 11601 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_OML_subsample --------------------------- */ #line 11613 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_PGI_misc_hints --------------------------- */ #line 11643 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_PGI_vertex_hints -------------------------- */ #line 11675 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_REND_screen_coordinates ---------------------- */ #line 11687 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------------- GL_S3_s3tc ------------------------------ */ #line 11703 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SGIS_color_range -------------------------- */ #line 11722 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIS_detail_texture ------------------------ */ typedef void (__stdcall * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); typedef void (__stdcall * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points); #line 11737 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SGIS_fog_function ------------------------- */ typedef void (__stdcall * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points); typedef void (__stdcall * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); #line 11752 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_SGIS_generate_mipmap ------------------------ */ #line 11764 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SGIS_multisample -------------------------- */ typedef void (__stdcall * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); typedef void (__stdcall * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); #line 11797 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIS_pixel_texture ------------------------- */ #line 11806 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_SGIS_point_line_texgen ----------------------- */ #line 11824 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ typedef void (__stdcall * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points); typedef void (__stdcall * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); #line 11839 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_SGIS_texture4D --------------------------- */ typedef void (__stdcall * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void* pixels); typedef void (__stdcall * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void* pixels); #line 11854 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_SGIS_texture_border_clamp --------------------- */ #line 11865 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */ #line 11876 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_SGIS_texture_filter4 ------------------------ */ typedef void (__stdcall * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights); typedef void (__stdcall * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights); #line 11891 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SGIS_texture_lod -------------------------- */ #line 11905 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIS_texture_select ------------------------ */ #line 11914 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_SGIX_async ----------------------------- */ typedef void (__stdcall * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); typedef void (__stdcall * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); typedef GLint (__stdcall * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp); typedef GLuint (__stdcall * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); typedef GLboolean (__stdcall * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); typedef GLint (__stdcall * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #line 11939 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_SGIX_async_histogram ------------------------ */ #line 11951 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SGIX_async_pixel -------------------------- */ #line 11967 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ #line 11979 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_SGIX_clipmap ---------------------------- */ #line 11988 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ #line 11999 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIX_depth_texture ------------------------- */ #line 12012 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SGIX_flush_raster ------------------------- */ typedef void (__stdcall * PFNGLFLUSHRASTERSGIXPROC) (void); #line 12025 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_SGIX_fog_offset -------------------------- */ #line 12037 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SGIX_fog_texture -------------------------- */ typedef void (__stdcall * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); #line 12054 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ typedef void (__stdcall * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); typedef void (__stdcall * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); typedef void (__stdcall * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params); typedef void (__stdcall * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); typedef void (__stdcall * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param); typedef void (__stdcall * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param); typedef void (__stdcall * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); typedef void (__stdcall * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); typedef void (__stdcall * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data); typedef void (__stdcall * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data); #line 12099 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_SGIX_framezoom --------------------------- */ typedef void (__stdcall * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #line 12112 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_SGIX_interlace --------------------------- */ #line 12123 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */ #line 12132 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIX_list_priority ------------------------- */ #line 12141 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIX_pixel_texture ------------------------- */ typedef void (__stdcall * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); #line 12154 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */ #line 12163 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_SGIX_reference_plane ------------------------ */ typedef void (__stdcall * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation); #line 12176 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_SGIX_resample --------------------------- */ #line 12191 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_SGIX_shadow ---------------------------- */ #line 12205 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIX_shadow_ambient ------------------------ */ #line 12216 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_SGIX_sprite ---------------------------- */ typedef void (__stdcall * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); typedef void (__stdcall * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); typedef void (__stdcall * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params); #line 12235 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ typedef void (__stdcall * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #line 12248 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_SGIX_texture_add_env ------------------------ */ #line 12257 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */ #line 12270 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */ #line 12279 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ #line 12290 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIX_texture_range ------------------------- */ #line 12328 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */ #line 12342 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ #line 12354 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */ #line 12366 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_SGIX_ycrcb ----------------------------- */ #line 12375 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SGI_color_matrix -------------------------- */ #line 12396 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_SGI_color_table -------------------------- */ typedef void (__stdcall * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); typedef void (__stdcall * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); typedef void (__stdcall * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* table); typedef void (__stdcall * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (__stdcall * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); typedef void (__stdcall * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); typedef void (__stdcall * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void* table); #line 12438 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------- GL_SGI_texture_color_table ---------------------- */ #line 12450 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------- GL_SUNX_constant_data ------------------------- */ typedef void (__stdcall * PFNGLFINISHTEXTURESUNXPROC) (void); #line 12466 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------- GL_SUN_convolution_border_modes -------------------- */ #line 12477 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SUN_global_alpha -------------------------- */ typedef void (__stdcall * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); typedef void (__stdcall * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); typedef void (__stdcall * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); typedef void (__stdcall * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); typedef void (__stdcall * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); typedef void (__stdcall * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); typedef void (__stdcall * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); typedef void (__stdcall * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); #line 12507 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_SUN_mesh_array --------------------------- */ #line 12519 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------ GL_SUN_read_video_pixels ----------------------- */ typedef void (__stdcall * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); #line 12532 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* --------------------------- GL_SUN_slice_accum -------------------------- */ #line 12543 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_SUN_triangle_list ------------------------- */ typedef void (__stdcall * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void* pointer); typedef void (__stdcall * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); typedef void (__stdcall * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code); typedef void (__stdcall * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); typedef void (__stdcall * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code); typedef void (__stdcall * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); typedef void (__stdcall * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code); #line 12586 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ----------------------------- GL_SUN_vertex ----------------------------- */ typedef void (__stdcall * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v); typedef void (__stdcall * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v); typedef void (__stdcall * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); typedef void (__stdcall * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v); typedef void (__stdcall * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v); typedef void (__stdcall * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v); typedef void (__stdcall * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v); typedef void (__stdcall * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (__stdcall * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v); typedef void (__stdcall * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v); typedef void (__stdcall * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (__stdcall * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); typedef void (__stdcall * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v); typedef void (__stdcall * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v); typedef void (__stdcall * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v); typedef void (__stdcall * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (__stdcall * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v); typedef void (__stdcall * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v); typedef void (__stdcall * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); typedef void (__stdcall * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v); typedef void (__stdcall * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (__stdcall * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (__stdcall * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v); #line 12677 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_WIN_phong_shading ------------------------- */ #line 12689 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* -------------------------- GL_WIN_specular_fog -------------------------- */ #line 12700 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ---------------------------- GL_WIN_swap_hint --------------------------- */ typedef void (__stdcall * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); #line 12713 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* ------------------------------------------------------------------------- */ #line 12719 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 12721 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 12725 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 12727 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 12732 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" extern PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; extern PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; extern PFNGLTEXIMAGE3DPROC __glewTexImage3D; extern PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D; extern PFNGLACTIVETEXTUREPROC __glewActiveTexture; extern PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture; extern PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D; extern PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D; extern PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D; extern PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D; extern PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D; extern PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D; extern PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage; extern PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd; extern PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf; extern PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd; extern PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf; extern PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d; extern PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv; extern PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f; extern PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv; extern PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i; extern PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv; extern PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s; extern PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv; extern PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d; extern PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv; extern PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f; extern PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv; extern PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i; extern PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv; extern PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s; extern PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv; extern PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d; extern PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv; extern PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f; extern PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv; extern PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i; extern PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv; extern PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s; extern PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv; extern PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d; extern PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv; extern PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f; extern PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv; extern PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i; extern PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv; extern PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s; extern PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv; extern PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage; extern PFNGLBLENDCOLORPROC __glewBlendColor; extern PFNGLBLENDEQUATIONPROC __glewBlendEquation; extern PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate; extern PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer; extern PFNGLFOGCOORDDPROC __glewFogCoordd; extern PFNGLFOGCOORDDVPROC __glewFogCoorddv; extern PFNGLFOGCOORDFPROC __glewFogCoordf; extern PFNGLFOGCOORDFVPROC __glewFogCoordfv; extern PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; extern PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; extern PFNGLPOINTPARAMETERFPROC __glewPointParameterf; extern PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; extern PFNGLPOINTPARAMETERIPROC __glewPointParameteri; extern PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; extern PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; extern PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; extern PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; extern PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv; extern PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f; extern PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv; extern PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i; extern PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv; extern PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s; extern PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv; extern PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub; extern PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv; extern PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui; extern PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv; extern PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us; extern PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv; extern PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer; extern PFNGLWINDOWPOS2DPROC __glewWindowPos2d; extern PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv; extern PFNGLWINDOWPOS2FPROC __glewWindowPos2f; extern PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv; extern PFNGLWINDOWPOS2IPROC __glewWindowPos2i; extern PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv; extern PFNGLWINDOWPOS2SPROC __glewWindowPos2s; extern PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv; extern PFNGLWINDOWPOS3DPROC __glewWindowPos3d; extern PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv; extern PFNGLWINDOWPOS3FPROC __glewWindowPos3f; extern PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv; extern PFNGLWINDOWPOS3IPROC __glewWindowPos3i; extern PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv; extern PFNGLWINDOWPOS3SPROC __glewWindowPos3s; extern PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv; extern PFNGLBEGINQUERYPROC __glewBeginQuery; extern PFNGLBINDBUFFERPROC __glewBindBuffer; extern PFNGLBUFFERDATAPROC __glewBufferData; extern PFNGLBUFFERSUBDATAPROC __glewBufferSubData; extern PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; extern PFNGLDELETEQUERIESPROC __glewDeleteQueries; extern PFNGLENDQUERYPROC __glewEndQuery; extern PFNGLGENBUFFERSPROC __glewGenBuffers; extern PFNGLGENQUERIESPROC __glewGenQueries; extern PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv; extern PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv; extern PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData; extern PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv; extern PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv; extern PFNGLGETQUERYIVPROC __glewGetQueryiv; extern PFNGLISBUFFERPROC __glewIsBuffer; extern PFNGLISQUERYPROC __glewIsQuery; extern PFNGLMAPBUFFERPROC __glewMapBuffer; extern PFNGLUNMAPBUFFERPROC __glewUnmapBuffer; extern PFNGLATTACHSHADERPROC __glewAttachShader; extern PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation; extern PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate; extern PFNGLCOMPILESHADERPROC __glewCompileShader; extern PFNGLCREATEPROGRAMPROC __glewCreateProgram; extern PFNGLCREATESHADERPROC __glewCreateShader; extern PFNGLDELETEPROGRAMPROC __glewDeleteProgram; extern PFNGLDELETESHADERPROC __glewDeleteShader; extern PFNGLDETACHSHADERPROC __glewDetachShader; extern PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray; extern PFNGLDRAWBUFFERSPROC __glewDrawBuffers; extern PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray; extern PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib; extern PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform; extern PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders; extern PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation; extern PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog; extern PFNGLGETPROGRAMIVPROC __glewGetProgramiv; extern PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog; extern PFNGLGETSHADERSOURCEPROC __glewGetShaderSource; extern PFNGLGETSHADERIVPROC __glewGetShaderiv; extern PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation; extern PFNGLGETUNIFORMFVPROC __glewGetUniformfv; extern PFNGLGETUNIFORMIVPROC __glewGetUniformiv; extern PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv; extern PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv; extern PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv; extern PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv; extern PFNGLISPROGRAMPROC __glewIsProgram; extern PFNGLISSHADERPROC __glewIsShader; extern PFNGLLINKPROGRAMPROC __glewLinkProgram; extern PFNGLSHADERSOURCEPROC __glewShaderSource; extern PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate; extern PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate; extern PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate; extern PFNGLUNIFORM1FPROC __glewUniform1f; extern PFNGLUNIFORM1FVPROC __glewUniform1fv; extern PFNGLUNIFORM1IPROC __glewUniform1i; extern PFNGLUNIFORM1IVPROC __glewUniform1iv; extern PFNGLUNIFORM2FPROC __glewUniform2f; extern PFNGLUNIFORM2FVPROC __glewUniform2fv; extern PFNGLUNIFORM2IPROC __glewUniform2i; extern PFNGLUNIFORM2IVPROC __glewUniform2iv; extern PFNGLUNIFORM3FPROC __glewUniform3f; extern PFNGLUNIFORM3FVPROC __glewUniform3fv; extern PFNGLUNIFORM3IPROC __glewUniform3i; extern PFNGLUNIFORM3IVPROC __glewUniform3iv; extern PFNGLUNIFORM4FPROC __glewUniform4f; extern PFNGLUNIFORM4FVPROC __glewUniform4fv; extern PFNGLUNIFORM4IPROC __glewUniform4i; extern PFNGLUNIFORM4IVPROC __glewUniform4iv; extern PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv; extern PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv; extern PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv; extern PFNGLUSEPROGRAMPROC __glewUseProgram; extern PFNGLVALIDATEPROGRAMPROC __glewValidateProgram; extern PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d; extern PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv; extern PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f; extern PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv; extern PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s; extern PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv; extern PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d; extern PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv; extern PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f; extern PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv; extern PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s; extern PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv; extern PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d; extern PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv; extern PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f; extern PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv; extern PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s; extern PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv; extern PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv; extern PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv; extern PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv; extern PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub; extern PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv; extern PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv; extern PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv; extern PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv; extern PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d; extern PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv; extern PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f; extern PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv; extern PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv; extern PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s; extern PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv; extern PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv; extern PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv; extern PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv; extern PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer; extern PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv; extern PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv; extern PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv; extern PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; extern PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; extern PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; extern PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; extern PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; extern PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; extern PFNGLCLAMPCOLORPROC __glewClampColor; extern PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; extern PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; extern PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; extern PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; extern PFNGLCOLORMASKIPROC __glewColorMaski; extern PFNGLDISABLEIPROC __glewDisablei; extern PFNGLENABLEIPROC __glewEnablei; extern PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; extern PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; extern PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; extern PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; extern PFNGLGETSTRINGIPROC __glewGetStringi; extern PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; extern PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; extern PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; extern PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; extern PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; extern PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; extern PFNGLISENABLEDIPROC __glewIsEnabledi; extern PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; extern PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; extern PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; extern PFNGLUNIFORM1UIPROC __glewUniform1ui; extern PFNGLUNIFORM1UIVPROC __glewUniform1uiv; extern PFNGLUNIFORM2UIPROC __glewUniform2ui; extern PFNGLUNIFORM2UIVPROC __glewUniform2uiv; extern PFNGLUNIFORM3UIPROC __glewUniform3ui; extern PFNGLUNIFORM3UIVPROC __glewUniform3uiv; extern PFNGLUNIFORM4UIPROC __glewUniform4ui; extern PFNGLUNIFORM4UIVPROC __glewUniform4uiv; extern PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; extern PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; extern PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; extern PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; extern PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; extern PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; extern PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; extern PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; extern PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; extern PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; extern PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; extern PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; extern PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; extern PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; extern PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; extern PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; extern PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; extern PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; extern PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; extern PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; extern PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; extern PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; extern PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; extern PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; extern PFNGLTEXBUFFERPROC __glewTexBuffer; extern PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; extern PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; extern PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; extern PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; extern PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; extern PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; extern PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; extern PFNGLBLENDFUNCIPROC __glewBlendFunci; extern PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; extern PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; extern PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; extern PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; extern PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; extern PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; extern PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; extern PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; extern PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; extern PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; extern PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; extern PFNGLGENNAMESAMDPROC __glewGenNamesAMD; extern PFNGLISNAMEAMDPROC __glewIsNameAMD; extern PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; extern PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; extern PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; extern PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; extern PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; extern PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; extern PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; extern PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; extern PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; extern PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; extern PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; extern PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; extern PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; extern PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; extern PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; extern PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; extern PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE; extern PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE; extern PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE; extern PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE; extern PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE; extern PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE; extern PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE; extern PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; extern PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; extern PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; extern PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; extern PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; extern PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; extern PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; extern PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; extern PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; extern PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; extern PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE; extern PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE; extern PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE; extern PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE; extern PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE; extern PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; extern PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; extern PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; extern PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; extern PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; extern PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; extern PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; extern PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; extern PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; extern PFNGLCLEARDEPTHFPROC __glewClearDepthf; extern PFNGLDEPTHRANGEFPROC __glewDepthRangef; extern PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; extern PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; extern PFNGLSHADERBINARYPROC __glewShaderBinary; extern PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; extern PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; extern PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; extern PFNGLCLAMPCOLORARBPROC __glewClampColorARB; extern PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; extern PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; extern PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; extern PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; extern PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; extern PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; extern PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; extern PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; extern PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; extern PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; extern PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; extern PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; extern PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; extern PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; extern PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; extern PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; extern PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; extern PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; extern PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; extern PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; extern PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; extern PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; extern PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; extern PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; extern PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; extern PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; extern PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; extern PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; extern PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; extern PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; extern PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; extern PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; extern PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; extern PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; extern PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; extern PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; extern PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; extern PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; extern PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; extern PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; extern PFNGLPROGRAMBINARYPROC __glewProgramBinary; extern PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; extern PFNGLGETUNIFORMDVPROC __glewGetUniformdv; extern PFNGLPROGRAMUNIFORM1DEXTPROC __glewProgramUniform1dEXT; extern PFNGLPROGRAMUNIFORM1DVEXTPROC __glewProgramUniform1dvEXT; extern PFNGLPROGRAMUNIFORM2DEXTPROC __glewProgramUniform2dEXT; extern PFNGLPROGRAMUNIFORM2DVEXTPROC __glewProgramUniform2dvEXT; extern PFNGLPROGRAMUNIFORM3DEXTPROC __glewProgramUniform3dEXT; extern PFNGLPROGRAMUNIFORM3DVEXTPROC __glewProgramUniform3dvEXT; extern PFNGLPROGRAMUNIFORM4DEXTPROC __glewProgramUniform4dEXT; extern PFNGLPROGRAMUNIFORM4DVEXTPROC __glewProgramUniform4dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC __glewProgramUniformMatrix2dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC __glewProgramUniformMatrix2x3dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC __glewProgramUniformMatrix2x4dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC __glewProgramUniformMatrix3dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC __glewProgramUniformMatrix3x2dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC __glewProgramUniformMatrix3x4dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC __glewProgramUniformMatrix4dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC __glewProgramUniformMatrix4x2dvEXT; extern PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC __glewProgramUniformMatrix4x3dvEXT; extern PFNGLUNIFORM1DPROC __glewUniform1d; extern PFNGLUNIFORM1DVPROC __glewUniform1dv; extern PFNGLUNIFORM2DPROC __glewUniform2d; extern PFNGLUNIFORM2DVPROC __glewUniform2dv; extern PFNGLUNIFORM3DPROC __glewUniform3d; extern PFNGLUNIFORM3DVPROC __glewUniform3dv; extern PFNGLUNIFORM4DPROC __glewUniform4d; extern PFNGLUNIFORM4DVPROC __glewUniform4dv; extern PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; extern PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; extern PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; extern PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; extern PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; extern PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; extern PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; extern PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; extern PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; extern PFNGLCOLORSUBTABLEPROC __glewColorSubTable; extern PFNGLCOLORTABLEPROC __glewColorTable; extern PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; extern PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv; extern PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D; extern PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D; extern PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf; extern PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv; extern PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri; extern PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv; extern PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable; extern PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable; extern PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D; extern PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D; extern PFNGLGETCOLORTABLEPROC __glewGetColorTable; extern PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv; extern PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv; extern PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter; extern PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv; extern PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv; extern PFNGLGETHISTOGRAMPROC __glewGetHistogram; extern PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv; extern PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv; extern PFNGLGETMINMAXPROC __glewGetMinmax; extern PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv; extern PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv; extern PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter; extern PFNGLHISTOGRAMPROC __glewHistogram; extern PFNGLMINMAXPROC __glewMinmax; extern PFNGLRESETHISTOGRAMPROC __glewResetHistogram; extern PFNGLRESETMINMAXPROC __glewResetMinmax; extern PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; extern PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; extern PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; extern PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; extern PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; extern PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; extern PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB; extern PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB; extern PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB; extern PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB; extern PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB; extern PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB; extern PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB; extern PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB; extern PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB; extern PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB; extern PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB; extern PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB; extern PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB; extern PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB; extern PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB; extern PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB; extern PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB; extern PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB; extern PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB; extern PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB; extern PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB; extern PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB; extern PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB; extern PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB; extern PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB; extern PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB; extern PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB; extern PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB; extern PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB; extern PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB; extern PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB; extern PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB; extern PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB; extern PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB; extern PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB; extern PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB; extern PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB; extern PFNGLBEGINQUERYARBPROC __glewBeginQueryARB; extern PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB; extern PFNGLENDQUERYARBPROC __glewEndQueryARB; extern PFNGLGENQUERIESARBPROC __glewGenQueriesARB; extern PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB; extern PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB; extern PFNGLGETQUERYIVARBPROC __glewGetQueryivARB; extern PFNGLISQUERYARBPROC __glewIsQueryARB; extern PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; extern PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; extern PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; extern PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; extern PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; extern PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; extern PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; extern PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; extern PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; extern PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; extern PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; extern PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; extern PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; extern PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; extern PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; extern PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; extern PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; extern PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; extern PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; extern PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; extern PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; extern PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; extern PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; extern PFNGLBINDSAMPLERPROC __glewBindSampler; extern PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; extern PFNGLGENSAMPLERSPROC __glewGenSamplers; extern PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; extern PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; extern PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; extern PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; extern PFNGLISSAMPLERPROC __glewIsSampler; extern PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; extern PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; extern PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; extern PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; extern PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; extern PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; extern PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; extern PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; extern PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; extern PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; extern PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; extern PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; extern PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; extern PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; extern PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; extern PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; extern PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; extern PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; extern PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; extern PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; extern PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; extern PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; extern PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; extern PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; extern PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; extern PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; extern PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; extern PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; extern PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; extern PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; extern PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; extern PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; extern PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; extern PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; extern PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; extern PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; extern PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; extern PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; extern PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; extern PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; extern PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; extern PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; extern PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; extern PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; extern PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; extern PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; extern PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; extern PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; extern PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; extern PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; extern PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; extern PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; extern PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; extern PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; extern PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; extern PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; extern PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; extern PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; extern PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; extern PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; extern PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; extern PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; extern PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; extern PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; extern PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; extern PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; extern PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; extern PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; extern PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; extern PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB; extern PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB; extern PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB; extern PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB; extern PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB; extern PFNGLGETHANDLEARBPROC __glewGetHandleARB; extern PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB; extern PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB; extern PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB; extern PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB; extern PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB; extern PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB; extern PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB; extern PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB; extern PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB; extern PFNGLUNIFORM1FARBPROC __glewUniform1fARB; extern PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB; extern PFNGLUNIFORM1IARBPROC __glewUniform1iARB; extern PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB; extern PFNGLUNIFORM2FARBPROC __glewUniform2fARB; extern PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB; extern PFNGLUNIFORM2IARBPROC __glewUniform2iARB; extern PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB; extern PFNGLUNIFORM3FARBPROC __glewUniform3fARB; extern PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB; extern PFNGLUNIFORM3IARBPROC __glewUniform3iARB; extern PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB; extern PFNGLUNIFORM4FARBPROC __glewUniform4fARB; extern PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB; extern PFNGLUNIFORM4IARBPROC __glewUniform4iARB; extern PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB; extern PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB; extern PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB; extern PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; extern PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; extern PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; extern PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; extern PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; extern PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; extern PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; extern PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; extern PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; extern PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; extern PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; extern PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; extern PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; extern PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; extern PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; extern PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; extern PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; extern PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; extern PFNGLDELETESYNCPROC __glewDeleteSync; extern PFNGLFENCESYNCPROC __glewFenceSync; extern PFNGLGETINTEGER64VPROC __glewGetInteger64v; extern PFNGLGETSYNCIVPROC __glewGetSynciv; extern PFNGLISSYNCPROC __glewIsSync; extern PFNGLWAITSYNCPROC __glewWaitSync; extern PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; extern PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; extern PFNGLTEXBUFFERARBPROC __glewTexBufferARB; extern PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; extern PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; extern PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB; extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB; extern PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; extern PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; extern PFNGLSAMPLEMASKIPROC __glewSampleMaski; extern PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; extern PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; extern PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; extern PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; extern PFNGLQUERYCOUNTERPROC __glewQueryCounter; extern PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; extern PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; extern PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; extern PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; extern PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; extern PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; extern PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; extern PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; extern PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; extern PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; extern PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; extern PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; extern PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; extern PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; extern PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; extern PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; extern PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; extern PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; extern PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; extern PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; extern PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; extern PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; extern PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; extern PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; extern PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; extern PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; extern PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; extern PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; extern PFNGLISVERTEXARRAYPROC __glewIsVertexArray; extern PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; extern PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; extern PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; extern PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; extern PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; extern PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; extern PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; extern PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; extern PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; extern PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; extern PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; extern PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; extern PFNGLWEIGHTBVARBPROC __glewWeightbvARB; extern PFNGLWEIGHTDVARBPROC __glewWeightdvARB; extern PFNGLWEIGHTFVARBPROC __glewWeightfvARB; extern PFNGLWEIGHTIVARBPROC __glewWeightivARB; extern PFNGLWEIGHTSVARBPROC __glewWeightsvARB; extern PFNGLWEIGHTUBVARBPROC __glewWeightubvARB; extern PFNGLWEIGHTUIVARBPROC __glewWeightuivARB; extern PFNGLWEIGHTUSVARBPROC __glewWeightusvARB; extern PFNGLBINDBUFFERARBPROC __glewBindBufferARB; extern PFNGLBUFFERDATAARBPROC __glewBufferDataARB; extern PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB; extern PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB; extern PFNGLGENBUFFERSARBPROC __glewGenBuffersARB; extern PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB; extern PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB; extern PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB; extern PFNGLISBUFFERARBPROC __glewIsBufferARB; extern PFNGLMAPBUFFERARBPROC __glewMapBufferARB; extern PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB; extern PFNGLBINDPROGRAMARBPROC __glewBindProgramARB; extern PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB; extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB; extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB; extern PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB; extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB; extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB; extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB; extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB; extern PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB; extern PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB; extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB; extern PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB; extern PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB; extern PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB; extern PFNGLISPROGRAMARBPROC __glewIsProgramARB; extern PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB; extern PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB; extern PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB; extern PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB; extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB; extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB; extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB; extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB; extern PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB; extern PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB; extern PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB; extern PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB; extern PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB; extern PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB; extern PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB; extern PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB; extern PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB; extern PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB; extern PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB; extern PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB; extern PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB; extern PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB; extern PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB; extern PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB; extern PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB; extern PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB; extern PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB; extern PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB; extern PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB; extern PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB; extern PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB; extern PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB; extern PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB; extern PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB; extern PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB; extern PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB; extern PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB; extern PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB; extern PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB; extern PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB; extern PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB; extern PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB; extern PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB; extern PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB; extern PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB; extern PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB; extern PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; extern PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; extern PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; extern PFNGLCOLORP3UIPROC __glewColorP3ui; extern PFNGLCOLORP3UIVPROC __glewColorP3uiv; extern PFNGLCOLORP4UIPROC __glewColorP4ui; extern PFNGLCOLORP4UIVPROC __glewColorP4uiv; extern PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; extern PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; extern PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; extern PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; extern PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; extern PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; extern PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; extern PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; extern PFNGLNORMALP3UIPROC __glewNormalP3ui; extern PFNGLNORMALP3UIVPROC __glewNormalP3uiv; extern PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; extern PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; extern PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; extern PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; extern PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; extern PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; extern PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; extern PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; extern PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; extern PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; extern PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; extern PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; extern PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; extern PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; extern PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; extern PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; extern PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; extern PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; extern PFNGLVERTEXP2UIPROC __glewVertexP2ui; extern PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; extern PFNGLVERTEXP3UIPROC __glewVertexP3ui; extern PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; extern PFNGLVERTEXP4UIPROC __glewVertexP4ui; extern PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; extern PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; extern PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; extern PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; extern PFNGLGETFLOATI_VPROC __glewGetFloati_v; extern PFNGLSCISSORARRAYVPROC __glewScissorArrayv; extern PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; extern PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; extern PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; extern PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; extern PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; extern PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; extern PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; extern PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; extern PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB; extern PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB; extern PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB; extern PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB; extern PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB; extern PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB; extern PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB; extern PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB; extern PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB; extern PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB; extern PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB; extern PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB; extern PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB; extern PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI; extern PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI; extern PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI; extern PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI; extern PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI; extern PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI; extern PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI; extern PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI; extern PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI; extern PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI; extern PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI; extern PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI; extern PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI; extern PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI; extern PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI; extern PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI; extern PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI; extern PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI; extern PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI; extern PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI; extern PFNGLSAMPLEMAPATIPROC __glewSampleMapATI; extern PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI; extern PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; extern PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; extern PFNGLPNTRIANGLESFATIPROC __glPNTrianglewesfATI; extern PFNGLPNTRIANGLESIATIPROC __glPNTrianglewesiATI; extern PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; extern PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; extern PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI; extern PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI; extern PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI; extern PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI; extern PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI; extern PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI; extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI; extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI; extern PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI; extern PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI; extern PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI; extern PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI; extern PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI; extern PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI; extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI; extern PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI; extern PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI; extern PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI; extern PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI; extern PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI; extern PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI; extern PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI; extern PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI; extern PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI; extern PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI; extern PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI; extern PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI; extern PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI; extern PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI; extern PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI; extern PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI; extern PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI; extern PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI; extern PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI; extern PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI; extern PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI; extern PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI; extern PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI; extern PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI; extern PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI; extern PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI; extern PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI; extern PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI; extern PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI; extern PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI; extern PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI; extern PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI; extern PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI; extern PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI; extern PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; extern PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; extern PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; extern PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; extern PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; extern PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; extern PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; extern PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; extern PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; extern PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; extern PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; extern PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; extern PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT; extern PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT; extern PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT; extern PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT; extern PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT; extern PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT; extern PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT; extern PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT; extern PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT; extern PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT; extern PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT; extern PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT; extern PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT; extern PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT; extern PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; extern PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; extern PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; extern PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; extern PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; extern PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; extern PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT; extern PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT; extern PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT; extern PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; extern PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; extern PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; extern PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; extern PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; extern PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; extern PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; extern PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; extern PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; extern PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; extern PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; extern PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; extern PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; extern PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; extern PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; extern PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; extern PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; extern PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; extern PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; extern PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; extern PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; extern PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; extern PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; extern PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; extern PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; extern PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; extern PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; extern PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; extern PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; extern PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; extern PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; extern PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; extern PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; extern PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; extern PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; extern PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; extern PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; extern PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; extern PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; extern PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; extern PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; extern PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; extern PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; extern PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; extern PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; extern PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; extern PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; extern PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; extern PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; extern PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; extern PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; extern PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; extern PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; extern PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; extern PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; extern PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; extern PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; extern PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; extern PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; extern PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; extern PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; extern PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; extern PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; extern PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; extern PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; extern PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; extern PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; extern PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; extern PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; extern PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; extern PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; extern PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; extern PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; extern PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; extern PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; extern PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; extern PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; extern PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; extern PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; extern PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; extern PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; extern PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; extern PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; extern PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; extern PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; extern PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; extern PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; extern PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; extern PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; extern PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; extern PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; extern PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; extern PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; extern PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; extern PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; extern PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; extern PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; extern PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; extern PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; extern PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; extern PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; extern PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; extern PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; extern PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; extern PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; extern PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; extern PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; extern PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; extern PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; extern PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; extern PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; extern PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; extern PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; extern PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; extern PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; extern PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; extern PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; extern PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; extern PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; extern PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; extern PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; extern PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; extern PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; extern PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; extern PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; extern PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; extern PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; extern PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; extern PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; extern PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; extern PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; extern PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; extern PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; extern PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; extern PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; extern PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; extern PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; extern PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; extern PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; extern PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; extern PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; extern PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; extern PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; extern PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; extern PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; extern PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; extern PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; extern PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; extern PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; extern PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; extern PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; extern PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; extern PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; extern PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; extern PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; extern PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; extern PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; extern PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; extern PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; extern PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; extern PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; extern PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; extern PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; extern PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; extern PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; extern PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; extern PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; extern PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; extern PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; extern PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; extern PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; extern PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; extern PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; extern PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; extern PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; extern PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; extern PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; extern PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; extern PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; extern PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; extern PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; extern PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; extern PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; extern PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; extern PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; extern PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; extern PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; extern PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; extern PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; extern PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; extern PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; extern PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; extern PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; extern PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; extern PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; extern PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; extern PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; extern PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; extern PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; extern PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; extern PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; extern PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; extern PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; extern PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; extern PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; extern PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; extern PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; extern PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; extern PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; extern PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; extern PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT; extern PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT; extern PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT; extern PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT; extern PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT; extern PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT; extern PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT; extern PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT; extern PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT; extern PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT; extern PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT; extern PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT; extern PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT; extern PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT; extern PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT; extern PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT; extern PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT; extern PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT; extern PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT; extern PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT; extern PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT; extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT; extern PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT; extern PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT; extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT; extern PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT; extern PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT; extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT; extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT; extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT; extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT; extern PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT; extern PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT; extern PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT; extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT; extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT; extern PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT; extern PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT; extern PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; extern PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; extern PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; extern PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; extern PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; extern PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; extern PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT; extern PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT; extern PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT; extern PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT; extern PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT; extern PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT; extern PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT; extern PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT; extern PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT; extern PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT; extern PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT; extern PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT; extern PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT; extern PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT; extern PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT; extern PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT; extern PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT; extern PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT; extern PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT; extern PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT; extern PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT; extern PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT; extern PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT; extern PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT; extern PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT; extern PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT; extern PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT; extern PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT; extern PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT; extern PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT; extern PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT; extern PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT; extern PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT; extern PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT; extern PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT; extern PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT; extern PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT; extern PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT; extern PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT; extern PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT; extern PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT; extern PFNGLHISTOGRAMEXTPROC __glewHistogramEXT; extern PFNGLMINMAXEXTPROC __glewMinmaxEXT; extern PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT; extern PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT; extern PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; extern PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; extern PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; extern PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; extern PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; extern PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; extern PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; extern PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; extern PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; extern PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; extern PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; extern PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; extern PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT; extern PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT; extern PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT; extern PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT; extern PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT; extern PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT; extern PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT; extern PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT; extern PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; extern PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; extern PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; extern PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; extern PFNGLENDSCENEEXTPROC __glewEndSceneEXT; extern PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT; extern PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT; extern PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT; extern PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT; extern PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT; extern PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT; extern PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT; extern PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT; extern PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT; extern PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT; extern PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT; extern PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT; extern PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT; extern PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT; extern PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; extern PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; extern PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; extern PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; extern PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; extern PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; extern PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; extern PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; extern PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; extern PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; extern PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; extern PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; extern PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; extern PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; extern PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; extern PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT; extern PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT; extern PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT; extern PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT; extern PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT; extern PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT; extern PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT; extern PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT; extern PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT; extern PFNGLISTEXTUREEXTPROC __glewIsTextureEXT; extern PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; extern PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; extern PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; extern PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; extern PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; extern PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; extern PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; extern PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; extern PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; extern PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; extern PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; extern PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; extern PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; extern PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; extern PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; extern PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; extern PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; extern PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; extern PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; extern PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; extern PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; extern PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; extern PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; extern PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; extern PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; extern PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; extern PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; extern PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; extern PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; extern PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; extern PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; extern PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; extern PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; extern PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT; extern PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT; extern PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT; extern PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT; extern PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT; extern PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT; extern PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT; extern PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT; extern PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT; extern PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT; extern PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT; extern PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT; extern PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT; extern PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT; extern PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT; extern PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT; extern PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT; extern PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT; extern PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT; extern PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT; extern PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT; extern PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT; extern PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT; extern PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT; extern PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT; extern PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT; extern PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT; extern PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT; extern PFNGLSWIZZLEEXTPROC __glewSwizzleEXT; extern PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT; extern PFNGLVARIANTBVEXTPROC __glewVariantbvEXT; extern PFNGLVARIANTDVEXTPROC __glewVariantdvEXT; extern PFNGLVARIANTFVEXTPROC __glewVariantfvEXT; extern PFNGLVARIANTIVEXTPROC __glewVariantivEXT; extern PFNGLVARIANTSVEXTPROC __glewVariantsvEXT; extern PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT; extern PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT; extern PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT; extern PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT; extern PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; extern PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; extern PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; extern PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; extern PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; extern PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; extern PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP; extern PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP; extern PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP; extern PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP; extern PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP; extern PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM; extern PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM; extern PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM; extern PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM; extern PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM; extern PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM; extern PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM; extern PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM; extern PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; extern PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; extern PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL; extern PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL; extern PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL; extern PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL; extern PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL; extern PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL; extern PFNGLBUFFERREGIONENABLEDEXTPROC __glewBufferRegionEnabledEXT; extern PFNGLDELETEBUFFERREGIONEXTPROC __glewDeleteBufferRegionEXT; extern PFNGLDRAWBUFFERREGIONEXTPROC __glewDrawBufferRegionEXT; extern PFNGLNEWBUFFERREGIONEXTPROC __glewNewBufferRegionEXT; extern PFNGLREADBUFFERREGIONEXTPROC __glewReadBufferRegionEXT; extern PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; extern PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; extern PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA; extern PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA; extern PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA; extern PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA; extern PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA; extern PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA; extern PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA; extern PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA; extern PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA; extern PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA; extern PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA; extern PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA; extern PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA; extern PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA; extern PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA; extern PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA; extern PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA; extern PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA; extern PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA; extern PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA; extern PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; extern PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; extern PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; extern PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; extern PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; extern PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; extern PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; extern PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; extern PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; extern PFNGLEVALMAPSNVPROC __glewEvalMapsNV; extern PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; extern PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; extern PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV; extern PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV; extern PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV; extern PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; extern PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; extern PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; extern PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; extern PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; extern PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; extern PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; extern PFNGLFINISHFENCENVPROC __glewFinishFenceNV; extern PFNGLGENFENCESNVPROC __glewGenFencesNV; extern PFNGLGETFENCEIVNVPROC __glewGetFenceivNV; extern PFNGLISFENCENVPROC __glewIsFenceNV; extern PFNGLSETFENCENVPROC __glewSetFenceNV; extern PFNGLTESTFENCENVPROC __glewTestFenceNV; extern PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV; extern PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV; extern PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV; extern PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV; extern PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; extern PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; extern PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; extern PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; extern PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; extern PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; extern PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV; extern PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV; extern PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV; extern PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV; extern PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV; extern PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV; extern PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; extern PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; extern PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; extern PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; extern PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; extern PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; extern PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; extern PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; extern PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; extern PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; extern PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; extern PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; extern PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; extern PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; extern PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; extern PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; extern PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; extern PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; extern PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; extern PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; extern PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; extern PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; extern PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; extern PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; extern PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; extern PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; extern PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; extern PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; extern PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; extern PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; extern PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; extern PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; extern PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; extern PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; extern PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; extern PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; extern PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; extern PFNGLCOLOR3HNVPROC __glewColor3hNV; extern PFNGLCOLOR3HVNVPROC __glewColor3hvNV; extern PFNGLCOLOR4HNVPROC __glewColor4hNV; extern PFNGLCOLOR4HVNVPROC __glewColor4hvNV; extern PFNGLFOGCOORDHNVPROC __glewFogCoordhNV; extern PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV; extern PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV; extern PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV; extern PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV; extern PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV; extern PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV; extern PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV; extern PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV; extern PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV; extern PFNGLNORMAL3HNVPROC __glewNormal3hNV; extern PFNGLNORMAL3HVNVPROC __glewNormal3hvNV; extern PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV; extern PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV; extern PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV; extern PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV; extern PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV; extern PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV; extern PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV; extern PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV; extern PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV; extern PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV; extern PFNGLVERTEX2HNVPROC __glewVertex2hNV; extern PFNGLVERTEX2HVNVPROC __glewVertex2hvNV; extern PFNGLVERTEX3HNVPROC __glewVertex3hNV; extern PFNGLVERTEX3HVNVPROC __glewVertex3hvNV; extern PFNGLVERTEX4HNVPROC __glewVertex4hNV; extern PFNGLVERTEX4HVNVPROC __glewVertex4hvNV; extern PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV; extern PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV; extern PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV; extern PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV; extern PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV; extern PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV; extern PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV; extern PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV; extern PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV; extern PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV; extern PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV; extern PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; extern PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; extern PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; extern PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; extern PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; extern PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; extern PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV; extern PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV; extern PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV; extern PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV; extern PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV; extern PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV; extern PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV; extern PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV; extern PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; extern PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; extern PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; extern PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; extern PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; extern PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; extern PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; extern PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; extern PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; extern PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; extern PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; extern PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; extern PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; extern PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; extern PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV; extern PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV; extern PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV; extern PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV; extern PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV; extern PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV; extern PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV; extern PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV; extern PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV; extern PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV; extern PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; extern PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; extern PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; extern PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; extern PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; extern PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; extern PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; extern PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; extern PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; extern PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; extern PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; extern PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; extern PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; extern PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; extern PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; extern PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; extern PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; extern PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; extern PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; extern PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV; extern PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV; extern PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV; extern PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV; extern PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV; extern PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; extern PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; extern PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; extern PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; extern PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; extern PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; extern PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; extern PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; extern PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; extern PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; extern PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; extern PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; extern PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; extern PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; extern PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; extern PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; extern PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; extern PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; extern PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; extern PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; extern PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; extern PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; extern PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; extern PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; extern PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; extern PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; extern PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; extern PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; extern PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; extern PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; extern PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; extern PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; extern PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; extern PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; extern PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; extern PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; extern PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; extern PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; extern PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; extern PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; extern PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; extern PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; extern PFNGLCOLORFORMATNVPROC __glewColorFormatNV; extern PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; extern PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; extern PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; extern PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; extern PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; extern PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; extern PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; extern PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; extern PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; extern PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; extern PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; extern PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; extern PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; extern PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV; extern PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV; extern PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV; extern PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV; extern PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV; extern PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV; extern PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV; extern PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV; extern PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV; extern PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV; extern PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV; extern PFNGLISPROGRAMNVPROC __glewIsProgramNV; extern PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV; extern PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV; extern PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV; extern PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV; extern PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV; extern PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV; extern PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV; extern PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV; extern PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV; extern PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV; extern PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV; extern PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV; extern PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV; extern PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV; extern PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV; extern PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV; extern PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV; extern PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV; extern PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV; extern PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV; extern PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV; extern PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV; extern PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV; extern PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV; extern PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV; extern PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV; extern PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV; extern PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV; extern PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV; extern PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV; extern PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV; extern PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV; extern PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV; extern PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV; extern PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV; extern PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV; extern PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV; extern PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV; extern PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV; extern PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV; extern PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV; extern PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV; extern PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV; extern PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV; extern PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV; extern PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV; extern PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; extern PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; extern PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; extern PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; extern PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; extern PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; extern PFNGLFRUSTUMFOESPROC __glewFrustumfOES; extern PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; extern PFNGLORTHOFOESPROC __glewOrthofOES; extern PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS; extern PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS; extern PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS; extern PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; extern PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; extern PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; extern PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; extern PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; extern PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS; extern PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS; extern PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS; extern PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS; extern PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX; extern PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX; extern PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX; extern PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; extern PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; extern PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; extern PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; extern PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; extern PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; extern PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX; extern PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX; extern PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX; extern PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX; extern PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX; extern PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX; extern PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX; extern PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX; extern PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX; extern PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX; extern PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX; extern PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX; extern PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX; extern PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX; extern PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX; extern PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX; extern PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; extern PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; extern PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; extern PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; extern PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX; extern PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX; extern PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; extern PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; extern PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; extern PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; extern PFNGLCOLORTABLESGIPROC __glewColorTableSGI; extern PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI; extern PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI; extern PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; extern PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; extern PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; extern PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; extern PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN; extern PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN; extern PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN; extern PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN; extern PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN; extern PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN; extern PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN; extern PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN; extern PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN; extern PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN; extern PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN; extern PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN; extern PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN; extern PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN; extern PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN; extern PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN; extern PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN; extern PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN; extern PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN; extern PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN; extern PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN; extern PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN; extern PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN; extern PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN; extern PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN; extern PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN; extern PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN; extern PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN; extern PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN; extern PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN; extern PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN; extern PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN; extern PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN; extern PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; extern PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; extern PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; extern PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; extern PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN; extern PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN; extern PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN; extern PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN; extern PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN; extern PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN; extern PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN; extern PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN; extern PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN; extern PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN; extern PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN; extern PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN; extern PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN; extern PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN; extern PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN; extern PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN; extern PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; extern PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; extern PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; #line 14851 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" extern GLboolean __GLEW_VERSION_1_1; extern GLboolean __GLEW_VERSION_1_2; extern GLboolean __GLEW_VERSION_1_2_1; extern GLboolean __GLEW_VERSION_1_3; extern GLboolean __GLEW_VERSION_1_4; extern GLboolean __GLEW_VERSION_1_5; extern GLboolean __GLEW_VERSION_2_0; extern GLboolean __GLEW_VERSION_2_1; extern GLboolean __GLEW_VERSION_3_0; extern GLboolean __GLEW_VERSION_3_1; extern GLboolean __GLEW_VERSION_3_2; extern GLboolean __GLEW_VERSION_3_3; extern GLboolean __GLEW_VERSION_4_0; extern GLboolean __GLEW_VERSION_4_1; extern GLboolean __GLEW_3DFX_multisample; extern GLboolean __GLEW_3DFX_tbuffer; extern GLboolean __GLEW_3DFX_texture_compression_FXT1; extern GLboolean __GLEW_AMD_conservative_depth; extern GLboolean __GLEW_AMD_debug_output; extern GLboolean __GLEW_AMD_depth_clamp_separate; extern GLboolean __GLEW_AMD_draw_buffers_blend; extern GLboolean __GLEW_AMD_name_gen_delete; extern GLboolean __GLEW_AMD_performance_monitor; extern GLboolean __GLEW_AMD_seamless_cubemap_per_texture; extern GLboolean __GLEW_AMD_shader_stencil_export; extern GLboolean __GLEW_AMD_texture_texture4; extern GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; extern GLboolean __GLEW_AMD_vertex_shader_tessellator; extern GLboolean __GLEW_APPLE_aux_depth_stencil; extern GLboolean __GLEW_APPLE_client_storage; extern GLboolean __GLEW_APPLE_element_array; extern GLboolean __GLEW_APPLE_fence; extern GLboolean __GLEW_APPLE_float_pixels; extern GLboolean __GLEW_APPLE_flush_buffer_range; extern GLboolean __GLEW_APPLE_object_purgeable; extern GLboolean __GLEW_APPLE_pixel_buffer; extern GLboolean __GLEW_APPLE_rgb_422; extern GLboolean __GLEW_APPLE_row_bytes; extern GLboolean __GLEW_APPLE_specular_vector; extern GLboolean __GLEW_APPLE_texture_range; extern GLboolean __GLEW_APPLE_transform_hint; extern GLboolean __GLEW_APPLE_vertex_array_object; extern GLboolean __GLEW_APPLE_vertex_array_range; extern GLboolean __GLEW_APPLE_vertex_program_evaluators; extern GLboolean __GLEW_APPLE_ycbcr_422; extern GLboolean __GLEW_ARB_ES2_compatibility; extern GLboolean __GLEW_ARB_blend_func_extended; extern GLboolean __GLEW_ARB_cl_event; extern GLboolean __GLEW_ARB_color_buffer_float; extern GLboolean __GLEW_ARB_compatibility; extern GLboolean __GLEW_ARB_copy_buffer; extern GLboolean __GLEW_ARB_debug_output; extern GLboolean __GLEW_ARB_depth_buffer_float; extern GLboolean __GLEW_ARB_depth_clamp; extern GLboolean __GLEW_ARB_depth_texture; extern GLboolean __GLEW_ARB_draw_buffers; extern GLboolean __GLEW_ARB_draw_buffers_blend; extern GLboolean __GLEW_ARB_draw_elements_base_vertex; extern GLboolean __GLEW_ARB_draw_indirect; extern GLboolean __GLEW_ARB_draw_instanced; extern GLboolean __GLEW_ARB_explicit_attrib_location; extern GLboolean __GLEW_ARB_fragment_coord_conventions; extern GLboolean __GLEW_ARB_fragment_program; extern GLboolean __GLEW_ARB_fragment_program_shadow; extern GLboolean __GLEW_ARB_fragment_shader; extern GLboolean __GLEW_ARB_framebuffer_object; extern GLboolean __GLEW_ARB_framebuffer_sRGB; extern GLboolean __GLEW_ARB_geometry_shader4; extern GLboolean __GLEW_ARB_get_program_binary; extern GLboolean __GLEW_ARB_gpu_shader5; extern GLboolean __GLEW_ARB_gpu_shader_fp64; extern GLboolean __GLEW_ARB_half_float_pixel; extern GLboolean __GLEW_ARB_half_float_vertex; extern GLboolean __GLEW_ARB_imaging; extern GLboolean __GLEW_ARB_instanced_arrays; extern GLboolean __GLEW_ARB_map_buffer_range; extern GLboolean __GLEW_ARB_matrix_palette; extern GLboolean __GLEW_ARB_multisample; extern GLboolean __GLEW_ARB_multitexture; extern GLboolean __GLEW_ARB_occlusion_query; extern GLboolean __GLEW_ARB_occlusion_query2; extern GLboolean __GLEW_ARB_pixel_buffer_object; extern GLboolean __GLEW_ARB_point_parameters; extern GLboolean __GLEW_ARB_point_sprite; extern GLboolean __GLEW_ARB_provoking_vertex; extern GLboolean __GLEW_ARB_robustness; extern GLboolean __GLEW_ARB_sample_shading; extern GLboolean __GLEW_ARB_sampler_objects; extern GLboolean __GLEW_ARB_seamless_cube_map; extern GLboolean __GLEW_ARB_separate_shader_objects; extern GLboolean __GLEW_ARB_shader_bit_encoding; extern GLboolean __GLEW_ARB_shader_objects; extern GLboolean __GLEW_ARB_shader_precision; extern GLboolean __GLEW_ARB_shader_stencil_export; extern GLboolean __GLEW_ARB_shader_subroutine; extern GLboolean __GLEW_ARB_shader_texture_lod; extern GLboolean __GLEW_ARB_shading_language_100; extern GLboolean __GLEW_ARB_shading_language_include; extern GLboolean __GLEW_ARB_shadow; extern GLboolean __GLEW_ARB_shadow_ambient; extern GLboolean __GLEW_ARB_sync; extern GLboolean __GLEW_ARB_tessellation_shader; extern GLboolean __GLEW_ARB_texture_border_clamp; extern GLboolean __GLEW_ARB_texture_buffer_object; extern GLboolean __GLEW_ARB_texture_buffer_object_rgb32; extern GLboolean __GLEW_ARB_texture_compression; extern GLboolean __GLEW_ARB_texture_compression_bptc; extern GLboolean __GLEW_ARB_texture_compression_rgtc; extern GLboolean __GLEW_ARB_texture_cube_map; extern GLboolean __GLEW_ARB_texture_cube_map_array; extern GLboolean __GLEW_ARB_texture_env_add; extern GLboolean __GLEW_ARB_texture_env_combine; extern GLboolean __GLEW_ARB_texture_env_crossbar; extern GLboolean __GLEW_ARB_texture_env_dot3; extern GLboolean __GLEW_ARB_texture_float; extern GLboolean __GLEW_ARB_texture_gather; extern GLboolean __GLEW_ARB_texture_mirrored_repeat; extern GLboolean __GLEW_ARB_texture_multisample; extern GLboolean __GLEW_ARB_texture_non_power_of_two; extern GLboolean __GLEW_ARB_texture_query_lod; extern GLboolean __GLEW_ARB_texture_rectangle; extern GLboolean __GLEW_ARB_texture_rg; extern GLboolean __GLEW_ARB_texture_rgb10_a2ui; extern GLboolean __GLEW_ARB_texture_swizzle; extern GLboolean __GLEW_ARB_timer_query; extern GLboolean __GLEW_ARB_transform_feedback2; extern GLboolean __GLEW_ARB_transform_feedback3; extern GLboolean __GLEW_ARB_transpose_matrix; extern GLboolean __GLEW_ARB_uniform_buffer_object; extern GLboolean __GLEW_ARB_vertex_array_bgra; extern GLboolean __GLEW_ARB_vertex_array_object; extern GLboolean __GLEW_ARB_vertex_attrib_64bit; extern GLboolean __GLEW_ARB_vertex_blend; extern GLboolean __GLEW_ARB_vertex_buffer_object; extern GLboolean __GLEW_ARB_vertex_program; extern GLboolean __GLEW_ARB_vertex_shader; extern GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; extern GLboolean __GLEW_ARB_viewport_array; extern GLboolean __GLEW_ARB_window_pos; extern GLboolean __GLEW_ATIX_point_sprites; extern GLboolean __GLEW_ATIX_texture_env_combine3; extern GLboolean __GLEW_ATIX_texture_env_route; extern GLboolean __GLEW_ATIX_vertex_shader_output_point_size; extern GLboolean __GLEW_ATI_draw_buffers; extern GLboolean __GLEW_ATI_element_array; extern GLboolean __GLEW_ATI_envmap_bumpmap; extern GLboolean __GLEW_ATI_fragment_shader; extern GLboolean __GLEW_ATI_map_object_buffer; extern GLboolean __GLEW_ATI_meminfo; extern GLboolean __GLEW_ATI_pn_triangles; extern GLboolean __GLEW_ATI_separate_stencil; extern GLboolean __GLEW_ATI_shader_texture_lod; extern GLboolean __GLEW_ATI_text_fragment_shader; extern GLboolean __GLEW_ATI_texture_compression_3dc; extern GLboolean __GLEW_ATI_texture_env_combine3; extern GLboolean __GLEW_ATI_texture_float; extern GLboolean __GLEW_ATI_texture_mirror_once; extern GLboolean __GLEW_ATI_vertex_array_object; extern GLboolean __GLEW_ATI_vertex_attrib_array_object; extern GLboolean __GLEW_ATI_vertex_streams; extern GLboolean __GLEW_EXT_422_pixels; extern GLboolean __GLEW_EXT_Cg_shader; extern GLboolean __GLEW_EXT_abgr; extern GLboolean __GLEW_EXT_bgra; extern GLboolean __GLEW_EXT_bindable_uniform; extern GLboolean __GLEW_EXT_blend_color; extern GLboolean __GLEW_EXT_blend_equation_separate; extern GLboolean __GLEW_EXT_blend_func_separate; extern GLboolean __GLEW_EXT_blend_logic_op; extern GLboolean __GLEW_EXT_blend_minmax; extern GLboolean __GLEW_EXT_blend_subtract; extern GLboolean __GLEW_EXT_clip_volume_hint; extern GLboolean __GLEW_EXT_cmyka; extern GLboolean __GLEW_EXT_color_subtable; extern GLboolean __GLEW_EXT_compiled_vertex_array; extern GLboolean __GLEW_EXT_convolution; extern GLboolean __GLEW_EXT_coordinate_frame; extern GLboolean __GLEW_EXT_copy_texture; extern GLboolean __GLEW_EXT_cull_vertex; extern GLboolean __GLEW_EXT_depth_bounds_test; extern GLboolean __GLEW_EXT_direct_state_access; extern GLboolean __GLEW_EXT_draw_buffers2; extern GLboolean __GLEW_EXT_draw_instanced; extern GLboolean __GLEW_EXT_draw_range_elements; extern GLboolean __GLEW_EXT_fog_coord; extern GLboolean __GLEW_EXT_fragment_lighting; extern GLboolean __GLEW_EXT_framebuffer_blit; extern GLboolean __GLEW_EXT_framebuffer_multisample; extern GLboolean __GLEW_EXT_framebuffer_object; extern GLboolean __GLEW_EXT_framebuffer_sRGB; extern GLboolean __GLEW_EXT_geometry_shader4; extern GLboolean __GLEW_EXT_gpu_program_parameters; extern GLboolean __GLEW_EXT_gpu_shader4; extern GLboolean __GLEW_EXT_histogram; extern GLboolean __GLEW_EXT_index_array_formats; extern GLboolean __GLEW_EXT_index_func; extern GLboolean __GLEW_EXT_index_material; extern GLboolean __GLEW_EXT_index_texture; extern GLboolean __GLEW_EXT_light_texture; extern GLboolean __GLEW_EXT_misc_attribute; extern GLboolean __GLEW_EXT_multi_draw_arrays; extern GLboolean __GLEW_EXT_multisample; extern GLboolean __GLEW_EXT_packed_depth_stencil; extern GLboolean __GLEW_EXT_packed_float; extern GLboolean __GLEW_EXT_packed_pixels; extern GLboolean __GLEW_EXT_paletted_texture; extern GLboolean __GLEW_EXT_pixel_buffer_object; extern GLboolean __GLEW_EXT_pixel_transform; extern GLboolean __GLEW_EXT_pixel_transform_color_table; extern GLboolean __GLEW_EXT_point_parameters; extern GLboolean __GLEW_EXT_polygon_offset; extern GLboolean __GLEW_EXT_provoking_vertex; extern GLboolean __GLEW_EXT_rescale_normal; extern GLboolean __GLEW_EXT_scene_marker; extern GLboolean __GLEW_EXT_secondary_color; extern GLboolean __GLEW_EXT_separate_shader_objects; extern GLboolean __GLEW_EXT_separate_specular_color; extern GLboolean __GLEW_EXT_shader_image_load_store; extern GLboolean __GLEW_EXT_shadow_funcs; extern GLboolean __GLEW_EXT_shared_texture_palette; extern GLboolean __GLEW_EXT_stencil_clear_tag; extern GLboolean __GLEW_EXT_stencil_two_side; extern GLboolean __GLEW_EXT_stencil_wrap; extern GLboolean __GLEW_EXT_subtexture; extern GLboolean __GLEW_EXT_texture; extern GLboolean __GLEW_EXT_texture3D; extern GLboolean __GLEW_EXT_texture_array; extern GLboolean __GLEW_EXT_texture_buffer_object; extern GLboolean __GLEW_EXT_texture_compression_dxt1; extern GLboolean __GLEW_EXT_texture_compression_latc; extern GLboolean __GLEW_EXT_texture_compression_rgtc; extern GLboolean __GLEW_EXT_texture_compression_s3tc; extern GLboolean __GLEW_EXT_texture_cube_map; extern GLboolean __GLEW_EXT_texture_edge_clamp; extern GLboolean __GLEW_EXT_texture_env; extern GLboolean __GLEW_EXT_texture_env_add; extern GLboolean __GLEW_EXT_texture_env_combine; extern GLboolean __GLEW_EXT_texture_env_dot3; extern GLboolean __GLEW_EXT_texture_filter_anisotropic; extern GLboolean __GLEW_EXT_texture_integer; extern GLboolean __GLEW_EXT_texture_lod_bias; extern GLboolean __GLEW_EXT_texture_mirror_clamp; extern GLboolean __GLEW_EXT_texture_object; extern GLboolean __GLEW_EXT_texture_perturb_normal; extern GLboolean __GLEW_EXT_texture_rectangle; extern GLboolean __GLEW_EXT_texture_sRGB; extern GLboolean __GLEW_EXT_texture_sRGB_decode; extern GLboolean __GLEW_EXT_texture_shared_exponent; extern GLboolean __GLEW_EXT_texture_snorm; extern GLboolean __GLEW_EXT_texture_swizzle; extern GLboolean __GLEW_EXT_timer_query; extern GLboolean __GLEW_EXT_transform_feedback; extern GLboolean __GLEW_EXT_vertex_array; extern GLboolean __GLEW_EXT_vertex_array_bgra; extern GLboolean __GLEW_EXT_vertex_attrib_64bit; extern GLboolean __GLEW_EXT_vertex_shader; extern GLboolean __GLEW_EXT_vertex_weighting; extern GLboolean __GLEW_GREMEDY_frame_terminator; extern GLboolean __GLEW_GREMEDY_string_marker; extern GLboolean __GLEW_HP_convolution_border_modes; extern GLboolean __GLEW_HP_image_transform; extern GLboolean __GLEW_HP_occlusion_test; extern GLboolean __GLEW_HP_texture_lighting; extern GLboolean __GLEW_IBM_cull_vertex; extern GLboolean __GLEW_IBM_multimode_draw_arrays; extern GLboolean __GLEW_IBM_rasterpos_clip; extern GLboolean __GLEW_IBM_static_data; extern GLboolean __GLEW_IBM_texture_mirrored_repeat; extern GLboolean __GLEW_IBM_vertex_array_lists; extern GLboolean __GLEW_INGR_color_clamp; extern GLboolean __GLEW_INGR_interlace_read; extern GLboolean __GLEW_INTEL_parallel_arrays; extern GLboolean __GLEW_INTEL_texture_scissor; extern GLboolean __GLEW_KTX_buffer_region; extern GLboolean __GLEW_MESAX_texture_stack; extern GLboolean __GLEW_MESA_pack_invert; extern GLboolean __GLEW_MESA_resize_buffers; extern GLboolean __GLEW_MESA_window_pos; extern GLboolean __GLEW_MESA_ycbcr_texture; extern GLboolean __GLEW_NVX_gpu_memory_info; extern GLboolean __GLEW_NV_blend_square; extern GLboolean __GLEW_NV_conditional_render; extern GLboolean __GLEW_NV_copy_depth_to_color; extern GLboolean __GLEW_NV_copy_image; extern GLboolean __GLEW_NV_depth_buffer_float; extern GLboolean __GLEW_NV_depth_clamp; extern GLboolean __GLEW_NV_depth_range_unclamped; extern GLboolean __GLEW_NV_evaluators; extern GLboolean __GLEW_NV_explicit_multisample; extern GLboolean __GLEW_NV_fence; extern GLboolean __GLEW_NV_float_buffer; extern GLboolean __GLEW_NV_fog_distance; extern GLboolean __GLEW_NV_fragment_program; extern GLboolean __GLEW_NV_fragment_program2; extern GLboolean __GLEW_NV_fragment_program4; extern GLboolean __GLEW_NV_fragment_program_option; extern GLboolean __GLEW_NV_framebuffer_multisample_coverage; extern GLboolean __GLEW_NV_geometry_program4; extern GLboolean __GLEW_NV_geometry_shader4; extern GLboolean __GLEW_NV_gpu_program4; extern GLboolean __GLEW_NV_gpu_program5; extern GLboolean __GLEW_NV_gpu_program_fp64; extern GLboolean __GLEW_NV_gpu_shader5; extern GLboolean __GLEW_NV_half_float; extern GLboolean __GLEW_NV_light_max_exponent; extern GLboolean __GLEW_NV_multisample_coverage; extern GLboolean __GLEW_NV_multisample_filter_hint; extern GLboolean __GLEW_NV_occlusion_query; extern GLboolean __GLEW_NV_packed_depth_stencil; extern GLboolean __GLEW_NV_parameter_buffer_object; extern GLboolean __GLEW_NV_parameter_buffer_object2; extern GLboolean __GLEW_NV_pixel_data_range; extern GLboolean __GLEW_NV_point_sprite; extern GLboolean __GLEW_NV_present_video; extern GLboolean __GLEW_NV_primitive_restart; extern GLboolean __GLEW_NV_register_combiners; extern GLboolean __GLEW_NV_register_combiners2; extern GLboolean __GLEW_NV_shader_buffer_load; extern GLboolean __GLEW_NV_tessellation_program5; extern GLboolean __GLEW_NV_texgen_emboss; extern GLboolean __GLEW_NV_texgen_reflection; extern GLboolean __GLEW_NV_texture_barrier; extern GLboolean __GLEW_NV_texture_compression_vtc; extern GLboolean __GLEW_NV_texture_env_combine4; extern GLboolean __GLEW_NV_texture_expand_normal; extern GLboolean __GLEW_NV_texture_rectangle; extern GLboolean __GLEW_NV_texture_shader; extern GLboolean __GLEW_NV_texture_shader2; extern GLboolean __GLEW_NV_texture_shader3; extern GLboolean __GLEW_NV_transform_feedback; extern GLboolean __GLEW_NV_transform_feedback2; extern GLboolean __GLEW_NV_vdpau_interop; extern GLboolean __GLEW_NV_vertex_array_range; extern GLboolean __GLEW_NV_vertex_array_range2; extern GLboolean __GLEW_NV_vertex_attrib_integer_64bit; extern GLboolean __GLEW_NV_vertex_buffer_unified_memory; extern GLboolean __GLEW_NV_vertex_program; extern GLboolean __GLEW_NV_vertex_program1_1; extern GLboolean __GLEW_NV_vertex_program2; extern GLboolean __GLEW_NV_vertex_program2_option; extern GLboolean __GLEW_NV_vertex_program3; extern GLboolean __GLEW_NV_vertex_program4; extern GLboolean __GLEW_OES_byte_coordinates; extern GLboolean __GLEW_OES_compressed_paletted_texture; extern GLboolean __GLEW_OES_read_format; extern GLboolean __GLEW_OES_single_precision; extern GLboolean __GLEW_OML_interlace; extern GLboolean __GLEW_OML_resample; extern GLboolean __GLEW_OML_subsample; extern GLboolean __GLEW_PGI_misc_hints; extern GLboolean __GLEW_PGI_vertex_hints; extern GLboolean __GLEW_REND_screen_coordinates; extern GLboolean __GLEW_S3_s3tc; extern GLboolean __GLEW_SGIS_color_range; extern GLboolean __GLEW_SGIS_detail_texture; extern GLboolean __GLEW_SGIS_fog_function; extern GLboolean __GLEW_SGIS_generate_mipmap; extern GLboolean __GLEW_SGIS_multisample; extern GLboolean __GLEW_SGIS_pixel_texture; extern GLboolean __GLEW_SGIS_point_line_texgen; extern GLboolean __GLEW_SGIS_sharpen_texture; extern GLboolean __GLEW_SGIS_texture4D; extern GLboolean __GLEW_SGIS_texture_border_clamp; extern GLboolean __GLEW_SGIS_texture_edge_clamp; extern GLboolean __GLEW_SGIS_texture_filter4; extern GLboolean __GLEW_SGIS_texture_lod; extern GLboolean __GLEW_SGIS_texture_select; extern GLboolean __GLEW_SGIX_async; extern GLboolean __GLEW_SGIX_async_histogram; extern GLboolean __GLEW_SGIX_async_pixel; extern GLboolean __GLEW_SGIX_blend_alpha_minmax; extern GLboolean __GLEW_SGIX_clipmap; extern GLboolean __GLEW_SGIX_convolution_accuracy; extern GLboolean __GLEW_SGIX_depth_texture; extern GLboolean __GLEW_SGIX_flush_raster; extern GLboolean __GLEW_SGIX_fog_offset; extern GLboolean __GLEW_SGIX_fog_texture; extern GLboolean __GLEW_SGIX_fragment_specular_lighting; extern GLboolean __GLEW_SGIX_framezoom; extern GLboolean __GLEW_SGIX_interlace; extern GLboolean __GLEW_SGIX_ir_instrument1; extern GLboolean __GLEW_SGIX_list_priority; extern GLboolean __GLEW_SGIX_pixel_texture; extern GLboolean __GLEW_SGIX_pixel_texture_bits; extern GLboolean __GLEW_SGIX_reference_plane; extern GLboolean __GLEW_SGIX_resample; extern GLboolean __GLEW_SGIX_shadow; extern GLboolean __GLEW_SGIX_shadow_ambient; extern GLboolean __GLEW_SGIX_sprite; extern GLboolean __GLEW_SGIX_tag_sample_buffer; extern GLboolean __GLEW_SGIX_texture_add_env; extern GLboolean __GLEW_SGIX_texture_coordinate_clamp; extern GLboolean __GLEW_SGIX_texture_lod_bias; extern GLboolean __GLEW_SGIX_texture_multi_buffer; extern GLboolean __GLEW_SGIX_texture_range; extern GLboolean __GLEW_SGIX_texture_scale_bias; extern GLboolean __GLEW_SGIX_vertex_preclip; extern GLboolean __GLEW_SGIX_vertex_preclip_hint; extern GLboolean __GLEW_SGIX_ycrcb; extern GLboolean __GLEW_SGI_color_matrix; extern GLboolean __GLEW_SGI_color_table; extern GLboolean __GLEW_SGI_texture_color_table; extern GLboolean __GLEW_SUNX_constant_data; extern GLboolean __GLEW_SUN_convolution_border_modes; extern GLboolean __GLEW_SUN_global_alpha; extern GLboolean __GLEW_SUN_mesh_array; extern GLboolean __GLEW_SUN_read_video_pixels; extern GLboolean __GLEW_SUN_slice_accum; extern GLboolean __GLEW_SUN_triangle_list; extern GLboolean __GLEW_SUN_vertex; extern GLboolean __GLEW_WIN_phong_shading; extern GLboolean __GLEW_WIN_specular_fog; extern GLboolean __GLEW_WIN_swap_hint; /* ------------------------------------------------------------------------- */ /* error codes */ /* string codes */ /* API */ extern GLenum glewInit (); extern GLboolean glewIsSupported (const char* name); #line 15313 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" extern GLboolean glewExperimental; extern GLboolean glewGetExtension (const char* name); extern const GLubyte* glewGetErrorString (GLenum error); extern const GLubyte* glewGetString (GLenum name); } #line 15322 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 15329 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 15334 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 15339 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" /* #undef GLEWAPI */ #line 15344 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glew-1.5.8\\include\\GL/glew.h" #line 7 "..\\tutorials\\tutorial06_keyboard_and_mouse\\tutorial06.cpp" // Include GLFW #line 1 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /************************************************************************ * GLFW - An OpenGL framework * API version: 2.7 * WWW: http://www.glfw.org/ *------------------------------------------------------------------------ * Copyright (c) 2002-2006 Marcus Geelnard * Copyright (c) 2006-2010 Camilla Berglund * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would * be appreciated but is not required. * * 2. Altered source versions must be plainly marked as such, and must not * be misrepresented as being the original software. * * 3. This notice may not be removed or altered from any source * distribution. * *************************************************************************/ extern "C" { #line 36 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /************************************************************************* * Global definitions *************************************************************************/ /* We need a NULL pointer from time to time */ /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */ /* Please report any probles that you find with your compiler, which may * be solved in this section! There are several compilers that I have not * been able to test this file with yet. * * First: If we are we on Windows, we want a single define for it (_WIN32) * (Note: For Cygwin the compiler flag -mwin32 should be used, but to * make sure that things run smoothly for Cygwin users, we add __CYGWIN__ * to the list of "valid Win32 identifiers", which removes the need for * -mwin32) */ #line 67 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /* In order for extension support to be portable, we need to define an * OpenGL function call method. We use the keyword APIENTRY, which is * defined for Win32. (Note: Windows also needs this for ) */ #line 78 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 80 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /* The following three defines are here solely to make some Windows-based * files happy. Theoretically we could include , but * it has the major drawback of severely polluting our namespace. */ /* Under Windows, we need WINGDIAPI defined */ /* Microsoft Visual C++, Borland C++ Builder and Pelles C */ #line 99 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 101 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /* Some files also need CALLBACK defined */ /* Microsoft Visual C++ */ #line 109 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 111 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 115 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 117 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /* Microsoft Visual C++, Borland C++ and Pelles C needs wchar_t */ #line 123 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /* ---------------- GLFW related system specific defines ----------------- */ #line 135 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 146 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /* We are either building/calling a static lib or we are non-win32 */ #line 153 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */ /* Include standard OpenGL headers: GLFW uses GL_FALSE/GL_TRUE, and it is * convenient for the user to only have to include . This also * solves the problem with Windows and needing some * special defines which normally requires the user to include * (which is not a nice solution for portable programs). */ #line 168 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 1 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/gl.h" /*++ BUILD Version: 0004 // Increment this if a change has global effects Copyright (c) 1985-96, Microsoft Corporation Module Name: gl.h Abstract: Procedure declarations, constant definitions and macros for the OpenGL component. --*/ #line 169 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 1 "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\include\\GL/glu.h" /*++ BUILD Version: 0004 // Increment this if a change has global effects Copyright (c) 1985-95, Microsoft Corporation Module Name: glu.h Abstract: Procedure declarations, constant definitions and macros for the OpenGL Utility Library. --*/ #line 171 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 172 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 173 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" /************************************************************************* * GLFW version *************************************************************************/ /************************************************************************* * Input handling definitions *************************************************************************/ /* Key and button state/action definitions */ /* Keyboard key definitions: 8-bit ISO-8859-1 (Latin 1) encoding is used * for printable keys (such as A-Z, 0-9 etc), and values above 256 * represent special (non-printable) keys (e.g. F1, Page Up etc). */ /* Mouse button definitions */ /* Mouse button aliases */ /* Joystick identifiers */ /************************************************************************* * Other definitions *************************************************************************/ /* glfwOpenWindow modes */ /* glfwGetWindowParam tokens */ /* The following constants are used for both glfwGetWindowParam * and glfwOpenWindowHint */ /* GLFW_OPENGL_PROFILE tokens */ /* glfwEnable/glfwDisable tokens */ /* glfwWaitThread wait modes */ /* glfwGetJoystickParam tokens */ /* glfwReadImage/glfwLoadTexture2D flags */ /* Time spans longer than this (seconds) are considered to be infinity */ /************************************************************************* * Typedefs *************************************************************************/ /* The video mode structure used by glfwGetVideoModes() */ typedef struct { int Width, Height; int RedBits, BlueBits, GreenBits; } GLFWvidmode; /* Image/texture information */ typedef struct { int Width, Height; int Format; int BytesPerPixel; unsigned char *Data; } GLFWimage; /* Thread ID */ typedef int GLFWthread; /* Mutex object */ typedef void * GLFWmutex; /* Condition variable object */ typedef void * GLFWcond; /* Function pointer types */ typedef void ( * GLFWwindowsizefun)(int,int); typedef int ( * GLFWwindowclosefun)(void); typedef void ( * GLFWwindowrefreshfun)(void); typedef void ( * GLFWmousebuttonfun)(int,int); typedef void ( * GLFWmouseposfun)(int,int); typedef void ( * GLFWmousewheelfun)(int); typedef void ( * GLFWkeyfun)(int,int); typedef void ( * GLFWcharfun)(int,int); typedef void ( * GLFWthreadfun)(void *); /************************************************************************* * Prototypes *************************************************************************/ /* GLFW initialization, termination and version querying */ int glfwInit( void ); void glfwTerminate( void ); void glfwGetVersion( int *major, int *minor, int *rev ); /* Window handling */ int glfwOpenWindow( int width, int height, int redbits, int greenbits, int bluebits, int alphabits, int depthbits, int stencilbits, int mode ); void glfwOpenWindowHint( int target, int hint ); void glfwCloseWindow( void ); void glfwSetWindowTitle( const char *title ); void glfwGetWindowSize( int *width, int *height ); void glfwSetWindowSize( int width, int height ); void glfwSetWindowPos( int x, int y ); void glfwIconifyWindow( void ); void glfwRestoreWindow( void ); void glfwSwapBuffers( void ); void glfwSwapInterval( int interval ); int glfwGetWindowParam( int param ); void glfwSetWindowSizeCallback( GLFWwindowsizefun cbfun ); void glfwSetWindowCloseCallback( GLFWwindowclosefun cbfun ); void glfwSetWindowRefreshCallback( GLFWwindowrefreshfun cbfun ); /* Video mode functions */ int glfwGetVideoModes( GLFWvidmode *list, int maxcount ); void glfwGetDesktopMode( GLFWvidmode *mode ); /* Input handling */ void glfwPollEvents( void ); void glfwWaitEvents( void ); int glfwGetKey( int key ); int glfwGetMouseButton( int button ); void glfwGetMousePos( int *xpos, int *ypos ); void glfwSetMousePos( int xpos, int ypos ); int glfwGetMouseWheel( void ); void glfwSetMouseWheel( int pos ); void glfwSetKeyCallback( GLFWkeyfun cbfun ); void glfwSetCharCallback( GLFWcharfun cbfun ); void glfwSetMouseButtonCallback( GLFWmousebuttonfun cbfun ); void glfwSetMousePosCallback( GLFWmouseposfun cbfun ); void glfwSetMouseWheelCallback( GLFWmousewheelfun cbfun ); /* Joystick input */ int glfwGetJoystickParam( int joy, int param ); int glfwGetJoystickPos( int joy, float *pos, int numaxes ); int glfwGetJoystickButtons( int joy, unsigned char *buttons, int numbuttons ); /* Time */ double glfwGetTime( void ); void glfwSetTime( double time ); void glfwSleep( double time ); /* Extension support */ int glfwExtensionSupported( const char *extension ); void* glfwGetProcAddress( const char *procname ); void glfwGetGLVersion( int *major, int *minor, int *rev ); /* Threading support */ GLFWthread glfwCreateThread( GLFWthreadfun fun, void *arg ); void glfwDestroyThread( GLFWthread ID ); int glfwWaitThread( GLFWthread ID, int waitmode ); GLFWthread glfwGetThreadID( void ); GLFWmutex glfwCreateMutex( void ); void glfwDestroyMutex( GLFWmutex mutex ); void glfwLockMutex( GLFWmutex mutex ); void glfwUnlockMutex( GLFWmutex mutex ); GLFWcond glfwCreateCond( void ); void glfwDestroyCond( GLFWcond cond ); void glfwWaitCond( GLFWcond cond, GLFWmutex mutex, double timeout ); void glfwSignalCond( GLFWcond cond ); void glfwBroadcastCond( GLFWcond cond ); int glfwGetNumberOfProcessors( void ); /* Enable/disable functions */ void glfwEnable( int token ); void glfwDisable( int token ); /* Image/texture I/O support */ int glfwReadImage( const char *name, GLFWimage *img, int flags ); int glfwReadMemoryImage( const void *data, long size, GLFWimage *img, int flags ); void glfwFreeImage( GLFWimage *img ); int glfwLoadTexture2D( const char *name, int flags ); int glfwLoadMemoryTexture2D( const void *data, long size, int flags ); int glfwLoadTextureImage2D( GLFWimage *img, int flags ); } #line 507 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 509 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glfw-2.7.2\\include\\GL/glfw.h" #line 10 "..\\tutorials\\tutorial06_keyboard_and_mouse\\tutorial06.cpp" // Include GLM #line 1 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2005-01-14 // Updated : 2011-01-19 // Licence : This source is under MIT License // File : glm/glm.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/_fixes.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2011-02-21 // Updated : 2011-02-21 // Licence : This source is under MIT License // File : glm/core/_fixes.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// //! Workaround for compatibility with other libraries //! Workaround for compatibility with other libraries #line 11 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" //! TODO: to delete #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cmath" // cmath standard header #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* yvals.h values header for Microsoft C/C++ */ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 7 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #pragma pack(push,8) #line 20 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* Note on use of "deprecate": * Various places in this header and other headers use __declspec(deprecate) or macros that have the term DEPRECATE in them. * We use deprecate here ONLY to signal the compiler to emit a warning about these items. The use of deprecate * should NOT be taken to imply that any standard committee has deprecated these functions from the relevant standards. * In fact, these functions are NOT deprecated from the standard. * * Full details can be found in our documentation by searching for "Checked Iterators". */ #line 62 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 64 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 65 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* CURRENT DLL NAMES */ #line 73 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 74 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* NAMING PROPERTIES */ /* THREAD AND LOCALE CONTROL */ /* THREAD-LOCAL STORAGE */ #line 91 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 95 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 99 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 103 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* B1. Inspect _HAS_ITERATOR_DEBUGGING. */ #line 161 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 162 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* B2. Inspect _SECURE_SCL. */ #line 174 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 175 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* B3. Derive _ITERATOR_DEBUG_LEVEL. */ #line 184 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 186 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 191 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #pragma detect_mismatch("_MSC_VER", "1600") #line 196 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 201 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 203 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #pragma detect_mismatch("_ITERATOR_DEBUG_LEVEL", "2") #line 207 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 208 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 209 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* See note on use of deprecate at the top of this file */ #line 215 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 220 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 222 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 223 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 227 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* _SECURE_SCL switches: helper macros */ /* See note on use of deprecate at the top of this file */ #line 239 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 244 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 260 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 265 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 344 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 356 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\use_ansi.h" /*** *use_ansi.h - pragmas for ANSI Standard C++ libraries * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This header is intended to force the use of the appropriate ANSI * Standard C++ libraries whenever it is included. * * [Public] * ****/ #pragma once #pragma comment(lib,"msvcprtd") #line 31 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\use_ansi.h" #line 49 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\use_ansi.h" #line 51 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\use_ansi.h" #line 53 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\use_ansi.h" #line 55 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\use_ansi.h" #line 358 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 366 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 374 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* Define _CRTIMP2 */ /* Define _CRTIMP2_NCEEPURE */ #line 392 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 394 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 395 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* Define _MRTIMP2 */ #line 416 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 418 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 419 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 424 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 426 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 427 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* Define _MRTIMP2_NPURE */ #line 435 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 437 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 439 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* Define _MRTIMP2_NCEE */ #line 445 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 447 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 448 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* Define _MRTIMP2_NCEEPURE */ #line 454 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 456 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 457 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* Define _MRTIMP2_NPURE_NCEEPURE */ #line 463 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 465 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 466 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 470 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 477 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 478 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 482 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* NAMESPACE */ /* We use the stdext (standard extension) namespace to contain extensions that are not part of the current standard */ /* #define _GLOBAL_USING *.h in global namespace, c* imports to std */ #line 511 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 531 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" namespace std { typedef bool _Bool; } #line 539 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* VC++ COMPILER PARAMETERS */ /* INTEGER PROPERTIES */ typedef __int64 _Longlong; typedef unsigned __int64 _ULonglong; /* STDIO PROPERTIES */ #line 570 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* uchar PROPERTIES */ #line 574 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" typedef unsigned short char16_t; typedef unsigned int char32_t; #line 579 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" #line 581 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* MULTITHREAD PROPERTIES */ /* LOCK MACROS */ namespace std { enum _Uninitialized { // tag for suppressing initialization _Noinit }; // CLASS _Lockit // warning 4412 is benign here #pragma warning(push) #pragma warning(disable:4412) class __declspec(dllimport) _Lockit { // lock while object in existence -- MUST NEST public: #line 624 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" __thiscall _Lockit(); // default construct explicit __thiscall _Lockit(int); // set the lock __thiscall ~_Lockit(); // clear the lock #line 628 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" static void __cdecl _Lockit_ctor(int); static void __cdecl _Lockit_dtor(int); private: static void __cdecl _Lockit_ctor(_Lockit *); static void __cdecl _Lockit_ctor(_Lockit *, int); static void __cdecl _Lockit_dtor(_Lockit *); _Lockit(const _Lockit&); // not defined _Lockit& operator=(const _Lockit&); // not defined int _Locktype; #line 655 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" }; #line 741 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" class __declspec(dllimport) _Mutex { // lock under program control public: #line 773 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" __thiscall _Mutex(_Uninitialized) { // do nothing } __thiscall _Mutex(); __thiscall ~_Mutex(); void __thiscall _Lock(); void __thiscall _Unlock(); #line 782 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" private: static void __cdecl _Mutex_ctor(_Mutex *); static void __cdecl _Mutex_dtor(_Mutex *); static void __cdecl _Mutex_Lock(_Mutex *); static void __cdecl _Mutex_Unlock(_Mutex *); _Mutex(const _Mutex&); // not defined _Mutex& operator=(const _Mutex&); // not defined void *_Mtx; #line 802 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" }; class __declspec(dllimport) _Init_locks { // initialize mutexes public: #line 820 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" __thiscall _Init_locks(); __thiscall ~_Init_locks(); #line 823 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" private: static void __cdecl _Init_locks_ctor(_Init_locks *); static void __cdecl _Init_locks_dtor(_Init_locks *); #line 837 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" }; #pragma warning(pop) } #line 842 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* MISCELLANEOUS MACROS AND TYPES */ __declspec(dllimport) void __cdecl _Atexit(void (__cdecl *)(void)); typedef int _Mbstatet; typedef unsigned long _Uint32t; #pragma pack(pop) #line 863 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\yvals.h" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 6 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cmath" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /*** *math.h - definitions and declarations for math library * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains constant definitions and external subroutine * declarations for the math subroutine library. * [ANSI/System V] * * [Public] * ****/ #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 19 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) extern "C" { #line 29 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /* Definition of _exception struct - this struct is passed to the matherr * routine when a floating point exception is detected */ struct _exception { int type; /* exception type - see below */ char *name; /* name of function where error occured */ double arg1; /* first argument to function */ double arg2; /* second argument (if any) to function */ double retval; /* value to be returned by function */ } ; #line 47 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /* Definition of a _complex struct to be used by those who use cabs and * want type checking on their argument */ struct _complex { double x,y; /* real and imaginary parts */ } ; #line 62 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 65 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 66 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /* Constant definitions for the exception type passed in the _exception struct */ /* Definitions of _HUGE and HUGE_VAL - respectively the XENIX and ANSI names * for a value returned in case of error by a number of the floating point * math routines */ __declspec(dllimport) extern double _HUGE; #line 92 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 93 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /* Function prototypes */ double __cdecl acos( double _X); double __cdecl asin( double _X); double __cdecl atan( double _X); double __cdecl atan2( double _Y, double _X); __declspec(dllimport) double __cdecl _copysign ( double _Number, double _Sign); __declspec(dllimport) double __cdecl _chgsign ( double _X); #line 115 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" double __cdecl cos( double _X); double __cdecl cosh( double _X); double __cdecl exp( double _X); double __cdecl fabs( double _X); double __cdecl fmod( double _X, double _Y); double __cdecl log( double _X); double __cdecl log10( double _X); double __cdecl pow( double _X, double _Y); double __cdecl sin( double _X); double __cdecl sinh( double _X); double __cdecl tan( double _X); double __cdecl tanh( double _X); double __cdecl sqrt( double _X); __declspec(dllimport) double __cdecl _cabs( struct _complex _Complex_value); __declspec(dllimport) double __cdecl ceil( double _X); __declspec(dllimport) double __cdecl floor( double _X); __declspec(dllimport) double __cdecl frexp( double _X, int * _Y); __declspec(dllimport) double __cdecl _hypot( double _X, double _Y); __declspec(dllimport) float __cdecl _hypotf( float _X, float _Y); __declspec(dllimport) double __cdecl _j0( double _X ); __declspec(dllimport) double __cdecl _j1( double _X ); __declspec(dllimport) double __cdecl _jn(int _X, double _Y); __declspec(dllimport) double __cdecl ldexp( double _X, int _Y); #line 149 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" int __cdecl _matherr( struct _exception * _Except); #line 151 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 152 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" __declspec(dllimport) double __cdecl modf( double _X, double * _Y); __declspec(dllimport) double __cdecl _y0( double _X); __declspec(dllimport) double __cdecl _y1( double _X); __declspec(dllimport) double __cdecl _yn( int _X, double _Y); /* hypot and hypotf are now part of the C99 Standard */ static __inline double __cdecl hypot( double _X, double _Y) { return _hypot(_X, _Y); } static __inline float __cdecl hypotf( float _X, float _Y) { return _hypotf(_X, _Y); } #line 172 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 178 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 217 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /* ANSI C, 4.5 Mathematics */ /* 4.5.2 Trigonometric functions */ __declspec(dllimport) float __cdecl acosf( float _X); __declspec(dllimport) float __cdecl asinf( float _X); __declspec(dllimport) float __cdecl atanf( float _X); __declspec(dllimport) float __cdecl atan2f( float _Y, float _X); __declspec(dllimport) float __cdecl cosf( float _X); __declspec(dllimport) float __cdecl sinf( float _X); __declspec(dllimport) float __cdecl tanf( float _X); /* 4.5.3 Hyperbolic functions */ __declspec(dllimport) float __cdecl coshf( float _X); __declspec(dllimport) float __cdecl sinhf( float _X); __declspec(dllimport) float __cdecl tanhf( float _X); /* 4.5.4 Exponential and logarithmic functions */ __declspec(dllimport) float __cdecl expf( float _X); __declspec(dllimport) float __cdecl logf( float _X); __declspec(dllimport) float __cdecl log10f( float _X); __declspec(dllimport) float __cdecl modff( float _X, float* _Y); /* 4.5.5 Power functions */ __declspec(dllimport) float __cdecl powf( float _X, float _Y); __declspec(dllimport) float __cdecl sqrtf( float _X); /* 4.5.6 Nearest integer, absolute value, and remainder functions */ __declspec(dllimport) float __cdecl ceilf( float _X); __declspec(dllimport) float __cdecl floorf( float _X); __declspec(dllimport) float __cdecl fmodf( float _X, float _Y); __declspec(dllimport) float __cdecl _copysignf ( float _Number, float _Sign); __declspec(dllimport) float __cdecl _chgsignf ( float _X); __declspec(dllimport) float __cdecl _logbf( float _X); __declspec(dllimport) float __cdecl _nextafterf( float _X, float _Y); __declspec(dllimport) int __cdecl _finitef( float _X); __declspec(dllimport) int __cdecl _isnanf( float _X); __declspec(dllimport) int __cdecl _fpclassf( float _X); #line 261 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /* Macros defining long double functions to be their double counterparts * (long double is synonymous with double in this implementation). */ inline long double acosl( long double _X) {return (acos((double)_X)); } inline long double asinl( long double _X) {return (asin((double)_X)); } inline long double atanl( long double _X) {return (atan((double)_X)); } inline long double atan2l( long double _Y, long double _X) {return (atan2((double)_Y, (double)_X)); } inline long double ceill( long double _X) {return (ceil((double)_X)); } inline long double cosl( long double _X) {return (cos((double)_X)); } inline long double coshl( long double _X) {return (cosh((double)_X)); } inline long double expl( long double _X) {return (exp((double)_X)); } inline long double fabsl( long double _X) {return (fabs((double)_X)); } inline long double floorl( long double _X) {return (floor((double)_X)); } inline long double fmodl( long double _X, long double _Y) {return (fmod((double)_X, (double)_Y)); } inline long double frexpl( long double _X, int *_Y) {return (frexp((double)_X, _Y)); } inline long double ldexpl( long double _X, int _Y) {return (ldexp((double)_X, _Y)); } inline long double logl( long double _X) {return (log((double)_X)); } inline long double log10l( long double _X) {return (log10((double)_X)); } inline long double modfl( long double _X, long double *_Y) {double _Di, _Df = modf((double)_X, &_Di); *_Y = (long double)_Di; return (_Df); } inline long double powl( long double _X, long double _Y) {return (pow((double)_X, (double)_Y)); } inline long double sinl( long double _X) {return (sin((double)_X)); } inline long double sinhl( long double _X) {return (sinh((double)_X)); } inline long double sqrtl( long double _X) {return (sqrt((double)_X)); } inline long double tanl( long double _X) {return (tan((double)_X)); } #line 376 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" inline long double tanhl( long double _X) {return (tanh((double)_X)); } inline long double _chgsignl( long double _Number) { return _chgsign(static_cast(_Number)); } inline long double _copysignl( long double _Number, long double _Sign) { return _copysign(static_cast(_Number), static_cast(_Sign)); } inline float frexpf( float _X, int *_Y) {return ((float)frexp((double)_X, _Y)); } inline float fabsf( float _X) {return ((float)fabs((double)_X)); } inline float ldexpf( float _X, int _Y) {return ((float)ldexp((double)_X, _Y)); } #line 440 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 441 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 442 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 443 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" /* Non-ANSI names for compatibility */ __declspec(dllimport) extern double HUGE; #line 464 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_cabs" ". See online help for details.")) __declspec(dllimport) double __cdecl cabs( struct _complex _X); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_j0" ". See online help for details.")) __declspec(dllimport) double __cdecl j0( double _X); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_j1" ". See online help for details.")) __declspec(dllimport) double __cdecl j1( double _X); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_jn" ". See online help for details.")) __declspec(dllimport) double __cdecl jn( int _X, double _Y); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_y0" ". See online help for details.")) __declspec(dllimport) double __cdecl y0( double _X); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_y1" ". See online help for details.")) __declspec(dllimport) double __cdecl y1( double _X); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_yn" ". See online help for details.")) __declspec(dllimport) double __cdecl yn( int _X, double _Y); #line 474 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 476 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" } extern "C++" { template inline _Ty _Pow_int(_Ty _X, int _Y) {unsigned int _N; if (_Y >= 0) _N = (unsigned int)_Y; else _N = (unsigned int)(-_Y); for (_Ty _Z = _Ty(1); ; _X *= _X) {if ((_N & 1) != 0) _Z *= _X; if ((_N >>= 1) == 0) return (_Y < 0 ? _Ty(1) / _Z : _Z); }} inline double __cdecl abs( double _X) {return (fabs(_X)); } inline double __cdecl pow( double _X, int _Y) {return (_Pow_int(_X, _Y)); } inline float __cdecl abs( float _X) {return (fabsf(_X)); } inline float __cdecl acos( float _X) {return (acosf(_X)); } inline float __cdecl asin( float _X) {return (asinf(_X)); } inline float __cdecl atan( float _X) {return (atanf(_X)); } inline float __cdecl atan2( float _Y, float _X) {return (atan2f(_Y, _X)); } inline float __cdecl ceil( float _X) {return (ceilf(_X)); } inline float __cdecl cos( float _X) {return (cosf(_X)); } inline float __cdecl cosh( float _X) {return (coshf(_X)); } inline float __cdecl exp( float _X) {return (expf(_X)); } inline float __cdecl fabs( float _X) {return (fabsf(_X)); } inline float __cdecl floor( float _X) {return (floorf(_X)); } inline float __cdecl fmod( float _X, float _Y) {return (fmodf(_X, _Y)); } inline float __cdecl frexp( float _X, int * _Y) {return (frexpf(_X, _Y)); } inline float __cdecl ldexp( float _X, int _Y) {return (ldexpf(_X, _Y)); } inline float __cdecl log( float _X) {return (logf(_X)); } inline float __cdecl log10( float _X) {return (log10f(_X)); } inline float __cdecl modf( float _X, float * _Y) {return (modff(_X, _Y)); } inline float __cdecl pow( float _X, float _Y) {return (powf(_X, _Y)); } inline float __cdecl pow( float _X, int _Y) {return (_Pow_int(_X, _Y)); } inline float __cdecl sin( float _X) {return (sinf(_X)); } inline float __cdecl sinh( float _X) {return (sinhf(_X)); } inline float __cdecl sqrt( float _X) {return (sqrtf(_X)); } inline float __cdecl tan( float _X) {return (tanf(_X)); } inline float __cdecl tanh( float _X) {return (tanhf(_X)); } inline long double __cdecl abs( long double _X) {return (fabsl(_X)); } inline long double __cdecl acos( long double _X) {return (acosl(_X)); } inline long double __cdecl asin( long double _X) {return (asinl(_X)); } inline long double __cdecl atan( long double _X) {return (atanl(_X)); } inline long double __cdecl atan2( long double _Y, long double _X) {return (atan2l(_Y, _X)); } inline long double __cdecl ceil( long double _X) {return (ceill(_X)); } inline long double __cdecl cos( long double _X) {return (cosl(_X)); } inline long double __cdecl cosh( long double _X) {return (coshl(_X)); } inline long double __cdecl exp( long double _X) {return (expl(_X)); } inline long double __cdecl fabs( long double _X) {return (fabsl(_X)); } inline long double __cdecl floor( long double _X) {return (floorl(_X)); } inline long double __cdecl fmod( long double _X, long double _Y) {return (fmodl(_X, _Y)); } inline long double __cdecl frexp( long double _X, int * _Y) {return (frexpl(_X, _Y)); } inline long double __cdecl ldexp( long double _X, int _Y) {return (ldexpl(_X, _Y)); } inline long double __cdecl log( long double _X) {return (logl(_X)); } inline long double __cdecl log10( long double _X) {return (log10l(_X)); } inline long double __cdecl modf( long double _X, long double * _Y) {return (modfl(_X, _Y)); } inline long double __cdecl pow( long double _X, long double _Y) {return (powl(_X, _Y)); } inline long double __cdecl pow( long double _X, int _Y) {return (_Pow_int(_X, _Y)); } inline long double __cdecl sin( long double _X) {return (sinl(_X)); } inline long double __cdecl sinh( long double _X) {return (sinhl(_X)); } inline long double __cdecl sqrt( long double _X) {return (sqrtl(_X)); } inline long double __cdecl tan( long double _X) {return (tanl(_X)); } inline long double __cdecl tanh( long double _X) {return (tanhl(_X)); } } #line 598 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #pragma pack(pop) #line 602 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 642 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\math.h" #line 14 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cmath" #line 15 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cmath" namespace std { using :: acosf; using :: asinf; using :: atanf; using :: atan2f; using :: ceilf; using :: cosf; using :: coshf; using :: expf; using :: fabsf; using :: floorf; using :: fmodf; using :: frexpf; using :: ldexpf; using :: logf; using :: log10f; using :: modff; using :: powf; using :: sinf; using :: sinhf; using :: sqrtf; using :: tanf; using :: tanhf; using :: acosl; using :: asinl; using :: atanl; using :: atan2l; using :: ceill; using :: cosl; using :: coshl; using :: expl; using :: fabsl; using :: floorl; using :: fmodl; using :: frexpl; using :: ldexpl; using :: logl; using :: log10l; using :: modfl; using :: powl; using :: sinl; using :: sinhl; using :: sqrtl; using :: tanl; using :: tanhl; using :: abs; using :: acos; using :: asin; using :: atan; using :: atan2; using :: ceil; using :: cos; using :: cosh; using :: exp; using :: fabs; using :: floor; using :: fmod; using :: frexp; using :: ldexp; using :: log; using :: log10; using :: modf; using :: pow; using :: sin; using :: sinh; using :: sqrt; using :: tan; using :: tanh; } #line 49 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cmath" #line 51 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cmath" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 19 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\climits" // climits standard header #pragma once #line 9 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\climits" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 20 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cfloat" // cfloat standard header #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" /*** *float.h - constants for floating point values * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains defines for a number of implementation dependent * values which are commonly used by sophisticated numerical (floating * point) programs. * [ANSI] * * [Public] * ****/ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 22 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtwrn.h" /*** *crtwrn.h * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the IDs and messages for warnings * in the CRT headers. * ****/ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 18 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtwrn.h" /* A warning is a 4-digit ID number (_CRTWRN_WNUMBER_*) followed by a message (_CRTWRN_MESSAGE_*) Emit a warning by adding the following code to the header file: #pragma _CRT_WARNING( id ) */ /* NAME */ /* #pragma _CRT_WARNING( NAME ) */ /* #define _CRTWRN_WNUMBER_NAME 9999 */ /* #define _CRTWRN_MESSAGE_NAME description */ /* _VCCLRIT_DEPRECATED */ /* #pragma _CRT_WARNING( _VCCLRIT_DEPRECATED ) */ /* ID 1002 is obsolete; do not reuse it */ /* ID 1003 is obsolete; do not reuse it */ /* _NO_SPECIAL_TRANSFER */ /* #pragma _CRT_WARNING( _NO_SPECIAL_TRANSFER ) */ /* ID 1005 is obsolete; do not reuse it */ /* _CLR_AND_STATIC_CPPLIB */ /* #pragma push_macro("_STATIC_CPPLIB") */ /* #undef _STATIC_CPPLIB */ /* #pragma _CRT_WARNING( _CLR_AND_STATIC_CPPLIB ) */ /* #pragma pop_macro("_STATIC_CPPLIB") */ /* _DEPRECATE_STATIC_CPPLIB */ /* #pragma push_macro("_STATIC_CPPLIB") */ /* #undef _STATIC_CPPLIB */ /* #pragma _CRT_WARNING( _DEPRECATE_STATIC_CPPLIB ) */ /* #pragma pop_macro("_STATIC_CPPLIB") */ /* _DEPRECATE_SECURE_SCL_THROWS */ /* #pragma push_macro("_SECURE_SCL_THROWS") */ /* #undef _SECURE_SCL_THROWS */ /* #pragma _CRT_WARNING( _DEPRECATE_SECURE_SCL_THROWS ) */ /* #pragma pop_macro("_SECURE_SCL_THROWS") */ #line 81 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtwrn.h" #line 23 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" /* Define _CRT_MANAGED_FP_DEPRECATE */ #line 32 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" #line 34 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" #line 35 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" #line 36 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" extern "C" { #line 40 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" /* Function prototypes */ /* Reading or writing the floating point control/status words is not supported in managed code */ __declspec(dllimport) unsigned int __cdecl _clearfp(void); #pragma warning(push) #pragma warning(disable: 4141) __declspec(dllimport) unsigned int __cdecl _controlfp( unsigned int _NewValue, unsigned int _Mask); #pragma warning(pop) __declspec(dllimport) void __cdecl _set_controlfp( unsigned int _NewValue, unsigned int _Mask); __declspec(dllimport) errno_t __cdecl _controlfp_s( unsigned int *_CurrentState, unsigned int _NewValue, unsigned int _Mask); __declspec(dllimport) unsigned int __cdecl _statusfp(void); __declspec(dllimport) void __cdecl _fpreset(void); #line 96 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" /* * Abstract User Status Word bit definitions */ /* * New Control Bit that specifies the ambiguity in control word. */ /* * Abstract User Control Word Mask and bit definitions */ /* * i386 specific definitions */ /* * RISC specific definitions */ /* initial Control Word value */ #line 163 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" #line 167 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" #line 171 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" __declspec(dllimport) unsigned int __cdecl _control87( unsigned int _NewValue, unsigned int _Mask); #line 177 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" /* Global variable holding floating point error code */ __declspec(dllimport) extern int * __cdecl __fpecode(void); /* invalid subconditions (_SW_INVALID also set) */ /* Floating point error signals and return codes */ /* IEEE recommended functions */ __declspec(dllimport) double __cdecl _scalb( double _X, long _Y); __declspec(dllimport) double __cdecl _logb( double _X); __declspec(dllimport) double __cdecl _nextafter( double _X, double _Y); __declspec(dllimport) int __cdecl _finite( double _X); __declspec(dllimport) int __cdecl _isnan( double _X); __declspec(dllimport) int __cdecl _fpclass( double _X); __declspec(dllimport) float __cdecl _scalbf( float _X, long _Y); #line 226 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" /* Non-ANSI names for compatibility */ __declspec(dllimport) void __cdecl fpreset(void); #line 310 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" } #line 314 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" #line 316 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\float.h" #line 8 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cfloat" #line 10 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cfloat" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 21 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" // limits standard header #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\ymath.h" /* ymath.h internal header */ #pragma once extern "C" { #line 11 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\ymath.h" #pragma pack(push, 8) /* MACROS FOR _Dtest RETURN (0 => ZERO) */ /* MACROS FOR _Feraise ARGUMENT */ /* TYPE DEFINITIONS */ typedef union { /* pun float types as integer array */ unsigned short _Word[8]; float _Float; double _Double; long double _Long_double; } _Dconst; /* ERROR REPORTING */ void __cdecl _Feraise(int); /* double DECLARATIONS */ __declspec(dllimport) double __cdecl _Cosh(double, double); __declspec(dllimport) short __cdecl _Dtest(double *); __declspec(dllimport) short __cdecl _Exp(double *, double, short); __declspec(dllimport) double __cdecl _Sinh(double, double); extern __declspec(dllimport) /* const */ _Dconst _Denorm, _Hugeval, _Inf, _Nan, _Snan; /* float DECLARATIONS */ __declspec(dllimport) float __cdecl _FCosh(float, float); __declspec(dllimport) short __cdecl _FDtest(float *); __declspec(dllimport) short __cdecl _FExp(float *, float, short); __declspec(dllimport) float __cdecl _FSinh(float, float); extern __declspec(dllimport) /* const */ _Dconst _FDenorm, _FInf, _FNan, _FSnan; /* long double DECLARATIONS */ __declspec(dllimport) long double __cdecl _LCosh(long double, long double); __declspec(dllimport) short __cdecl _LDtest(long double *); __declspec(dllimport) short __cdecl _LExp(long double *, long double, short); __declspec(dllimport) long double __cdecl _LSinh(long double, long double); extern __declspec(dllimport) /* const */ _Dconst _LDenorm, _LInf, _LNan, _LSnan; } #line 65 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\ymath.h" #pragma pack(pop) #line 70 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\ymath.h" #line 71 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\ymath.h" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 7 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cwchar" // cwchar standard header #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /*** *wchar.h - declarations for wide character functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the types, macros and function declarations for * all wide character-related functions. They may also be declared in * individual header files on a functional basis. * [ISO] * * Note: keep in sync with ctype.h, stdio.h, stdlib.h, string.h, time.h. * * [Public] * ****/ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 24 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #pragma pack(push,8) extern "C" { #line 30 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* * According to the standard, WCHAR_MIN and WCHAR_MAX need to be * "constant expressions suitable for use in #if preprocessing directives, * and this expression shall have the same type as would an expression that * is an object of the corresponding type converted according to the integer * promotions". */ /* Declare _iob[] array */ typedef unsigned long _fsize_t; /* Could be 64 bits for Win32 */ #line 86 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" struct _wfinddata32_t { unsigned attrib; __time32_t time_create; /* -1 for FAT file systems */ __time32_t time_access; /* -1 for FAT file systems */ __time32_t time_write; _fsize_t size; wchar_t name[260]; }; struct _wfinddata32i64_t { unsigned attrib; __time32_t time_create; /* -1 for FAT file systems */ __time32_t time_access; /* -1 for FAT file systems */ __time32_t time_write; __int64 size; wchar_t name[260]; }; struct _wfinddata64i32_t { unsigned attrib; __time64_t time_create; /* -1 for FAT file systems */ __time64_t time_access; /* -1 for FAT file systems */ __time64_t time_write; _fsize_t size; wchar_t name[260]; }; struct _wfinddata64_t { unsigned attrib; __time64_t time_create; /* -1 for FAT file systems */ __time64_t time_access; /* -1 for FAT file systems */ __time64_t time_write; __int64 size; wchar_t name[260]; }; #line 144 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 147 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* define NULL pointer value */ /* For backwards compatibility */ #line 178 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 180 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 181 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) const unsigned short * __cdecl __pctype_func(void); __declspec(dllimport) extern const unsigned short *_pctype; #line 188 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 189 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 190 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) extern const unsigned short _wctype[]; #line 197 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) const wctype_t * __cdecl __pwctype_func(void); __declspec(dllimport) extern const wctype_t *_pwctype; #line 204 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 205 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 206 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* set bit masks for the possible character types */ /* vertical tab or form feed */ /* Function prototypes */ /* Character classification function prototypes */ /* also declared in ctype.h */ __declspec(dllimport) int __cdecl iswalpha( wint_t _C); __declspec(dllimport) int __cdecl _iswalpha_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswupper( wint_t _C); __declspec(dllimport) int __cdecl _iswupper_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswlower( wint_t _C); __declspec(dllimport) int __cdecl _iswlower_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswdigit( wint_t _C); __declspec(dllimport) int __cdecl _iswdigit_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswxdigit( wint_t _C); __declspec(dllimport) int __cdecl _iswxdigit_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswspace( wint_t _C); __declspec(dllimport) int __cdecl _iswspace_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswpunct( wint_t _C); __declspec(dllimport) int __cdecl _iswpunct_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswalnum( wint_t _C); __declspec(dllimport) int __cdecl _iswalnum_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswprint( wint_t _C); __declspec(dllimport) int __cdecl _iswprint_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswgraph( wint_t _C); __declspec(dllimport) int __cdecl _iswgraph_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswcntrl( wint_t _C); __declspec(dllimport) int __cdecl _iswcntrl_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswascii( wint_t _C); __declspec(dllimport) int __cdecl isleadbyte( int _C); __declspec(dllimport) int __cdecl _isleadbyte_l( int _C, _locale_t _Locale); __declspec(dllimport) wint_t __cdecl towupper( wint_t _C); __declspec(dllimport) wint_t __cdecl _towupper_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) wint_t __cdecl towlower( wint_t _C); __declspec(dllimport) wint_t __cdecl _towlower_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswctype( wint_t _C, wctype_t _Type); __declspec(dllimport) int __cdecl _iswctype_l( wint_t _C, wctype_t _Type, _locale_t _Locale); __declspec(dllimport) int __cdecl __iswcsymf( wint_t _C); __declspec(dllimport) int __cdecl _iswcsymf_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl __iswcsym( wint_t _C); __declspec(dllimport) int __cdecl _iswcsym_l( wint_t _C, _locale_t _Locale); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "iswctype" " instead. See online help for details.")) __declspec(dllimport) int __cdecl is_wctype( wint_t _C, wctype_t _Type); #line 272 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* also declared in direct.h */ #line 285 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) wchar_t * __cdecl _wgetcwd( wchar_t * _DstBuf, int _SizeInWords); __declspec(dllimport) wchar_t * __cdecl _wgetdcwd( int _Drive, wchar_t * _DstBuf, int _SizeInWords); wchar_t * __cdecl _wgetdcwd_nolock( int _Drive, wchar_t * _DstBuf, int _SizeInWords); #line 295 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) int __cdecl _wchdir( const wchar_t * _Path); __declspec(dllimport) int __cdecl _wmkdir( const wchar_t * _Path); __declspec(dllimport) int __cdecl _wrmdir( const wchar_t * _Path); #line 302 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) int __cdecl _waccess( const wchar_t * _Filename, int _AccessMode); __declspec(dllimport) errno_t __cdecl _waccess_s( const wchar_t * _Filename, int _AccessMode); __declspec(dllimport) int __cdecl _wchmod( const wchar_t * _Filename, int _Mode); __declspec(dllimport) int __cdecl _wcreat( const wchar_t * _Filename, int _PermissionMode); __declspec(dllimport) intptr_t __cdecl _wfindfirst32( const wchar_t * _Filename, struct _wfinddata32_t * _FindData); __declspec(dllimport) int __cdecl _wfindnext32( intptr_t _FindHandle, struct _wfinddata32_t * _FindData); __declspec(dllimport) int __cdecl _wunlink( const wchar_t * _Filename); __declspec(dllimport) int __cdecl _wrename( const wchar_t * _OldFilename, const wchar_t * _NewFilename); __declspec(dllimport) errno_t __cdecl _wmktemp_s( wchar_t * _TemplateName, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wmktemp_s(wchar_t (&_TemplateName)[_Size]) throw() { return _wmktemp_s(_TemplateName, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wmktemp( wchar_t *_TemplateName); __declspec(dllimport) intptr_t __cdecl _wfindfirst32i64( const wchar_t * _Filename, struct _wfinddata32i64_t * _FindData); __declspec(dllimport) intptr_t __cdecl _wfindfirst64i32( const wchar_t * _Filename, struct _wfinddata64i32_t * _FindData); __declspec(dllimport) intptr_t __cdecl _wfindfirst64( const wchar_t * _Filename, struct _wfinddata64_t * _FindData); __declspec(dllimport) int __cdecl _wfindnext32i64( intptr_t _FindHandle, struct _wfinddata32i64_t * _FindData); __declspec(dllimport) int __cdecl _wfindnext64i32( intptr_t _FindHandle, struct _wfinddata64i32_t * _FindData); __declspec(dllimport) int __cdecl _wfindnext64( intptr_t _FindHandle, struct _wfinddata64_t * _FindData); __declspec(dllimport) errno_t __cdecl _wsopen_s( int * _FileHandle, const wchar_t * _Filename, int _OpenFlag, int _ShareFlag, int _PermissionFlag); __declspec(dllimport) int __cdecl _wopen( const wchar_t * _Filename, int _OpenFlag, ...); __declspec(dllimport) int __cdecl _wsopen( const wchar_t * _Filename, int _OpenFlag, int _ShareFlag, ...); #line 338 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 341 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* wide function prototypes, also declared in wchar.h */ __declspec(dllimport) wchar_t * __cdecl _wsetlocale( int _Category, const wchar_t * _Locale); #line 350 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* also declared in process.h */ __declspec(dllimport) intptr_t __cdecl _wexecl( const wchar_t * _Filename, const wchar_t * _ArgList, ...); __declspec(dllimport) intptr_t __cdecl _wexecle( const wchar_t * _Filename, const wchar_t * _ArgList, ...); __declspec(dllimport) intptr_t __cdecl _wexeclp( const wchar_t * _Filename, const wchar_t * _ArgList, ...); __declspec(dllimport) intptr_t __cdecl _wexeclpe( const wchar_t * _Filename, const wchar_t * _ArgList, ...); __declspec(dllimport) intptr_t __cdecl _wexecv( const wchar_t * _Filename, const wchar_t * const * _ArgList); __declspec(dllimport) intptr_t __cdecl _wexecve( const wchar_t * _Filename, const wchar_t * const * _ArgList, const wchar_t * const * _Env); __declspec(dllimport) intptr_t __cdecl _wexecvp( const wchar_t * _Filename, const wchar_t * const * _ArgList); __declspec(dllimport) intptr_t __cdecl _wexecvpe( const wchar_t * _Filename, const wchar_t * const * _ArgList, const wchar_t * const * _Env); __declspec(dllimport) intptr_t __cdecl _wspawnl( int _Mode, const wchar_t * _Filename, const wchar_t * _ArgList, ...); __declspec(dllimport) intptr_t __cdecl _wspawnle( int _Mode, const wchar_t * _Filename, const wchar_t * _ArgList, ...); __declspec(dllimport) intptr_t __cdecl _wspawnlp( int _Mode, const wchar_t * _Filename, const wchar_t * _ArgList, ...); __declspec(dllimport) intptr_t __cdecl _wspawnlpe( int _Mode, const wchar_t * _Filename, const wchar_t * _ArgList, ...); __declspec(dllimport) intptr_t __cdecl _wspawnv( int _Mode, const wchar_t * _Filename, const wchar_t * const * _ArgList); __declspec(dllimport) intptr_t __cdecl _wspawnve( int _Mode, const wchar_t * _Filename, const wchar_t * const * _ArgList, const wchar_t * const * _Env); __declspec(dllimport) intptr_t __cdecl _wspawnvp( int _Mode, const wchar_t * _Filename, const wchar_t * const * _ArgList); __declspec(dllimport) intptr_t __cdecl _wspawnvpe( int _Mode, const wchar_t * _Filename, const wchar_t * const * _ArgList, const wchar_t * const * _Env); #line 382 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 417 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 444 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 446 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* define structure for returning status information */ typedef unsigned short _ino_t; /* i-node number (not used on DOS) */ /* Non-ANSI name for compatibility */ typedef unsigned short ino_t; #line 458 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 460 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" typedef unsigned int _dev_t; /* device code */ /* Non-ANSI name for compatibility */ typedef unsigned int dev_t; #line 467 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 469 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" typedef long _off_t; /* file offset value */ /* Non-ANSI name for compatibility */ typedef long off_t; #line 476 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 478 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" struct _stat32 { _dev_t st_dev; _ino_t st_ino; unsigned short st_mode; short st_nlink; short st_uid; short st_gid; _dev_t st_rdev; _off_t st_size; __time32_t st_atime; __time32_t st_mtime; __time32_t st_ctime; }; /* Non-ANSI names for compatibility */ struct stat { _dev_t st_dev; _ino_t st_ino; unsigned short st_mode; short st_nlink; short st_uid; short st_gid; _dev_t st_rdev; _off_t st_size; time_t st_atime; time_t st_mtime; time_t st_ctime; }; #line 512 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" struct _stat32i64 { _dev_t st_dev; _ino_t st_ino; unsigned short st_mode; short st_nlink; short st_uid; short st_gid; _dev_t st_rdev; __int64 st_size; __time32_t st_atime; __time32_t st_mtime; __time32_t st_ctime; }; struct _stat64i32 { _dev_t st_dev; _ino_t st_ino; unsigned short st_mode; short st_nlink; short st_uid; short st_gid; _dev_t st_rdev; _off_t st_size; __time64_t st_atime; __time64_t st_mtime; __time64_t st_ctime; }; struct _stat64 { _dev_t st_dev; _ino_t st_ino; unsigned short st_mode; short st_nlink; short st_uid; short st_gid; _dev_t st_rdev; __int64 st_size; __time64_t st_atime; __time64_t st_mtime; __time64_t st_ctime; }; /* * We have to have same name for structure and the fuction so as to do the * macro magic.we need the structure name and function name the same. */ #line 578 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 582 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* also declared in wchar.h */ __declspec(dllimport) int __cdecl _wstat32( const wchar_t * _Name, struct _stat32 * _Stat); __declspec(dllimport) int __cdecl _wstat32i64( const wchar_t * _Name, struct _stat32i64 * _Stat); __declspec(dllimport) int __cdecl _wstat64i32( const wchar_t * _Name, struct _stat64i32 * _Stat); __declspec(dllimport) int __cdecl _wstat64( const wchar_t * _Name, struct _stat64 * _Stat); #line 595 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 597 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* wide function prototypes, also declared in conio.h */ __declspec(dllimport) errno_t __cdecl _cgetws_s( wchar_t * _Buffer, size_t _SizeInWords, size_t * _SizeRead); extern "C++" { template inline errno_t __cdecl _cgetws_s( wchar_t (&_Buffer)[_Size], size_t * _SizeRead) throw() { return _cgetws_s(_Buffer, _Size, _SizeRead); } } __declspec(dllimport) wchar_t * __cdecl _cgetws( wchar_t *_Buffer); __declspec(dllimport) wint_t __cdecl _getwch(void); __declspec(dllimport) wint_t __cdecl _getwche(void); __declspec(dllimport) wint_t __cdecl _putwch(wchar_t _WCh); __declspec(dllimport) wint_t __cdecl _ungetwch(wint_t _WCh); __declspec(dllimport) int __cdecl _cputws( const wchar_t * _String); __declspec(dllimport) int __cdecl _cwprintf( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _cwprintf_s( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _cwscanf( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _cwscanf_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _cwscanf_s( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _cwscanf_s_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vcwprintf( const wchar_t *_Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vcwprintf_s( const wchar_t *_Format, va_list _ArgList); __declspec(dllimport) int __cdecl _cwprintf_p( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vcwprintf_p( const wchar_t* _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _cwprintf_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _cwprintf_s_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vcwprintf_l( const wchar_t *_Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vcwprintf_s_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _cwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vcwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); wint_t __cdecl _putwch_nolock(wchar_t _WCh); wint_t __cdecl _getwch_nolock(void); wint_t __cdecl _getwche_nolock(void); wint_t __cdecl _ungetwch_nolock(wint_t _WCh); #line 641 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 960 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* wide function prototypes, also declared in string.h */ #line 970 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) wchar_t * __cdecl _wcsdup( const wchar_t * _Str); #line 976 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) errno_t __cdecl wcscat_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src); #line 980 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" extern "C++" { template inline errno_t __cdecl wcscat_s(wchar_t (&_Dest)[_Size], const wchar_t * _Source) throw() { return wcscat_s(_Dest, _Size, _Source); } } __declspec(dllimport) wchar_t * __cdecl wcscat( wchar_t *_Dest, const wchar_t * _Source); __declspec(dllimport) const wchar_t * __cdecl wcschr( const wchar_t * _Str, wchar_t _Ch); __declspec(dllimport) int __cdecl wcscmp( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) errno_t __cdecl wcscpy_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src); #line 987 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" extern "C++" { template inline errno_t __cdecl wcscpy_s( wchar_t (&_Dest)[_Size], const wchar_t * _Source) throw() { return wcscpy_s(_Dest, _Size, _Source); } } __declspec(dllimport) wchar_t * __cdecl wcscpy( wchar_t *_Dest, const wchar_t * _Source); __declspec(dllimport) size_t __cdecl wcscspn( const wchar_t * _Str, const wchar_t * _Control); __declspec(dllimport) size_t __cdecl wcslen( const wchar_t * _Str); __declspec(dllimport) size_t __cdecl wcsnlen( const wchar_t * _Src, size_t _MaxCount); static __inline size_t __cdecl wcsnlen_s( const wchar_t * _Src, size_t _MaxCount) { return (_Src == 0) ? 0 : wcsnlen(_Src, _MaxCount); } #line 998 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) errno_t __cdecl wcsncat_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src, rsize_t _MaxCount); #line 1001 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" extern "C++" { template inline errno_t __cdecl wcsncat_s( wchar_t (&_Dest)[_Size], const wchar_t * _Source, size_t _Count) throw() { return wcsncat_s(_Dest, _Size, _Source, _Count); } } #pragma warning(push) #pragma warning(disable:6059) __declspec(dllimport) wchar_t * __cdecl wcsncat( wchar_t *_Dest, const wchar_t * _Source, size_t _Count); #pragma warning(pop) __declspec(dllimport) int __cdecl wcsncmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) errno_t __cdecl wcsncpy_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src, rsize_t _MaxCount); #line 1012 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" extern "C++" { template inline errno_t __cdecl wcsncpy_s(wchar_t (&_Dest)[_Size], const wchar_t * _Source, size_t _Count) throw() { return wcsncpy_s(_Dest, _Size, _Source, _Count); } } __declspec(dllimport) wchar_t * __cdecl wcsncpy( wchar_t *_Dest, const wchar_t * _Source, size_t _Count); __declspec(dllimport) const wchar_t * __cdecl wcspbrk( const wchar_t * _Str, const wchar_t * _Control); __declspec(dllimport) const wchar_t * __cdecl wcsrchr( const wchar_t * _Str, wchar_t _Ch); __declspec(dllimport) size_t __cdecl wcsspn( const wchar_t * _Str, const wchar_t * _Control); __declspec(dllimport) const wchar_t * __cdecl wcsstr( const wchar_t * _Str, const wchar_t * _SubStr); __declspec(dllimport) wchar_t * __cdecl wcstok( wchar_t * _Str, const wchar_t * _Delim); __declspec(dllimport) wchar_t * __cdecl wcstok_s( wchar_t * _Str, const wchar_t * _Delim, wchar_t ** _Context); __declspec(dllimport) wchar_t * __cdecl _wcserror( int _ErrNum); __declspec(dllimport) errno_t __cdecl _wcserror_s( wchar_t * _Buf, size_t _SizeInWords, int _ErrNum); extern "C++" { template inline errno_t __cdecl _wcserror_s(wchar_t (&_Buffer)[_Size], int _Error) throw() { return _wcserror_s(_Buffer, _Size, _Error); } } __declspec(dllimport) wchar_t * __cdecl __wcserror( const wchar_t * _Str); __declspec(dllimport) errno_t __cdecl __wcserror_s( wchar_t * _Buffer, size_t _SizeInWords, const wchar_t * _ErrMsg); extern "C++" { template inline errno_t __cdecl __wcserror_s(wchar_t (&_Buffer)[_Size], const wchar_t * _ErrorMessage) throw() { return __wcserror_s(_Buffer, _Size, _ErrorMessage); } } __declspec(dllimport) int __cdecl _wcsicmp( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) int __cdecl _wcsicmp_l( const wchar_t * _Str1, const wchar_t * _Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl _wcsnicmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _wcsnicmp_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl _wcsnset_s( wchar_t * _Dst, size_t _DstSizeInWords, wchar_t _Val, size_t _MaxCount); extern "C++" { template inline errno_t __cdecl _wcsnset_s( wchar_t (&_Dst)[_Size], wchar_t _Val, size_t _MaxCount) throw() { return _wcsnset_s(_Dst, _Size, _Val, _MaxCount); } } __declspec(dllimport) wchar_t * __cdecl _wcsnset( wchar_t *_Str, wchar_t _Val, size_t _MaxCount); __declspec(dllimport) wchar_t * __cdecl _wcsrev( wchar_t * _Str); __declspec(dllimport) errno_t __cdecl _wcsset_s( wchar_t * _Str, size_t _SizeInWords, wchar_t _Val); extern "C++" { template inline errno_t __cdecl _wcsset_s( wchar_t (&_Str)[_Size], wchar_t _Val) throw() { return _wcsset_s(_Str, _Size, _Val); } } __declspec(dllimport) wchar_t * __cdecl _wcsset( wchar_t *_Str, wchar_t _Val); __declspec(dllimport) errno_t __cdecl _wcslwr_s( wchar_t * _Str, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wcslwr_s(wchar_t (&_String)[_Size]) throw() { return _wcslwr_s(_String, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wcslwr( wchar_t *_String); __declspec(dllimport) errno_t __cdecl _wcslwr_s_l( wchar_t * _Str, size_t _SizeInWords, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _wcslwr_s_l(wchar_t (&_String)[_Size], _locale_t _Locale) throw() { return _wcslwr_s_l(_String, _Size, _Locale); } } __declspec(dllimport) wchar_t * __cdecl _wcslwr_l( wchar_t *_String, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl _wcsupr_s( wchar_t * _Str, size_t _Size); extern "C++" { template inline errno_t __cdecl _wcsupr_s(wchar_t (&_String)[_Size]) throw() { return _wcsupr_s(_String, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wcsupr( wchar_t *_String); __declspec(dllimport) errno_t __cdecl _wcsupr_s_l( wchar_t * _Str, size_t _Size, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _wcsupr_s_l( wchar_t (&_String)[_Size], _locale_t _Locale) throw() { return _wcsupr_s_l(_String, _Size, _Locale); } } __declspec(dllimport) wchar_t * __cdecl _wcsupr_l( wchar_t *_String, _locale_t _Locale); __declspec(dllimport) size_t __cdecl wcsxfrm( wchar_t * _Dst, const wchar_t * _Src, size_t _MaxCount); __declspec(dllimport) size_t __cdecl _wcsxfrm_l( wchar_t * _Dst, const wchar_t *_Src, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl wcscoll( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) int __cdecl _wcscoll_l( const wchar_t * _Str1, const wchar_t * _Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl _wcsicoll( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) int __cdecl _wcsicoll_l( const wchar_t * _Str1, const wchar_t *_Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl _wcsncoll( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _wcsncoll_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl _wcsnicoll( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _wcsnicoll_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); extern "C++" { inline wchar_t * __cdecl wcschr( wchar_t *_Str, wchar_t _Ch) {return ((wchar_t *)wcschr((const wchar_t *)_Str, _Ch)); } inline wchar_t * __cdecl wcspbrk( wchar_t *_Str, const wchar_t *_Control) {return ((wchar_t *)wcspbrk((const wchar_t *)_Str, _Control)); } inline wchar_t * __cdecl wcsrchr( wchar_t *_Str, wchar_t _Ch) {return ((wchar_t *)wcsrchr((const wchar_t *)_Str, _Ch)); } inline wchar_t * __cdecl wcsstr( wchar_t *_Str, const wchar_t *_SubStr) {return ((wchar_t *)wcsstr((const wchar_t *)_Str, _SubStr)); } } #line 1076 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 1077 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 1084 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsdup" ". See online help for details.")) __declspec(dllimport) wchar_t * __cdecl wcsdup( const wchar_t * _Str); #line 1090 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* old names */ /* prototypes for oldnames.lib functions */ __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsicmp" ". See online help for details.")) __declspec(dllimport) int __cdecl wcsicmp( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsnicmp" ". See online help for details.")) __declspec(dllimport) int __cdecl wcsnicmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsnset" ". See online help for details.")) __declspec(dllimport) wchar_t * __cdecl wcsnset( wchar_t * _Str, wchar_t _Val, size_t _MaxCount); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsrev" ". See online help for details.")) __declspec(dllimport) wchar_t * __cdecl wcsrev( wchar_t * _Str); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsset" ". See online help for details.")) __declspec(dllimport) wchar_t * __cdecl wcsset( wchar_t * _Str, wchar_t _Val); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcslwr" ". See online help for details.")) __declspec(dllimport) wchar_t * __cdecl wcslwr( wchar_t * _Str); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsupr" ". See online help for details.")) __declspec(dllimport) wchar_t * __cdecl wcsupr( wchar_t * _Str); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsicoll" ". See online help for details.")) __declspec(dllimport) int __cdecl wcsicoll( const wchar_t * _Str1, const wchar_t * _Str2); #line 1105 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 1108 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" struct tm { int tm_sec; /* seconds after the minute - [0,59] */ int tm_min; /* minutes after the hour - [0,59] */ int tm_hour; /* hours since midnight - [0,23] */ int tm_mday; /* day of the month - [1,31] */ int tm_mon; /* months since January - [0,11] */ int tm_year; /* years since 1900 */ int tm_wday; /* days since Sunday - [0,6] */ int tm_yday; /* days since January 1 - [0,365] */ int tm_isdst; /* daylight savings time flag */ }; #line 1123 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" /* wide function prototypes, also declared in time.h */ __declspec(dllimport) wchar_t * __cdecl _wasctime( const struct tm * _Tm); __declspec(dllimport) errno_t __cdecl _wasctime_s( wchar_t *_Buf, size_t _SizeInWords, const struct tm * _Tm); extern "C++" { template inline errno_t __cdecl _wasctime_s( wchar_t (&_Buffer)[_Size], const struct tm * _Time) throw() { return _wasctime_s(_Buffer, _Size, _Time); } } __declspec(dllimport) wchar_t * __cdecl _wctime32( const __time32_t *_Time); __declspec(dllimport) errno_t __cdecl _wctime32_s( wchar_t* _Buf, size_t _SizeInWords, const __time32_t * _Time); extern "C++" { template inline errno_t __cdecl _wctime32_s( wchar_t (&_Buffer)[_Size], const __time32_t * _Time) throw() { return _wctime32_s(_Buffer, _Size, _Time); } } __declspec(dllimport) size_t __cdecl wcsftime( wchar_t * _Buf, size_t _SizeInWords, const wchar_t * _Format, const struct tm * _Tm); __declspec(dllimport) size_t __cdecl _wcsftime_l( wchar_t * _Buf, size_t _SizeInWords, const wchar_t *_Format, const struct tm *_Tm, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl _wstrdate_s( wchar_t * _Buf, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wstrdate_s( wchar_t (&_Buffer)[_Size]) throw() { return _wstrdate_s(_Buffer, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wstrdate( wchar_t *_Buffer); __declspec(dllimport) errno_t __cdecl _wstrtime_s( wchar_t * _Buf, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wstrtime_s( wchar_t (&_Buffer)[_Size]) throw() { return _wstrtime_s(_Buffer, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wstrtime( wchar_t *_Buffer); __declspec(dllimport) wchar_t * __cdecl _wctime64( const __time64_t * _Time); __declspec(dllimport) errno_t __cdecl _wctime64_s( wchar_t* _Buf, size_t _SizeInWords, const __time64_t *_Time); extern "C++" { template inline errno_t __cdecl _wctime64_s( wchar_t (&_Buffer)[_Size], const __time64_t * _Time) throw() { return _wctime64_s(_Buffer, _Size, _Time); } } #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wtime.inl" /*** *wtime.inl - inline definitions for wctime() * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the definition of wctime(). * * [Public] * ****/ #pragma once #line 22 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wtime.inl" #pragma warning(push) #pragma warning(disable:4996) static __inline wchar_t * __cdecl _wctime(const time_t * _Time) { #pragma warning( push ) #pragma warning( disable : 4996 ) return _wctime64(_Time); #pragma warning( pop ) } static __inline errno_t __cdecl _wctime_s(wchar_t *_Buffer, size_t _SizeInWords, const time_t * _Time) { return _wctime64_s(_Buffer, _SizeInWords, _Time); } #line 57 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wtime.inl" #pragma warning(pop) #line 61 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wtime.inl" #line 62 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wtime.inl" #line 1153 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 1154 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 1157 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" typedef int mbstate_t; typedef wchar_t _Wint_t; __declspec(dllimport) wint_t __cdecl btowc(int); __declspec(dllimport) size_t __cdecl mbrlen( const char * _Ch, size_t _SizeInBytes, mbstate_t * _State); __declspec(dllimport) size_t __cdecl mbrtowc( wchar_t * _DstCh, const char * _SrcCh, size_t _SizeInBytes, mbstate_t * _State); __declspec(dllimport) errno_t __cdecl mbsrtowcs_s( size_t* _Retval, wchar_t * _Dst, size_t _Size, const char ** _PSrc, size_t _N, mbstate_t * _State); extern "C++" { template inline errno_t __cdecl mbsrtowcs_s( size_t * _Retval, wchar_t (&_Dest)[_Size], const char ** _PSource, size_t _Count, mbstate_t * _State) throw() { return mbsrtowcs_s(_Retval, _Dest, _Size, _PSource, _Count, _State); } } __declspec(dllimport) size_t __cdecl mbsrtowcs( wchar_t *_Dest, const char ** _PSrc, size_t _Count, mbstate_t * _State); __declspec(dllimport) errno_t __cdecl wcrtomb_s( size_t * _Retval, char * _Dst, size_t _SizeInBytes, wchar_t _Ch, mbstate_t * _State); extern "C++" { template inline errno_t __cdecl wcrtomb_s( size_t * _Retval, char (&_Dest)[_Size], wchar_t _Source, mbstate_t * _State) throw() { return wcrtomb_s(_Retval, _Dest, _Size, _Source, _State); } } __declspec(dllimport) size_t __cdecl wcrtomb( char *_Dest, wchar_t _Source, mbstate_t * _State); __declspec(dllimport) errno_t __cdecl wcsrtombs_s( size_t * _Retval, char * _Dst, size_t _SizeInBytes, const wchar_t ** _Src, size_t _Size, mbstate_t * _State); extern "C++" { template inline errno_t __cdecl wcsrtombs_s( size_t * _Retval, char (&_Dest)[_Size], const wchar_t ** _PSrc, size_t _Count, mbstate_t * _State) throw() { return wcsrtombs_s(_Retval, _Dest, _Size, _PSrc, _Count, _State); } } __declspec(dllimport) size_t __cdecl wcsrtombs( char *_Dest, const wchar_t ** _PSource, size_t _Count, mbstate_t * _State); __declspec(dllimport) int __cdecl wctob( wint_t _WCh); /* memcpy and memmove are defined just for use in wmemcpy and wmemmove */ #line 1187 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __declspec(dllimport) void * __cdecl memmove( void * _Dst, const void * _Src, size_t _Size); #line 1189 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" void * __cdecl memcpy( void * _Dst, const void * _Src, size_t _Size); __declspec(dllimport) errno_t __cdecl memcpy_s( void * _Dst, rsize_t _DstSize, const void * _Src, rsize_t _MaxCount); __declspec(dllimport) errno_t __cdecl memmove_s( void * _Dst, rsize_t _DstSize, const void * _Src, rsize_t _MaxCount); #line 1194 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __inline int __cdecl fwide( FILE * _F, int _M) {(void)_F; return (_M); } __inline int __cdecl mbsinit( const mbstate_t *_P) {return (_P == 0 || *_P == 0); } __inline const wchar_t * __cdecl wmemchr( const wchar_t *_S, wchar_t _C, size_t _N) {for (; 0 < _N; ++_S, --_N) if (*_S == _C) return (const wchar_t *)(_S); return (0); } __inline int __cdecl wmemcmp( const wchar_t *_S1, const wchar_t *_S2, size_t _N) {for (; 0 < _N; ++_S1, ++_S2, --_N) if (*_S1 != *_S2) return (*_S1 < *_S2 ? -1 : +1); return (0); } __inline wchar_t * __cdecl wmemcpy( wchar_t *_S1, const wchar_t *_S2, size_t _N) { #pragma warning( push ) #pragma warning( disable : 4996 6386 ) return (wchar_t *)memcpy(_S1, _S2, _N*sizeof(wchar_t)); #pragma warning( pop ) } __inline wchar_t * __cdecl wmemmove( wchar_t *_S1, const wchar_t *_S2, size_t _N) { #pragma warning( push ) #pragma warning( disable : 4996 6386 ) #pragma warning( disable : 6387) /* prefast noise VSW 493303 */ return (wchar_t *)memmove(_S1, _S2, _N*sizeof(wchar_t)); #pragma warning( pop ) } errno_t __cdecl wmemcpy_s( wchar_t *_S1, rsize_t _N1, const wchar_t *_S2, rsize_t _N); errno_t __cdecl wmemmove_s( wchar_t *_S1, rsize_t _N1, const wchar_t *_S2, rsize_t _N); #line 1231 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" __inline wchar_t * __cdecl wmemset( wchar_t *_S, wchar_t _C, size_t _N) { wchar_t *_Su = _S; for (; 0 < _N; ++_Su, --_N) { *_Su = _C; } return (_S); } extern "C++" { inline wchar_t * __cdecl wmemchr( wchar_t *_S, wchar_t _C, size_t _N) { return (wchar_t *)wmemchr((const wchar_t *)_S, _C, _N); } } #line 1248 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 1249 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" } /* end of extern "C" */ #line 1253 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #pragma pack(pop) #line 1257 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wchar.h" #line 14 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cwchar" #line 15 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cwchar" typedef mbstate_t _Mbstatet; namespace std { using :: _Mbstatet; using :: mbstate_t; using :: size_t; using :: tm; using :: wint_t; using :: btowc; using :: fgetwc; using :: fgetws; using :: fputwc; using :: fputws; using :: fwide; using :: fwprintf; using :: fwscanf; using :: getwc; using :: getwchar; using :: mbrlen; using :: mbrtowc; using :: mbsrtowcs; using :: mbsinit; using :: putwc; using :: putwchar; using :: swprintf; using :: swscanf; using :: ungetwc; using :: vfwprintf; using :: vswprintf; using :: vwprintf; using :: wcrtomb; using :: wprintf; using :: wscanf; using :: wcsrtombs; using :: wcstol; using :: wcscat; using :: wcschr; using :: wcscmp; using :: wcscoll; using :: wcscpy; using :: wcscspn; using :: wcslen; using :: wcsncat; using :: wcsncmp; using :: wcsncpy; using :: wcspbrk; using :: wcsrchr; using :: wcsspn; using :: wcstod; using :: wcstoul; using :: wcsstr; using :: wcstok; using :: wcsxfrm; using :: wctob; using :: wmemchr; using :: wmemcmp; using :: wmemcpy; using :: wmemmove; using :: wmemset; using :: wcsftime; } #line 46 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cwchar" #line 48 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cwchar" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 11 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" // xstddef standard header #pragma once #line 13 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstddef" // cstddef standard header #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" /*** *stddef.h - definitions/declarations for common constants, types, variables * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains definitions and declarations for some commonly * used constants, types, and variables. * [ANSI] * * [Public] * ****/ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 21 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" extern "C" { #line 25 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" /* Define NULL pointer value */ namespace std { typedef decltype(__nullptr) nullptr_t; } using ::std::nullptr_t; #line 41 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" #line 42 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" /* Declare reference to errno */ /* Define offsetof macro */ #line 62 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" #line 72 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" __declspec(dllimport) extern unsigned long __cdecl __threadid(void); __declspec(dllimport) extern uintptr_t __cdecl __threadhandle(void); } #line 80 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" #line 82 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\stddef.h" #line 14 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstddef" #line 15 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstddef" namespace std { using :: ptrdiff_t; using :: size_t; } #line 21 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstddef" #line 23 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstddef" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 15 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" #pragma pack(push,8) #pragma warning(push,3) namespace std { // EXCEPTION MACROS #line 68 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" // MISCELLANEOUS MACROS // BITMASK MACROS // TYPE DEFINITIONS template class _If { // _Type is _Ty2 for assumed false public: typedef _Ty2 _Type; }; template class _If { // _Type is _Ty1 for assumed true public: typedef _Ty1 _Type; }; namespace tr1 { typedef char (&_No)[1]; typedef char (&_Yes)[2]; } // namespace tr1 #line 103 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" struct _Bool_struct { // define member just for its address int _Member; }; typedef int _Bool_struct::* _Bool_type; #line 127 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" #line 129 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" // FUNCTIONAL STUFF (from ) // TEMPLATE STRUCT unary_function template struct unary_function { // base class for unary functions typedef _Arg argument_type; typedef _Result result_type; }; // TEMPLATE STRUCT binary_function template struct binary_function { // base class for binary functions typedef _Arg1 first_argument_type; typedef _Arg2 second_argument_type; typedef _Result result_type; }; } #pragma warning(pop) #pragma pack(pop) #line 157 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" #line 158 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xstddef" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 12 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #pragma pack(push,8) #pragma warning(push,3) namespace std { // ASSUMES: // wraparound 2's complement integer arithmetic w/o traps // all CHAR_BITs of each byte used by integers // IEC559 (IEEE 754) floating-point arithmetic // floating-point errors can trap // tinyness detected before floating-point rounding // 64-bit long long (if _LONGLONG defined) // ENUM float_denorm_style typedef enum { // constants for different IEEE float denormalization styles denorm_indeterminate = -1, denorm_absent = 0, denorm_present = 1} float_denorm_style; // ENUM float_round_style typedef enum { // constants for different IEEE rounding styles round_indeterminate = -1, round_toward_zero = 0, round_to_nearest = 1, round_toward_infinity = 2, round_toward_neg_infinity = 3} float_round_style; // STRUCT _Num_base struct __declspec(dllimport) _Num_base { // base for all types, with common defaults static const float_denorm_style has_denorm = (float_denorm_style)(denorm_absent); static const bool has_denorm_loss = (bool)(false); static const bool has_infinity = (bool)(false); static const bool has_quiet_NaN = (bool)(false); static const bool has_signaling_NaN = (bool)(false); static const bool is_bounded = (bool)(false); static const bool is_exact = (bool)(false); static const bool is_iec559 = (bool)(false); static const bool is_integer = (bool)(false); static const bool is_modulo = (bool)(false); static const bool is_signed = (bool)(false); static const bool is_specialized = (bool)(false); static const bool tinyness_before = (bool)(false); static const bool traps = (bool)(false); static const float_round_style round_style = (float_round_style)(round_toward_zero); static const int digits = (int)(0); static const int digits10 = (int)(0); static const int max_digits10 = (int)(0); #line 71 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_exponent = (int)(0); static const int max_exponent10 = (int)(0); static const int min_exponent = (int)(0); static const int min_exponent10 = (int)(0); static const int radix = (int)(0); }; // TEMPLATE CLASS numeric_limits template class numeric_limits : public _Num_base { // numeric limits for arbitrary type _Ty (say little or nothing) public: static _Ty (__cdecl min)() throw () { // return minimum value return (_Ty(0)); } static _Ty (__cdecl max)() throw () { // return maximum value return (_Ty(0)); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 101 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (_Ty(0)); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (_Ty(0)); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (_Ty(0)); } static _Ty __cdecl infinity() throw () { // return positive infinity return (_Ty(0)); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (_Ty(0)); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (_Ty(0)); } }; template class numeric_limits : public numeric_limits<_Ty> { // numeric limits for const types }; template class numeric_limits : public numeric_limits<_Ty> { // numeric limits for volatile types }; template class numeric_limits : public numeric_limits<_Ty> { // numeric limits for const volatile types }; // STRUCT _Num_int_base struct __declspec(dllimport) _Num_int_base : public _Num_base { // base for integer types static const bool is_bounded = (bool)(true); static const bool is_exact = (bool)(true); static const bool is_integer = (bool)(true); static const bool is_modulo = (bool)(true); static const bool is_specialized = (bool)(true); static const int radix = (int)(2); }; // STRUCT _Num_float_base struct __declspec(dllimport) _Num_float_base : public _Num_base { // base for floating-point types static const float_denorm_style has_denorm = (float_denorm_style)(denorm_present); static const bool has_denorm_loss = (bool)(true); static const bool has_infinity = (bool)(true); static const bool has_quiet_NaN = (bool)(true); static const bool has_signaling_NaN = (bool)(true); static const bool is_bounded = (bool)(true); static const bool is_exact = (bool)(false); static const bool is_iec559 = (bool)(true); static const bool is_integer = (bool)(false); static const bool is_modulo = (bool)(false); static const bool is_signed = (bool)(true); static const bool is_specialized = (bool)(true); static const bool tinyness_before = (bool)(true); static const bool traps = (bool)(true); static const float_round_style round_style = (float_round_style)(round_to_nearest); static const int radix = (int)(2); }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type char public: typedef char _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return ((-128)); } static _Ty (__cdecl max)() throw () { // return maximum value return (127); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 208 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)((-128) != 0); static const int digits = (int)(8 - ((-128) != 0 ? 1 : 0)); static const int digits10 = (int)((8 - ((-128) != 0 ? 1 : 0)) * 301L / 1000); #line 243 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 - ((-128) != 0 ? 1 : 0)) * 301L / 1000); #line 247 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 248 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type wchar_t public: typedef wchar_t _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return ((_Ty)0x0000); } static _Ty (__cdecl max)() throw () { // return maximum value return ((_Ty)0xffff); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 273 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(0x0000 != 0); static const int digits = (int)(8 * sizeof (wchar_t) - (0x0000 != 0 ? 1 : 0)); #line 307 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int digits10 = (int)((8 * sizeof (wchar_t) - (0x0000 != 0 ? 1 : 0)) * 301L / 1000); #line 309 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (wchar_t) - (0x0000 != 0 ? 1 : 0)) * 301L / 1000); #line 313 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 314 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits<_Bool> template<> class __declspec(dllimport) numeric_limits<_Bool> : public _Num_int_base { // limits for type bool public: typedef bool _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (false); } static _Ty (__cdecl max)() throw () { // return maximum value return (true); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 339 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_modulo = (bool)(false); static const bool is_signed = (bool)(false); static const int digits = (int)(1); static const int digits10 = (int)(0); static const int max_digits10 = (int)(0); #line 378 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type signed char public: typedef signed char _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return ((-128)); } static _Ty (__cdecl max)() throw () { // return maximum value return (127); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 403 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(true); static const int digits = (int)(8 - 1); static const int digits10 = (int)((8 - 1) * 301L / 1000); static const int max_digits10 = (int)(2 + (8 - 1) * 301L / 1000); #line 441 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type unsigned char public: typedef unsigned char _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (0); } static _Ty (__cdecl max)() throw () { // return maximum value return (0xff); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 466 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(false); static const int digits = (int)(8); static const int digits10 = (int)(8 * 301L / 1000); static const int max_digits10 = (int)(2 + (8) * 301L / 1000); #line 504 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type short public: typedef short _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return ((-32768)); } static _Ty (__cdecl max)() throw () { // return maximum value return (32767); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 529 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(true); static const int digits = (int)(8 * sizeof (short) - 1); static const int digits10 = (int)((8 * sizeof (short) - 1) * 301L / 1000); #line 564 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (short) - 1) * 301L / 1000); #line 568 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 569 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type unsigned short public: typedef unsigned short _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (0); } static _Ty (__cdecl max)() throw () { // return maximum value return (0xffff); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 595 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(false); static const int digits = (int)(8 * sizeof (unsigned short)); static const int digits10 = (int)(8 * sizeof (unsigned short) * 301L / 1000); #line 630 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (unsigned short)) * 301L / 1000); #line 634 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 635 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; #line 637 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 699 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type int public: typedef int _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return ((-2147483647 - 1)); } static _Ty (__cdecl max)() throw () { // return maximum value return (2147483647); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 723 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(true); static const int digits = (int)(8 * sizeof (int) - 1); static const int digits10 = (int)((8 * sizeof (int) - 1) * 301L / 1000); #line 758 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (int) - 1) * 301L / 1000); #line 762 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 763 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type unsigned int public: typedef unsigned int _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (0); } static _Ty (__cdecl max)() throw () { // return maximum value return (0xffffffff); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 788 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(false); static const int digits = (int)(8 * sizeof (unsigned int)); static const int digits10 = (int)(8 * sizeof (unsigned int) * 301L / 1000); #line 823 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (unsigned int)) * 301L / 1000); #line 827 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 828 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type long public: typedef long _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return ((-2147483647L - 1)); } static _Ty (__cdecl max)() throw () { // return maximum value return (2147483647L); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 853 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(true); static const int digits = (int)(8 * sizeof (long) - 1); static const int digits10 = (int)((8 * sizeof (long) - 1) * 301L / 1000); #line 888 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (long) - 1) * 301L / 1000); #line 892 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 893 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type unsigned long public: typedef unsigned long _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (0); } static _Ty (__cdecl max)() throw () { // return maximum value return (0xffffffffUL); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 918 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(false); static const int digits = (int)(8 * sizeof (unsigned long)); static const int digits10 = (int)(8 * sizeof (unsigned long) * 301L / 1000); #line 953 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (unsigned long)) * 301L / 1000); #line 957 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 958 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; #line 1021 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" // CLASS numeric_limits<_LONGLONG> template<> class __declspec(dllimport) numeric_limits<__int64> : public _Num_int_base { // limits for type long long public: typedef __int64 _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (-0x7fffffffffffffff - 1); } static _Ty (__cdecl max)() throw () { // return maximum value return (0x7fffffffffffffff); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 1046 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(true); static const int digits = (int)(8 * sizeof (__int64) - 1); static const int digits10 = (int)((8 * sizeof (__int64) - 1) * 301L / 1000); #line 1081 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (__int64) - 1) * 301L / 1000); #line 1085 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 1086 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; // CLASS numeric_limits<_ULONGLONG> template<> class __declspec(dllimport) numeric_limits : public _Num_int_base { // limits for type unsigned long long public: typedef unsigned __int64 _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (0); } static _Ty (__cdecl max)() throw () { // return maximum value return (0xffffffffffffffff); } static _Ty __cdecl lowest() throw () { // return most negative value return ((min)()); } #line 1111 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (0); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (0); } static _Ty __cdecl infinity() throw () { // return positive infinity return (0); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (0); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (0); } static const bool is_signed = (bool)(false); static const int digits = (int)(8 * sizeof (unsigned __int64)); static const int digits10 = (int)(8 * sizeof (unsigned __int64) * 301L / 1000); #line 1146 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_digits10 = (int)(2 + (8 * sizeof (unsigned __int64)) * 301L / 1000); #line 1150 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 1151 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" }; #line 1153 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_float_base { // limits for type float public: typedef float _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (1.175494351e-38F); } static _Ty (__cdecl max)() throw () { // return maximum value return (3.402823466e+38F); } static _Ty __cdecl lowest() throw () { // return most negative value return (-(max)()); } #line 1177 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (1.192092896e-07F); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0.5); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (:: _FDenorm._Float); } static _Ty __cdecl infinity() throw () { // return positive infinity return (:: _FInf._Float); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (:: _FNan._Float); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (:: _FSnan._Float); } static const int digits = (int)(24); static const int digits10 = (int)(6); static const int max_digits10 = (int)(2 + 6); #line 1214 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_exponent = (int)((int)128); static const int max_exponent10 = (int)((int)38); static const int min_exponent = (int)((int)(-125)); static const int min_exponent10 = (int)((int)(-37)); }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_float_base { // limits for type double public: typedef double _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (2.2250738585072014e-308); } static _Ty (__cdecl max)() throw () { // return maximum value return (1.7976931348623158e+308); } static _Ty __cdecl lowest() throw () { // return most negative value return (-(max)()); } #line 1244 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (2.2204460492503131e-016); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0.5); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (:: _Denorm._Double); } static _Ty __cdecl infinity() throw () { // return positive infinity return (:: _Inf._Double); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (:: _Nan._Double); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (:: _Snan._Double); } static const int digits = (int)(53); static const int digits10 = (int)(15); static const int max_digits10 = (int)(2 + 15); #line 1281 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_exponent = (int)((int)1024); static const int max_exponent10 = (int)((int)308); static const int min_exponent = (int)((int)(-1021)); static const int min_exponent10 = (int)((int)(-307)); }; // CLASS numeric_limits template<> class __declspec(dllimport) numeric_limits : public _Num_float_base { // limits for type long double public: typedef long double _Ty; static _Ty (__cdecl min)() throw () { // return minimum value return (2.2250738585072014e-308); } static _Ty (__cdecl max)() throw () { // return maximum value return (1.7976931348623158e+308); } static _Ty __cdecl lowest() throw () { // return most negative value return (-(max)()); } #line 1311 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static _Ty __cdecl epsilon() throw () { // return smallest effective increment from 1.0 return (2.2204460492503131e-016); } static _Ty __cdecl round_error() throw () { // return largest rounding error return (0.5); } static _Ty __cdecl denorm_min() throw () { // return minimum denormalized value return (:: _LDenorm._Long_double); } static _Ty __cdecl infinity() throw () { // return positive infinity return (:: _LInf._Long_double); } static _Ty __cdecl quiet_NaN() throw () { // return non-signaling NaN return (:: _LNan._Long_double); } static _Ty __cdecl signaling_NaN() throw () { // return signaling NaN return (:: _LSnan._Long_double); } static const int digits = (int)(53); static const int digits10 = (int)(15); static const int max_digits10 = (int)(2 + 15); #line 1348 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" static const int max_exponent = (int)((int)1024); static const int max_exponent10 = (int)((int)308); static const int min_exponent = (int)((int)(-1021)); static const int min_exponent10 = (int)((int)(-307)); }; #line 1637 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" } #pragma warning(pop) #pragma pack(pop) #line 1642 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" #line 1643 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\limits" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 22 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-11-13 // Updated : 2011-01-26 // Licence : This source is under MIT License // File : glm/setup.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////// // Version /////////////////////////////////////////////////////////////////////////////////////////////////// // Compiler // User defines: GLM_FORCE_COMPILER_UNKNOWN // Visual C++ defines // GCC defines // G++ command line to display defined // echo "" | g++ -E -dM -x c++ - | sort // Borland C++ defines. How to identify BC? //#define GLM_COMPILER_BCBX 0x03000400 // What's the version value? // CodeWarrior // Force generic C++ compiler #line 86 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 88 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 90 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 92 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 94 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 96 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 98 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 100 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 104 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" // G++ #line 162 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" // Report compiler detection #line 182 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" ///////////////// // Build model // #line 192 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 201 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 205 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 214 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" ///////////////// // C++ Version // // User defines: GLM_FORCE_CXX98 #line 229 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 231 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 239 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 248 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" ///////////////// // Platform // User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_AVX #line 262 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 264 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 266 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 268 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 271 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 276 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 283 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 296 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" /*** *** Copyright (C) 1985-2008 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part without explicit written authorization *** from the company. *** ****/ #pragma once #line 19 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wmmintrin.h" /*** *** Copyright (C) 1985-2008 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part without explicit written authorization *** from the company. *** ****/ /* * wmmintrin.h * * Principal header file for Intel(R) AES and PCLMULQDQ intrinsics. */ #pragma once #line 25 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wmmintrin.h" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" /*** *** Copyright (C) 1985-2007 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part without explicit written authorization *** from the company. *** ****/ /* * nmmintrin.h * * Principal header file for Intel(R) Core(TM) 2 Duo processor * SSE4.2 intrinsics. */ #pragma once #line 26 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" /*** *** Copyright (C) 1985-2007 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part without explicit written authorization *** from the company. *** ****/ /* * smmintrin.h * * Principal header file for Intel(R) Core(TM) 2 Duo processor * SSE4.1 intrinsics */ #pragma once #line 26 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\tmmintrin.h" /*** *** Copyright (C) 1985-2005 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part without explicit written authorization *** from the company. *** ****/ #pragma once #line 19 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\tmmintrin.h" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\pmmintrin.h" /*** *** *** Copyright (C) 1985-2005 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part except as expressly provided *** by the accompanying LICENSE AGREEMENT *** *** cvs_id[] = "$Id: pmmintrin.h,v 1.5 2005/01/03 22:55:01 hhle Exp $"; *** ****/ /* * pmmintrin.h * * Principal header file for Intel(R) Pentium(R) 4 processor SSE3 intrinsics */ #pragma once #line 27 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\pmmintrin.h" /* * We need emmintrin.h for the basic type declarations. */ #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" /*** *** Copyright (C) 1985-1999 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part without explicit written authorization *** from the company. *** ****/ /* * emmintrin.h * * Principal header file for Willamette New Instruction intrinsics * * The intrinsics package can be used in 2 ways, based whether or not * _EMM_FUNCTIONALITY is defined; if it is, the C implementation * will be used (the "functional intrinsics"). */ #pragma once #line 29 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" /* * the __m128 & __m64 types are required for the intrinsics */ #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" /*** *** Copyright (C) 1985-1999 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part without explicit written authorization *** from the company. *** ****/ /* * xmmintrin.h * * Principal header file for Streaming SIMD Extensions intrinsics * * The intrinsics package can be used in 2 ways, based whether or not * _MM_FUNCTIONALITY is defined; if it is, the C/x87 implementation * will be used (the "faux intrinsics"). * * * Note that the m128 datatype provided using _MM2_FUNCTIONALITY mode is * implemented as struct, will not be 128b aligned, will be passed * via the stack, etc. MM_FUNCTIONALITY mode is not intended for * performance, just semantics. * */ #pragma once #line 36 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" /* * the m64 type is required for the integer Streaming SIMD Extensions intrinsics */ #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\mmintrin.h" /*** *** Copyright (C) 1985-1999 Intel Corporation. All rights reserved. *** *** The information and source code contained herein is the exclusive *** property of Intel Corporation and may not be disclosed, examined *** or reproduced in whole or in part without explicit written authorization *** from the company. *** ****/ /* * Definitions and declarations for use with compiler intrinsics. */ #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 20 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\mmintrin.h" #line 24 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\mmintrin.h" extern "C" { /* Begin "C" */ /* Intrinsics use C name-mangling. */ #line 30 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\mmintrin.h" typedef union __declspec(intrin_type) __declspec(align(8)) __m64 { unsigned __int64 m64_u64; float m64_f32[2]; __int8 m64_i8[8]; __int16 m64_i16[4]; __int32 m64_i32[2]; __int64 m64_i64; unsigned __int8 m64_u8[8]; unsigned __int16 m64_u16[4]; unsigned __int32 m64_u32[2]; } __m64; /* General support intrinsics */ void _m_empty(void); __m64 _m_from_int(int _I); int _m_to_int(__m64 _M); __m64 _m_packsswb(__m64 _MM1, __m64 _MM2); __m64 _m_packssdw(__m64 _MM1, __m64 _MM2); __m64 _m_packuswb(__m64 _MM1, __m64 _MM2); __m64 _m_punpckhbw(__m64 _MM1, __m64 _MM2); __m64 _m_punpckhwd(__m64 _MM1, __m64 _MM2); __m64 _m_punpckhdq(__m64 _MM1, __m64 _MM2); __m64 _m_punpcklbw(__m64 _MM1, __m64 _MM2); __m64 _m_punpcklwd(__m64 _MM1, __m64 _MM2); __m64 _m_punpckldq(__m64 _MM1, __m64 _MM2); /* Packed arithmetic intrinsics */ __m64 _m_paddb(__m64 _MM1, __m64 _MM2); __m64 _m_paddw(__m64 _MM1, __m64 _MM2); __m64 _m_paddd(__m64 _MM1, __m64 _MM2); __m64 _m_paddsb(__m64 _MM1, __m64 _MM2); __m64 _m_paddsw(__m64 _MM1, __m64 _MM2); __m64 _m_paddusb(__m64 _MM1, __m64 _MM2); __m64 _m_paddusw(__m64 _MM1, __m64 _MM2); __m64 _m_psubb(__m64 _MM1, __m64 _MM2); __m64 _m_psubw(__m64 _MM1, __m64 _MM2); __m64 _m_psubd(__m64 _MM1, __m64 _MM2); __m64 _m_psubsb(__m64 _MM1, __m64 _MM2); __m64 _m_psubsw(__m64 _MM1, __m64 _MM2); __m64 _m_psubusb(__m64 _MM1, __m64 _MM2); __m64 _m_psubusw(__m64 _MM1, __m64 _MM2); __m64 _m_pmaddwd(__m64 _MM1, __m64 _MM2); __m64 _m_pmulhw(__m64 _MM1, __m64 _MM2); __m64 _m_pmullw(__m64 _MM1, __m64 _MM2); /* Shift intrinsics */ __m64 _m_psllw(__m64 _M, __m64 _Count); __m64 _m_psllwi(__m64 _M, int _Count); __m64 _m_pslld(__m64 _M, __m64 _Count); __m64 _m_pslldi(__m64 _M, int _Count); __m64 _m_psllq(__m64 _M, __m64 _Count); __m64 _m_psllqi(__m64 _M, int _Count); __m64 _m_psraw(__m64 _M, __m64 _Count); __m64 _m_psrawi(__m64 _M, int _Count); __m64 _m_psrad(__m64 _M, __m64 _Count); __m64 _m_psradi(__m64 _M, int _Count); __m64 _m_psrlw(__m64 _M, __m64 _Count); __m64 _m_psrlwi(__m64 _M, int _Count); __m64 _m_psrld(__m64 _M, __m64 _Count); __m64 _m_psrldi(__m64 _M, int _Count); __m64 _m_psrlq(__m64 _M, __m64 _Count); __m64 _m_psrlqi(__m64 _M, int _Count); /* Logical intrinsics */ __m64 _m_pand(__m64 _MM1, __m64 _MM2); __m64 _m_pandn(__m64 _MM1, __m64 _MM2); __m64 _m_por(__m64 _MM1, __m64 _MM2); __m64 _m_pxor(__m64 _MM1, __m64 _MM2); /* Comparison intrinsics */ __m64 _m_pcmpeqb(__m64 _MM1, __m64 _MM2); __m64 _m_pcmpeqw(__m64 _MM1, __m64 _MM2); __m64 _m_pcmpeqd(__m64 _MM1, __m64 _MM2); __m64 _m_pcmpgtb(__m64 _MM1, __m64 _MM2); __m64 _m_pcmpgtw(__m64 _MM1, __m64 _MM2); __m64 _m_pcmpgtd(__m64 _MM1, __m64 _MM2); /* Utility intrinsics */ __m64 _mm_setzero_si64(void); __m64 _mm_set_pi32(int _I1, int _I0); __m64 _mm_set_pi16(short _S3, short _S2, short _S1, short _S0); __m64 _mm_set_pi8(char _B7, char _B6, char _B5, char _B4, char _B3, char _B2, char _B1, char _B0); __m64 _mm_set1_pi32(int _I); __m64 _mm_set1_pi16(short _S); __m64 _mm_set1_pi8(char _B); __m64 _mm_setr_pi32(int _I1, int _I0); __m64 _mm_setr_pi16(short _S3, short _S2, short _S1, short _S0); __m64 _mm_setr_pi8(char _B7, char _B6, char _B5, char _B4, char _B3, char _B2, char _B1, char _B0); /* Alternate intrinsic name definitions */ }; /* End "C" */ #line 184 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\mmintrin.h" #line 186 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\mmintrin.h" #line 187 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\mmintrin.h" #line 188 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\mmintrin.h" #line 42 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" #line 43 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" typedef union __declspec(intrin_type) __declspec(align(16)) __m128 { float m128_f32[4]; unsigned __int64 m128_u64[2]; __int8 m128_i8[16]; __int16 m128_i16[8]; __int32 m128_i32[4]; __int64 m128_i64[2]; unsigned __int8 m128_u8[16]; unsigned __int16 m128_u16[8]; unsigned __int32 m128_u32[4]; } __m128; /* pick up _mm_malloc() and _mm_free() */ #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" /*** *malloc.h - declarations and definitions for memory allocation functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * Contains the function declarations for memory allocation functions; * also defines manifest constants and types used by the heap routines. * [System V] * * [Public] * ****/ #pragma once #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 21 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) extern "C" { #line 31 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" /* Maximum heap request the heap manager will attempt */ #line 39 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" /* _STATIC_ASSERT is for enforcing boolean/integral conditions at compile time. */ #line 45 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" /* Constants for _heapchk/_heapset/_heapwalk routines */ typedef struct _heapinfo { int * _pentry; size_t _size; int _useflag; } _HEAPINFO; #line 65 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" /* Function prototypes */ #line 101 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #line 141 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" __declspec(dllimport) int __cdecl _resetstkoflw (void); __declspec(dllimport) unsigned long __cdecl _set_malloc_crt_max_wait( unsigned long _NewValue); #line 156 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" __declspec(dllimport) void * __cdecl _expand( void * _Memory, size_t _NewSize); __declspec(dllimport) size_t __cdecl _msize( void * _Memory); #line 164 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" void * __cdecl _alloca( size_t _Size); __declspec(dllimport) int __cdecl _heapadd( void * _Memory, size_t _Size); __declspec(dllimport) int __cdecl _heapchk(void); __declspec(dllimport) int __cdecl _heapmin(void); __declspec(dllimport) int __cdecl _heapset( unsigned int _Fill); __declspec(dllimport) int __cdecl _heapwalk( _HEAPINFO * _EntryInfo); __declspec(dllimport) size_t __cdecl _heapused(size_t * _Used, size_t * _Commit); __declspec(dllimport) intptr_t __cdecl _get_heap_handle(void); #line 182 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #line 184 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #line 186 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" typedef char __static_assert_t[ (sizeof(unsigned int) <= 16) ]; #pragma warning(push) #pragma warning(disable:6540) __inline void *_MarkAllocaS( void *_Ptr, unsigned int _Marker) { if (_Ptr) { *((unsigned int*)_Ptr) = _Marker; _Ptr = (char*)_Ptr + 16; } return _Ptr; } #pragma warning(pop) #line 203 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #line 211 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #line 219 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" /* _freea must be in the header so that its allocator matches _malloca */ __declspec(noalias) __inline void __cdecl _freea( void * _Memory) { unsigned int _Marker; if (_Memory) { _Memory = (char*)_Memory - 16; _Marker = *(unsigned int *)_Memory; if (_Marker == 0xDDDD) { free(_Memory); } #line 244 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" } } #line 247 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #line 248 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" /* Non-ANSI names for compatibility */ #line 253 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #line 255 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" } #line 279 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #pragma pack(pop) #line 283 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\malloc.h" #line 75 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" #line 76 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" #line 77 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" /*******************************************************/ /* MACRO for shuffle parameter for _mm_shuffle_ps(). */ /* Argument fp3 is a digit[0123] that represents the fp*/ /* from argument "b" of mm_shuffle_ps that will be */ /* placed in fp3 of result. fp2 is the same for fp2 in */ /* result. fp1 is a digit[0123] that represents the fp */ /* from argument "a" of mm_shuffle_ps that will be */ /* places in fp1 of result. fp0 is the same for fp0 of */ /* result */ /*******************************************************/ /*******************************************************/ /* MACRO for performing the transpose of a 4x4 matrix */ /* of single precision floating point values. */ /* Arguments row0, row1, row2, and row3 are __m128 */ /* values whose elements form the corresponding rows */ /* of a 4x4 matrix. The matrix transpose is returned */ /* in arguments row0, row1, row2, and row3 where row0 */ /* now holds column 0 of the original matrix, row1 now */ /* holds column 1 of the original matrix, etc. */ /*******************************************************/ /* constants for use with _mm_prefetch */ /* (this declspec not supported with 0.A or 0.B) */ /* MACRO functions for setting and reading the MXCSR */ /*****************************************************/ /* INTRINSICS FUNCTION PROTOTYPES START HERE */ /*****************************************************/ extern "C" { /* Begin "C" */ /* Intrinsics use C name-mangling. */ #line 181 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" /* * FP, arithmetic */ extern __m128 _mm_add_ss(__m128 _A, __m128 _B); extern __m128 _mm_add_ps(__m128 _A, __m128 _B); extern __m128 _mm_sub_ss(__m128 _A, __m128 _B); extern __m128 _mm_sub_ps(__m128 _A, __m128 _B); extern __m128 _mm_mul_ss(__m128 _A, __m128 _B); extern __m128 _mm_mul_ps(__m128 _A, __m128 _B); extern __m128 _mm_div_ss(__m128 _A, __m128 _B); extern __m128 _mm_div_ps(__m128 _A, __m128 _B); extern __m128 _mm_sqrt_ss(__m128 _A); extern __m128 _mm_sqrt_ps(__m128 _A); extern __m128 _mm_rcp_ss(__m128 _A); extern __m128 _mm_rcp_ps(__m128 _A); extern __m128 _mm_rsqrt_ss(__m128 _A); extern __m128 _mm_rsqrt_ps(__m128 _A); extern __m128 _mm_min_ss(__m128 _A, __m128 _B); extern __m128 _mm_min_ps(__m128 _A, __m128 _B); extern __m128 _mm_max_ss(__m128 _A, __m128 _B); extern __m128 _mm_max_ps(__m128 _A, __m128 _B); /* * FP, logical */ extern __m128 _mm_and_ps(__m128 _A, __m128 _B); extern __m128 _mm_andnot_ps(__m128 _A, __m128 _B); extern __m128 _mm_or_ps(__m128 _A, __m128 _B); extern __m128 _mm_xor_ps(__m128 _A, __m128 _B); /* * FP, comparison */ extern __m128 _mm_cmpeq_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpeq_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmplt_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmplt_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmple_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmple_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpgt_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpgt_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpge_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpge_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpneq_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpneq_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpnlt_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpnlt_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpnle_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpnle_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpngt_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpngt_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpnge_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpnge_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpord_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpord_ps(__m128 _A, __m128 _B); extern __m128 _mm_cmpunord_ss(__m128 _A, __m128 _B); extern __m128 _mm_cmpunord_ps(__m128 _A, __m128 _B); extern int _mm_comieq_ss(__m128 _A, __m128 _B); extern int _mm_comilt_ss(__m128 _A, __m128 _B); extern int _mm_comile_ss(__m128 _A, __m128 _B); extern int _mm_comigt_ss(__m128 _A, __m128 _B); extern int _mm_comige_ss(__m128 _A, __m128 _B); extern int _mm_comineq_ss(__m128 _A, __m128 _B); extern int _mm_ucomieq_ss(__m128 _A, __m128 _B); extern int _mm_ucomilt_ss(__m128 _A, __m128 _B); extern int _mm_ucomile_ss(__m128 _A, __m128 _B); extern int _mm_ucomigt_ss(__m128 _A, __m128 _B); extern int _mm_ucomige_ss(__m128 _A, __m128 _B); extern int _mm_ucomineq_ss(__m128 _A, __m128 _B); /* * FP, conversions */ extern int _mm_cvt_ss2si(__m128 _A); extern __m64 _mm_cvt_ps2pi(__m128 _A); extern int _mm_cvtt_ss2si(__m128 _A); extern __m64 _mm_cvtt_ps2pi(__m128 _A); extern __m128 _mm_cvt_si2ss(__m128, int); extern __m128 _mm_cvt_pi2ps(__m128, __m64); extern float _mm_cvtss_f32(__m128 _A); /* * Support for 64-bit extension intrinsics */ extern __int64 _mm_cvtss_si64(__m128 _A); extern __int64 _mm_cvttss_si64(__m128 _A); extern __m128 _mm_cvtsi64_ss(__m128 _A, __int64 _B); #line 275 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" /* * FP, misc */ extern __m128 _mm_shuffle_ps(__m128 _A, __m128 _B, unsigned int _Imm8); extern __m128 _mm_unpackhi_ps(__m128 _A, __m128 _B); extern __m128 _mm_unpacklo_ps(__m128 _A, __m128 _B); extern __m128 _mm_loadh_pi(__m128, __m64 const*); extern __m128 _mm_movehl_ps(__m128, __m128); extern __m128 _mm_movelh_ps(__m128, __m128); extern void _mm_storeh_pi(__m64 *, __m128); extern __m128 _mm_loadl_pi(__m128, __m64 const*); extern void _mm_storel_pi(__m64 *, __m128); extern int _mm_movemask_ps(__m128 _A); /* * Integer extensions */ extern int _m_pextrw(__m64, int); extern __m64 _m_pinsrw(__m64, int, int); extern __m64 _m_pmaxsw(__m64, __m64); extern __m64 _m_pmaxub(__m64, __m64); extern __m64 _m_pminsw(__m64, __m64); extern __m64 _m_pminub(__m64, __m64); extern int _m_pmovmskb(__m64); extern __m64 _m_pmulhuw(__m64, __m64); extern __m64 _m_pshufw(__m64, int); extern void _m_maskmovq(__m64, __m64, char *); extern __m64 _m_pavgb(__m64, __m64); extern __m64 _m_pavgw(__m64, __m64); extern __m64 _m_psadbw(__m64, __m64); /* * memory & initialization */ extern __m128 _mm_set_ss(float _A); extern __m128 _mm_set_ps1(float _A); extern __m128 _mm_set_ps(float _A, float _B, float _C, float _D); extern __m128 _mm_setr_ps(float _A, float _B, float _C, float _D); extern __m128 _mm_setzero_ps(void); extern __m128 _mm_load_ss(float const*_A); extern __m128 _mm_load_ps1(float const*_A); extern __m128 _mm_load_ps(float const*_A); extern __m128 _mm_loadr_ps(float const*_A); extern __m128 _mm_loadu_ps(float const*_A); extern void _mm_store_ss(float *_V, __m128 _A); extern void _mm_store_ps1(float *_V, __m128 _A); extern void _mm_store_ps(float *_V, __m128 _A); extern void _mm_storer_ps(float *_V, __m128 _A); extern void _mm_storeu_ps(float *_V, __m128 _A); extern void _mm_prefetch(char const*_A, int _Sel); extern void _mm_stream_pi(__m64 *, __m64); extern void _mm_stream_ps(float *, __m128); extern __m128 _mm_move_ss(__m128 _A, __m128 _B); extern void _mm_sfence(void); extern unsigned int _mm_getcsr(void); extern void _mm_setcsr(unsigned int); /* Alternate intrinsic names definition */ /******************************************************/ /* UTILITY INTRINSICS FUNCTION DEFINITIONS START HERE */ /******************************************************/ /*********************************************************/ /* NAME : _mm_cvtpi16_ps */ /* DESCRIPTION : Convert 4 16-bit signed integer values */ /* to 4 single-precision float values */ /* IN : __m64 a */ /* OUT : none */ /* RETURN : __m128 : (float)a */ /*********************************************************/ __inline __m128 _mm_cvtpi16_ps(__m64 a) { __m128 tmp; __m64 ext_val = _m_pcmpgtw(_mm_setzero_si64(), a); tmp = _mm_cvt_pi2ps(_mm_setzero_ps(), _m_punpckhwd(a, ext_val)); return(_mm_cvt_pi2ps(_mm_movelh_ps(tmp, tmp), _m_punpcklwd(a, ext_val))); } /***********************************************************/ /* NAME : _mm_cvtpu16_ps */ /* DESCRIPTION : Convert 4 16-bit unsigned integer values */ /* to 4 single-precision float values */ /* IN : __m64 a */ /* OUT : none */ /* RETURN : __m128 : (float)a */ /***********************************************************/ __inline __m128 _mm_cvtpu16_ps(__m64 a) { __m128 tmp; __m64 ext_val = _mm_setzero_si64(); tmp = _mm_cvt_pi2ps(_mm_setzero_ps(), _m_punpckhwd(a, ext_val)); return(_mm_cvt_pi2ps(_mm_movelh_ps(tmp, tmp), _m_punpcklwd(a, ext_val))); } /******************************************************/ /* NAME : _mm_cvtps_pi16 */ /* DESCRIPTION : Convert 4 single-precision float */ /* values to 4 16-bit integer values */ /* IN : __m128 a */ /* OUT : none */ /* RETURN : __m64 : (short)a */ /******************************************************/ __inline __m64 _mm_cvtps_pi16(__m128 a) { return _m_packssdw(_mm_cvt_ps2pi(a), _mm_cvt_ps2pi(_mm_movehl_ps(a, a))); } /******************************************************/ /* NAME : _mm_cvtpi8_ps */ /* DESCRIPTION : Convert 4 8-bit integer values to 4 */ /* single-precision float values */ /* IN : __m64 a */ /* OUT : none */ /* RETURN : __m128 : (float)a */ /******************************************************/ __inline __m128 _mm_cvtpi8_ps(__m64 a) { __m64 ext_val = _m_pcmpgtb(_mm_setzero_si64(), a); return _mm_cvtpi16_ps(_m_punpcklbw(a, ext_val)); } /******************************************************/ /* NAME : _mm_cvtpu8_ps */ /* DESCRIPTION : Convert 4 8-bit unsigned integer */ /* values to 4 single-precision float */ /* values */ /* IN : __m64 a */ /* OUT : none */ /* RETURN : __m128 : (float)a */ /******************************************************/ __inline __m128 _mm_cvtpu8_ps(__m64 a) { return _mm_cvtpu16_ps(_m_punpcklbw(a, _mm_setzero_si64())); } /******************************************************/ /* NAME : _mm_cvtps_pi8 */ /* DESCRIPTION : Convert 4 single-precision float */ /* values to 4 8-bit integer values */ /* IN : __m128 a */ /* OUT : none */ /* RETURN : __m64 : (char)a */ /******************************************************/ __inline __m64 _mm_cvtps_pi8(__m128 a) { return _m_packsswb(_mm_cvtps_pi16(a), _mm_setzero_si64()); } /******************************************************/ /* NAME : _mm_cvtpi32x2_ps */ /* DESCRIPTION : Convert 4 32-bit integer values */ /* to 4 single-precision float values */ /* IN : __m64 a : operand 1 */ /* __m64 b : operand 2 */ /* OUT : none */ /* RETURN : __m128 : (float)a,(float)b */ /******************************************************/ __inline __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) { return _mm_movelh_ps(_mm_cvt_pi2ps(_mm_setzero_ps(), a), _mm_cvt_pi2ps(_mm_setzero_ps(), b)); } }; /* End "C" */ #line 487 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" #line 489 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" #line 491 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" #line 492 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\xmmintrin.h" #line 34 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" typedef union __declspec(intrin_type) __declspec(align(16)) __m128i { __int8 m128i_i8[16]; __int16 m128i_i16[8]; __int32 m128i_i32[4]; __int64 m128i_i64[2]; unsigned __int8 m128i_u8[16]; unsigned __int16 m128i_u16[8]; unsigned __int32 m128i_u32[4]; unsigned __int64 m128i_u64[2]; } __m128i; typedef struct __declspec(intrin_type) __declspec(align(16)) __m128d { double m128d_f64[2]; } __m128d; /* * Macro function for shuffle */ /*****************************************************/ /* INTRINSICS FUNCTION PROTOTYPES START HERE */ /*****************************************************/ extern "C" { /* Begin "C" */ /* Intrinsics use C name-mangling. */ #line 63 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" /* * DP, arithmetic */ extern __m128d _mm_add_sd(__m128d _A, __m128d _B); extern __m128d _mm_add_pd(__m128d _A, __m128d _B); extern __m128d _mm_sub_sd(__m128d _A, __m128d _B); extern __m128d _mm_sub_pd(__m128d _A, __m128d _B); extern __m128d _mm_mul_sd(__m128d _A, __m128d _B); extern __m128d _mm_mul_pd(__m128d _A, __m128d _B); extern __m128d _mm_sqrt_sd(__m128d _A, __m128d _B); extern __m128d _mm_sqrt_pd(__m128d _A); extern __m128d _mm_div_sd(__m128d _A, __m128d _B); extern __m128d _mm_div_pd(__m128d _A, __m128d _B); extern __m128d _mm_min_sd(__m128d _A, __m128d _B); extern __m128d _mm_min_pd(__m128d _A, __m128d _B); extern __m128d _mm_max_sd(__m128d _A, __m128d _B); extern __m128d _mm_max_pd(__m128d _A, __m128d _B); /* * DP, logicals */ extern __m128d _mm_and_pd(__m128d _A, __m128d _B); extern __m128d _mm_andnot_pd(__m128d _A, __m128d _B); extern __m128d _mm_or_pd(__m128d _A, __m128d _B); extern __m128d _mm_xor_pd(__m128d _A, __m128d _B); /* * DP, comparisons */ extern __m128d _mm_cmpeq_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpeq_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmplt_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmplt_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmple_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmple_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpgt_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpgt_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpge_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpge_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpneq_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpneq_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpnlt_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpnlt_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpnle_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpnle_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpngt_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpngt_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpnge_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpnge_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpord_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpord_sd(__m128d _A, __m128d _B); extern __m128d _mm_cmpunord_pd(__m128d _A, __m128d _B); extern __m128d _mm_cmpunord_sd(__m128d _A, __m128d _B); extern int _mm_comieq_sd(__m128d _A, __m128d _B); extern int _mm_comilt_sd(__m128d _A, __m128d _B); extern int _mm_comile_sd(__m128d _A, __m128d _B); extern int _mm_comigt_sd(__m128d _A, __m128d _B); extern int _mm_comige_sd(__m128d _A, __m128d _B); extern int _mm_comineq_sd(__m128d _A, __m128d _B); extern int _mm_ucomieq_sd(__m128d _A, __m128d _B); extern int _mm_ucomilt_sd(__m128d _A, __m128d _B); extern int _mm_ucomile_sd(__m128d _A, __m128d _B); extern int _mm_ucomigt_sd(__m128d _A, __m128d _B); extern int _mm_ucomige_sd(__m128d _A, __m128d _B); extern int _mm_ucomineq_sd(__m128d _A, __m128d _B); /* * DP, converts */ extern __m128d _mm_cvtepi32_pd(__m128i _A); extern __m128i _mm_cvtpd_epi32(__m128d _A); extern __m128i _mm_cvttpd_epi32(__m128d _A); extern __m128 _mm_cvtepi32_ps(__m128i _A); extern __m128i _mm_cvtps_epi32(__m128 _A); extern __m128i _mm_cvttps_epi32(__m128 _A); extern __m128 _mm_cvtpd_ps(__m128d _A); extern __m128d _mm_cvtps_pd(__m128 _A); extern __m128 _mm_cvtsd_ss(__m128 _A, __m128d _B); extern __m128d _mm_cvtss_sd(__m128d _A, __m128 _B); extern int _mm_cvtsd_si32(__m128d _A); extern int _mm_cvttsd_si32(__m128d _A); extern __m128d _mm_cvtsi32_sd(__m128d _A, int _B); extern __m64 _mm_cvtpd_pi32(__m128d _A); extern __m64 _mm_cvttpd_pi32(__m128d _A); extern __m128d _mm_cvtpi32_pd(__m64 _A); /* * DP, misc */ extern __m128d _mm_unpackhi_pd(__m128d _A, __m128d _B); extern __m128d _mm_unpacklo_pd(__m128d _A, __m128d _B); extern int _mm_movemask_pd(__m128d _A); extern __m128d _mm_shuffle_pd(__m128d _A, __m128d _B, int _I); /* * DP, loads */ extern __m128d _mm_load_pd(double const*_Dp); extern __m128d _mm_load1_pd(double const*_Dp); extern __m128d _mm_loadr_pd(double const*_Dp); extern __m128d _mm_loadu_pd(double const*_Dp); extern __m128d _mm_load_sd(double const*_Dp); extern __m128d _mm_loadh_pd(__m128d _A, double const*_Dp); extern __m128d _mm_loadl_pd(__m128d _A, double const*_Dp); /* * DP, sets */ extern __m128d _mm_set_sd(double _W); extern __m128d _mm_set1_pd(double _A); extern __m128d _mm_set_pd(double _Z, double _Y); extern __m128d _mm_setr_pd(double _Y, double _Z); extern __m128d _mm_setzero_pd(void); extern __m128d _mm_move_sd(__m128d _A, __m128d _B); /* * DP, stores */ extern void _mm_store_sd(double *_Dp, __m128d _A); extern void _mm_store1_pd(double *_Dp, __m128d _A); extern void _mm_store_pd(double *_Dp, __m128d _A); extern void _mm_storeu_pd(double *_Dp, __m128d _A); extern void _mm_storer_pd(double *_Dp, __m128d _A); extern void _mm_storeh_pd(double *_Dp, __m128d _A); extern void _mm_storel_pd(double *_Dp, __m128d _A); /* * Integer, arithmetic */ extern __m128i _mm_add_epi8(__m128i _A, __m128i _B); extern __m128i _mm_add_epi16(__m128i _A, __m128i _B); extern __m128i _mm_add_epi32(__m128i _A, __m128i _B); extern __m64 _mm_add_si64(__m64 _A, __m64 _B); extern __m128i _mm_add_epi64(__m128i _A, __m128i _B); extern __m128i _mm_adds_epi8(__m128i _A, __m128i _B); extern __m128i _mm_adds_epi16(__m128i _A, __m128i _B); extern __m128i _mm_adds_epu8(__m128i _A, __m128i _B); extern __m128i _mm_adds_epu16(__m128i _A, __m128i _B); extern __m128i _mm_avg_epu8(__m128i _A, __m128i _B); extern __m128i _mm_avg_epu16(__m128i _A, __m128i _B); extern __m128i _mm_madd_epi16(__m128i _A, __m128i _B); extern __m128i _mm_max_epi16(__m128i _A, __m128i _B); extern __m128i _mm_max_epu8(__m128i _A, __m128i _B); extern __m128i _mm_min_epi16(__m128i _A, __m128i _B); extern __m128i _mm_min_epu8(__m128i _A, __m128i _B); extern __m128i _mm_mulhi_epi16(__m128i _A, __m128i _B); extern __m128i _mm_mulhi_epu16(__m128i _A, __m128i _B); extern __m128i _mm_mullo_epi16(__m128i _A, __m128i _B); extern __m64 _mm_mul_su32(__m64 _A, __m64 _B); extern __m128i _mm_mul_epu32(__m128i _A, __m128i _B); extern __m128i _mm_sad_epu8(__m128i _A, __m128i _B); extern __m128i _mm_sub_epi8(__m128i _A, __m128i _B); extern __m128i _mm_sub_epi16(__m128i _A, __m128i _B); extern __m128i _mm_sub_epi32(__m128i _A, __m128i _B); extern __m64 _mm_sub_si64(__m64 _A, __m64 _B); extern __m128i _mm_sub_epi64(__m128i _A, __m128i _B); extern __m128i _mm_subs_epi8(__m128i _A, __m128i _B); extern __m128i _mm_subs_epi16(__m128i _A, __m128i _B); extern __m128i _mm_subs_epu8(__m128i _A, __m128i _B); extern __m128i _mm_subs_epu16(__m128i _A, __m128i _B); /* * Integer, logicals */ extern __m128i _mm_and_si128(__m128i _A, __m128i _B); extern __m128i _mm_andnot_si128(__m128i _A, __m128i _B); extern __m128i _mm_or_si128(__m128i _A, __m128i _B); extern __m128i _mm_xor_si128(__m128i _A, __m128i _B); /* * Integer, shifts */ extern __m128i _mm_slli_si128(__m128i _A, int _Imm); extern __m128i _mm_slli_epi16(__m128i _A, int _Count); extern __m128i _mm_sll_epi16(__m128i _A, __m128i _Count); extern __m128i _mm_slli_epi32(__m128i _A, int _Count); extern __m128i _mm_sll_epi32(__m128i _A, __m128i _Count); extern __m128i _mm_slli_epi64(__m128i _A, int _Count); extern __m128i _mm_sll_epi64(__m128i _A, __m128i _Count); extern __m128i _mm_srai_epi16(__m128i _A, int _Count); extern __m128i _mm_sra_epi16(__m128i _A, __m128i _Count); extern __m128i _mm_srai_epi32(__m128i _A, int _Count); extern __m128i _mm_sra_epi32(__m128i _A, __m128i _Count); extern __m128i _mm_srli_si128(__m128i _A, int _Imm); extern __m128i _mm_srli_epi16(__m128i _A, int _Count); extern __m128i _mm_srl_epi16(__m128i _A, __m128i _Count); extern __m128i _mm_srli_epi32(__m128i _A, int _Count); extern __m128i _mm_srl_epi32(__m128i _A, __m128i _Count); extern __m128i _mm_srli_epi64(__m128i _A, int _Count); extern __m128i _mm_srl_epi64(__m128i _A, __m128i _Count); /* * Integer, comparisons */ extern __m128i _mm_cmpeq_epi8(__m128i _A, __m128i _B); extern __m128i _mm_cmpeq_epi16(__m128i _A, __m128i _B); extern __m128i _mm_cmpeq_epi32(__m128i _A, __m128i _B); extern __m128i _mm_cmpgt_epi8(__m128i _A, __m128i _B); extern __m128i _mm_cmpgt_epi16(__m128i _A, __m128i _B); extern __m128i _mm_cmpgt_epi32(__m128i _A, __m128i _B); extern __m128i _mm_cmplt_epi8(__m128i _A, __m128i _B); extern __m128i _mm_cmplt_epi16(__m128i _A, __m128i _B); extern __m128i _mm_cmplt_epi32(__m128i _A, __m128i _B); /* * Integer, converts */ extern __m128i _mm_cvtsi32_si128(int _A); extern int _mm_cvtsi128_si32(__m128i _A); /* * Integer, misc */ extern __m128i _mm_packs_epi16(__m128i _A, __m128i _B); extern __m128i _mm_packs_epi32(__m128i _A, __m128i _B); extern __m128i _mm_packus_epi16(__m128i _A, __m128i _B); extern int _mm_extract_epi16(__m128i _A, int _Imm); extern __m128i _mm_insert_epi16(__m128i _A, int _B, int _Imm); extern int _mm_movemask_epi8(__m128i _A); extern __m128i _mm_shuffle_epi32(__m128i _A, int _Imm); extern __m128i _mm_shufflehi_epi16(__m128i _A, int _Imm); extern __m128i _mm_shufflelo_epi16(__m128i _A, int _Imm); extern __m128i _mm_unpackhi_epi8(__m128i _A, __m128i _B); extern __m128i _mm_unpackhi_epi16(__m128i _A, __m128i _B); extern __m128i _mm_unpackhi_epi32(__m128i _A, __m128i _B); extern __m128i _mm_unpackhi_epi64(__m128i _A, __m128i _B); extern __m128i _mm_unpacklo_epi8(__m128i _A, __m128i _B); extern __m128i _mm_unpacklo_epi16(__m128i _A, __m128i _B); extern __m128i _mm_unpacklo_epi32(__m128i _A, __m128i _B); extern __m128i _mm_unpacklo_epi64(__m128i _A, __m128i _B); /* * Integer, loads */ extern __m128i _mm_load_si128(__m128i const*_P); extern __m128i _mm_loadu_si128(__m128i const*_P); extern __m128i _mm_loadl_epi64(__m128i const*_P); /* * Integer, sets */ extern __m128i _mm_set_epi64(__m64 _Q1, __m64 _Q0); extern __m128i _mm_set_epi32(int _I3, int _I2, int _I1, int _I0); extern __m128i _mm_set_epi16(short _W7, short _W6, short _W5, short _W4, short _W3, short _W2, short _W1, short _W0); extern __m128i _mm_set_epi8(char _B15, char _B14, char _B13, char _B12, char _B11, char _B10, char _B9, char _B8, char _B7, char _B6, char _B5, char _B4, char _B3, char _B2, char _B1, char _B0); extern __m128i _mm_set1_epi64(__m64 _Q); extern __m128i _mm_set1_epi32(int _I); extern __m128i _mm_set1_epi16(short _W); extern __m128i _mm_set1_epi8(char _B); extern __m128i _mm_setl_epi64(__m128i _Q); extern __m128i _mm_setr_epi64(__m64 _Q0, __m64 _Q1); extern __m128i _mm_setr_epi32(int _I0, int _I1, int _I2, int _I3); extern __m128i _mm_setr_epi16(short _W0, short _W1, short _W2, short _W3, short _W4, short _W5, short _W6, short _W7); extern __m128i _mm_setr_epi8(char _B15, char _B14, char _B13, char _B12, char _B11, char _B10, char _B9, char _B8, char _B7, char _B6, char _B5, char _B4, char _B3, char _B2, char _B1, char _B0); extern __m128i _mm_setzero_si128(void); /* * Integer, stores */ extern void _mm_store_si128(__m128i *_P, __m128i _B); extern void _mm_storeu_si128(__m128i *_P, __m128i _B); extern void _mm_storel_epi64(__m128i *_P, __m128i _Q); extern void _mm_maskmoveu_si128(__m128i _D, __m128i _N, char *_P); /* * Integer, moves */ extern __m128i _mm_move_epi64(__m128i _Q); extern __m128i _mm_movpi64_epi64(__m64 _Q); extern __m64 _mm_movepi64_pi64(__m128i _Q); /* * Cacheability support */ extern void _mm_stream_pd(double *_Dp, __m128d _A); extern void _mm_stream_si128(__m128i *_P, __m128i _A); extern void _mm_clflush(void const*_P); extern void _mm_lfence(void); extern void _mm_mfence(void); extern void _mm_stream_si32(int *_P, int _I); extern void _mm_pause(void); /* * New convert to float */ extern double _mm_cvtsd_f64(__m128d _A); /* * Support for casting between various SP, DP, INT vector types. * Note that these do no conversion of values, they just change * the type. */ extern __m128 _mm_castpd_ps(__m128d); extern __m128i _mm_castpd_si128(__m128d); extern __m128d _mm_castps_pd(__m128); extern __m128i _mm_castps_si128(__m128); extern __m128 _mm_castsi128_ps(__m128i); extern __m128d _mm_castsi128_pd(__m128i); /* * Support for 64-bit extension intrinsics */ extern __int64 _mm_cvtsd_si64(__m128d); extern __int64 _mm_cvttsd_si64(__m128d); extern __m128d _mm_cvtsi64_sd(__m128d, __int64); extern __m128i _mm_cvtsi64_si128(__int64); extern __int64 _mm_cvtsi128_si64(__m128i); /* Alternate intrinsic name definitions */ #line 407 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" }; /* End "C" */ #line 411 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" #line 413 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" #line 415 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" #line 416 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\emmintrin.h" #line 32 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\pmmintrin.h" /*****************************************************/ /* MACROS FOR USE WITH INTRINSICS */ /*****************************************************/ /* * MACRO functions for setting and reading the DAZ bit in the MXCSR */ /*****************************************************/ /* INTRINSICS FUNCTION PROTOTYPES START HERE */ /*****************************************************/ extern "C" { /* Begin "C" */ /* Intrinsics use C name-mangling. */ #line 58 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\pmmintrin.h" /* * New Single precision vector instructions. */ extern __m128 _mm_addsub_ps(__m128 a, __m128 b); extern __m128 _mm_hadd_ps(__m128 a, __m128 b); extern __m128 _mm_hsub_ps(__m128 a, __m128 b); extern __m128 _mm_movehdup_ps(__m128 a); extern __m128 _mm_moveldup_ps(__m128 a); /* * New double precision vector instructions. */ extern __m128d _mm_addsub_pd(__m128d a, __m128d b); extern __m128d _mm_hadd_pd(__m128d a, __m128d b); extern __m128d _mm_hsub_pd(__m128d a, __m128d b); extern __m128d _mm_loaddup_pd(double const * dp); extern __m128d _mm_movedup_pd(__m128d a); /* * New unaligned integer vector load instruction. */ extern __m128i _mm_lddqu_si128(__m128i const *p); /* * Miscellaneous new instructions. */ /* * For _mm_monitor p goes in eax, extensions goes in ecx, hints goes in edx. */ extern void _mm_monitor(void const *p, unsigned extensions, unsigned hints); /* * For _mm_mwait, extensions goes in ecx, hints goes in eax. */ extern void _mm_mwait(unsigned extensions, unsigned hints); }; /* End "C" */ #line 100 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\pmmintrin.h" #line 102 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\pmmintrin.h" #line 104 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\pmmintrin.h" #line 105 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\pmmintrin.h" #line 21 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\tmmintrin.h" extern "C" { #line 32 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\tmmintrin.h" // Add horizonally packed [saturated] words, double words, // {X,}MM2/m{128,64} (b) to {X,}MM1 (a). extern __m128i _mm_hadd_epi16 (__m128i a, __m128i b); extern __m128i _mm_hadd_epi32 (__m128i a, __m128i b); extern __m128i _mm_hadds_epi16 (__m128i a, __m128i b); extern __m64 _mm_hadd_pi16 (__m64 a, __m64 b); extern __m64 _mm_hadd_pi32 (__m64 a, __m64 b); extern __m64 _mm_hadds_pi16 (__m64 a, __m64 b); // Subtract horizonally packed [saturated] words, double words, // {X,}MM2/m{128,64} (b) from {X,}MM1 (a). extern __m128i _mm_hsub_epi16 (__m128i a, __m128i b); extern __m128i _mm_hsub_epi32 (__m128i a, __m128i b); extern __m128i _mm_hsubs_epi16 (__m128i a, __m128i b); extern __m64 _mm_hsub_pi16 (__m64 a, __m64 b); extern __m64 _mm_hsub_pi32 (__m64 a, __m64 b); extern __m64 _mm_hsubs_pi16 (__m64 a, __m64 b); // Multiply and add packed words, // {X,}MM2/m{128,64} (b) to {X,}MM1 (a). extern __m128i _mm_maddubs_epi16 (__m128i a, __m128i b); extern __m64 _mm_maddubs_pi16 (__m64 a, __m64 b); // Packed multiply high integers with round and scaling, // {X,}MM2/m{128,64} (b) to {X,}MM1 (a). extern __m128i _mm_mulhrs_epi16 (__m128i a, __m128i b); extern __m64 _mm_mulhrs_pi16 (__m64 a, __m64 b); // Packed shuffle bytes // {X,}MM2/m{128,64} (b) by {X,}MM1 (a). extern __m128i _mm_shuffle_epi8 (__m128i a, __m128i b); extern __m64 _mm_shuffle_pi8 (__m64 a, __m64 b); // Packed byte, word, double word sign, {X,}MM2/m{128,64} (b) to // {X,}MM1 (a). extern __m128i _mm_sign_epi8 (__m128i a, __m128i b); extern __m128i _mm_sign_epi16 (__m128i a, __m128i b); extern __m128i _mm_sign_epi32 (__m128i a, __m128i b); extern __m64 _mm_sign_pi8 (__m64 a, __m64 b); extern __m64 _mm_sign_pi16 (__m64 a, __m64 b); extern __m64 _mm_sign_pi32 (__m64 a, __m64 b); // Packed align and shift right by n*8 bits, // {X,}MM2/m{128,64} (b) to {X,}MM1 (a). extern __m128i _mm_alignr_epi8 (__m128i a, __m128i b, int n); extern __m64 _mm_alignr_pi8 (__m64 a, __m64 b, int n); // Packed byte, word, double word absolute value, // {X,}MM2/m{128,64} (b) to {X,}MM1 (a). extern __m128i _mm_abs_epi8 (__m128i a); extern __m128i _mm_abs_epi16 (__m128i a); extern __m128i _mm_abs_epi32 (__m128i a); extern __m64 _mm_abs_pi8 (__m64 a); extern __m64 _mm_abs_pi16 (__m64 a); extern __m64 _mm_abs_pi32 (__m64 a); }; #line 108 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\tmmintrin.h" #line 110 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\tmmintrin.h" #line 112 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\tmmintrin.h" #line 114 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\tmmintrin.h" #line 28 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" /* * Rounding mode macros */ /* * MACRO functions for ceil/floor intrinsics */ /* * MACRO functions for packed integer 128-bit comparison intrinsics. */ extern "C" { #line 80 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" // Integer blend instructions - select data from 2 sources // using constant/variable mask extern __m128i _mm_blend_epi16 (__m128i v1, __m128i v2, const int mask); extern __m128i _mm_blendv_epi8 (__m128i v1, __m128i v2, __m128i mask); // Float single precision blend instructions - select data // from 2 sources using constant/variable mask extern __m128 _mm_blend_ps (__m128 v1, __m128 v2, const int mask); extern __m128 _mm_blendv_ps(__m128 v1, __m128 v2, __m128 v3); // Float double precision blend instructions - select data // from 2 sources using constant/variable mask extern __m128d _mm_blend_pd (__m128d v1, __m128d v2, const int mask); extern __m128d _mm_blendv_pd(__m128d v1, __m128d v2, __m128d v3); // Dot product instructions with mask-defined summing and zeroing // of result's parts extern __m128 _mm_dp_ps(__m128 val1, __m128 val2, const int mask); extern __m128d _mm_dp_pd(__m128d val1, __m128d val2, const int mask); // Packed integer 64-bit comparison, zeroing or filling with ones // corresponding parts of result extern __m128i _mm_cmpeq_epi64(__m128i val1, __m128i val2); // Min/max packed integer instructions extern __m128i _mm_min_epi8 (__m128i val1, __m128i val2); extern __m128i _mm_max_epi8 (__m128i val1, __m128i val2); extern __m128i _mm_min_epu16(__m128i val1, __m128i val2); extern __m128i _mm_max_epu16(__m128i val1, __m128i val2); extern __m128i _mm_min_epi32(__m128i val1, __m128i val2); extern __m128i _mm_max_epi32(__m128i val1, __m128i val2); extern __m128i _mm_min_epu32(__m128i val1, __m128i val2); extern __m128i _mm_max_epu32(__m128i val1, __m128i val2); // Packed integer 32-bit multiplication with truncation // of upper halves of results extern __m128i _mm_mullo_epi32(__m128i a, __m128i b); // Packed integer 32-bit multiplication of 2 pairs of operands // producing two 64-bit results extern __m128i _mm_mul_epi32(__m128i a, __m128i b); // Packed integer 128-bit bitwise comparison. // return 1 if (val 'and' mask) == 0 extern int _mm_testz_si128(__m128i mask, __m128i val); // Packed integer 128-bit bitwise comparison. // return 1 if (val 'and_not' mask) == 0 extern int _mm_testc_si128(__m128i mask, __m128i val); // Packed integer 128-bit bitwise comparison // ZF = ((val 'and' mask) == 0) CF = ((val 'and_not' mask) == 0) // return 1 if both ZF and CF are 0 extern int _mm_testnzc_si128(__m128i mask, __m128i s2); // Insert single precision float into packed single precision // array element selected by index. // The bits [7-6] of the 3d parameter define src index, // the bits [5-4] define dst index, and bits [3-0] define zeroing // mask for dst extern __m128 _mm_insert_ps(__m128 dst, __m128 src, const int ndx); // Helper macro to create ndx-parameter value for _mm_insert_ps // Extract binary representation of single precision float from // packed single precision array element selected by index extern int _mm_extract_ps(__m128 src, const int ndx); // Extract single precision float from packed single precision // array element selected by index into dest // Extract specified single precision float element // into the lower part of __m128 // Insert integer into packed integer array element // selected by index extern __m128i _mm_insert_epi8 (__m128i dst, int s, const int ndx); extern __m128i _mm_insert_epi32(__m128i dst, int s, const int ndx); extern __m128i _mm_insert_epi64(__m128i dst, __int64 s, const int ndx); #line 190 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" // Extract integer from packed integer array element // selected by index extern int _mm_extract_epi8 (__m128i src, const int ndx); extern int _mm_extract_epi32(__m128i src, const int ndx); extern __int64 _mm_extract_epi64(__m128i src, const int ndx); #line 199 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" // Horizontal packed word minimum and its index in // result[15:0] and result[18:16] respectively extern __m128i _mm_minpos_epu16(__m128i shortValues); // Packed/single float double precision rounding extern __m128d _mm_round_pd(__m128d val, int iRoundMode); extern __m128d _mm_round_sd(__m128d dst, __m128d val, int iRoundMode); // Packed/single float single precision rounding extern __m128 _mm_round_ps(__m128 val, int iRoundMode); extern __m128 _mm_round_ss(__m128 dst, __m128 val, int iRoundMode); // Packed integer sign-extension extern __m128i _mm_cvtepi8_epi32 (__m128i byteValues); extern __m128i _mm_cvtepi16_epi32(__m128i shortValues); extern __m128i _mm_cvtepi8_epi64 (__m128i byteValues); extern __m128i _mm_cvtepi32_epi64(__m128i intValues); extern __m128i _mm_cvtepi16_epi64(__m128i shortValues); extern __m128i _mm_cvtepi8_epi16 (__m128i byteValues); // Packed integer zero-extension extern __m128i _mm_cvtepu8_epi32 (__m128i byteValues); extern __m128i _mm_cvtepu16_epi32(__m128i shortValues); extern __m128i _mm_cvtepu8_epi64 (__m128i shortValues); extern __m128i _mm_cvtepu32_epi64(__m128i intValues); extern __m128i _mm_cvtepu16_epi64(__m128i shortValues); extern __m128i _mm_cvtepu8_epi16 (__m128i byteValues); // Pack 8 double words from 2 operands into 8 words of result // with unsigned saturation extern __m128i _mm_packus_epi32(__m128i val1, __m128i val2); // Sum absolute 8-bit integer difference of adjacent groups of 4 byte // integers in operands. Starting offsets within operands are // determined by mask extern __m128i _mm_mpsadbw_epu8(__m128i s1, __m128i s2, const int msk); /* * Load double quadword using non-temporal aligned hint */ extern __m128i _mm_stream_load_si128(__m128i* v1); }; /* End "C" */ #line 254 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" #line 256 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" #line 258 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" #line 259 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\smmintrin.h" #line 28 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" extern "C" { #line 33 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" /* * These defines are used to determine the kind of units to be compared */ /* * These defines are used to determine the comparison operation */ /* * These defines are used to determine the polarity */ /* * These defines are used in _mm_cmpXstri() */ /* * These defines are used _mm_cmpXstrm() */ /* * Intrinsics for text/string processing. */ extern __m128i _mm_cmpistrm (__m128i a, __m128i b, const int mode); extern int _mm_cmpistri (__m128i a, __m128i b, const int mode); extern __m128i _mm_cmpestrm (__m128i a, int la, __m128i b, int lb, const int mode); extern int _mm_cmpestri (__m128i a, int la, __m128i b, int lb, const int mode); /* * Intrinsics for text/string processing and reading values of EFlags. */ extern int _mm_cmpistrz (__m128i a, __m128i b, const int mode); extern int _mm_cmpistrc (__m128i a, __m128i b, const int mode); extern int _mm_cmpistrs (__m128i a, __m128i b, const int mode); extern int _mm_cmpistro (__m128i a, __m128i b, const int mode); extern int _mm_cmpistra (__m128i a, __m128i b, const int mode); extern int _mm_cmpestrz (__m128i a, int la, __m128i b, int lb, const int mode); extern int _mm_cmpestrc (__m128i a, int la, __m128i b, int lb, const int mode); extern int _mm_cmpestrs (__m128i a, int la, __m128i b, int lb, const int mode); extern int _mm_cmpestro (__m128i a, int la, __m128i b, int lb, const int mode); extern int _mm_cmpestra (__m128i a, int la, __m128i b, int lb, const int mode); /* * Packed integer 64-bit comparison, zeroing or filling with ones * corresponding parts of result */ extern __m128i _mm_cmpgt_epi64(__m128i val1, __m128i val2); /* * Calculate a number of bits set to 1 */ extern int _mm_popcnt_u32(unsigned int v); extern __int64 _mm_popcnt_u64(unsigned __int64 v); #line 116 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" /* * Accumulate CRC32 (polynomial 0x11EDC6F41) value */ extern unsigned int _mm_crc32_u8 (unsigned int crc, unsigned char v); extern unsigned int _mm_crc32_u16(unsigned int crc, unsigned short v); extern unsigned int _mm_crc32_u32(unsigned int crc, unsigned int v); extern unsigned __int64 _mm_crc32_u64(unsigned __int64 crc, unsigned __int64 v); #line 128 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" }; /* End "C" */ #line 132 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" #line 134 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" #line 136 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" #line 137 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\nmmintrin.h" #line 27 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wmmintrin.h" extern "C" { #line 32 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wmmintrin.h" /* * Performs 1 round of AES decryption of the first m128i using * the second m128i as a round key. */ extern __m128i _mm_aesdec_si128(__m128i v, __m128i rkey); /* * Performs the last round of AES decryption of the first m128i * using the second m128i as a round key. */ extern __m128i _mm_aesdeclast_si128(__m128i v, __m128i rkey); /* * Performs 1 round of AES encryption of the first m128i using * the second m128i as a round key. */ extern __m128i _mm_aesenc_si128(__m128i v, __m128i rkey); /* * Performs the last round of AES encryption of the first m128i * using the second m128i as a round key. */ extern __m128i _mm_aesenclast_si128(__m128i v, __m128i rkey); /* * Performs the InverseMixColumn operation on the source m128i * and stores the result into m128i destination. */ extern __m128i _mm_aesimc_si128(__m128i v); /* * Generates a m128i round key for the input m128i * AES cipher key and byte round constant. * The second parameter must be a compile time constant. */ extern __m128i _mm_aeskeygenassist_si128(__m128i ckey, const int rcon); /* * Performs carry-less integer multiplication of 64-bit halves * of 128-bit input operands. * The third parameter inducates which 64-bit haves of the input parameters * v1 and v2 should be used. It must be a compile time constant. */ extern __m128i _mm_clmulepi64_si128(__m128i v1, __m128i v2, const int imm8); }; /* End "C" */ #line 85 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wmmintrin.h" #line 87 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wmmintrin.h" #line 89 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wmmintrin.h" #line 90 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\wmmintrin.h" #line 21 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" extern "C" { #line 25 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" /* * Intel(R) AVX compiler intrinsics. */ typedef union __declspec(intrin_type) __declspec(align(32)) __m256 { float m256_f32[8]; } __m256; typedef struct __declspec(intrin_type) __declspec(align(32)) { double m256d_f64[4]; } __m256d; typedef union __declspec(intrin_type) __declspec(align(32)) __m256i { __int8 m256i_i8[32]; __int16 m256i_i16[16]; __int32 m256i_i32[8]; __int64 m256i_i64[4]; unsigned __int8 m256i_u8[32]; unsigned __int16 m256i_u16[16]; unsigned __int32 m256i_u32[8]; unsigned __int64 m256i_u64[4]; } __m256i; /* * Compare predicates for scalar and packed compare intrinsics */ /* * Add Packed Double Precision Floating-Point Values * **** VADDPD ymm1, ymm2, ymm3/m256 * Performs an SIMD add of the four packed double-precision floating-point * values from the first source operand to the second source operand, and * stores the packed double-precision floating-point results in the * destination */ extern __m256d __cdecl _mm256_add_pd(__m256d m1, __m256d m2); /* * Add Packed Single Precision Floating-Point Values * **** VADDPS ymm1, ymm2, ymm3/m256 * Performs an SIMD add of the eight packed single-precision floating-point * values from the first source operand to the second source operand, and * stores the packed single-precision floating-point results in the * destination */ extern __m256 __cdecl _mm256_add_ps(__m256 m1, __m256 m2); /* * Add/Subtract Double Precision Floating-Point Values * **** VADDSUBPD ymm1, ymm2, ymm3/m256 * Adds odd-numbered double-precision floating-point values of the first * source operand with the corresponding double-precision floating-point * values from the second source operand; stores the result in the odd-numbered * values of the destination. Subtracts the even-numbered double-precision * floating-point values from the second source operand from the corresponding * double-precision floating values in the first source operand; stores the * result into the even-numbered values of the destination */ extern __m256d __cdecl _mm256_addsub_pd(__m256d m1, __m256d m2); /* * Add/Subtract Packed Single Precision Floating-Point Values * **** VADDSUBPS ymm1, ymm2, ymm3/m256 * Adds odd-numbered single-precision floating-point values of the first source * operand with the corresponding single-precision floating-point values from * the second source operand; stores the result in the odd-numbered values of * the destination. Subtracts the even-numbered single-precision floating-point * values from the second source operand from the corresponding * single-precision floating values in the first source operand; stores the * result into the even-numbered values of the destination */ extern __m256 __cdecl _mm256_addsub_ps(__m256 m1, __m256 m2); /* * Bitwise Logical AND of Packed Double Precision Floating-Point Values * **** VANDPD ymm1, ymm2, ymm3/m256 * Performs a bitwise logical AND of the four packed double-precision * floating-point values from the first source operand and the second * source operand, and stores the result in the destination */ extern __m256d __cdecl _mm256_and_pd(__m256d m1, __m256d m2); /* * Bitwise Logical AND of Packed Single Precision Floating-Point Values * **** VANDPS ymm1, ymm2, ymm3/m256 * Performs a bitwise logical AND of the eight packed single-precision * floating-point values from the first source operand and the second * source operand, and stores the result in the destination */ extern __m256 __cdecl _mm256_and_ps(__m256 m1, __m256 m2); /* * Bitwise Logical AND NOT of Packed Double Precision Floating-Point Values * **** VANDNPD ymm1, ymm2, ymm3/m256 * Performs a bitwise logical AND NOT of the four packed double-precision * floating-point values from the first source operand and the second source * operand, and stores the result in the destination */ extern __m256d __cdecl _mm256_andnot_pd(__m256d m1, __m256d m2); /* * Bitwise Logical AND NOT of Packed Single Precision Floating-Point Values * **** VANDNPS ymm1, ymm2, ymm3/m256 * Performs a bitwise logical AND NOT of the eight packed single-precision * floating-point values from the first source operand and the second source * operand, and stores the result in the destination */ extern __m256 __cdecl _mm256_andnot_ps(__m256 m1, __m256 m2); /* * Blend Packed Double Precision Floating-Point Values * **** VBLENDPD ymm1, ymm2, ymm3/m256, imm8 * Double-Precision Floating-Point values from the second source operand are * conditionally merged with values from the first source operand and written * to the destination. The immediate bits [3:0] determine whether the * corresponding Double-Precision Floating Point value in the destination is * copied from the second source or first source. If a bit in the mask, * orresponding to a word, is "1", then the Double-Precision Floating-Point * value in the second source operand is copied, else the value in the first * source operand is copied */ extern __m256d __cdecl _mm256_blend_pd(__m256d m1, __m256d m2, const int mask); /* * Blend Packed Single Precision Floating-Point Values * **** VBLENDPS ymm1, ymm2, ymm3/m256, imm8 * Single precision floating point values from the second source operand are * conditionally merged with values from the first source operand and written * to the destination. The immediate bits [7:0] determine whether the * corresponding single precision floating-point value in the destination is * copied from the second source or first source. If a bit in the mask, * corresponding to a word, is "1", then the single-precision floating-point * value in the second source operand is copied, else the value in the first * source operand is copied */ extern __m256 __cdecl _mm256_blend_ps(__m256 m1, __m256 m2, const int mask); /* * Blend Packed Double Precision Floating-Point Values * **** VBLENDVPD ymm1, ymm2, ymm3/m256, ymm4 * Conditionally copy each quadword data element of double-precision * floating-point value from the second source operand (third operand) and the * first source operand (second operand) depending on mask bits defined in the * mask register operand (fourth operand). */ extern __m256d __cdecl _mm256_blendv_pd(__m256d m1, __m256d m2, __m256d m3); /* * Blend Packed Single Precision Floating-Point Values * **** VBLENDVPS ymm1, ymm2, ymm3/m256, ymm4 * Conditionally copy each dword data element of single-precision * floating-point value from the second source operand (third operand) and the * first source operand (second operand) depending on mask bits defined in the * mask register operand (fourth operand). */ extern __m256 __cdecl _mm256_blendv_ps(__m256 m1, __m256 m2, __m256 mask); /* * Divide Packed Double-Precision Floating-Point Values * **** VDIVPD ymm1, ymm2, ymm3/m256 * Performs an SIMD divide of the four packed double-precision floating-point * values in the first source operand by the four packed double-precision * floating-point values in the second source operand */ extern __m256d __cdecl _mm256_div_pd(__m256d m1, __m256d m2); /* * Divide Packed Single-Precision Floating-Point Values * **** VDIVPS ymm1, ymm2, ymm3/m256 * Performs an SIMD divide of the eight packed single-precision * floating-point values in the first source operand by the eight packed * single-precision floating-point values in the second source operand */ extern __m256 __cdecl _mm256_div_ps(__m256 m1, __m256 m2); /* * Dot Product of Packed Single-Precision Floating-Point Values * **** VDPPS ymm1, ymm2, ymm3/m256, imm8 * Multiplies the packed single precision floating point values in the * first source operand with the packed single-precision floats in the * second source. Each of the four resulting single-precision values is * conditionally summed depending on a mask extracted from the high 4 bits * of the immediate operand. This sum is broadcast to each of 4 positions * in the destination if the corresponding bit of the mask selected from * the low 4 bits of the immediate operand is "1". If the corresponding * low bit 0-3 of the mask is zero, the destination is set to zero. * The process is replicated for the high elements of the destination. */ extern __m256 __cdecl _mm256_dp_ps(__m256 m1, __m256 m2, const int mask); /* * Add Horizontal Double Precision Floating-Point Values * **** VHADDPD ymm1, ymm2, ymm3/m256 * Adds pairs of adjacent double-precision floating-point values in the * first source operand and second source operand and stores results in * the destination */ extern __m256d __cdecl _mm256_hadd_pd(__m256d m1, __m256d m2); /* * Add Horizontal Single Precision Floating-Point Values * **** VHADDPS ymm1, ymm2, ymm3/m256 * Adds pairs of adjacent single-precision floating-point values in the * first source operand and second source operand and stores results in * the destination */ extern __m256 __cdecl _mm256_hadd_ps(__m256 m1, __m256 m2); /* * Subtract Horizontal Double Precision Floating-Point Values * **** VHSUBPD ymm1, ymm2, ymm3/m256 * Subtract pairs of adjacent double-precision floating-point values in * the first source operand and second source operand and stores results * in the destination */ extern __m256d __cdecl _mm256_hsub_pd(__m256d m1, __m256d m2); /* * Subtract Horizontal Single Precision Floating-Point Values * **** VHSUBPS ymm1, ymm2, ymm3/m256 * Subtract pairs of adjacent single-precision floating-point values in * the first source operand and second source operand and stores results * in the destination. */ extern __m256 __cdecl _mm256_hsub_ps(__m256 m1, __m256 m2); /* * Maximum of Packed Double Precision Floating-Point Values * **** VMAXPD ymm1, ymm2, ymm3/m256 * Performs an SIMD compare of the packed double-precision floating-point * values in the first source operand and the second source operand and * returns the maximum value for each pair of values to the destination */ extern __m256d __cdecl _mm256_max_pd(__m256d m1, __m256d m2); /* * Maximum of Packed Single Precision Floating-Point Values * **** VMAXPS ymm1, ymm2, ymm3/m256 * Performs an SIMD compare of the packed single-precision floating-point * values in the first source operand and the second source operand and * returns the maximum value for each pair of values to the destination */ extern __m256 __cdecl _mm256_max_ps(__m256 m1, __m256 m2); /* * Minimum of Packed Double Precision Floating-Point Values * **** VMINPD ymm1, ymm2, ymm3/m256 * Performs an SIMD compare of the packed double-precision floating-point * values in the first source operand and the second source operand and * returns the minimum value for each pair of values to the destination */ extern __m256d __cdecl _mm256_min_pd(__m256d m1, __m256d m2); /* * Minimum of Packed Single Precision Floating-Point Values * **** VMINPS ymm1, ymm2, ymm3/m256 * Performs an SIMD compare of the packed single-precision floating-point * values in the first source operand and the second source operand and * returns the minimum value for each pair of values to the destination */ extern __m256 __cdecl _mm256_min_ps(__m256 m1, __m256 m2); /* * Multiply Packed Double Precision Floating-Point Values * **** VMULPD ymm1, ymm2, ymm3/m256 * Performs a SIMD multiply of the four packed double-precision floating-point * values from the first Source operand to the Second Source operand, and * stores the packed double-precision floating-point results in the * destination */ extern __m256d __cdecl _mm256_mul_pd(__m256d m1, __m256d m2); /* * Multiply Packed Single Precision Floating-Point Values * **** VMULPS ymm1, ymm2, ymm3/m256 * Performs an SIMD multiply of the eight packed single-precision * floating-point values from the first source operand to the second source * operand, and stores the packed double-precision floating-point results in * the destination */ extern __m256 __cdecl _mm256_mul_ps(__m256 m1, __m256 m2); /* * Bitwise Logical OR of Packed Double Precision Floating-Point Values * **** VORPD ymm1, ymm2, ymm3/m256 * Performs a bitwise logical OR of the four packed double-precision * floating-point values from the first source operand and the second * source operand, and stores the result in the destination */ extern __m256d __cdecl _mm256_or_pd(__m256d m1, __m256d m2); /* * Bitwise Logical OR of Packed Single Precision Floating-Point Values * **** VORPS ymm1, ymm2, ymm3/m256 * Performs a bitwise logical OR of the eight packed single-precision * floating-point values from the first source operand and the second * source operand, and stores the result in the destination */ extern __m256 __cdecl _mm256_or_ps(__m256 m1, __m256 m2); /* * Shuffle Packed Double Precision Floating-Point Values * **** VSHUFPD ymm1, ymm2, ymm3/m256, imm8 * Moves either of the two packed double-precision floating-point values from * each double quadword in the first source operand into the low quadword * of each double quadword of the destination; moves either of the two packed * double-precision floating-point values from the second source operand into * the high quadword of each double quadword of the destination operand. * The selector operand determines which values are moved to the destination */ extern __m256d __cdecl _mm256_shuffle_pd(__m256d m1, __m256d m2, const int select); /* * Shuffle Packed Single Precision Floating-Point Values * **** VSHUFPS ymm1, ymm2, ymm3/m256, imm8 * Moves two of the four packed single-precision floating-point values * from each double qword of the first source operand into the low * quadword of each double qword of the destination; moves two of the four * packed single-precision floating-point values from each double qword of * the second source operand into to the high quadword of each double qword * of the destination. The selector operand determines which values are moved * to the destination. */ extern __m256 __cdecl _mm256_shuffle_ps(__m256 m1, __m256 m2, const int select); /* * Subtract Packed Double Precision Floating-Point Values * **** VSUBPD ymm1, ymm2, ymm3/m256 * Performs an SIMD subtract of the four packed double-precision floating-point * values of the second Source operand from the first Source operand, and * stores the packed double-precision floating-point results in the destination */ extern __m256d __cdecl _mm256_sub_pd(__m256d m1, __m256d m2); /* * Subtract Packed Single Precision Floating-Point Values * **** VSUBPS ymm1, ymm2, ymm3/m256 * Performs an SIMD subtract of the eight packed single-precision * floating-point values in the second Source operand from the First Source * operand, and stores the packed single-precision floating-point results in * the destination */ extern __m256 __cdecl _mm256_sub_ps(__m256 m1, __m256 m2); /* * Bitwise Logical XOR of Packed Double Precision Floating-Point Values * **** VXORPD ymm1, ymm2, ymm3/m256 * Performs a bitwise logical XOR of the four packed double-precision * floating-point values from the first source operand and the second * source operand, and stores the result in the destination */ extern __m256d __cdecl _mm256_xor_pd(__m256d m1, __m256d m2); /* * Bitwise Logical XOR of Packed Single Precision Floating-Point Values * **** VXORPS ymm1, ymm2, ymm3/m256 * Performs a bitwise logical XOR of the eight packed single-precision * floating-point values from the first source operand and the second * source operand, and stores the result in the destination */ extern __m256 __cdecl _mm256_xor_ps(__m256 m1, __m256 m2); /* * Compare Packed Double-Precision Floating-Point Values * **** VCMPPD xmm1, xmm2, xmm3/m128, imm8 * **** VCMPPD ymm1, ymm2, ymm3/m256, imm8 * Performs an SIMD compare of the four packed double-precision floating-point * values in the second source operand (third operand) and the first source * operand (second operand) and returns the results of the comparison to the * destination operand (first operand). The comparison predicate operand * (immediate) specifies the type of comparison performed on each of the pairs * of packed values. * For 128-bit intrinsic with compare predicate values in range 0-7 compiler * may generate SSE2 instructions if it is warranted for performance reasons. */ extern __m128d __cdecl _mm_cmp_pd(__m128d m1, __m128d m2, const int predicate); extern __m256d __cdecl _mm256_cmp_pd(__m256d m1, __m256d m2, const int predicate); /* * Compare Packed Single-Precision Floating-Point Values * **** VCMPPS xmm1, xmm2, xmm3/m256, imm8 * **** VCMPPS ymm1, ymm2, ymm3/m256, imm8 * Performs a SIMD compare of the packed single-precision floating-point values * in the second source operand (third operand) and the first source operand * (second operand) and returns the results of the comparison to the destination * operand (first operand). The comparison predicate operand (immediate) * specifies the type of comparison performed on each of the pairs of packed * values. * For 128-bit intrinsic with compare predicate values in range 0-7 compiler * may generate SSE2 instructions if it is warranted for performance reasons. */ extern __m128 __cdecl _mm_cmp_ps(__m128 m1, __m128 m2, const int predicate); extern __m256 __cdecl _mm256_cmp_ps(__m256 m1, __m256 m2, const int predicate); /* * Compare Scalar Double-Precision Floating-Point Values * **** VCMPSD xmm1, xmm2, xmm3/m64, imm8 * Compares the low double-precision floating-point values in the second source * operand (third operand) and the first source operand (second operand) and * returns the results in of the comparison to the destination operand (first * operand). The comparison predicate operand (immediate operand) specifies the * type of comparison performed. * For compare predicate values in range 0-7 compiler may generate SSE2 * instructions if it is warranted for performance reasons. */ extern __m128d __cdecl _mm_cmp_sd(__m128d m1, __m128d m2, const int predicate); /* * Compare Scalar Single-Precision Floating-Point Values * **** VCMPSS xmm1, xmm2, xmm3/m64, imm8 * Compares the low single-precision floating-point values in the second source * operand (third operand) and the first source operand (second operand) and * returns the results of the comparison to the destination operand (first * operand). The comparison predicate operand (immediate operand) specifies * the type of comparison performed. * For compare predicate values in range 0-7 compiler may generate SSE2 * instructions if it is warranted for performance reasons. */ extern __m128 __cdecl _mm_cmp_ss(__m128 m1, __m128 m2, const int predicate); /* * Convert Packed Doubleword Integers to * Packed Double-Precision Floating-Point Values * **** VCVTDQ2PD ymm1, xmm2/m128 * Converts four packed signed doubleword integers in the source operand to * four packed double-precision floating-point values in the destination */ extern __m256d __cdecl _mm256_cvtepi32_pd(__m128i m1); /* * Convert Packed Doubleword Integers to * Packed Single-Precision Floating-Point Values * **** VCVTDQ2PS ymm1, ymm2/m256 * Converts eight packed signed doubleword integers in the source operand to * eight packed double-precision floating-point values in the destination */ extern __m256 __cdecl _mm256_cvtepi32_ps(__m256i m1); /* * Convert Packed Double-Precision Floating-point values to * Packed Single-Precision Floating-Point Values * **** VCVTPD2PS xmm1, ymm2/m256 * Converts four packed double-precision floating-point values in the source * operand to four packed single-precision floating-point values in the * destination */ extern __m128 __cdecl _mm256_cvtpd_ps(__m256d m1); /* * Convert Packed Single Precision Floating-Point Values to * Packed Singed Doubleword Integer Values * **** VCVTPS2DQ ymm1, ymm2/m256 * Converts eight packed single-precision floating-point values in the source * operand to eight signed doubleword integers in the destination */ extern __m256i __cdecl _mm256_cvtps_epi32(__m256 m1); /* * Convert Packed Single Precision Floating-point values to * Packed Double Precision Floating-Point Values * **** VCVTPS2PD ymm1, xmm2/m128 * Converts four packed single-precision floating-point values in the source * operand to four packed double-precision floating-point values in the * destination */ extern __m256d __cdecl _mm256_cvtps_pd(__m128 m1); /* * Convert with Truncation Packed Double-Precision Floating-Point values to * Packed Doubleword Integers * **** VCVTTPD2DQ xmm1, ymm2/m256 * Converts four packed double-precision floating-point values in the source * operand to four packed signed doubleword integers in the destination. * When a conversion is inexact, a truncated (round toward zero) value is * returned. If a converted result is larger than the maximum signed doubleword * integer, the floating-point invalid exception is raised, and if this * exception is masked, the indefinite integer value (80000000H) is returned */ extern __m128i __cdecl _mm256_cvttpd_epi32(__m256d m1); /* * Convert Packed Double-Precision Floating-point values to * Packed Doubleword Integers * **** VCVTPD2DQ xmm1, ymm2/m256 * Converts four packed double-precision floating-point values in the source * operand to four packed signed doubleword integers in the destination */ extern __m128i __cdecl _mm256_cvtpd_epi32(__m256d m1); /* * Convert with Truncation Packed Single Precision Floating-Point Values to * Packed Singed Doubleword Integer Values * **** VCVTTPS2DQ ymm1, ymm2/m256 * Converts eight packed single-precision floating-point values in the source * operand to eight signed doubleword integers in the destination. * When a conversion is inexact, a truncated (round toward zero) value is * returned. If a converted result is larger than the maximum signed doubleword * integer, the floating-point invalid exception is raised, and if this * exception is masked, the indefinite integer value (80000000H) is returned */ extern __m256i __cdecl _mm256_cvttps_epi32(__m256 m1); /* * Extract packed floating-point values * **** VEXTRACTF128 xmm1/m128, ymm2, imm8 * Extracts 128-bits of packed floating-point values from the source operand * at an 128-bit offset from imm8[0] into the destination */ extern __m128 __cdecl _mm256_extractf128_ps(__m256 m1, const int offset); extern __m128d __cdecl _mm256_extractf128_pd(__m256d m1, const int offset); extern __m128i __cdecl _mm256_extractf128_si256(__m256i m1, const int offset); /* * Zero All YMM registers * **** VZEROALL * Zeros contents of all YMM registers */ extern void __cdecl _mm256_zeroall(void); /* * Zero Upper bits of YMM registers * **** VZEROUPPER * Zeros the upper 128 bits of all YMM registers. The lower 128-bits of the * registers (the corresponding XMM registers) are unmodified */ extern void __cdecl _mm256_zeroupper(void); /* * Permute Single-Precision Floating-Point Values * **** VPERMILPS ymm1, ymm2, ymm3/m256 * **** VPERMILPS xmm1, xmm2, xmm3/m128 * Permute Single-Precision Floating-Point values in the first source operand * using 8-bit control fields in the low bytes of corresponding elements the * shuffle control and store results in the destination */ extern __m256 __cdecl _mm256_permutevar_ps(__m256 m1, __m256i control); extern __m128 __cdecl _mm_permutevar_ps(__m128 a, __m128i control); /* * Permute Single-Precision Floating-Point Values * **** VPERMILPS ymm1, ymm2/m256, imm8 * **** VPERMILPS xmm1, xmm2/m128, imm8 * Permute Single-Precision Floating-Point values in the first source operand * using four 2-bit control fields in the 8-bit immediate and store results * in the destination */ extern __m256 __cdecl _mm256_permute_ps(__m256 m1, int control); extern __m128 __cdecl _mm_permute_ps(__m128 a, int control); /* * Permute Double-Precision Floating-Point Values * **** VPERMILPD ymm1, ymm2, ymm3/m256 * **** VPERMILPD xmm1, xmm2, xmm3/m128 * Permute Double-Precision Floating-Point values in the first source operand * using 8-bit control fields in the low bytes of the second source operand * and store results in the destination */ extern __m256d __cdecl _mm256_permutevar_pd(__m256d m1, __m256i control); extern __m128d __cdecl _mm_permutevar_pd(__m128d a, __m128i control); /* * Permute Double-Precision Floating-Point Values * **** VPERMILPD ymm1, ymm2/m256, imm8 * **** VPERMILPD xmm1, xmm2/m128, imm8 * Permute Double-Precision Floating-Point values in the first source operand * using two, 1-bit control fields in the low 2 bits of the 8-bit immediate * and store results in the destination */ extern __m256d __cdecl _mm256_permute_pd(__m256d m1, int control); extern __m128d __cdecl _mm_permute_pd(__m128d a, int control); /* * Permute Floating-Point Values * **** VPERM2F128 ymm1, ymm2, ymm3/m256, imm8 * Permute 128 bit floating-point-containing fields from the first source * operand and second source operand using bits in the 8-bit immediate and * store results in the destination */ extern __m256 __cdecl _mm256_permute2f128_ps(__m256 m1, __m256 m2, int control); extern __m256d __cdecl _mm256_permute2f128_pd(__m256d m1, __m256d m2, int control); extern __m256i __cdecl _mm256_permute2f128_si256(__m256i m1, __m256i m2, int control); /* * Load with Broadcast * **** VBROADCASTSS ymm1, m32 * **** VBROADCASTSS xmm1, m32 * Load floating point values from the source operand and broadcast to all * elements of the destination */ extern __m256 __cdecl _mm256_broadcast_ss(float const *a); extern __m128 __cdecl _mm_broadcast_ss(float const *a); /* * Load with Broadcast * **** VBROADCASTSD ymm1, m64 * Load floating point values from the source operand and broadcast to all * elements of the destination */ extern __m256d __cdecl _mm256_broadcast_sd(double const *a); /* * Load with Broadcast * **** VBROADCASTF128 ymm1, m128 * Load floating point values from the source operand and broadcast to all * elements of the destination */ extern __m256 __cdecl _mm256_broadcast_ps(__m128 const *a); extern __m256d __cdecl _mm256_broadcast_pd(__m128d const *a); /* * Insert packed floating-point values * **** VINSERTF128 ymm1, ymm2, xmm3/m128, imm8 * Performs an insertion of 128-bits of packed floating-point values from the * second source operand into an the destination at an 128-bit offset from * imm8[0]. The remaining portions of the destination are written by the * corresponding fields of the first source operand */ extern __m256 __cdecl _mm256_insertf128_ps(__m256, __m128 a, int offset); extern __m256d __cdecl _mm256_insertf128_pd(__m256d, __m128d a, int offset); extern __m256i __cdecl _mm256_insertf128_si256(__m256i, __m128i a, int offset); /* * Move Aligned Packed Double-Precision Floating-Point Values * **** VMOVAPD ymm1, m256 * **** VMOVAPD m256, ymm1 * Moves 4 double-precision floating-point values from the source operand to * the destination */ extern __m256d __cdecl _mm256_load_pd(double const *a); extern void __cdecl _mm256_store_pd(double *a, __m256d b); /* * Move Aligned Packed Single-Precision Floating-Point Values * **** VMOVAPS ymm1, m256 * **** VMOVAPS m256, ymm1 * Moves 8 single-precision floating-point values from the source operand to * the destination */ extern __m256 __cdecl _mm256_load_ps(float const *a); extern void __cdecl _mm256_store_ps(float *a, __m256 b); /* * Move Unaligned Packed Double-Precision Floating-Point Values * **** VMOVUPD ymm1, m256 * **** VMOVUPD m256, ymm1 * Moves 256 bits of packed double-precision floating-point values from the * source operand to the destination */ extern __m256d __cdecl _mm256_loadu_pd(double const *a); extern void __cdecl _mm256_storeu_pd(double *a, __m256d b); /* * Move Unaligned Packed Single-Precision Floating-Point Values * **** VMOVUPS ymm1, m256 * **** VMOVUPS m256, ymm1 * Moves 256 bits of packed single-precision floating-point values from the * source operand to the destination */ extern __m256 __cdecl _mm256_loadu_ps(float const *a); extern void __cdecl _mm256_storeu_ps(float *a, __m256 b); /* * Move Aligned Packed Integer Values * **** VMOVDQA ymm1, m256 * **** VMOVDQA m256, ymm1 * Moves 256 bits of packed integer values from the source operand to the * destination */ extern __m256i __cdecl _mm256_load_si256(__m256i const *a); extern void __cdecl _mm256_store_si256(__m256i *a, __m256i b); /* * Move Unaligned Packed Integer Values * **** VMOVDQU ymm1, m256 * **** VMOVDQU m256, ymm1 * Moves 256 bits of packed integer values from the source operand to the * destination */ extern __m256i __cdecl _mm256_loadu_si256(__m256i const *a); extern void __cdecl _mm256_storeu_si256(__m256i *a, __m256i b); /* * Conditional SIMD Packed Loads and Stores * **** VMASKMOVPD xmm1, xmm2, m128 * **** VMASKMOVPD ymm1, ymm2, m256 * **** VMASKMOVPD m128, xmm1, xmm2 * **** VMASKMOVPD m256, ymm1, ymm2 * * Load forms: * Load packed values from the 128-bit (XMM forms) or 256-bit (YMM forms) * memory location (third operand) into the destination XMM or YMM register * (first operand) using a mask in the first source operand (second operand). * * Store forms: * Stores packed values from the XMM or YMM register in the second source * operand (third operand) into the 128-bit (XMM forms) or 256-bit (YMM forms) * memory location using a mask in first source operand (second operand). * Stores are atomic. */ extern __m256d __cdecl _mm256_maskload_pd(double const *a, __m256i mask); extern void __cdecl _mm256_maskstore_pd(double *a, __m256i mask, __m256d b); extern __m128d __cdecl _mm_maskload_pd(double const *a, __m128i mask); extern void __cdecl _mm_maskstore_pd(double *a, __m128i mask, __m128d b); /* * Conditional SIMD Packed Loads and Stores * **** VMASKMOVPS xmm1, xmm2, m128 * **** VMASKMOVPS ymm1, ymm2, m256 * **** VMASKMOVPS m128, xmm1, xmm2 * **** VMASKMOVPS m256, ymm1, ymm2 * * Load forms: * Load packed values from the 128-bit (XMM forms) or 256-bit (YMM forms) * memory location (third operand) into the destination XMM or YMM register * (first operand) using a mask in the first source operand (second operand). * * Store forms: * Stores packed values from the XMM or YMM register in the second source * operand (third operand) into the 128-bit (XMM forms) or 256-bit (YMM forms) * memory location using a mask in first source operand (second operand). * Stores are atomic. */ extern __m256 __cdecl _mm256_maskload_ps(float const *a, __m256i mask); extern void __cdecl _mm256_maskstore_ps(float *a, __m256i mask, __m256 b); extern __m128 __cdecl _mm_maskload_ps(float const *a, __m128i mask); extern void __cdecl _mm_maskstore_ps(float *a, __m128i mask, __m128 b); /* * Replicate Single-Precision Floating-Point Values * **** VMOVSHDUP ymm1, ymm2/m256 * Duplicates odd-indexed single-precision floating-point values from the * source operand */ extern __m256 __cdecl _mm256_movehdup_ps(__m256 a); /* * Replicate Single-Precision Floating-Point Values * **** VMOVSLDUP ymm1, ymm2/m256 * Duplicates even-indexed single-precision floating-point values from the * source operand */ extern __m256 __cdecl _mm256_moveldup_ps(__m256 a); /* * Replicate Double-Precision Floating-Point Values * **** VMOVDDUP ymm1, ymm2/m256 * Duplicates even-indexed double-precision floating-point values from the * source operand */ extern __m256d __cdecl _mm256_movedup_pd(__m256d a); /* * Move Unaligned Integer * **** VLDDQU ymm1, m256 * The instruction is functionally similar to VMOVDQU YMM, m256 for loading * from memory. That is: 32 bytes of data starting at an address specified by * the source memory operand are fetched from memory and placed in a * destination */ extern __m256i __cdecl _mm256_lddqu_si256(__m256i const *a); /* * Store Packed Integers Using Non-Temporal Hint * **** VMOVNTDQ m256, ymm1 * Moves the packed integers in the source operand to the destination using a * non-temporal hint to prevent caching of the data during the write to memory */ extern void __cdecl _mm256_stream_si256(__m256i *p, __m256i a); /* * Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint * **** VMOVNTPD m256, ymm1 * Moves the packed double-precision floating-point values in the source * operand to the destination operand using a non-temporal hint to prevent * caching of the data during the write to memory */ extern void __cdecl _mm256_stream_pd(double *p, __m256d a); /* * Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint * **** VMOVNTPS m256, ymm1 * Moves the packed single-precision floating-point values in the source * operand to the destination operand using a non-temporal hint to prevent * caching of the data during the write to memory */ extern void __cdecl _mm256_stream_ps(float *p, __m256 a); /* * Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values * **** VRCPPS ymm1, ymm2/m256 * Performs an SIMD computation of the approximate reciprocals of the eight * packed single precision floating-point values in the source operand and * stores the packed single-precision floating-point results in the destination */ extern __m256 __cdecl _mm256_rcp_ps(__m256 a); /* * Compute Approximate Reciprocals of Square Roots of * Packed Single-Precision Floating-point Values * **** VRSQRTPS ymm1, ymm2/m256 * Performs an SIMD computation of the approximate reciprocals of the square * roots of the eight packed single precision floating-point values in the * source operand and stores the packed single-precision floating-point results * in the destination */ extern __m256 __cdecl _mm256_rsqrt_ps(__m256 a); /* * Square Root of Double-Precision Floating-Point Values * **** VSQRTPD ymm1, ymm2/m256 * Performs an SIMD computation of the square roots of the two or four packed * double-precision floating-point values in the source operand and stores * the packed double-precision floating-point results in the destination */ extern __m256d __cdecl _mm256_sqrt_pd(__m256d a); /* * Square Root of Single-Precision Floating-Point Values * **** VSQRTPS ymm1, ymm2/m256 * Performs an SIMD computation of the square roots of the eight packed * single-precision floating-point values in the source operand stores the * packed double-precision floating-point results in the destination */ extern __m256 __cdecl _mm256_sqrt_ps(__m256 a); /* * Round Packed Double-Precision Floating-Point Values * **** VROUNDPD ymm1,ymm2/m256,imm8 * Round the four Double-Precision Floating-Point Values values in the source * operand by the rounding mode specified in the immediate operand and place * the result in the destination. The rounding process rounds the input to an * integral value and returns the result as a double-precision floating-point * value. The Precision Floating Point Exception is signaled according to the * immediate operand. If any source operand is an SNaN then it will be * converted to a QNaN. */ extern __m256d __cdecl _mm256_round_pd(__m256d a, int iRoundMode); /* * Round Packed Single-Precision Floating-Point Values * **** VROUNDPS ymm1,ymm2/m256,imm8 * Round the four single-precision floating-point values values in the source * operand by the rounding mode specified in the immediate operand and place * the result in the destination. The rounding process rounds the input to an * integral value and returns the result as a double-precision floating-point * value. The Precision Floating Point Exception is signaled according to the * immediate operand. If any source operand is an SNaN then it will be * converted to a QNaN. */ extern __m256 __cdecl _mm256_round_ps(__m256 a, int iRoundMode); /* * Unpack and Interleave High Packed Double-Precision Floating-Point Values * **** VUNPCKHPD ymm1,ymm2,ymm3/m256 * Performs an interleaved unpack of the high double-precision floating-point * values from the first source operand and the second source operand. */ extern __m256d __cdecl _mm256_unpackhi_pd(__m256d m1, __m256d m2); /* * Unpack and Interleave High Packed Single-Precision Floating-Point Values * **** VUNPCKHPS ymm1,ymm2,ymm3 * Performs an interleaved unpack of the high single-precision floating-point * values from the first source operand and the second source operand */ extern __m256 __cdecl _mm256_unpackhi_ps(__m256 m1, __m256 m2); /* * Unpack and Interleave Low Packed Double-Precision Floating-Point Values * **** VUNPCKLPD ymm1,ymm2,ymm3/m256 * Performs an interleaved unpack of the low double-precision floating-point * values from the first source operand and the second source operand */ extern __m256d __cdecl _mm256_unpacklo_pd(__m256d m1, __m256d m2); /* * Unpack and Interleave Low Packed Single-Precision Floating-Point Values * **** VUNPCKLPS ymm1,ymm2,ymm3 * Performs an interleaved unpack of the low single-precision floating-point * values from the first source operand and the second source operand */ extern __m256 __cdecl _mm256_unpacklo_ps(__m256 m1, __m256 m2); /* * Packed Bit Test * **** VPTEST ymm1, ymm2/m256 * VPTEST set the ZF flag if all bits in the result are 0 of the bitwise AND * of the first source operand and the second source operand. VPTEST sets the * CF flag if all bits in the result are 0 of the bitwise AND of the second * source operand and the logical NOT of the destination. */ extern int __cdecl _mm256_testz_si256(__m256i s1, __m256i s2); extern int __cdecl _mm256_testc_si256(__m256i s1, __m256i s2); extern int __cdecl _mm256_testnzc_si256(__m256i s1, __m256i s2); /* * Packed Bit Test * **** VTESTPD ymm1, ymm2/m256 * **** VTESTPD xmm1, xmm2/m128 * VTESTPD performs a bitwise comparison of all the sign bits of the * double-precision elements in the first source operation and corresponding * sign bits in the second source operand. If the AND of the two sets of bits * produces all zeros, the ZF is set else the ZF is clear. If the AND NOT of * the source sign bits with the dest sign bits produces all zeros the CF is * set else the CF is clear */ extern int __cdecl _mm256_testz_pd(__m256d s1, __m256d s2); extern int __cdecl _mm256_testc_pd(__m256d s1, __m256d s2); extern int __cdecl _mm256_testnzc_pd(__m256d s1, __m256d s2); extern int __cdecl _mm_testz_pd(__m128d s1, __m128d s2); extern int __cdecl _mm_testc_pd(__m128d s1, __m128d s2); extern int __cdecl _mm_testnzc_pd(__m128d s1, __m128d s2); /* * Packed Bit Test * **** VTESTPS ymm1, ymm2/m256 * **** VTESTPS xmm1, xmm2/m128 * VTESTPS performs a bitwise comparison of all the sign bits of the packed * single-precision elements in the first source operation and corresponding * sign bits in the second source operand. If the AND of the two sets of bits * produces all zeros, the ZF is set else the ZF is clear. If the AND NOT of * the source sign bits with the dest sign bits produces all zeros the CF is * set else the CF is clear */ extern int __cdecl _mm256_testz_ps(__m256 s1, __m256 s2); extern int __cdecl _mm256_testc_ps(__m256 s1, __m256 s2); extern int __cdecl _mm256_testnzc_ps(__m256 s1, __m256 s2); extern int __cdecl _mm_testz_ps(__m128 s1, __m128 s2); extern int __cdecl _mm_testc_ps(__m128 s1, __m128 s2); extern int __cdecl _mm_testnzc_ps(__m128 s1, __m128 s2); /* * Extract Double-Precision Floating-Point Sign mask * **** VMOVMSKPD r32, ymm2 * Extracts the sign bits from the packed double-precision floating-point * values in the source operand, formats them into a 4-bit mask, and stores * the mask in the destination */ extern int __cdecl _mm256_movemask_pd(__m256d a); /* * Extract Single-Precision Floating-Point Sign mask * **** VMOVMSKPS r32, ymm2 * Extracts the sign bits from the packed single-precision floating-point * values in the source operand, formats them into a 8-bit mask, and stores * the mask in the destination */ extern int __cdecl _mm256_movemask_ps(__m256 a); /* * Return 256-bit vector with all elements set to 0 */ extern __m256d __cdecl _mm256_setzero_pd(void); extern __m256 __cdecl _mm256_setzero_ps(void); extern __m256i __cdecl _mm256_setzero_si256(void); /* * Return 256-bit vector intialized to specified arguments */ extern __m256d __cdecl _mm256_set_pd(double, double, double, double); extern __m256 __cdecl _mm256_set_ps(float, float, float, float, float, float, float, float); extern __m256i __cdecl _mm256_set_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char); extern __m256i __cdecl _mm256_set_epi16(short, short, short, short, short, short, short, short, short, short, short, short, short, short, short, short); extern __m256i __cdecl _mm256_set_epi32(int, int, int, int, int, int, int, int); extern __m256i __cdecl _mm256_set_epi64x(long long, long long, long long, long long); extern __m256d __cdecl _mm256_setr_pd(double, double, double, double); extern __m256 __cdecl _mm256_setr_ps(float, float, float, float, float, float, float, float); extern __m256i __cdecl _mm256_setr_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char); extern __m256i __cdecl _mm256_setr_epi16(short, short, short, short, short, short, short, short, short, short, short, short, short, short, short, short); extern __m256i __cdecl _mm256_setr_epi32(int, int, int, int, int, int, int, int); extern __m256i __cdecl _mm256_setr_epi64x(long long, long long, long long, long long); /* * Return 256-bit vector with all elements intialized to specified scalar */ extern __m256d __cdecl _mm256_set1_pd(double); extern __m256 __cdecl _mm256_set1_ps(float); extern __m256i __cdecl _mm256_set1_epi8(char); extern __m256i __cdecl _mm256_set1_epi16(short); extern __m256i __cdecl _mm256_set1_epi32(int); extern __m256i __cdecl _mm256_set1_epi64x(long long); /* * Support intrinsics to do vector type casts. These intrinsics do not introduce * extra moves to generated code. When cast is done from a 128 to 256-bit type * the low 128 bits of the 256-bit result contain source parameter value; the * upper 128 bits of the result are undefined */ extern __m256 __cdecl _mm256_castpd_ps(__m256d a); extern __m256d __cdecl _mm256_castps_pd(__m256 a); extern __m256i __cdecl _mm256_castps_si256(__m256 a); extern __m256i __cdecl _mm256_castpd_si256(__m256d a); extern __m256 __cdecl _mm256_castsi256_ps(__m256i a); extern __m256d __cdecl _mm256_castsi256_pd(__m256i a); extern __m128 __cdecl _mm256_castps256_ps128(__m256 a); extern __m128d __cdecl _mm256_castpd256_pd128(__m256d a); extern __m128i __cdecl _mm256_castsi256_si128(__m256i a); extern __m256 __cdecl _mm256_castps128_ps256(__m128 a); extern __m256d __cdecl _mm256_castpd128_pd256(__m128d a); extern __m256i __cdecl _mm256_castsi128_si256(__m128i a); /* Start of new intrinsics for Dev10 SP1 * * The list of extended control registers. * Currently, the list includes only one register. */ /* Returns the content of the specified extended control register */ extern unsigned __int64 __cdecl _xgetbv(unsigned int ext_ctrl_reg); /* Writes the value to the specified extended control register */ extern void __cdecl _xsetbv(unsigned int ext_ctrl_reg, unsigned __int64 val); /* * Performs a full or partial save of the enabled processor state components * using the the specified memory address location and a mask. */ extern void __cdecl _xsave(void *mem, unsigned __int64 save_mask); extern void __cdecl _xsave64(void *mem, unsigned __int64 save_mask); #line 1094 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" /* * Performs a full or partial save of the enabled processor state components * using the the specified memory address location and a mask. * Optimize the state save operation if possible. */ extern void __cdecl _xsaveopt(void *mem, unsigned __int64 save_mask); extern void __cdecl _xsaveopt64(void *mem, unsigned __int64 save_mask); #line 1104 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" /* * Performs a full or partial restore of the enabled processor states * using the state information stored in the specified memory address location * and a mask. */ extern void __cdecl _xrstor(void *mem, unsigned __int64 restore_mask); extern void __cdecl _xrstor64(void *mem, unsigned __int64 restore_mask); #line 1114 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" /* * Saves the current state of the x87 FPU, MMX technology, XMM, * and MXCSR registers to the specified 512-byte memory location. */ extern void __cdecl _fxsave(void *mem); extern void __cdecl _fxsave64(void *mem); #line 1123 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" /* * Restore the current state of the x87 FPU, MMX technology, XMM, * and MXCSR registers from the specified 512-byte memory location. */ extern void __cdecl _fxrstor(void *mem); extern void __cdecl _fxrstor64(void *mem); #line 1132 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" /* * End of new intrinsics for Dev10 SP1 */ }; /* End "C" */ #line 1142 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" #line 1144 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" #line 1146 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" #line 1147 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\immintrin.h" #line 300 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 301 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 304 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 307 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 308 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 321 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // Components //#define GLM_FORCE_ONLY_XYZW #line 336 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 339 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 343 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 356 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // Static assert #line 370 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // inline // User defines: GLM_FORCE_INLINE #line 385 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 387 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // Swizzle operators // User defines: GLM_SWIZZLE_XYZW GLM_SWIZZLE_RGBA GLM_SWIZZLE_STQP GLM_SWIZZLE #line 403 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // Precision #line 422 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core/setup.hpp" #line 23 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 28 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" //! GLM namespace, it contains all GLSL based features. namespace glm { namespace test { bool main_bug(); bool main_core(); }//namespace test //! GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace. namespace core { //! Scalar, vectors and matrices //! from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section, //! 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification. //! This namespace resolves precision qualifier define in section 4.5 of GLSL 1.30.8 specification. namespace type{} //! Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification. //! Angle and trigonometry, exponential, common, geometric, matrix and vector relational functions. namespace function{} } //namespace core //! G-Truc Creation stable extensions. namespace gtc{} //! G-Truc Creation experimental extensions. //! The interface could change between releases. namespace gtx{} //! VIRTREV extensions. namespace img{} } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/_detail.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-07-24 // Updated : 2008-08-31 // Licence : This source is under MIT License // File : glm/core/_detail.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-11-13 // Updated : 2011-01-26 // Licence : This source is under MIT License // File : glm/setup.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/_detail.hpp" #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cassert" // cassert standard header // NOTE: no include guard #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\assert.h" /*** *assert.h - define the assert macro * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * Defines the assert(exp) macro. * [ANSI/System V] * * [Public] * ****/ #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 15 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\assert.h" extern "C" { #line 27 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\assert.h" __declspec(dllimport) void __cdecl _wassert( const wchar_t * _Message, const wchar_t *_File, unsigned _Line); } #line 33 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\assert.h" #line 37 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\assert.h" #line 5 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cassert" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/_detail.hpp" namespace glm{ namespace detail { class thalf; typedef signed __int64 sint64; typedef unsigned __int64 uint64; #line 41 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/_detail.hpp" template struct If { template static inline T apply(F functor, const T& val) { return functor(val); } }; template<> struct If { template static inline T apply(F, const T& val) { return val; } }; //template //struct traits //{ // static const bool is_signed = false; // static const bool is_float = false; // static const bool is_vector = false; // static const bool is_matrix = false; // static const bool is_genType = false; // static const bool is_genIType = false; // static const bool is_genUType = false; //}; //template <> //struct traits //{ // static const bool is_float = true; // static const bool is_genType = true; //}; //template <> //struct traits //{ // static const bool is_float = true; // static const bool is_genType = true; //}; //template <> //struct traits //{ // static const bool is_float = true; // static const bool is_genType = true; //}; //template //struct desc //{ // typedef genType type; // typedef genType * pointer; // typedef genType const* const_pointer; // typedef genType const *const const_pointer_const; // typedef genType *const pointer_const; // typedef genType & reference; // typedef genType const& const_reference; // typedef genType const& param_type; // typedef typename genType::value_type value_type; // typedef typename genType::size_type size_type; // static const typename size_type value_size; //}; //template //const typename desc::size_type desc::value_size = genType::value_size(); union uif32 { uif32() : i(0) {} uif32(float f) : f(f) {} uif32(unsigned int i) : i(i) {} float f; unsigned int i; }; union uif64 { uif64() : i(0) {} uif64(double f) : f(f) {} uif64(uint64 i) : i(i) {} double f; uint64 i; }; typedef uif32 uif; ////////////////// // int template struct is_int { enum is_int_enum { _YES = 0, _NO = 1 }; }; ////////////////// // uint template struct is_uint { enum is_uint_enum { _YES = 0, _NO = 1 }; }; //GLM_DETAIL_IS_UINT(unsigned long long) ////////////////// // float template struct is_float { enum is_float_enum { _YES = 0, _NO = 1 }; }; ////////////////// // bool template struct is_bool { enum is_bool_enum { _YES = 0, _NO = 1 }; }; template <> struct is_bool { enum is_bool_enum { _YES = 1, _NO = 0 }; }; ////////////////// // vector template struct is_vector { enum is_vector_enum { _YES = 0, _NO = 1 }; }; ////////////////// // matrix template struct is_matrix { enum is_matrix_enum { _YES = 0, _NO = 1 }; }; ////////////////// // type template struct type { enum type_enum { is_float = is_float::_YES, is_int = is_int::_YES, is_uint = is_uint::_YES, is_bool = is_bool::_YES }; }; ////////////////// // type typedef signed char int8; typedef signed short int16; typedef signed int int32; typedef detail::sint64 int64; typedef unsigned char uint8; typedef unsigned short uint16; typedef unsigned int uint32; typedef detail::uint64 uint64; typedef detail::thalf float16; typedef float float32; typedef double float64; }//namespace detail }//namespace glm #line 359 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/_detail.hpp" #line 361 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/_detail.hpp" #line 66 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-01-08 // Updated : 2008-01-08 // Licence : This source is under MIT License // File : glm/core/type.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_half.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-17 // Updated : 2010-02-17 // Licence : This source is under MIT License // File : glm/core/type_half.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstdlib" // cstdlib standard header #pragma once #line 15 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstdlib" namespace std { using :: size_t; using :: div_t; using :: ldiv_t; using :: abort; using :: abs; using :: atexit; using :: atof; using :: atoi; using :: atol; using :: bsearch; using :: calloc; using :: div; using :: exit; using :: free; using :: getenv; using :: labs; using :: ldiv; using :: malloc; using :: mblen; using :: mbstowcs; using :: mbtowc; using :: qsort; using :: rand; using :: realloc; using :: srand; using :: strtod; using :: strtol; using :: strtoul; using :: system; using :: wcstombs; using :: wctomb; using :: lldiv_t; using :: llabs; using :: lldiv; } #line 37 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstdlib" #line 39 "c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include\\cstdlib" /* * Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.20:0009 */ #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_half.hpp" namespace glm { namespace test { bool main_type_half(); }//namespace test namespace detail { typedef short hdata; float toFloat32(hdata value); hdata toFloat16(float const & value); ///16-bit floating point type. /// \ingroup gtc_half_float class thalf { public: // Constructors thalf(); thalf(thalf const & s); template explicit thalf(U const & s); // Cast //operator float(); operator float() const; //operator double(); //operator double() const; // Unary updatable operators thalf& operator= (thalf const & s); thalf& operator+=(thalf const & s); thalf& operator-=(thalf const & s); thalf& operator*=(thalf const & s); thalf& operator/=(thalf const & s); thalf& operator++(); thalf& operator--(); float toFloat() const{return toFloat32(data);} hdata _data() const{return data;} private: hdata data; }; thalf operator+ (thalf const & s1, thalf const & s2); thalf operator- (thalf const & s1, thalf const & s2); thalf operator* (thalf const & s1, thalf const & s2); thalf operator/ (thalf const & s1, thalf const & s2); // Unary constant operators thalf operator- (thalf const & s); thalf operator-- (thalf const & s, int); thalf operator++ (thalf const & s, int); }//namespace detail }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_half.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-17 // Updated : 2009-11-12 // Licence : This source is under MIT License // File : glm/core/type_half.inl /////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright: // This half implementation is based on OpenEXR which is Copyright (c) 2002, // Industrial Light & Magic, a division of Lucas Digital Ltd. LLC /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_detail.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-07-24 // Updated : 2008-08-31 // Licence : This source is under MIT License // File : glm/core/_detail.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_half.inl" namespace glm{ namespace detail { inline float overflow() { volatile float f = 1e10; for(int i = 0; i < 10; ++i) f *= f; // this will overflow before // the for­loop terminates return f; } inline float toFloat32(hdata value) { int s = (value >> 15) & 0x00000001; int e = (value >> 10) & 0x0000001f; int m = value & 0x000003ff; if(e == 0) { if(m == 0) { // // Plus or minus zero // detail::uif result; result.i = s << 31; return result.f; } else { // // Denormalized number -- renormalize it // while(!(m & 0x00000400)) { m <<= 1; e -= 1; } e += 1; m &= ~0x00000400; } } else if(e == 31) { if(m == 0) { // // Positive or negative infinity // uif result; result.i = (s << 31) | 0x7f800000; return result.f; } else { // // Nan -- preserve sign and significand bits // uif result; result.i = (s << 31) | 0x7f800000 | (m << 13); return result.f; } } // // Normalized number // e = e + (127 - 15); m = m << 13; // // Assemble s, e and m. // uif Result; Result.i = (s << 31) | (e << 23) | m; return Result.f; } inline hdata toFloat16(float const & f) { uif Entry; Entry.f = f; int i = Entry.i; // // Our floating point number, f, is represented by the bit // pattern in integer i. Disassemble that bit pattern into // the sign, s, the exponent, e, and the significand, m. // Shift s into the position where it will go in in the // resulting half number. // Adjust e, accounting for the different exponent bias // of float and half (127 versus 15). // register int s = (i >> 16) & 0x00008000; register int e = ((i >> 23) & 0x000000ff) - (127 - 15); register int m = i & 0x007fffff; // // Now reassemble s, e and m into a half: // if(e <= 0) { if(e < -10) { // // E is less than -10. The absolute value of f is // less than half_MIN (f may be a small normalized // float, a denormalized float or a zero). // // We convert f to a _halfGTX zero. // return 0; } // // E is between -10 and 0. F is a normalized float, // whose magnitude is less than __half_NRM_MIN. // // We convert f to a denormalized _halfGTX. // m = (m | 0x00800000) >> (1 - e); // // Round to nearest, round "0.5" up. // // Rounding may cause the significand to overflow and make // our number normalized. Because of the way a half's bits // are laid out, we don't have to treat this case separately; // the code below will handle it correctly. // if(m & 0x00001000) m += 0x00002000; // // Assemble the _halfGTX from s, e (zero) and m. // return hdata(s | (m >> 13)); } else if(e == 0xff - (127 - 15)) { if(m == 0) { // // F is an infinity; convert f to a half // infinity with the same sign as f. // return hdata(s | 0x7c00); } else { // // F is a NAN; we produce a half NAN that preserves // the sign bit and the 10 leftmost bits of the // significand of f, with one exception: If the 10 // leftmost bits are all zero, the NAN would turn // into an infinity, so we have to set at least one // bit in the significand. // m >>= 13; return hdata(s | 0x7c00 | m | (m == 0)); } } else { // // E is greater than zero. F is a normalized float. // We try to convert f to a normalized half. // // // Round to nearest, round "0.5" up // if(m & 0x00001000) { m += 0x00002000; if(m & 0x00800000) { m = 0; // overflow in significand, e += 1; // adjust exponent } } // // Handle exponent overflow // if (e > 30) { overflow(); // Cause a hardware floating point overflow; return hdata(s | 0x7c00); // if this returns, the half becomes an } // infinity with the same sign as f. // // Assemble the half from s, e and m. // return hdata(s | (e << 10) | (m >> 13)); } } inline thalf::thalf() : data(0) {} inline thalf::thalf(thalf const & s) : data(s.data) {} template inline thalf::thalf(U const & s) : data(toFloat16(float(s))) {} // Cast //inline half::operator float() //{ // return toFloat(); //} inline thalf::operator float() const { return toFloat(); } //inline half::operator double() //{ // return double(toFloat()); //} //inline half::operator double() const //{ // return double(toFloat()); //} // Unary updatable operators inline thalf& thalf::operator= (thalf const & s) { data = s.data; return *this; } inline thalf& thalf::operator+=(thalf const & s) { data = toFloat16(toFloat32(data) + toFloat32(s.data)); return *this; } inline thalf& thalf::operator-=(thalf const & s) { data = toFloat16(toFloat32(data) - toFloat32(s.data)); return *this; } inline thalf& thalf::operator*=(thalf const & s) { data = toFloat16(toFloat32(data) * toFloat32(s.data)); return *this; } inline thalf& thalf::operator/=(thalf const & s) { data = toFloat16(toFloat32(data) / toFloat32(s.data)); return *this; } inline thalf& thalf::operator++() { float Casted = toFloat32(data); data = toFloat16(++Casted); return *this; } inline thalf& thalf::operator--() { float Casted = toFloat32(data); data = toFloat16(--Casted); return *this; } ////////////////////////////////////// // Binary arithmetic operators inline detail::thalf operator+ (detail::thalf const & s1, detail::thalf const & s2) { return detail::thalf(float(s1) + float(s2)); } inline detail::thalf operator- (detail::thalf const & s1, detail::thalf const & s2) { return detail::thalf(float(s1) - float(s2)); } inline detail::thalf operator* (detail::thalf const & s1, detail::thalf const & s2) { return detail::thalf(float(s1) * float(s2)); } inline detail::thalf operator/ (detail::thalf const & s1, detail::thalf const & s2) { return detail::thalf(float(s1) / float(s2)); } // Unary constant operators inline detail::thalf operator- (detail::thalf const & s) { return detail::thalf(-float(s)); } inline detail::thalf operator-- (detail::thalf const & s, int) { return detail::thalf(float(s) - 1.0f); } inline detail::thalf operator++ (detail::thalf const & s, int) { return detail::thalf(float(s) + 1.0f); } }//namespace detail }//namespace glm #line 86 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_half.hpp" #line 88 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_half.hpp" #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2010-02-08 // Licence : This source is under MIT License // File : glm/core/type_float.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_half.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-17 // Updated : 2010-02-17 // Licence : This source is under MIT License // File : glm/core/type_half.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-11-13 // Updated : 2011-01-26 // Licence : This source is under MIT License // File : glm/setup.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" namespace glm { namespace detail { template <> struct is_float { enum is_float_enum { _YES = 1, _NO = 0 }; }; template <> struct is_float { enum is_float_enum { _YES = 1, _NO = 0 }; }; template <> struct is_float { enum is_float_enum { _YES = 1, _NO = 0 }; }; template <> struct is_float { enum is_float_enum { _YES = 1, _NO = 0 }; }; } //namespace detail namespace core{ namespace type{ namespace precision { typedef float lowp_float_t; #line 37 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" typedef float mediump_float_t; typedef double highp_float_t; //! Low precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification //! \ingroup core_precision typedef lowp_float_t lowp_float; //! Medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification //! \ingroup core_precision typedef mediump_float_t mediump_float; //! High precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification //! \ingroup core_precision typedef highp_float_t highp_float; } //namespace precision typedef precision::mediump_float float_t; #line 70 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" }//namespace type }//namespace core }//namespace glm #line 76 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2008-09-17 // Licence : This source is under MIT License // File : glm/core/type_int.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\setup.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-11-13 // Updated : 2011-01-26 // Licence : This source is under MIT License // File : glm/setup.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_detail.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-07-24 // Updated : 2008-08-31 // Licence : This source is under MIT License // File : glm/core/_detail.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" namespace glm { namespace detail { typedef signed short lowp_int_t; typedef signed int mediump_int_t; typedef sint64 highp_int_t; typedef unsigned short lowp_uint_t; typedef unsigned int mediump_uint_t; typedef uint64 highp_uint_t; template <> struct is_int { enum is_int_enum { _YES = 1, _NO = 0 }; }; template <> struct is_int { enum is_int_enum { _YES = 1, _NO = 0 }; }; template <> struct is_int { enum is_int_enum { _YES = 1, _NO = 0 }; }; template <> struct is_int { enum is_int_enum { _YES = 1, _NO = 0 }; }; template <> struct is_int { enum is_int_enum { _YES = 1, _NO = 0 }; }; template <> struct is_uint { enum is_uint_enum { _YES = 1, _NO = 0 }; }; template <> struct is_uint { enum is_uint_enum { _YES = 1, _NO = 0 }; }; template <> struct is_uint { enum is_uint_enum { _YES = 1, _NO = 0 }; }; template <> struct is_uint { enum is_uint_enum { _YES = 1, _NO = 0 }; }; template <> struct is_uint { enum is_uint_enum { _YES = 1, _NO = 0 }; }; } //namespace detail namespace core{ namespace type{ ///namespace for precision stuff. namespace precision { //! Low precision signed integer. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification. //! \ingroup core_precision typedef detail::lowp_int_t lowp_int; //! Medium precision signed integer. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification. //! \ingroup core_precision typedef detail::mediump_int_t mediump_int; //! High precision signed integer. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification. //! \ingroup core_precision typedef detail::highp_int_t highp_int; //! Low precision unsigned integer. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification. //! \ingroup core_precision typedef detail::lowp_uint_t lowp_uint; //! Medium precision unsigned integer. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification. //! \ingroup core_precision typedef detail::mediump_uint_t mediump_uint; //! High precision unsigned integer. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification. //! \ingroup core_precision typedef detail::highp_uint_t highp_uint; } //namespace precision typedef precision::mediump_int int_t; #line 94 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" typedef precision::mediump_uint uint_t; #line 107 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" //! Unsigned integer. //! From GLSL 1.30.8 specification section 4.1.3 Integers. typedef uint_t uint; }//namespace type }//namespace core }//namespace glm #line 117 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" #line 16 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_gentype.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-10-05 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_gentype.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_size.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-10-05 // Updated : 2008-10-05 // Licence : This source is under MIT License // File : glm/core/type_size.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { //typedef std::size_t size_t; typedef int sizeType; }//namespace detail }//namespace glm #line 25 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_size.hpp" #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_gentype.hpp" namespace glm { enum profile { nice, fast, simd }; namespace detail { template < typename VALTYPE, template class TYPE > struct genType { public: enum ctor{null}; typedef VALTYPE value_type; typedef VALTYPE & value_reference; typedef VALTYPE * value_pointer; typedef VALTYPE const * value_const_pointer; typedef TYPE bool_type; typedef sizeType size_type; static bool is_vector(); static bool is_matrix(); typedef TYPE type; typedef TYPE * pointer; typedef TYPE const * const_pointer; typedef TYPE const * const const_pointer_const; typedef TYPE * const pointer_const; typedef TYPE & reference; typedef TYPE const & const_reference; typedef TYPE const & param_type; ////////////////////////////////////// // Address (Implementation details) value_const_pointer value_address() const{return value_pointer(this);} value_pointer value_address(){return value_pointer(this);} //protected: // enum kind // { // GEN_TYPE, // VEC_TYPE, // MAT_TYPE // }; // typedef typename TYPE::kind kind; }; template < typename VALTYPE, template class TYPE > bool genType::is_vector() { return true; } /* template class base { public: ////////////////////////////////////// // Traits typedef sizeType size_type; typedef valTypeT value_type; typedef base class_type; typedef base bool_type; typedef base col_type; typedef base row_type; typedef base transpose_type; static size_type col_size(); static size_type row_size(); static size_type value_size(); static bool is_scalar(); static bool is_vector(); static bool is_matrix(); private: // Data col_type value[colT]; public: ////////////////////////////////////// // Constructors base(); base(class_type const & m); explicit base(value_type const & x); explicit base(value_type const * const x); explicit base(col_type const * const x); ////////////////////////////////////// // Conversions template explicit base(base const & m); ////////////////////////////////////// // Accesses col_type& operator[](size_type i); col_type const & operator[](size_type i) const; ////////////////////////////////////// // Unary updatable operators class_type& operator= (class_type const & x); class_type& operator+= (value_type const & x); class_type& operator+= (class_type const & x); class_type& operator-= (value_type const & x); class_type& operator-= (class_type const & x); class_type& operator*= (value_type const & x); class_type& operator*= (class_type const & x); class_type& operator/= (value_type const & x); class_type& operator/= (class_type const & x); class_type& operator++ (); class_type& operator-- (); }; */ }//namespace detail }//namespace glm //#include "type_gentype.inl" #line 151 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_gentype.hpp" #line 18 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-25 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/type_vec1.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/type_vec.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_gentype.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-10-05 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_gentype.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec.hpp" namespace glm{ namespace detail { }//namespace detail }//namespace glm #line 23 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec.hpp" #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2010-02-08 // Licence : This source is under MIT License // File : glm/core/type_float.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2008-09-17 // Licence : This source is under MIT License // File : glm/core/type_int.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 16 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_size.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-10-05 // Updated : 2008-10-05 // Licence : This source is under MIT License // File : glm/core/type_size.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 17 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-04-20 // Updated : 2008-08-22 // Licence : This source is under MIT License // File : glm/core/_swizzle.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { enum comp { X = 0, R = 0, S = 0, Y = 1, G = 1, T = 1, Z = 2, B = 2, P = 2, W = 3, A = 3, Q = 3 }; }//namespace glm #line 52 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 73 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 94 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 163 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 232 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 301 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 562 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 823 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 1084 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 1086 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" #line 18 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" namespace glm { namespace test { void main_vec1(); }//namespace test namespace detail { template struct tref1; template struct tref2; template struct tref3; template struct tref4; template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tvec1 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; static size_type value_size(); typedef tvec1 type; typedef tvec1 bool_type; ////////////////////////////////////// // Data #line 55 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" union {value_type x, r, s;}; #line 57 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" ////////////////////////////////////// // Accesses value_type & operator[](size_type i); value_type const & operator[](size_type i) const; ////////////////////////////////////// // Implicit basic constructors tvec1(); tvec1(tvec1 const & v); ////////////////////////////////////// // Explicit basic constructors explicit tvec1( ctor); explicit tvec1( value_type const & s); ////////////////////////////////////// // Swizzle constructors tvec1(tref1 const & r); ////////////////////////////////////// // Convertion scalar constructors //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec1(U const & s); ////////////////////////////////////// // Convertion vector constructors //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec1(tvec2 const & v); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec1(tvec3 const & v); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec1(tvec4 const & v); ////////////////////////////////////// // Unary arithmetic operators tvec1 & operator= (tvec1 const & v); tvec1 & operator+=(value_type const & s); tvec1 & operator+=(tvec1 const & v); tvec1 & operator-=(value_type const & s); tvec1 & operator-=(tvec1 const & v); tvec1 & operator*=(value_type const & s); tvec1 & operator*=(tvec1 const & v); tvec1 & operator/=(value_type const & s); tvec1 & operator/=(tvec1 const & v); tvec1 & operator++(); tvec1 & operator--(); ////////////////////////////////////// // Unary bit operators tvec1 & operator%=(value_type const & s); tvec1 & operator%=(tvec1 const & v); tvec1 & operator&=(value_type const & s); tvec1 & operator&=(tvec1 const & v); tvec1 & operator|=(value_type const & s); tvec1 & operator|=(tvec1 const & v); tvec1 & operator^=(value_type const & s); tvec1 & operator^=(tvec1 const & v); tvec1 & operator<<=(value_type const & s); tvec1 & operator<<=(tvec1 const & v); tvec1 & operator>>=(value_type const & s); tvec1 & operator>>=(tvec1 const & v); ////////////////////////////////////// // Swizzle operators value_type swizzle(comp X) const; tvec2 swizzle(comp X, comp Y) const; tvec3 swizzle(comp X, comp Y, comp Z) const; tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; tref1 swizzle(comp X); }; template struct tref1 { tref1(T & x); tref1(tref1 const & r); tref1(tvec1 const & v); tref1 & operator= (tref1 const & r); tref1 & operator= (tvec1 const & v); T& x; }; template struct is_vector > { enum is_vector_enum { _YES = 1, _NO = 0 }; }; typedef detail::tvec1 highp_vec1_t; typedef detail::tvec1 mediump_vec1_t; typedef detail::tvec1 lowp_vec1_t; typedef detail::tvec1 highp_ivec1_t; typedef detail::tvec1 mediump_ivec1_t; typedef detail::tvec1 lowp_ivec1_t; typedef detail::tvec1 highp_uvec1_t; typedef detail::tvec1 mediump_uvec1_t; typedef detail::tvec1 lowp_uvec1_t; } //namespace detail }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-25 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/type_vec1.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace detail { template inline typename tvec1::size_type tvec1::value_size() { return 1; } ////////////////////////////////////// // Accesses template inline typename tvec1::value_type & tvec1::operator[] ( size_type i ) { (void)( (!!(i < value_size())) || (_wassert(L"i < value_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.inl", 29), 0) ); return (&x)[i]; } template inline typename tvec1::value_type const & tvec1::operator[] ( size_type i ) const { (void)( (!!(i < value_size())) || (_wassert(L"i < value_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.inl", 39), 0) ); return (&x)[i]; } ////////////////////////////////////// // Implicit basic constructors template inline tvec1::tvec1() : x(value_type(0)) {} template inline tvec1::tvec1 ( ctor ) {} template inline tvec1::tvec1 ( tvec1 const & v ) : x(v.x) {} ////////////////////////////////////// // Explicit basic constructors template inline tvec1::tvec1 ( value_type const & s ) : x(s) {} ////////////////////////////////////// // Swizzle constructors template inline tvec1::tvec1 ( tref1 const & r ) : x(r.x) {} ////////////////////////////////////// // Convertion scalar constructors template template inline tvec1::tvec1 ( U const & s ) : x(value_type(s)) {} ////////////////////////////////////// // Convertion vector constructors template template inline tvec1::tvec1 ( tvec2 const & v ) : x(value_type(v.x)) {} template template inline tvec1::tvec1 ( tvec3 const & v ) : x(value_type(v.x)) {} template template inline tvec1::tvec1 ( tvec4 const & v ) : x(value_type(v.x)) {} ////////////////////////////////////// // Unary arithmetic operators template inline tvec1 & tvec1::operator= ( tvec1 const & v ) { this->x = v.x; return *this; } template inline tvec1 & tvec1::operator+= ( value_type const & s ) { this->x += s; return *this; } template inline tvec1 & tvec1::operator+= ( tvec1 const & v ) { this->x += v.x; return *this; } template inline tvec1 & tvec1::operator-= ( value_type const & s ) { this->x -= s; return *this; } template inline tvec1 & tvec1::operator-= ( tvec1 const & v ) { this->x -= v.x; return *this; } template inline tvec1 & tvec1::operator*= ( value_type const & s ) { this->x *= s; return *this; } template inline tvec1 & tvec1::operator*= ( tvec1 const & v ) { this->x *= v.x; return *this; } template inline tvec1 & tvec1::operator/= ( value_type const & s ) { this->x /= s; return *this; } template inline tvec1 & tvec1::operator/= ( tvec1 const & v ) { this->x /= v.x; return *this; } template inline tvec1 & tvec1::operator++() { ++this->x; return *this; } template inline tvec1 & tvec1::operator--() { --this->x; return *this; } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tvec1 const & v1, tvec1 const & v2 ) { return (v1.x == v2.x); } template inline bool operator!= ( tvec1 const & v1, tvec1 const & v2 ) { return (v1.x != v2.x); } ////////////////////////////////////// // Unary bit operators template inline tvec1 & tvec1::operator%= ( value_type const & s ) { this->x %= s; return *this; } template inline tvec1 & tvec1::operator%= ( tvec1 const & v ) { this->x %= v.x; return *this; } template inline tvec1 & tvec1::operator&= ( value_type const & s ) { this->x &= s; return *this; } template inline tvec1 & tvec1::operator&= ( tvec1 const & v ) { this->x &= v.x; return *this; } template inline tvec1 & tvec1::operator|= ( value_type const & s ) { this->x |= s; return *this; } template inline tvec1 & tvec1::operator|= ( tvec1 const & v ) { this->x |= v.x; return *this; } template inline tvec1 & tvec1::operator^= ( value_type const & s ) { this->x ^= s; return *this; } template inline tvec1 & tvec1::operator^= ( tvec1 const & v ) { this->x ^= v.x; return *this; } template inline tvec1 & tvec1::operator<<= ( value_type const & s ) { this->x <<= s; return *this; } template inline tvec1 & tvec1::operator<<= ( tvec1 const & v ) { this->x <<= v.x; return *this; } template inline tvec1 & tvec1::operator>>= ( value_type const & s ) { this->x >>= s; return *this; } template inline tvec1 & tvec1::operator>>= ( tvec1 const & v ) { this->x >>= v.x; return *this; } ////////////////////////////////////// // Swizzle operators template inline T tvec1::swizzle(comp x) const { return (*this)[x]; } template inline tvec2 tvec1::swizzle ( comp x, comp y ) const { return tvec2( (*this)[x], (*this)[y]); } template inline tvec3 tvec1::swizzle ( comp x, comp y, comp z ) const { return tvec3( (*this)[x], (*this)[y], (*this)[z]); } template inline tvec4 tvec1::swizzle ( comp x, comp y, comp z, comp w ) const { return tvec4( (*this)[x], (*this)[y], (*this)[z], (*this)[w]); } template inline tref1 tvec1::swizzle ( comp x ) { return tref1( (*this)[x]); } ////////////////////////////////////// // Binary arithmetic operators template inline tvec1 operator+ ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x + s); } template inline tvec1 operator+ ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s + v.x); } template inline tvec1 operator+ ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x + v2.x); } //operator- template inline tvec1 operator- ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x - s); } template inline tvec1 operator- ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s - v.x); } template inline tvec1 operator- ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x - v2.x); } //operator* template inline tvec1 operator* ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x * s); } template inline tvec1 operator* ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s * v.x); } template inline tvec1 operator* ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x * v2.x); } //operator/ template inline tvec1 operator/ ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x / s); } template inline tvec1 operator/ ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s / v.x); } template inline tvec1 operator/ ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x / v2.x); } // Unary constant operators template inline tvec1 operator- ( tvec1 const & v ) { return tvec1( -v.x); } template inline tvec1 operator++ ( tvec1 const & v, int ) { return tvec1( v.x + T(1)); } template inline tvec1 operator-- ( tvec1 const & v, int ) { return tvec1( v.x - T(1)); } ////////////////////////////////////// // Binary bit operators template inline tvec1 operator% ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x % s); } template inline tvec1 operator% ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s % v.x); } template inline tvec1 operator% ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x % v2.x); } template inline tvec1 operator& ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x & s); } template inline tvec1 operator& ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s & v.x); } template inline tvec1 operator& ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x & v2.x); } template inline tvec1 operator| ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x | s); } template inline tvec1 operator| ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s | v.x); } template inline tvec1 operator| ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x | v2.x); } template inline tvec1 operator^ ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x ^ s); } template inline tvec1 operator^ ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s ^ v.x); } template inline tvec1 operator^ ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x ^ v2.x); } template inline tvec1 operator<< ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x << s); } template inline tvec1 operator<< ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s << v.x); } template inline tvec1 operator<< ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x << v2.x); } template inline tvec1 operator>> ( tvec1 const & v, typename tvec1::value_type const & s ) { return tvec1( v.x >> s); } template inline tvec1 operator>> ( typename tvec1::value_type const & s, tvec1 const & v ) { return tvec1( s >> v.x); } template inline tvec1 operator>> ( tvec1 const & v1, tvec1 const & v2 ) { return tvec1( v1.x >> v2.x); } template inline tvec1 operator~ ( tvec1 const & v ) { return tvec1( ~v.x); } ////////////////////////////////////// // tref definition template inline tref1::tref1 ( T & x ) : x(x) {} template inline tref1::tref1 ( tref1 const & r ) : x(r.x) {} template inline tref1::tref1 ( tvec1 const & v ) : x(v.x) {} template inline tref1 & tref1::operator= ( tref1 const & r ) { x = r.x; return *this; } template inline tref1 & tref1::operator= ( tvec1 const & v ) { x = v.x; return *this; } }//namespace detail }//namespace glm #line 175 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" #line 176 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" #line 178 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec1.hpp" #line 20 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-18 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/type_tvec2.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/type_vec.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2010-02-08 // Licence : This source is under MIT License // File : glm/core/type_float.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2008-09-17 // Licence : This source is under MIT License // File : glm/core/type_int.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 16 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_size.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-10-05 // Updated : 2008-10-05 // Licence : This source is under MIT License // File : glm/core/type_size.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 17 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-04-20 // Updated : 2008-08-22 // Licence : This source is under MIT License // File : glm/core/_swizzle.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 18 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" namespace glm { namespace test { void main_vec2(); } //namespace test namespace detail { template struct tref2; template struct tref3; template struct tref4; template struct tvec3; template struct tvec4; //! The basic 2D vector type. //! \ingroup core_template template struct tvec2 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; static size_type value_size(); typedef tvec2 type; typedef tvec2 bool_type; ////////////////////////////////////// // Data #line 55 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" union { struct{value_type x, y;}; struct{value_type r, g;}; struct{value_type s, t;}; }; #line 65 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" ////////////////////////////////////// // Accesses value_type & operator[](size_type i); value_type const & operator[](size_type i) const; ////////////////////////////////////// // Implicit basic constructors tvec2(); tvec2(tvec2 const & v); ////////////////////////////////////// // Explicit basic constructors explicit tvec2( ctor); explicit tvec2( value_type const & s); explicit tvec2( value_type const & s1, value_type const & s2); ////////////////////////////////////// // Swizzle constructors tvec2(tref2 const & r); ////////////////////////////////////// // Convertion scalar constructors //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec2( U const & x); //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec2( U const & x, V const & y); ////////////////////////////////////// // Convertion vector constructors //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec2(tvec2 const & v); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec2(tvec3 const & v); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec2(tvec4 const & v); ////////////////////////////////////// // Unary arithmetic operators tvec2 & operator= (tvec2 const & v); template tvec2 & operator= (tvec2 const & v); template tvec2 & operator+=(U const & s); template tvec2 & operator+=(tvec2 const & v); template tvec2 & operator-=(U const & s); template tvec2 & operator-=(tvec2 const & v); template tvec2 & operator*=(U const & s); template tvec2 & operator*=(tvec2 const & v); template tvec2 & operator/=(U const & s); template tvec2 & operator/=(tvec2 const & v); tvec2 & operator++(); tvec2 & operator--(); ////////////////////////////////////// // Unary bit operators template tvec2 & operator%= (U const & s); template tvec2 & operator%= (tvec2 const & v); template tvec2 & operator&= (U const & s); template tvec2 & operator&= (tvec2 const & v); template tvec2 & operator|= (U const & s); template tvec2 & operator|= (tvec2 const & v); template tvec2 & operator^= (U const & s); template tvec2 & operator^= (tvec2 const & v); template tvec2 & operator<<=(U const & s); template tvec2 & operator<<=(tvec2 const & v); template tvec2 & operator>>=(U const & s); template tvec2 & operator>>=(tvec2 const & v); ////////////////////////////////////// // Swizzle operators value_type swizzle(comp X) const; tvec2 swizzle(comp X, comp Y) const; tvec3 swizzle(comp X, comp Y, comp Z) const; tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; tref2 swizzle(comp X, comp Y); }; template struct tref2 { tref2(T & x, T & y); tref2(tref2 const & r); tref2(tvec2 const & v); tref2 & operator= (tref2 const & r); tref2 & operator= (tvec2 const & v); T& x; T& y; }; template struct is_vector > { enum is_vector_enum { _YES = 1, _NO = 0 }; }; } //namespace detail namespace core{ namespace type{ namespace precision { //! 2 components vector of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 highp_vec2; //! 2 components vector of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 mediump_vec2; //! 2 components vector of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 lowp_vec2; //! 2 components vector of high precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 highp_ivec2; //! 2 components vector of medium precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 mediump_ivec2; //! 2 components vector of low precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 lowp_ivec2; //! 2 components vector of high precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 highp_uvec2; //! 2 components vector of medium precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 mediump_uvec2; //! 2 components vector of low precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec2 lowp_uvec2; } //namespace precision }//namespace type }//namespace core }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-18 // Updated : 2010-10-26 // Licence : This source is under MIT License // File : glm/core/type_tvec2.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace detail { template inline typename tvec2::size_type tvec2::value_size() { return 2; } ////////////////////////////////////// // Accesses template inline typename tvec2::value_type & tvec2::operator[] ( size_type i ) { (void)( (!!(i < value_size())) || (_wassert(L"i < value_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.inl", 30), 0) ); return (&x)[i]; } template inline typename tvec2::value_type const & tvec2::operator[] ( size_type i ) const { (void)( (!!(i < value_size())) || (_wassert(L"i < value_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.inl", 41), 0) ); return (&x)[i]; } ////////////////////////////////////// // Implicit basic constructors template inline tvec2::tvec2() : x(value_type(0)), y(value_type(0)) {} template inline tvec2::tvec2 ( ctor ) {} template inline tvec2::tvec2 ( tvec2 const & v ) : x(v.x), y(v.y) {} ////////////////////////////////////// // Explicit basic constructors template inline tvec2::tvec2 ( value_type const & s ) : x(s), y(s) {} template inline tvec2::tvec2 ( value_type const & s1, value_type const & s2 ) : x(s1), y(s2) {} ////////////////////////////////////// // Swizzle constructors template inline tvec2::tvec2 ( tref2 const & r ) : x(r.x), y(r.y) {} ////////////////////////////////////// // Convertion scalar constructors template template inline tvec2::tvec2 ( U const & x ) : x(value_type(x)), y(value_type(x)) {} template template inline tvec2::tvec2 ( U const & x, V const & y ) : x(value_type(x)), y(value_type(y)) {} ////////////////////////////////////// // Convertion vector constructors template template inline tvec2::tvec2 ( tvec2 const & v ) : x(value_type(v.x)), y(value_type(v.y)) {} template template inline tvec2::tvec2 ( tvec3 const & v ) : x(value_type(v.x)), y(value_type(v.y)) {} template template inline tvec2::tvec2 ( tvec4 const & v ) : x(value_type(v.x)), y(value_type(v.y)) {} ////////////////////////////////////// // Unary arithmetic operators template inline tvec2 & tvec2::operator= ( tvec2 const & v ) { this->x = v.x; this->y = v.y; return *this; } template template inline tvec2 & tvec2::operator= ( tvec2 const & v ) { this->x = T(v.x); this->y = T(v.y); return *this; } template template inline tvec2 & tvec2::operator+= ( U const & s ) { this->x += T(s); this->y += T(s); return *this; } template template inline tvec2 & tvec2::operator+= ( tvec2 const & v ) { this->x += T(v.x); this->y += T(v.y); return *this; } template template inline tvec2 & tvec2::operator-= ( U const & s ) { this->x -= T(s); this->y -= T(s); return *this; } template template inline tvec2 & tvec2::operator-= ( tvec2 const & v ) { this->x -= T(v.x); this->y -= T(v.y); return *this; } template template inline tvec2 & tvec2::operator*= ( U const & s ) { this->x *= T(s); this->y *= T(s); return *this; } template template inline tvec2 & tvec2::operator*= ( tvec2 const & v ) { this->x *= T(v.x); this->y *= T(v.y); return *this; } template template inline tvec2 & tvec2::operator/= ( U const & s ) { this->x /= T(s); this->y /= T(s); return *this; } template template inline tvec2 & tvec2::operator/= ( tvec2 const & v ) { this->x /= T(v.x); this->y /= T(v.y); return *this; } template inline tvec2 & tvec2::operator++() { ++this->x; ++this->y; return *this; } template inline tvec2 & tvec2::operator--() { --this->x; --this->y; return *this; } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tvec2 const & v1, tvec2 const & v2 ) { return (v1.x == v2.x) && (v1.y == v2.y); } template inline bool operator!= ( tvec2 const & v1, tvec2 const & v2 ) { return (v1.x != v2.x) || (v1.y != v2.y); } ////////////////////////////////////// // Unary bit operators template template inline tvec2 & tvec2::operator%= ( U const & s ) { this->x %= T(s); this->y %= T(s); return *this; } template template inline tvec2 & tvec2::operator%= ( tvec2 const & v ) { this->x %= T(v.x); this->y %= T(v.y); return *this; } template template inline tvec2 & tvec2::operator&= ( U const & s ) { this->x &= T(s); this->y &= T(s); return *this; } template template inline tvec2 & tvec2::operator&= ( tvec2 const & v ) { this->x &= T(v.x); this->y &= T(v.y); return *this; } template template inline tvec2 & tvec2::operator|= ( U const & s ) { this->x |= T(s); this->y |= T(s); return *this; } template template inline tvec2 & tvec2::operator|= ( tvec2 const & v ) { this->x |= T(v.x); this->y |= T(v.y); return *this; } template template inline tvec2 & tvec2::operator^= ( U const & s ) { this->x ^= T(s); this->y ^= T(s); return *this; } template template inline tvec2 & tvec2::operator^= ( tvec2 const & v ) { this->x ^= T(v.x); this->y ^= T(v.y); return *this; } template template inline tvec2 & tvec2::operator<<= ( U const & s ) { this->x <<= T(s); this->y <<= T(s); return *this; } template template inline tvec2 & tvec2::operator<<= ( tvec2 const & v ) { this->x <<= T(v.x); this->y <<= T(v.y); return *this; } template template inline tvec2 & tvec2::operator>>= ( U const & s ) { this->x >>= T(s); this->y >>= T(s); return *this; } template template inline tvec2 & tvec2::operator>>= ( tvec2 const & v ) { this->x >>= T(v.x); this->y >>= T(v.y); return *this; } ////////////////////////////////////// // Swizzle operators template inline typename tvec2::value_type tvec2::swizzle ( comp x ) const { return (*this)[x]; } template inline tvec2 tvec2::swizzle ( comp x, comp y ) const { return tvec2( (*this)[x], (*this)[y]); } template inline tvec3 tvec2::swizzle ( comp x, comp y, comp z ) const { return tvec3( (*this)[x], (*this)[y], (*this)[z]); } template inline tvec4 tvec2::swizzle ( comp x, comp y, comp z, comp w ) const { return tvec4( (*this)[x], (*this)[y], (*this)[z], (*this)[w]); } template inline tref2 tvec2::swizzle ( comp x, comp y ) { return tref2( (*this)[x], (*this)[y]); } ////////////////////////////////////// // Binary arithmetic operators template inline tvec2 operator+ ( tvec2 const & v, T const & s ) { return tvec2( v.x + T(s), v.y + T(s)); } template inline tvec2 operator+ ( T const & s, tvec2 const & v ) { return tvec2( T(s) + v.x, T(s) + v.y); } template inline tvec2 operator+ ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x + T(v2.x), v1.y + T(v2.y)); } //operator- template inline tvec2 operator- ( tvec2 const & v, T const & s ) { return tvec2( v.x - T(s), v.y - T(s)); } template inline tvec2 operator- ( T const & s, tvec2 const & v ) { return tvec2( T(s) - v.x, T(s) - v.y); } template inline tvec2 operator- ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x - T(v2.x), v1.y - T(v2.y)); } //operator* template inline tvec2 operator* ( tvec2 const & v, T const & s ) { return tvec2( v.x * T(s), v.y * T(s)); } template inline tvec2 operator* ( T const & s, tvec2 const & v ) { return tvec2( T(s) * v.x, T(s) * v.y); } template inline tvec2 operator* ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x * T(v2.x), v1.y * T(v2.y)); } //operator/ template inline tvec2 operator/ ( tvec2 const & v, T const & s ) { return tvec2( v.x / T(s), v.y / T(s)); } template inline tvec2 operator/ ( T const & s, tvec2 const & v ) { return tvec2( T(s) / v.x, T(s) / v.y); } template inline tvec2 operator/ ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x / T(v2.x), v1.y / T(v2.y)); } // Unary constant operators template inline tvec2 operator- ( tvec2 const & v ) { return tvec2( -v.x, -v.y); } template inline tvec2 operator++ ( tvec2 const & v, int ) { return tvec2( v.x + T(1), v.y + T(1)); } template inline tvec2 operator-- ( tvec2 const & v, int ) { return tvec2( v.x - T(1), v.y - T(1)); } ////////////////////////////////////// // Binary bit operators template inline tvec2 operator% ( tvec2 const & v, T const & s ) { return tvec2( v.x % T(s), v.y % T(s)); } template inline tvec2 operator% ( T const & s, tvec2 const & v ) { return tvec2( T(s) % v.x, T(s) % v.y); } template inline tvec2 operator% ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x % T(v2.x), v1.y % T(v2.y)); } template inline tvec2 operator& ( tvec2 const & v, T const & s ) { return tvec2( v.x & T(s), v.y & T(s)); } template inline tvec2 operator& ( T const & s, tvec2 const & v ) { return tvec2( T(s) & v.x, T(s) & v.y); } template inline tvec2 operator& ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x & T(v2.x), v1.y & T(v2.y)); } template inline tvec2 operator| ( tvec2 const & v, T const & s ) { return tvec2( v.x | T(s), v.y | T(s)); } template inline tvec2 operator| ( T const & s, tvec2 const & v ) { return tvec2( T(s) | v.x, T(s) | v.y); } template inline tvec2 operator| ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x | T(v2.x), v1.y | T(v2.y)); } template inline tvec2 operator^ ( tvec2 const & v, T const & s ) { return tvec2( v.x ^ T(s), v.y ^ T(s)); } template inline tvec2 operator^ ( T const & s, tvec2 const & v ) { return tvec2( T(s) ^ v.x, T(s) ^ v.y); } template inline tvec2 operator^ ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x ^ T(v2.x), v1.y ^ T(v2.y)); } template inline tvec2 operator<< ( tvec2 const & v, T const & s ) { return tvec2( v.x << T(s), v.y << T(s)); } template inline tvec2 operator<< ( T const & s, tvec2 const & v ) { return tvec2( s << T(v.x), s << T(v.y)); } template inline tvec2 operator<< ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x << T(v2.x), v1.y << T(v2.y)); } template inline tvec2 operator>> ( tvec2 const & v, T const & s ) { return tvec2( v.x >> T(s), v.y >> T(s)); } template inline tvec2 operator>> ( T const & s, tvec2 const & v ) { return tvec2( T(s) >> v.x, T(s) >> v.y); } template inline tvec2 operator>> ( tvec2 const & v1, tvec2 const & v2 ) { return tvec2( v1.x >> T(v2.x), v1.y >> T(v2.y)); } template inline tvec2 operator~ ( tvec2 const & v ) { return tvec2( ~v.x, ~v.y); } ////////////////////////////////////// // tref definition template tref2::tref2 ( T & x, T & y ) : x(x), y(y) {} template tref2::tref2 ( tref2 const & r ) : x(r.x), y(r.y) {} template tref2::tref2 ( tvec2 const & v ) : x(v.x), y(v.y) {} template tref2& tref2::operator= ( tref2 const & r ) { x = r.x; y = r.y; return *this; } template tref2& tref2::operator= ( tvec2 const & v ) { x = v.x; y = v.y; return *this; } }//namespace detail }//namespace glm #line 263 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" #line 264 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" #line 266 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec2.hpp" #line 21 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2010-02-03 // Licence : This source is under MIT License // File : glm/core/type_tvec3.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/type_vec.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2010-02-08 // Licence : This source is under MIT License // File : glm/core/type_float.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2008-09-17 // Licence : This source is under MIT License // File : glm/core/type_int.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 16 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_size.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-10-05 // Updated : 2008-10-05 // Licence : This source is under MIT License // File : glm/core/type_size.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 17 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-04-20 // Updated : 2008-08-22 // Licence : This source is under MIT License // File : glm/core/_swizzle.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 18 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" namespace glm { namespace test { void main_vec3(); }//namespace test namespace detail { template struct tref2; template struct tref3; template struct tref4; template struct tvec2; template struct tvec4; //! Basic 3D vector type. //! \ingroup core_template template struct tvec3 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; static size_type value_size(); typedef tvec3 type; typedef tvec3 bool_type; ////////////////////////////////////// // Data #line 54 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" union { struct{value_type x, y, z;}; struct{value_type r, g, b;}; struct{value_type s, t, p;}; }; #line 65 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" ////////////////////////////////////// // Accesses value_type & operator[](size_type i); value_type const & operator[](size_type i) const; ////////////////////////////////////// // Implicit basic constructors tvec3(); tvec3(tvec3 const & v); ////////////////////////////////////// // Explicit basic constructors explicit tvec3( ctor); explicit tvec3( value_type const & s); explicit tvec3( value_type const & s1, value_type const & s2, value_type const & s3); ////////////////////////////////////// // Swizzle constructors tvec3(tref3 const & r); ////////////////////////////////////// // Convertion scalar constructors //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec3( U const & x); //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec3( U const & x, V const & y, W const & z); ////////////////////////////////////// // Convertion vector constructors //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec3(tvec2 const & v, B const & s); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec3(A const & s, tvec2 const & v); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec3(tvec3 const & v); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec3(tvec4 const & v); ////////////////////////////////////// // Unary arithmetic operators tvec3 & operator= (tvec3 const & v); template tvec3 & operator= (tvec3 const & v); template tvec3 & operator+=(U const & s); template tvec3 & operator+=(tvec3 const & v); template tvec3 & operator-=(U const & s); template tvec3 & operator-=(tvec3 const & v); template tvec3 & operator*=(U const & s); template tvec3 & operator*=(tvec3 const & v); template tvec3 & operator/=(U const & s); template tvec3 & operator/=(tvec3 const & v); tvec3 & operator++(); tvec3 & operator--(); ////////////////////////////////////// // Unary bit operators template tvec3 & operator%= (U const & s); template tvec3 & operator%= (tvec3 const & v); template tvec3 & operator&= (U const & s); template tvec3 & operator&= (tvec3 const & v); template tvec3 & operator|= (U const & s); template tvec3 & operator|= (tvec3 const & v); template tvec3 & operator^= (U const & s); template tvec3 & operator^= (tvec3 const & v); template tvec3 & operator<<=(U const & s); template tvec3 & operator<<=(tvec3 const & v); template tvec3 & operator>>=(U const & s); template tvec3 & operator>>=(tvec3 const & v); ////////////////////////////////////// // Swizzle operators value_type swizzle(comp X) const; tvec2 swizzle(comp X, comp Y) const; tvec3 swizzle(comp X, comp Y, comp Z) const; tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; tref3 swizzle(comp X, comp Y, comp Z); }; template struct tref3 { tref3(T & x, T & y, T & z); tref3(tref3 const & r); tref3(tvec3 const & v); tref3 & operator= (tref3 const & r); tref3 & operator= (tvec3 const & v); T & x; T & y; T & z; }; template struct is_vector > { enum is_vector_enum { _YES = 1, _NO = 0 }; }; } //namespace detail namespace core{ namespace type{ namespace precision { //! 3 components vector of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 highp_vec3; //! 3 components vector of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 mediump_vec3; //! 3 components vector of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 lowp_vec3; //! 3 components vector of high precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 highp_ivec3; //! 3 components vector of medium precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 mediump_ivec3; //! 3 components vector of low precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 lowp_ivec3; //! 3 components vector of high precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 highp_uvec3; //! 3 components vector of medium precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 mediump_uvec3; //! 3 components vector of low precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec3 lowp_uvec3; } //namespace precision }//namespace type }//namespace core }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/type_tvec3.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace detail { template inline typename tvec3::size_type tvec3::value_size() { return 3; } ////////////////////////////////////// // Accesses template inline typename tvec3::value_type & tvec3::operator[] ( size_type i ) { (void)( (!!(i < value_size())) || (_wassert(L"i < value_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.inl", 30), 0) ); return (&x)[i]; } template inline typename tvec3::value_type const & tvec3::operator[] ( size_type i ) const { (void)( (!!(i < value_size())) || (_wassert(L"i < value_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.inl", 41), 0) ); return (&x)[i]; } ////////////////////////////////////// // Implicit basic constructors template inline tvec3::tvec3() : x(value_type(0)), y(value_type(0)), z(value_type(0)) {} template inline tvec3::tvec3 ( ctor ) {} template inline tvec3::tvec3 ( tvec3 const & v ) : x(v.x), y(v.y), z(v.z) {} ////////////////////////////////////// // Explicit basic constructors template inline tvec3::tvec3 ( value_type const & s ) : x(s), y(s), z(s) {} template inline tvec3::tvec3 ( value_type const & s0, value_type const & s1, value_type const & s2 ) : x(s0), y(s1), z(s2) {} ////////////////////////////////////// // Swizzle constructors template inline tvec3::tvec3 ( tref3 const & r ) : x(r.x), y(r.y), z(r.z) {} ////////////////////////////////////// // Convertion scalar constructors template template inline tvec3::tvec3 ( U const & s ) : x(value_type(s)), y(value_type(s)), z(value_type(s)) {} template template inline tvec3::tvec3 ( A const & x, B const & y, C const & z ) : x(value_type(x)), y(value_type(y)), z(value_type(z)) {} ////////////////////////////////////// // Convertion vector constructors template template inline tvec3::tvec3 ( tvec2 const & v, B const & s ) : x(value_type(v.x)), y(value_type(v.y)), z(value_type(s)) {} template template inline tvec3::tvec3 ( A const & s, tvec2 const & v ) : x(value_type(s)), y(value_type(v.x)), z(value_type(v.y)) {} template template inline tvec3::tvec3 ( tvec3 const & v ) : x(value_type(v.x)), y(value_type(v.y)), z(value_type(v.z)) {} template template inline tvec3::tvec3 ( tvec4 const & v ) : x(value_type(v.x)), y(value_type(v.y)), z(value_type(v.z)) {} ////////////////////////////////////// // Unary arithmetic operators template inline tvec3& tvec3::operator= ( tvec3 const & v ) { this->x = v.x; this->y = v.y; this->z = v.z; return *this; } template template inline tvec3& tvec3::operator= ( tvec3 const & v ) { this->x = T(v.x); this->y = T(v.y); this->z = T(v.z); return *this; } template template inline tvec3 & tvec3::operator+= ( U const & s ) { this->x += T(s); this->y += T(s); this->z += T(s); return *this; } template template inline tvec3 & tvec3::operator+= ( tvec3 const & v ) { this->x += T(v.x); this->y += T(v.y); this->z += T(v.z); return *this; } template template inline tvec3 & tvec3::operator-= ( U const & s ) { this->x -= T(s); this->y -= T(s); this->z -= T(s); return *this; } template template inline tvec3 & tvec3::operator-= ( tvec3 const & v ) { this->x -= T(v.x); this->y -= T(v.y); this->z -= T(v.z); return *this; } template template inline tvec3 & tvec3::operator*= ( U const & s ) { this->x *= T(s); this->y *= T(s); this->z *= T(s); return *this; } template template inline tvec3 & tvec3::operator*= ( tvec3 const & v ) { this->x *= T(v.x); this->y *= T(v.y); this->z *= T(v.z); return *this; } template template inline tvec3 & tvec3::operator/= ( U const & s ) { this->x /= T(s); this->y /= T(s); this->z /= T(s); return *this; } template template inline tvec3 & tvec3::operator/= ( tvec3 const & v ) { this->x /= T(v.x); this->y /= T(v.y); this->z /= T(v.z); return *this; } template inline tvec3 & tvec3::operator++() { ++this->x; ++this->y; ++this->z; return *this; } template inline tvec3 & tvec3::operator--() { --this->x; --this->y; --this->z; return *this; } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tvec3 const & v1, tvec3 const & v2 ) { return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z); } template inline bool operator!= ( tvec3 const & v1, tvec3 const & v2 ) { return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z); } ////////////////////////////////////// // Unary bit operators template template inline tvec3 & tvec3::operator%= ( U const & s ) { this->x %= s; this->y %= s; this->z %= s; return *this; } template template inline tvec3 & tvec3::operator%= ( tvec3 const & v ) { this->x %= v.x; this->y %= v.y; this->z %= v.z; return *this; } template template inline tvec3 & tvec3::operator&= ( U const & s ) { this->x &= s; this->y &= s; this->z &= s; return *this; } template template inline tvec3 & tvec3::operator&= ( tvec3 const & v ) { this->x &= v.x; this->y &= v.y; this->z &= v.z; return *this; } template template inline tvec3 & tvec3::operator|= ( U const & s ) { this->x |= s; this->y |= s; this->z |= s; return *this; } template template inline tvec3 & tvec3::operator|= ( tvec3 const & v ) { this->x |= v.x; this->y |= v.y; this->z |= v.z; return *this; } template template inline tvec3 & tvec3::operator^= ( U const & s ) { this->x ^= s; this->y ^= s; this->z ^= s; return *this; } template template inline tvec3 & tvec3::operator^= ( tvec3 const & v ) { this->x ^= v.x; this->y ^= v.y; this->z ^= v.z; return *this; } template template inline tvec3 & tvec3::operator<<= ( U const & s ) { this->x <<= s; this->y <<= s; this->z <<= s; return *this; } template template inline tvec3 & tvec3::operator<<= ( tvec3 const & v ) { this->x <<= T(v.x); this->y <<= T(v.y); this->z <<= T(v.z); return *this; } template template inline tvec3 & tvec3::operator>>= ( U const & s ) { this->x >>= T(s); this->y >>= T(s); this->z >>= T(s); return *this; } template template inline tvec3 & tvec3::operator>>= ( tvec3 const & v ) { this->x >>= T(v.x); this->y >>= T(v.y); this->z >>= T(v.z); return *this; } ////////////////////////////////////// // Swizzle operators template inline typename tvec3::value_type tvec3::swizzle ( comp x ) const { return (*this)[x]; } template inline tvec2 tvec3::swizzle ( comp x, comp y ) const { return tvec2( (*this)[x], (*this)[y]); } template inline tvec3 tvec3::swizzle ( comp x, comp y, comp z ) const { return tvec3( (*this)[x], (*this)[y], (*this)[z]); } template inline tvec4 tvec3::swizzle ( comp x, comp y, comp z, comp w ) const { return tvec4( (*this)[x], (*this)[y], (*this)[z], (*this)[w]); } template inline tref3 tvec3::swizzle ( comp x, comp y, comp z ) { return tref3( (*this)[x], (*this)[y], (*this)[z]); } ////////////////////////////////////// // Binary arithmetic operators template inline tvec3 operator+ ( tvec3 const & v, T const & s ) { return tvec3( v.x + T(s), v.y + T(s), v.z + T(s)); } template inline tvec3 operator+ ( T const & s, tvec3 const & v ) { return tvec3( T(s) + v.x, T(s) + v.y, T(s) + v.z); } template inline tvec3 operator+ ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x + T(v2.x), v1.y + T(v2.y), v1.z + T(v2.z)); } //operator- template inline tvec3 operator- ( tvec3 const & v, T const & s ) { return tvec3( v.x - T(s), v.y - T(s), v.z - T(s)); } template inline tvec3 operator- ( T const & s, tvec3 const & v ) { return tvec3( T(s) - v.x, T(s) - v.y, T(s) - v.z); } template inline tvec3 operator- ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x - T(v2.x), v1.y - T(v2.y), v1.z - T(v2.z)); } //operator* template inline tvec3 operator* ( tvec3 const & v, T const & s ) { return tvec3( v.x * T(s), v.y * T(s), v.z * T(s)); } template inline tvec3 operator* ( T const & s, tvec3 const & v ) { return tvec3( T(s) * v.x, T(s) * v.y, T(s) * v.z); } template inline tvec3 operator* ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x * T(v2.x), v1.y * T(v2.y), v1.z * T(v2.z)); } //operator/ template inline tvec3 operator/ ( tvec3 const & v, T const & s ) { return tvec3( v.x / T(s), v.y / T(s), v.z / T(s)); } template inline tvec3 operator/ ( T const & s, tvec3 const & v ) { return tvec3( T(s) / v.x, T(s) / v.y, T(s) / v.z); } template inline tvec3 operator/ ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x / T(v2.x), v1.y / T(v2.y), v1.z / T(v2.z)); } // Unary constant operators template inline tvec3 operator- ( tvec3 const & v ) { return tvec3( -v.x, -v.y, -v.z); } template inline tvec3 operator++ ( tvec3 const & v, int ) { return tvec3( v.x + T(1), v.y + T(1), v.z + T(1)); } template inline tvec3 operator-- ( tvec3 const & v, int ) { return tvec3( v.x - T(1), v.y - T(1), v.z - T(1)); } ////////////////////////////////////// // Binary bit operators template inline tvec3 operator% ( tvec3 const & v, T const & s ) { return tvec3( v.x % T(s), v.y % T(s), v.z % T(s)); } template inline tvec3 operator% ( T const & s, tvec3 const & v ) { return tvec3( T(s) % v.x, T(s) % v.y, T(s) % v.z); } template inline tvec3 operator% ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x % T(v2.x), v1.y % T(v2.y), v1.z % T(v2.z)); } template inline tvec3 operator& ( tvec3 const & v, T const & s ) { return tvec3( v.x & T(s), v.y & T(s), v.z & T(s)); } template inline tvec3 operator& ( T const & s, tvec3 const & v ) { return tvec3( T(s) & v.x, T(s) & v.y, T(s) & v.z); } template inline tvec3 operator& ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x & T(v2.x), v1.y & T(v2.y), v1.z & T(v2.z)); } template inline tvec3 operator| ( tvec3 const & v, T const & s ) { return tvec3( v.x | T(s), v.y | T(s), v.z | T(s)); } template inline tvec3 operator| ( T const & s, tvec3 const & v ) { return tvec3( T(s) | v.x, T(s) | v.y, T(s) | v.z); } template inline tvec3 operator| ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x | T(v2.x), v1.y | T(v2.y), v1.z | T(v2.z)); } template inline tvec3 operator^ ( tvec3 const & v, T const & s ) { return tvec3( v.x ^ T(s), v.y ^ T(s), v.z ^ T(s)); } template inline tvec3 operator^ ( T const & s, tvec3 const & v ) { return tvec3( T(s) ^ v.x, T(s) ^ v.y, T(s) ^ v.z); } template inline tvec3 operator^ ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x ^ T(v2.x), v1.y ^ T(v2.y), v1.z ^ T(v2.z)); } template inline tvec3 operator<< ( tvec3 const & v, T const & s ) { return tvec3( v.x << T(s), v.y << T(s), v.z << T(s)); } template inline tvec3 operator<< ( T const & s, tvec3 const & v ) { return tvec3( T(s) << v.x, T(s) << v.y, T(s) << v.z); } template inline tvec3 operator<< ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x << T(v2.x), v1.y << T(v2.y), v1.z << T(v2.z)); } template inline tvec3 operator>> ( tvec3 const & v, T const & s ) { return tvec3( v.x >> T(s), v.y >> T(s), v.z >> T(s)); } template inline tvec3 operator>> ( T const & s, tvec3 const & v ) { return tvec3( s >> T(v.x), s >> T(v.y), s >> T(v.z)); } template inline tvec3 operator>> ( tvec3 const & v1, tvec3 const & v2 ) { return tvec3( v1.x >> T(v2.x), v1.y >> T(v2.y), v1.z >> T(v2.z)); } template inline tvec3 operator~ ( tvec3 const & v ) { return tvec3( ~v.x, ~v.y, ~v.z); } ////////////////////////////////////// // tref definition template inline tref3::tref3(T & x, T & y, T & z) : x(x), y(y), z(z) {} template inline tref3::tref3 ( tref3 const & r ) : x(r.x), y(r.y), z(r.z) {} template inline tref3::tref3 ( tvec3 const & v ) : x(v.x), y(v.y), z(v.z) {} template inline tref3 & tref3::operator= ( tref3 const & r ) { x = r.x; y = r.y; z = r.z; return *this; } template inline tref3 & tref3::operator= ( tvec3 const & v ) { x = v.x; y = v.y; z = v.z; return *this; } }//namespace detail }//namespace glm #line 268 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" #line 269 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" #line 271 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec3.hpp" #line 22 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2010-02-03 // Licence : This source is under MIT License // File : glm/core/type_tvec4.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/type_vec.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_float.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2010-02-08 // Licence : This source is under MIT License // File : glm/core/type_float.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 15 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_int.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-22 // Updated : 2008-09-17 // Licence : This source is under MIT License // File : glm/core/type_int.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 16 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_size.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-10-05 // Updated : 2008-10-05 // Licence : This source is under MIT License // File : glm/core/type_size.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 17 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_swizzle.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-04-20 // Updated : 2008-08-22 // Licence : This source is under MIT License // File : glm/core/_swizzle.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 18 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_detail.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-07-24 // Updated : 2008-08-31 // Licence : This source is under MIT License // File : glm/core/_detail.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 19 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" namespace glm { namespace test { void main_vec4(); }//namespace test namespace detail { template struct tref2; template struct tref3; template struct tref4; template struct tvec2; template struct tvec3; ///Basic 4D vector type. //! \ingroup core_template template struct tvec4 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; static size_type value_size(); typedef tvec4 type; typedef tvec4 bool_type; ////////////////////////////////////// // Data #line 55 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" union { struct{value_type x, y, z, w;}; struct{value_type r, g, b, a;}; struct{value_type s, t, p, q;}; }; #line 67 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" ////////////////////////////////////// // Accesses value_type & operator[](size_type i); value_type const & operator[](size_type i) const; ////////////////////////////////////// // Implicit basic constructors tvec4(); tvec4(type const & v); ////////////////////////////////////// // Explicit basic constructors explicit tvec4( ctor); explicit tvec4( value_type const & s); explicit tvec4( value_type const & s0, value_type const & s1, value_type const & s2, value_type const & s3); ////////////////////////////////////// // Swizzle constructors tvec4(tref4 const & r); ////////////////////////////////////// // Convertion scalar constructors //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4( U const & x); //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4( A const & x, B const & y, C const & z, D const & w); ////////////////////////////////////// // Convertion vector constructors //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4(tvec2 const & v, B const & s1, C const & s2); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4(A const & s1, tvec2 const & v, C const & s2); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4(A const & s1, B const & s2, tvec2 const & v); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4(tvec3 const & v, B const & s); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4(A const & s, tvec3 const & v); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4(tvec2 const & v1, tvec2 const & v2); //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template explicit tvec4(tvec4 const & v); ////////////////////////////////////// // Unary arithmetic operators tvec4 & operator= (tvec4 const & v); template tvec4 & operator= (tvec4 const & v); template tvec4 & operator+=(U const & s); template tvec4 & operator+=(tvec4 const & v); template tvec4 & operator-=(U const & s); template tvec4 & operator-=(tvec4 const & v); template tvec4 & operator*=(U const & s); template tvec4 & operator*=(tvec4 const & v); template tvec4 & operator/=(U const & s); template tvec4 & operator/=(tvec4 const & v); tvec4 & operator++(); tvec4 & operator--(); ////////////////////////////////////// // Unary bit operators template tvec4 & operator%= (U const & s); template tvec4 & operator%= (tvec4 const & v); template tvec4 & operator&= (U const & s); template tvec4 & operator&= (tvec4 const & v); template tvec4 & operator|= (U const & s); template tvec4 & operator|= (tvec4 const & v); template tvec4 & operator^= (U const & s); template tvec4 & operator^= (tvec4 const & v); template tvec4 & operator<<=(U const & s); template tvec4 & operator<<=(tvec4 const & v); template tvec4 & operator>>=(U const & s); template tvec4 & operator>>=(tvec4 const & v); ////////////////////////////////////// // Swizzle operators value_type swizzle(comp X) const; tvec2 swizzle(comp X, comp Y) const; tvec3 swizzle(comp X, comp Y, comp Z) const; tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; tref4 swizzle(comp X, comp Y, comp Z, comp W); }; template struct tref4 { tref4(T & x, T & y, T & z, T & w); tref4(tref4 const & r); tref4(tvec4 const & v); tref4 & operator= (tref4 const & r); tref4 & operator= (tvec4 const & v); T & x; T & y; T & z; T & w; }; template struct is_vector > { enum is_vector_enum { _YES = 1, _NO = 0 }; }; } //namespace detail namespace core{ namespace type{ ////////////////////////// // Float definition namespace precision { //! 4 components vector of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 highp_vec4; //! 4 components vector of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 mediump_vec4; //! 4 components vector of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 lowp_vec4; //! 4 components vector of high precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 highp_ivec4; //! 4 components vector of medium precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 mediump_ivec4; //! 4 components vector of low precision signed integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 lowp_ivec4; //! 4 components vector of high precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 highp_uvec4; //! 4 components vector of medium precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 mediump_uvec4; //! 4 components vector of low precision unsigned integer numbers. //! There is no guarantee on the actual precision. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! \ingroup core_precision typedef detail::tvec4 lowp_uvec4; } //namespace precision }//namespace type }//namespace core using namespace core::type; }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-23 // Updated : 2010-02-05 // Licence : This source is under MIT License // File : glm/core/type_tvec4.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace detail { template inline typename tvec4::size_type tvec4::value_size() { return 4; } ////////////////////////////////////// // Accesses template inline typename tvec4::value_type & tvec4::operator[] ( size_type i ) { (void)( (!!(i < value_size())) || (_wassert(L"i < value_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.inl", 30), 0) ); return (&x)[i]; } template inline typename tvec4::value_type const & tvec4::operator[] ( size_type i ) const { (void)( (!!(i < value_size())) || (_wassert(L"i < value_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.inl", 41), 0) ); return (&x)[i]; } ////////////////////////////////////// // Implicit basic constructors template inline tvec4::tvec4() : x(value_type(0)), y(value_type(0)), z(value_type(0)), w(value_type(0)) {} template inline tvec4::tvec4 ( ctor ) {} template inline tvec4::tvec4 ( type const & v ) : x(v.x), y(v.y), z(v.z), w(v.w) {} ////////////////////////////////////// // Explicit basic constructors template inline tvec4::tvec4 ( value_type const & s ) : x(s), y(s), z(s), w(s) {} template inline tvec4::tvec4 ( value_type const & s1, value_type const & s2, value_type const & s3, value_type const & s4 ) : x(s1), y(s2), z(s3), w(s4) {} ////////////////////////////////////// // Swizzle constructors template inline tvec4::tvec4 ( tref4 const & r ) : x(r.x), y(r.y), z(r.z), w(r.w) {} ////////////////////////////////////// // Convertion scalar constructors template template inline tvec4::tvec4 ( U const & x ) : x(value_type(x)), y(value_type(x)), z(value_type(x)), w(value_type(x)) {} template template inline tvec4::tvec4 ( A const & x, B const & y, C const & z, D const & w ) : x(value_type(x)), y(value_type(y)), z(value_type(z)), w(value_type(w)) {} ////////////////////////////////////// // Convertion vector constructors template template inline tvec4::tvec4 ( tvec2 const & v, B const & s1, C const & s2 ) : x(value_type(v.x)), y(value_type(v.y)), z(value_type(s1)), w(value_type(s2)) {} template template inline tvec4::tvec4 ( A const & s1, tvec2 const & v, C const & s2 ) : x(value_type(s1)), y(value_type(v.x)), z(value_type(v.y)), w(value_type(s2)) {} template template inline tvec4::tvec4 ( A const & s1, B const & s2, tvec2 const & v ) : x(value_type(s1)), y(value_type(s2)), z(value_type(v.x)), w(value_type(v.y)) {} template template inline tvec4::tvec4 ( tvec3 const & v, B const & s ) : x(value_type(v.x)), y(value_type(v.y)), z(value_type(v.z)), w(value_type(s)) {} template template inline tvec4::tvec4 ( A const & s, tvec3 const & v ) : x(value_type(s)), y(value_type(v.x)), z(value_type(v.y)), w(value_type(v.z)) {} template template inline tvec4::tvec4 ( tvec2 const & v1, tvec2 const & v2 ) : x(value_type(v1.x)), y(value_type(v1.y)), z(value_type(v2.x)), w(value_type(v2.y)) {} template template inline tvec4::tvec4 ( tvec4 const & v ) : x(value_type(v.x)), y(value_type(v.y)), z(value_type(v.z)), w(value_type(v.w)) {} ////////////////////////////////////// // Unary arithmetic operators template inline tvec4 & tvec4::operator= ( tvec4 const & v ) { this->x = v.x; this->y = v.y; this->z = v.z; this->w = v.w; return *this; } template template inline tvec4 & tvec4::operator= ( tvec4 const & v ) { this->x = T(v.x); this->y = T(v.y); this->z = T(v.z); this->w = T(v.w); return *this; } template template inline tvec4 & tvec4::operator+= ( U const & s ) { this->x += T(s); this->y += T(s); this->z += T(s); this->w += T(s); return *this; } template template inline tvec4 & tvec4::operator+= ( tvec4 const & v ) { this->x += T(v.x); this->y += T(v.y); this->z += T(v.z); this->w += T(v.w); return *this; } template template inline tvec4 & tvec4::operator-= ( U const & s ) { this->x -= T(s); this->y -= T(s); this->z -= T(s); this->w -= T(s); return *this; } template template inline tvec4 & tvec4::operator-= ( tvec4 const & v ) { this->x -= T(v.x); this->y -= T(v.y); this->z -= T(v.z); this->w -= T(v.w); return *this; } template template inline tvec4 & tvec4::operator*= ( U const & s ) { this->x *= T(s); this->y *= T(s); this->z *= T(s); this->w *= T(s); return *this; } template template inline tvec4 & tvec4::operator*= ( tvec4 const & v ) { this->x *= T(v.x); this->y *= T(v.y); this->z *= T(v.z); this->w *= T(v.w); return *this; } template template inline tvec4 & tvec4::operator/= ( U const & s ) { this->x /= T(s); this->y /= T(s); this->z /= T(s); this->w /= T(s); return *this; } template template inline tvec4 & tvec4::operator/= ( tvec4 const & v ) { this->x /= T(v.x); this->y /= T(v.y); this->z /= T(v.z); this->w /= T(v.w); return *this; } template inline tvec4 & tvec4::operator++() { ++this->x; ++this->y; ++this->z; ++this->w; return *this; } template inline tvec4 & tvec4::operator--() { --this->x; --this->y; --this->z; --this->w; return *this; } ////////////////////////////////////// // Unary bit operators template template inline tvec4 & tvec4::operator%= ( U const & s ) { this->x %= T(s); this->y %= T(s); this->z %= T(s); this->w %= T(s); return *this; } template template inline tvec4 & tvec4::operator%= ( tvec4 const & v ) { this->x %= T(v.x); this->y %= T(v.y); this->z %= T(v.z); this->w %= T(v.w); return *this; } template template inline tvec4 & tvec4::operator&= ( U const & s ) { this->x &= T(s); this->y &= T(s); this->z &= T(s); this->w &= T(s); return *this; } template template inline tvec4 & tvec4::operator&= ( tvec4 const & v ) { this->x &= T(v.x); this->y &= T(v.y); this->z &= T(v.z); this->w &= T(v.w); return *this; } template template inline tvec4 & tvec4::operator|= ( U const & s ) { this->x |= T(s); this->y |= T(s); this->z |= T(s); this->w |= T(s); return *this; } template template inline tvec4 & tvec4::operator|= ( tvec4 const & v ) { this->x |= T(v.x); this->y |= T(v.y); this->z |= T(v.z); this->w |= T(v.w); return *this; } template template inline tvec4 & tvec4::operator^= ( U const & s ) { this->x ^= T(s); this->y ^= T(s); this->z ^= T(s); this->w ^= T(s); return *this; } template template inline tvec4 & tvec4::operator^= ( tvec4 const & v ) { this->x ^= T(v.x); this->y ^= T(v.y); this->z ^= T(v.z); this->w ^= T(v.w); return *this; } template template inline tvec4 & tvec4::operator<<= ( U const & s ) { this->x <<= T(s); this->y <<= T(s); this->z <<= T(s); this->w <<= T(s); return *this; } template template inline tvec4 & tvec4::operator<<= ( tvec4 const & v ) { this->x <<= T(v.x); this->y <<= T(v.y); this->z <<= T(v.z); this->w <<= T(v.w); return *this; } template template inline tvec4 & tvec4::operator>>= ( U const & s ) { this->x >>= T(s); this->y >>= T(s); this->z >>= T(s); this->w >>= T(s); return *this; } template template inline tvec4 & tvec4::operator>>= ( tvec4 const & v ) { this->x >>= T(v.x); this->y >>= T(v.y); this->z >>= T(v.z); this->w >>= T(v.w); return *this; } ////////////////////////////////////// // Swizzle operators template inline typename tvec4::value_type tvec4::swizzle ( comp x ) const { return (*this)[x]; } template inline tvec2 tvec4::swizzle ( comp x, comp y ) const { return tvec2( (*this)[x], (*this)[y]); } template inline tvec3 tvec4::swizzle ( comp x, comp y, comp z ) const { return tvec3( (*this)[x], (*this)[y], (*this)[z]); } template inline tvec4 tvec4::swizzle ( comp x, comp y, comp z, comp w ) const { return tvec4( (*this)[x], (*this)[y], (*this)[z], (*this)[w]); } template inline tref4 tvec4::swizzle ( comp x, comp y, comp z, comp w ) { return tref4( (*this)[x], (*this)[y], (*this)[z], (*this)[w]); } ////////////////////////////////////// // Binary arithmetic operators template inline tvec4 operator+ ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x + s, v.y + s, v.z + s, v.w + s); } template inline tvec4 operator+ ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s + v.x, s + v.y, s + v.z, s + v.w); } template inline tvec4 operator+ ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x + v2.x, v1.y + v2.y, v1.z + v2.z, v1.w + v2.w); } //operator- template inline tvec4 operator- ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x - s, v.y - s, v.z - s, v.w - s); } template inline tvec4 operator- ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s - v.x, s - v.y, s - v.z, s - v.w); } template inline tvec4 operator- ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x - v2.x, v1.y - v2.y, v1.z - v2.z, v1.w - v2.w); } //operator* template inline tvec4 operator* ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x * s, v.y * s, v.z * s, v.w * s); } template inline tvec4 operator* ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s * v.x, s * v.y, s * v.z, s * v.w); } template inline tvec4 operator* ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x * v2.x, v1.y * v2.y, v1.z * v2.z, v1.w * v2.w); } //operator/ template inline tvec4 operator/ ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x / s, v.y / s, v.z / s, v.w / s); } template inline tvec4 operator/ ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s / v.x, s / v.y, s / v.z, s / v.w); } template inline tvec4 operator/ ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x / v2.x, v1.y / v2.y, v1.z / v2.z, v1.w / v2.w); } // Unary constant operators template inline tvec4 operator- ( tvec4 const & v ) { return tvec4( -v.x, -v.y, -v.z, -v.w); } template inline tvec4 operator++ ( tvec4 const & v, int ) { typename tvec4::value_type One(1); return tvec4( v.x + One, v.y + One, v.z + One, v.w + One); } template inline tvec4 operator-- ( tvec4 const & v, int ) { typename tvec4::value_type One(1); return tvec4( v.x - One, v.y - One, v.z - One, v.w - One); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tvec4 const & v1, tvec4 const & v2 ) { return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z) && (v1.w == v2.w); } template inline bool operator!= ( tvec4 const & v1, tvec4 const & v2 ) { return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z) || (v1.w != v2.w); } ////////////////////////////////////// // Binary bit operators template inline tvec4 operator% ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x % s, v.y % s, v.z % s, v.w % s); } template inline tvec4 operator% ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s % v.x, s % v.y, s % v.z, s % v.w); } template inline tvec4 operator% ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x % v2.x, v1.y % v2.y, v1.z % v2.z, v1.w % v2.w); } template inline tvec4 operator& ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x & s, v.y & s, v.z & s, v.w & s); } template inline tvec4 operator& ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s & v.x, s & v.y, s & v.z, s & v.w); } template inline tvec4 operator& ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x & v2.x, v1.y & v2.y, v1.z & v2.z, v1.w & v2.w); } template inline tvec4 operator| ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x | s, v.y | s, v.z | s, v.w | s); } template inline tvec4 operator| ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s | v.x, s | v.y, s | v.z, s | v.w); } template inline tvec4 operator| ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x | v2.x, v1.y | v2.y, v1.z | v2.z, v1.w | v2.w); } template inline tvec4 operator^ ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x ^ s, v.y ^ s, v.z ^ s, v.w ^ s); } template inline tvec4 operator^ ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s ^ v.x, s ^ v.y, s ^ v.z, s ^ v.w); } template inline tvec4 operator^ ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x ^ v2.x, v1.y ^ v2.y, v1.z ^ v2.z, v1.w ^ v2.w); } template inline tvec4 operator<< ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x << s, v.y << s, v.z << s, v.w << s); } template inline tvec4 operator<< ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s << v.x, s << v.y, s << v.z, s << v.w); } template inline tvec4 operator<< ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x << v2.x, v1.y << v2.y, v1.z << v2.z, v1.w << v2.w); } template inline tvec4 operator>> ( tvec4 const & v, typename tvec4::value_type const & s ) { return tvec4( v.x >> s, v.y >> s, v.z >> s, v.w >> s); } template inline tvec4 operator>> ( typename tvec4::value_type const & s, tvec4 const & v ) { return tvec4( s >> v.x, s >> v.y, s >> v.z, s >> v.w); } template inline tvec4 operator>> ( tvec4 const & v1, tvec4 const & v2 ) { return tvec4( v1.x >> v2.x, v1.y >> v2.y, v1.z >> v2.z, v1.w >> v2.w); } template inline tvec4 operator~ ( tvec4 const & v ) { return tvec4( ~v.x, ~v.y, ~v.z, ~v.w); } ////////////////////////////////////// // tref definition template tref4::tref4 ( T & x, T & y, T & z, T & w ) : x(x), y(y), z(z), w(w) {} template tref4::tref4 ( tref4 const & r ) : x(r.x), y(r.y), z(r.z), w(r.w) {} template tref4::tref4 ( tvec4 const & v ) : x(v.x), y(v.y), z(v.z), w(v.w) {} template tref4& tref4::operator= ( tref4 const & r ) { x = r.x; y = r.y; z = r.z; w = r.w; return *this; } template tref4& tref4::operator= ( tvec4 const & v ) { x = v.x; y = v.y; z = v.z; w = v.w; return *this; } }//namespace detail }//namespace glm #line 288 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" #line 289 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" #line 291 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_vec4.hpp" #line 23 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x2.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2005-01-27 // Updated : 2010-02-11 // Licence : This source is under MIT License // File : glm/core/type_mat2x2.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_gentype.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-10-05 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_gentype.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" namespace glm{ namespace detail { //template //< // typename T, // template class C, // template class R //> //struct matType //{ // enum ctor{null}; // typedef T value_type; // typedef std::size_t size_type; // typedef C col_type; // typedef R row_type; // static size_type const col_size; // static size_type const row_size; //}; //template //< // typename T, // template class C, // template class R //> //typename matType::size_type const //matType::col_size = matType::col_type::value_size; //template //< // typename T, // template class C, // template class R //> //typename matType::size_type const //matType::row_size = matType::row_type::value_size; }//namespace detail }//namespace glm #line 57 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x2.hpp" namespace glm { namespace test { void main_mat2x2(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! \brief Template for 2 * 2 matrix of floating-point numbers. //! \ingroup core_template template struct tmat2x2 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec2 col_type; typedef tvec2 row_type; static size_type col_size(); static size_type row_size(); typedef tmat2x2 type; typedef tmat2x2 transpose_type; public: // Implementation detail tmat2x2 _inverse() const; private: // Data col_type value[2]; public: // Constructors tmat2x2(); tmat2x2( tmat2x2 const & m); explicit tmat2x2( ctor Null); explicit tmat2x2( value_type const & x); explicit tmat2x2( value_type const & x1, value_type const & y1, value_type const & x2, value_type const & y2); explicit tmat2x2( col_type const & v1, col_type const & v2); // Conversions template explicit tmat2x2(tmat2x2 const & m); explicit tmat2x2(tmat3x3 const & x); explicit tmat2x2(tmat4x4 const & x); explicit tmat2x2(tmat2x3 const & x); explicit tmat2x2(tmat3x2 const & x); explicit tmat2x2(tmat2x4 const & x); explicit tmat2x2(tmat4x2 const & x); explicit tmat2x2(tmat3x4 const & x); explicit tmat2x2(tmat4x3 const & x); ////////////////////////////////////// // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat2x2 & operator=(tmat2x2 const & m); template tmat2x2 & operator=(tmat2x2 const & m); template tmat2x2 & operator+=(U const & s); template tmat2x2 & operator+=(tmat2x2 const & m); template tmat2x2 & operator-=(U const & s); template tmat2x2 & operator-=(tmat2x2 const & m); template tmat2x2 & operator*=(U const & s); template tmat2x2 & operator*=(tmat2x2 const & m); template tmat2x2 & operator/=(U const & s); template tmat2x2 & operator/=(tmat2x2 const & m); tmat2x2 & operator++(); tmat2x2 & operator--(); }; // Binary operators template tmat2x2 operator+ ( tmat2x2 const & m, typename tmat2x2::value_type const & s); template tmat2x2 operator+ ( typename tmat2x2::value_type const & s, tmat2x2 const & m); template tmat2x2 operator+ ( tmat2x2 const & m1, tmat2x2 const & m2); template tmat2x2 operator- ( tmat2x2 const & m, typename tmat2x2::value_type const & s); template tmat2x2 operator- ( typename tmat2x2::value_type const & s, tmat2x2 const & m); template tmat2x2 operator- ( tmat2x2 const & m1, tmat2x2 const & m2); template tmat2x2 operator* ( tmat2x2 const & m, typename tmat2x2::value_type const & s); template tmat2x2 operator* ( typename tmat2x2::value_type const & s, tmat2x2 const & m); template typename tmat2x2::col_type operator* ( tmat2x2 const & m, typename tmat2x2::row_type const & v); template typename tmat2x2::row_type operator* ( typename tmat2x2::col_type const & v, tmat2x2 const & m); template tmat2x2 operator* ( tmat2x2 const & m1, tmat2x2 const & m2); template tmat2x2 operator/ ( tmat2x2 const & m, typename tmat2x2::value_type const & s); template tmat2x2 operator/ ( typename tmat2x2::value_type const & s, tmat2x2 const & m); template typename tmat2x2::col_type operator/ ( tmat2x2 const & m, typename tmat2x2::row_type const & v); template typename tmat2x2::row_type operator/ ( typename tmat2x2::col_type const & v, tmat2x2 const & m); template tmat2x2 operator/ ( tmat2x2 const & m1, tmat2x2 const & m2); // Unary constant operators template tmat2x2 const operator- ( tmat2x2 const & m); template tmat2x2 const operator-- ( tmat2x2 const & m, int); template tmat2x2 const operator++ ( tmat2x2 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 2 columns of 2 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat2x2 lowp_mat2x2; //! 2 columns of 2 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat2x2 mediump_mat2x2; //! 2 columns of 2 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat2x2 highp_mat2x2; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x2.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2005-01-16 // Updated : 2010-02-11 // Licence : This source is under MIT License // File : glm/core/type_mat2x2.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat2x2::size_type tmat2x2::col_size() { return 2; } template inline typename tmat2x2::size_type tmat2x2::row_size() { return 2; } ////////////////////////////////////// // Accesses template inline typename tmat2x2::col_type & tmat2x2::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x2.inl", 35), 0) ); return this->value[i]; } template inline typename tmat2x2::col_type const & tmat2x2::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x2.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat2x2::tmat2x2() { this->value[0] = col_type(1, 0); this->value[1] = col_type(0, 1); } template inline tmat2x2::tmat2x2 ( tmat2x2 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; } template inline tmat2x2::tmat2x2 ( ctor ) {} template inline tmat2x2::tmat2x2 ( value_type const & s ) { value_type const Zero(0); this->value[0] = col_type(s, Zero); this->value[1] = col_type(Zero, s); } template inline tmat2x2::tmat2x2 ( value_type const & x0, value_type const & y0, value_type const & x1, value_type const & y1 ) { this->value[0] = col_type(x0, y0); this->value[1] = col_type(x1, y1); } template inline tmat2x2::tmat2x2 ( col_type const & v0, col_type const & v1 ) { this->value[0] = v0; this->value[1] = v1; } ////////////////////////////////////////////////////////////// // mat2 conversions template template inline tmat2x2::tmat2x2 ( tmat2x2 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x2::tmat2x2 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x2::tmat2x2 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x2::tmat2x2 ( tmat2x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x2::tmat2x2 ( tmat3x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; } template inline tmat2x2::tmat2x2 ( tmat2x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x2::tmat2x2 ( tmat4x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; } template inline tmat2x2::tmat2x2 ( tmat3x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x2::tmat2x2 ( tmat4x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x2 tmat2x2::_inverse() const { typename tmat2x2::value_type Determinant = this->value[0][0] * this->value[1][1] - this->value[1][0] * this->value[0][1]; tmat2x2 Inverse( + this->value[1][1] / Determinant, - this->value[1][0] / Determinant, - this->value[0][1] / Determinant, + this->value[0][0] / Determinant); return Inverse; } ////////////////////////////////////////////////////////////// // mat3 operators // This function shouldn't required but it seems that VC7.1 have an optimisation bug if this operator wasn't declared template inline tmat2x2& tmat2x2::operator= ( tmat2x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; return *this; } template template inline tmat2x2& tmat2x2::operator= ( tmat2x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; return *this; } template template inline tmat2x2& tmat2x2::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; return *this; } template template inline tmat2x2& tmat2x2::operator+= ( tmat2x2 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; return *this; } template template inline tmat2x2& tmat2x2::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; return *this; } template template inline tmat2x2& tmat2x2::operator-= ( tmat2x2 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; return *this; } template template inline tmat2x2& tmat2x2::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; return *this; } template template inline tmat2x2& tmat2x2::operator*= ( tmat2x2 const & m ) { return (*this = *this * m); } template template inline tmat2x2& tmat2x2::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; return *this; } template template inline tmat2x2& tmat2x2::operator/= ( tmat2x2 const & m ) { return (*this = *this / m); } template inline tmat2x2& tmat2x2::operator++ () { ++this->value[0]; ++this->value[1]; return *this; } template inline tmat2x2& tmat2x2::operator-- () { --this->value[0]; --this->value[1]; return *this; } ////////////////////////////////////////////////////////////// // Binary operators template inline tmat2x2 operator+ ( tmat2x2 const & m, typename tmat2x2::value_type const & s ) { return tmat2x2( m[0] + s, m[1] + s); } template inline tmat2x2 operator+ ( typename tmat2x2::value_type const & s, tmat2x2 const & m ) { return tmat2x2( m[0] + s, m[1] + s); } template inline tmat2x2 operator+ ( tmat2x2 const & m1, tmat2x2 const & m2 ) { return tmat2x2( m1[0] + m2[0], m1[1] + m2[1]); } template inline tmat2x2 operator- ( tmat2x2 const & m, typename tmat2x2::value_type const & s ) { return tmat2x2( m[0] - s, m[1] - s); } template inline tmat2x2 operator- ( typename tmat2x2::value_type const & s, tmat2x2 const & m ) { return tmat2x2( s - m[0], s - m[1]); } template inline tmat2x2 operator- ( tmat2x2 const & m1, tmat2x2 const & m2 ) { return tmat2x2( m1[0] - m2[0], m1[1] - m2[1]); } template inline tmat2x2 operator* ( tmat2x2 const & m, typename tmat2x2::value_type const & s ) { return tmat2x2( m[0] * s, m[1] * s); } // X // X // X X // X X template inline tmat2x2 operator* ( typename tmat2x2::value_type const & s, tmat2x2 const & m ) { return tmat2x2( m[0] * s, m[1] * s); } template inline typename tmat2x2::col_type operator* ( tmat2x2 const & m, typename tmat2x2::row_type const & v ) { return detail::tvec2( m[0][0] * v.x + m[1][0] * v.y, m[0][1] * v.x + m[1][1] * v.y); } // X X // X X // X X template inline typename tmat2x2::row_type operator* ( typename tmat2x2::col_type const & v, tmat2x2 const & m ) { return detail::tvec2( v.x * m[0][0] + v.y * m[0][1], v.x * m[1][0] + v.y * m[1][1]); } template inline tmat2x2 operator* ( tmat2x2 const & m1, tmat2x2 const & m2 ) { return tmat2x2( m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1], m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1], m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1], m1[0][1] * m2[1][0] + m1[1][1] * m2[1][1]); } template inline tmat2x2 operator/ ( tmat2x2 const & m, typename tmat2x2::value_type const & s ) { return tmat2x2( m[0] / s, m[1] / s); } template inline tmat2x2 operator/ ( typename tmat2x2::value_type const & s, tmat2x2 const & m ) { return tmat2x2( s / m[0], s / m[1]); } template inline typename tmat2x2::col_type operator/ ( tmat2x2 const & m, typename tmat2x2::row_type & v ) { return m._inverse() * v; } template inline typename tmat2x2::row_type operator/ ( typename tmat2x2::col_type const & v, tmat2x2 const & m ) { return v * m._inverse(); } template inline tmat2x2 operator/ ( tmat2x2 const & m1, tmat2x2 const & m2 ) { return m1 * m2._inverse(); } // Unary constant operators template inline tmat2x2 const operator- ( tmat2x2 const & m ) { return tmat2x2( -m[0], -m[1]); } template inline tmat2x2 const operator++ ( tmat2x2 const & m, int ) { return tmat2x2( m[0] + T(1), m[1] + T(1)); } template inline tmat2x2 const operator-- ( tmat2x2 const & m, int ) { return tmat2x2( m[0] - T(1), m[1] - T(1)); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat2x2 const & m1, tmat2x2 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]); } template inline bool operator!= ( tmat2x2 const & m1, tmat2x2 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]); } } //namespace detail } //namespace glm #line 249 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x2.hpp" #line 250 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x2.hpp" #line 252 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x2.hpp" #line 25 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x3.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-10-01 // Updated : 2010-02-03 // Licence : This source is under MIT License // File : glm/core/type_mat2x3.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x3.hpp" namespace glm { namespace test { void main_mat2x3(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! \brief Template for 2 columns and 3 rows matrix of floating-point numbers. //! \ingroup core_template template struct tmat2x3 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec3 col_type; typedef tvec2 row_type; static size_type col_size(); static size_type row_size(); typedef tmat2x3 type; typedef tmat3x2 transpose_type; private: // Data col_type value[2]; public: // Constructors tmat2x3(); tmat2x3(tmat2x3 const & m); explicit tmat2x3( ctor); explicit tmat2x3( value_type const & s); explicit tmat2x3( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & x1, value_type const & y1, value_type const & z1); explicit tmat2x3( col_type const & v0, col_type const & v1); // Conversion template explicit tmat2x3(tmat2x3 const & m); explicit tmat2x3(tmat2x2 const & x); explicit tmat2x3(tmat3x3 const & x); explicit tmat2x3(tmat4x4 const & x); explicit tmat2x3(tmat2x4 const & x); explicit tmat2x3(tmat3x2 const & x); explicit tmat2x3(tmat3x4 const & x); explicit tmat2x3(tmat4x2 const & x); explicit tmat2x3(tmat4x3 const & x); // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat2x3 & operator= (tmat2x3 const & m); template tmat2x3 & operator= (tmat2x3 const & m); template tmat2x3 & operator+= (U const & s); template tmat2x3 & operator+= (tmat2x3 const & m); template tmat2x3 & operator-= (U const & s); template tmat2x3 & operator-= (tmat2x3 const & m); template tmat2x3 & operator*= (U const & s); template tmat2x3 & operator*= (tmat2x3 const & m); template tmat2x3 & operator/= (U const & s); tmat2x3 & operator++ (); tmat2x3 & operator-- (); }; // Binary operators template tmat2x3 operator+ ( tmat2x3 const & m, typename tmat2x3::value_type const & s); template tmat2x3 operator+ ( tmat2x3 const & m1, tmat2x3 const & m2); template tmat2x3 operator- ( tmat2x3 const & m, typename tmat2x3::value_type const & s); template tmat2x3 operator- ( tmat2x3 const & m1, tmat2x3 const & m2); template tmat2x3 operator* ( tmat2x3 const & m, typename tmat2x3::value_type const & s); template tmat2x3 operator* ( typename tmat2x3::value_type const & s, tmat2x3 const & m); template typename tmat2x3::col_type operator* ( tmat2x3 const & m, typename tmat2x3::row_type const & v); template typename tmat2x3::row_type operator* ( typename tmat2x3::col_type const & v, tmat2x3 const & m); template tmat3x3 operator* ( tmat2x3 const & m1, tmat3x2 const & m2); template tmat2x3 operator/ ( tmat2x3 const & m, typename tmat2x3::value_type const & s); template tmat2x3 operator/ ( typename tmat2x3::value_type const & s, tmat2x3 const & m); // Unary constant operators template tmat2x3 const operator- ( tmat2x3 const & m); template tmat2x3 const operator-- ( tmat2x3 const & m, int); template tmat2x3 const operator++ ( tmat2x3 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 2 columns of 3 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat2x3 lowp_mat2x3; //! 2 columns of 3 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat2x3 mediump_mat2x3; //! 2 columns of 3 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat2x3 highp_mat2x3; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x3.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-08-05 // Updated : 2010-02-03 // Licence : This source is under MIT License // File : glm/core/type_mat2x3.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat2x3::size_type tmat2x3::col_size() { return 3; } template inline typename tmat2x3::size_type tmat2x3::row_size() { return 2; } ////////////////////////////////////// // Accesses template inline typename tmat2x3::col_type & tmat2x3::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x3.inl", 35), 0) ); return this->value[i]; } template inline typename tmat2x3::col_type const & tmat2x3::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x3.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat2x3::tmat2x3() { this->value[0] = col_type(T(1), T(0), T(0)); this->value[1] = col_type(T(0), T(1), T(0)); } template inline tmat2x3::tmat2x3 ( tmat2x3 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; } template inline tmat2x3::tmat2x3 ( ctor ) {} template inline tmat2x3::tmat2x3 ( value_type const & s ) { this->value[0] = col_type(s, T(0), T(0)); this->value[1] = col_type(T(0), s, T(0)); } template inline tmat2x3::tmat2x3 ( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & x1, value_type const & y1, value_type const & z1 ) { this->value[0] = col_type(x0, y0, z0); this->value[1] = col_type(x1, y1, z1); } template inline tmat2x3::tmat2x3 ( col_type const & v0, col_type const & v1 ) { this->value[0] = v0; this->value[1] = v1; } // Conversion template template inline tmat2x3::tmat2x3 ( tmat2x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x3::tmat2x3 ( tmat2x2 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); } template inline tmat2x3::tmat2x3 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x3::tmat2x3 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x3::tmat2x3 ( tmat2x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x3::tmat2x3 ( tmat3x2 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); } template inline tmat2x3::tmat2x3 ( tmat3x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x3::tmat2x3 ( tmat4x2 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); } template inline tmat2x3::tmat2x3 ( tmat4x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; } ////////////////////////////////////////////////////////////// // Unary updatable operators template inline tmat2x3& tmat2x3::operator= ( tmat2x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; return *this; } template template inline tmat2x3& tmat2x3::operator= ( tmat2x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; return *this; } template template inline tmat2x3 & tmat2x3::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; return *this; } template template inline tmat2x3& tmat2x3::operator+= ( tmat2x3 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; return *this; } template template inline tmat2x3& tmat2x3::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; return *this; } template template inline tmat2x3& tmat2x3::operator-= ( tmat2x3 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; return *this; } template template inline tmat2x3& tmat2x3::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; return *this; } template template inline tmat2x3 & tmat2x3::operator*= ( tmat2x3 const & m ) { return (*this = tmat2x3(*this * m)); } template template inline tmat2x3 & tmat2x3::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; return *this; } template inline tmat2x3 & tmat2x3::operator++ () { ++this->value[0]; ++this->value[1]; return *this; } template inline tmat2x3 & tmat2x3::operator-- () { --this->value[0]; --this->value[1]; return *this; } ////////////////////////////////////////////////////////////// // Binary operators template inline tmat2x3 operator+ ( tmat2x3 const & m, typename tmat2x3::value_type const & s ) { return tmat2x3( m[0] + s, m[1] + s); } template inline tmat2x3 operator+ ( tmat2x3 const & m1, tmat2x3 const & m2 ) { return tmat2x3( m1[0] + m2[0], m1[1] + m2[1]); } template inline tmat2x3 operator- ( tmat2x3 const & m, typename tmat2x3::value_type const & s ) { return tmat2x3( m[0] - s, m[1] - s); } template inline tmat2x3 operator- ( tmat2x3 const & m1, tmat2x3 const & m2 ) { return tmat2x3( m1[0] - m2[0], m1[1] - m2[1]); } template inline tmat2x3 operator* ( tmat2x3 const & m, typename tmat2x3::value_type const & s ) { return tmat2x3( m[0] * s, m[1] * s); } template inline tmat2x3 operator* ( typename tmat2x3::value_type const & s, tmat2x3 const & m ) { return tmat2x3( m[0] * s, m[1] * s); } template inline typename tmat2x3::col_type operator* ( tmat2x3 const & m, typename tmat2x3::row_type const & v) { return typename tmat2x3::col_type( m[0][0] * v.x + m[1][0] * v.y, m[0][1] * v.x + m[1][1] * v.y, m[0][2] * v.x + m[1][2] * v.y); } template inline typename tmat2x3::row_type operator* ( typename tmat2x3::col_type const & v, tmat2x3 const & m) { return typename tmat2x3::row_type( v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2], v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2]); } template inline tmat3x3 operator* ( tmat2x3 const & m1, tmat3x2 const & m2 ) { typename tmat2x3::value_type SrcA00 = m1[0][0]; typename tmat2x3::value_type SrcA01 = m1[0][1]; typename tmat2x3::value_type SrcA02 = m1[0][2]; typename tmat2x3::value_type SrcA10 = m1[1][0]; typename tmat2x3::value_type SrcA11 = m1[1][1]; typename tmat2x3::value_type SrcA12 = m1[1][2]; typename tmat2x3::value_type SrcB00 = m2[0][0]; typename tmat2x3::value_type SrcB01 = m2[0][1]; typename tmat2x3::value_type SrcB10 = m2[1][0]; typename tmat2x3::value_type SrcB11 = m2[1][1]; typename tmat2x3::value_type SrcB20 = m2[2][0]; typename tmat2x3::value_type SrcB21 = m2[2][1]; tmat3x3 Result(tmat3x3::null); Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01; Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01; Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01; Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11; Result[1][1] = SrcA01 * SrcB10 + SrcA11 * SrcB11; Result[1][2] = SrcA02 * SrcB10 + SrcA12 * SrcB11; Result[2][0] = SrcA00 * SrcB20 + SrcA10 * SrcB21; Result[2][1] = SrcA01 * SrcB20 + SrcA11 * SrcB21; Result[2][2] = SrcA02 * SrcB20 + SrcA12 * SrcB21; return Result; } template inline tmat2x3 operator/ ( tmat2x3 const & m, typename tmat2x3::value_type const & s ) { return tmat2x3( m[0] / s, m[1] / s); } template inline tmat2x3 operator/ ( typename tmat2x3::value_type const & s, tmat2x3 const & m ) { return tmat2x3( s / m[0], s / m[1]); } // Unary constant operators template inline tmat2x3 const operator- ( tmat2x3 const & m ) { return tmat2x3( -m[0], -m[1]); } template inline tmat2x3 const operator++ ( tmat2x3 const & m, int ) { return tmat2x3( m[0] + typename tmat2x3::value_type(1), m[1] + typename tmat2x3::value_type(1)); } template inline tmat2x3 const operator-- ( tmat2x3 const & m, int ) { return tmat2x3( m[0] - typename tmat2x3::value_type(1), m[1] - typename tmat2x3::value_type(1)); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat2x3 const & m1, tmat2x3 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]); } template inline bool operator!= ( tmat2x3 const & m1, tmat2x3 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]); } } //namespace detail } //namespace glm #line 216 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x3.hpp" #line 217 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x3.hpp" #line 219 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x3.hpp" #line 26 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x4.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-08-05 // Updated : 2010-02-11 // Licence : This source is under MIT License // File : glm/core/type_mat2x4.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x4.hpp" namespace glm { namespace test { void main_mat2x4(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! Template for 2 columns and 4 rows matrix of floating-point numbers. //! \ingroup core_template template struct tmat2x4 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec4 col_type; typedef tvec2 row_type; static size_type col_size(); static size_type row_size(); typedef tmat2x4 type; typedef tmat4x2 transpose_type; private: // Data col_type value[2]; public: // Constructors tmat2x4(); tmat2x4(tmat2x4 const & m); explicit tmat2x4( ctor); explicit tmat2x4( value_type const & s); explicit tmat2x4( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1); explicit tmat2x4( col_type const & v0, col_type const & v1); // Conversion template explicit tmat2x4(tmat2x4 const & m); explicit tmat2x4(tmat2x2 const & x); explicit tmat2x4(tmat3x3 const & x); explicit tmat2x4(tmat4x4 const & x); explicit tmat2x4(tmat2x3 const & x); explicit tmat2x4(tmat3x2 const & x); explicit tmat2x4(tmat3x4 const & x); explicit tmat2x4(tmat4x2 const & x); explicit tmat2x4(tmat4x3 const & x); // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat2x4& operator= (tmat2x4 const & m); template tmat2x4& operator= (tmat2x4 const & m); template tmat2x4& operator+= (U const & s); template tmat2x4& operator+= (tmat2x4 const & m); template tmat2x4& operator-= (U const & s); template tmat2x4& operator-= (tmat2x4 const & m); template tmat2x4& operator*= (U const & s); template tmat2x4& operator*= (tmat2x4 const & m); template tmat2x4& operator/= (U const & s); tmat2x4& operator++ (); tmat2x4& operator-- (); }; // Binary operators template tmat2x4 operator+ ( tmat2x4 const & m, typename tmat2x4::value_type const & s); template tmat2x4 operator+ ( tmat2x4 const & m1, tmat2x4 const & m2); template tmat2x4 operator- ( tmat2x4 const & m, typename tmat2x4::value_type const & s); template tmat2x4 operator- ( tmat2x4 const & m1, tmat2x4 const & m2); template tmat2x4 operator* ( tmat2x4 const & m, typename tmat2x4::value_type const & s); template tmat2x4 operator* ( typename tmat2x4::value_type const & s, tmat2x4 const & m); template typename tmat2x4::col_type operator* ( tmat2x4 const & m, typename tmat2x4::row_type const & v); template typename tmat2x4::row_type operator* ( typename tmat2x4::col_type const & v, tmat2x4 const & m); template tmat2x4 operator* ( tmat2x4 const & m1, tmat2x4 const & m2); template tmat2x4 operator/ ( tmat2x4 const & m, typename tmat2x4::value_type const & s); template tmat2x4 operator/ ( typename tmat2x4::value_type const & s, tmat2x4 const & m); // Unary constant operators template tmat2x4 const operator- ( tmat2x4 const & m); template tmat2x4 const operator-- ( tmat2x4 const & m, int); template tmat2x4 const operator++ ( tmat2x4 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 2 columns of 4 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat2x4 lowp_mat2x4; //! 2 columns of 4 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat2x4 mediump_mat2x4; //! 2 columns of 4 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat2x4 highp_mat2x4; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x4.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-08-05 // Updated : 2010-02-03 // Licence : This source is under MIT License // File : glm/core/type_mat2x4.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat2x4::size_type tmat2x4::col_size() { return 4; } template inline typename tmat2x4::size_type tmat2x4::row_size() { return 2; } ////////////////////////////////////// // Accesses template inline typename tmat2x4::col_type & tmat2x4::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x4.inl", 35), 0) ); return this->value[i]; } template inline typename tmat2x4::col_type const & tmat2x4::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x4.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat2x4::tmat2x4() { value_type const Zero(0); value_type const One(1); this->value[0] = col_type(One, Zero, Zero, Zero); this->value[1] = col_type(Zero, One, Zero, Zero); } template inline tmat2x4::tmat2x4 ( tmat2x4 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; } template inline tmat2x4::tmat2x4 ( ctor ) {} template inline tmat2x4::tmat2x4 ( value_type const & s ) { value_type const Zero(0); this->value[0] = col_type(s, Zero, Zero, Zero); this->value[1] = col_type(Zero, Zero, Zero, Zero); } template inline tmat2x4::tmat2x4 ( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1 ) { this->value[0] = col_type(x0, y0, z0, w0); this->value[1] = col_type(x1, y1, z1, w1); } template inline tmat2x4::tmat2x4 ( col_type const & v0, col_type const & v1 ) { this->value[0] = v0; this->value[1] = v1; } // Conversion template template inline tmat2x4::tmat2x4 ( tmat2x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x4::tmat2x4 ( tmat2x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(0)); this->value[1] = col_type(m[1], detail::tvec2(0)); } template inline tmat2x4::tmat2x4 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); } template inline tmat2x4::tmat2x4 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); } template inline tmat2x4::tmat2x4 ( tmat2x3 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); } template inline tmat2x4::tmat2x4 ( tmat3x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(0)); this->value[1] = col_type(m[1], detail::tvec2(0)); } template inline tmat2x4::tmat2x4 ( tmat3x4 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; } template inline tmat2x4::tmat2x4 ( tmat4x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(T(0))); this->value[1] = col_type(m[1], detail::tvec2(T(0))); } template inline tmat2x4::tmat2x4 ( tmat4x3 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); } ////////////////////////////////////////////////////////////// // Unary updatable operators template inline tmat2x4& tmat2x4::operator= ( tmat2x4 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; return *this; } template template inline tmat2x4& tmat2x4::operator= ( tmat2x4 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; return *this; } template template inline tmat2x4& tmat2x4::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; return *this; } template template inline tmat2x4& tmat2x4::operator+= ( tmat2x4 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; return *this; } template template inline tmat2x4& tmat2x4::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; return *this; } template template inline tmat2x4& tmat2x4::operator-= ( tmat2x4 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; return *this; } template template inline tmat2x4& tmat2x4::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; return *this; } template template inline tmat2x4& tmat2x4::operator*= ( tmat2x4 const & m ) { return (*this = tmat2x4(*this * m)); } template template inline tmat2x4 & tmat2x4::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; return *this; } template inline tmat2x4& tmat2x4::operator++ () { ++this->value[0]; ++this->value[1]; return *this; } template inline tmat2x4& tmat2x4::operator-- () { --this->value[0]; --this->value[1]; return *this; } ////////////////////////////////////////////////////////////// // Binary operators template inline tmat2x4 operator+ ( tmat2x4 const & m, typename tmat2x4::value_type const & s ) { return tmat2x4( m[0] + s, m[1] + s); } template inline tmat2x4 operator+ ( tmat2x4 const & m1, tmat2x4 const & m2 ) { return tmat2x4( m1[0] + m2[0], m1[1] + m2[1]); } template inline tmat2x4 operator- ( tmat2x4 const & m, typename tmat2x4::value_type const & s ) { return tmat2x4( m[0] - s, m[1] - s); } template inline tmat2x4 operator- ( tmat2x4 const & m1, tmat2x4 const & m2 ) { return tmat2x4( m1[0] - m2[0], m1[1] - m2[1]); } template inline tmat2x4 operator* ( tmat2x4 const & m, typename tmat2x4::value_type const & s ) { return tmat2x4( m[0] * s, m[1] * s); } template inline tmat2x4 operator* ( typename tmat2x4::value_type const & s, tmat2x4 const & m ) { return tmat2x4( m[0] * s, m[1] * s); } // X // X // X X // X X // X X // X X template inline typename tmat2x4::col_type operator* ( tmat2x4 const & m, typename tmat2x4::row_type const & v ) { return typename tmat2x4::col_type( m[0][0] * v.x + m[1][0] * v.y, m[0][1] * v.x + m[1][1] * v.y, m[0][2] * v.x + m[1][2] * v.y, m[0][3] * v.x + m[1][3] * v.y); } // X X // X X // X X // X X // X X X X template inline typename tmat2x4::row_type operator* ( typename tmat2x4::col_type const & v, tmat2x4 const & m ) { return typename tmat2x4::row_type( v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2] + v.w * m[0][3], v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2] + v.w * m[1][3]); } template inline tmat4x4 operator* ( tmat2x4 const & m1, tmat4x2 const & m2 ) { typename tmat2x4::value_type SrcA00 = m1[0][0]; typename tmat2x4::value_type SrcA01 = m1[0][1]; typename tmat2x4::value_type SrcA02 = m1[0][2]; typename tmat2x4::value_type SrcA03 = m1[0][3]; typename tmat2x4::value_type SrcA10 = m1[1][0]; typename tmat2x4::value_type SrcA11 = m1[1][1]; typename tmat2x4::value_type SrcA12 = m1[1][2]; typename tmat2x4::value_type SrcA13 = m1[1][3]; typename tmat2x4::value_type SrcB00 = m2[0][0]; typename tmat2x4::value_type SrcB01 = m2[0][1]; typename tmat2x4::value_type SrcB10 = m2[1][0]; typename tmat2x4::value_type SrcB11 = m2[1][1]; typename tmat2x4::value_type SrcB20 = m2[2][0]; typename tmat2x4::value_type SrcB21 = m2[2][1]; typename tmat2x4::value_type SrcB30 = m2[3][0]; typename tmat2x4::value_type SrcB31 = m2[3][1]; tmat4x4 Result(tmat4x4::null); Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01; Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01; Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01; Result[0][3] = SrcA03 * SrcB00 + SrcA13 * SrcB01; Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11; Result[1][1] = SrcA01 * SrcB10 + SrcA11 * SrcB11; Result[1][2] = SrcA02 * SrcB10 + SrcA12 * SrcB11; Result[1][3] = SrcA03 * SrcB10 + SrcA13 * SrcB11; Result[2][0] = SrcA00 * SrcB20 + SrcA10 * SrcB21; Result[2][1] = SrcA01 * SrcB20 + SrcA11 * SrcB21; Result[2][2] = SrcA02 * SrcB20 + SrcA12 * SrcB21; Result[2][3] = SrcA03 * SrcB20 + SrcA13 * SrcB21; Result[3][0] = SrcA00 * SrcB30 + SrcA10 * SrcB31; Result[3][1] = SrcA01 * SrcB30 + SrcA11 * SrcB31; Result[3][2] = SrcA02 * SrcB30 + SrcA12 * SrcB31; Result[3][3] = SrcA03 * SrcB30 + SrcA13 * SrcB31; return Result; } template inline tmat2x4 operator/ ( tmat2x4 const & m, typename tmat2x4::value_type const & s ) { return tmat2x4( m[0] / s, m[1] / s); } template inline tmat2x4 operator/ ( typename tmat2x4::value_type const & s, tmat2x4 const & m ) { return tmat2x4( s / m[0], s / m[1]); } // Unary constant operators template inline tmat2x4 const operator- ( tmat2x4 const & m ) { return tmat2x4( -m[0], -m[1]); } template inline tmat2x4 const operator++ ( tmat2x4 const & m, int ) { return tmat2x4( m[0] + typename tmat2x4::value_type(1), m[1] + typename tmat2x4::value_type(1)); } template inline tmat2x4 const operator-- ( tmat2x4 const & m, int ) { return tmat2x4( m[0] - typename tmat2x4::value_type(1), m[1] - typename tmat2x4::value_type(1)); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat2x4 const & m1, tmat2x4 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]); } template inline bool operator!= ( tmat2x4 const & m1, tmat2x4 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]); } } //namespace detail } //namespace glm #line 213 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x4.hpp" #line 214 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x4.hpp" #line 216 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat2x4.hpp" #line 27 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x2.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-08-05 // Updated : 2010-02-05 // Licence : This source is under MIT License // File : glm/core/type_mat3x2.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x2.hpp" namespace glm { namespace test { void main_mat3x2(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! \brief Template for 3 columns and 2 rows matrix of floating-point numbers. //! \ingroup core_template template struct tmat3x2 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec2 col_type; typedef tvec3 row_type; static size_type col_size(); static size_type row_size(); typedef tmat3x2 type; typedef tmat2x3 transpose_type; private: // Data col_type value[3]; public: // Constructors tmat3x2(); tmat3x2(tmat3x2 const & m); explicit tmat3x2( ctor); explicit tmat3x2( value_type const & s); explicit tmat3x2( value_type const & x0, value_type const & y0, value_type const & x1, value_type const & y1, value_type const & x2, value_type const & y2); explicit tmat3x2( col_type const & v0, col_type const & v1, col_type const & v2); // Conversion template explicit tmat3x2(tmat3x2 const & m); explicit tmat3x2(tmat2x2 const & x); explicit tmat3x2(tmat3x3 const & x); explicit tmat3x2(tmat4x4 const & x); explicit tmat3x2(tmat2x3 const & x); explicit tmat3x2(tmat2x4 const & x); explicit tmat3x2(tmat3x4 const & x); explicit tmat3x2(tmat4x2 const & x); explicit tmat3x2(tmat4x3 const & x); // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat3x2 & operator= (tmat3x2 const & m); template tmat3x2 & operator= (tmat3x2 const & m); template tmat3x2 & operator+= (U const & s); template tmat3x2 & operator+= (tmat3x2 const & m); template tmat3x2 & operator-= (U const & s); template tmat3x2 & operator-= (tmat3x2 const & m); template tmat3x2 & operator*= (U const & s); template tmat3x2 & operator*= (tmat3x2 const & m); template tmat3x2 & operator/= (U const & s); tmat3x2 & operator++ (); tmat3x2 & operator-- (); }; // Binary operators template tmat3x2 operator+ ( tmat3x2 const & m, typename tmat3x2::value_type const & s); template tmat3x2 operator+ ( tmat3x2 const & m1, tmat3x2 const & m2); template tmat3x2 operator- ( tmat3x2 const & m, typename tmat3x2::value_type const & s); template tmat3x2 operator- ( tmat3x2 const & m1, tmat3x2 const & m2); template tmat3x2 operator* ( tmat3x2 const & m, typename tmat3x2::value_type const & s); template tmat3x2 operator* ( typename tmat3x2::value_type const & s, tmat3x2 const & m); template typename tmat3x2::col_type operator* ( tmat3x2 const & m, typename tmat3x2::row_type const & v); template typename tmat3x2::row_type operator* ( typename tmat3x2::col_type const & v, tmat3x2 const & m); template tmat2x2 operator* ( tmat3x2 const & m1, tmat2x3 const & m2); template tmat3x2 operator/ ( tmat3x2 const & m, typename tmat3x2::value_type const & s); template tmat3x2 operator/ ( typename tmat3x2::value_type const & s, tmat3x2 const & m); // Unary constant operators template tmat3x2 const operator- ( tmat3x2 const & m); template tmat3x2 const operator-- ( tmat3x2 const & m, int); template tmat3x2 const operator++ ( tmat3x2 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 3 columns of 2 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat3x2 lowp_mat3x2; //! 3 columns of 2 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat3x2 mediump_mat3x2; //! 3 columns of 2 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat3x2 highp_mat3x2; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x2.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-08-05 // Updated : 2010-01-05 // Licence : This source is under MIT License // File : glm/core/type_mat3x2.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat3x2::size_type tmat3x2::col_size() { return 2; } template inline typename tmat3x2::size_type tmat3x2::row_size() { return 3; } ////////////////////////////////////// // Accesses template inline typename tmat3x2::col_type & tmat3x2::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x2.inl", 35), 0) ); return this->value[i]; } template inline typename tmat3x2::col_type const & tmat3x2::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x2.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat3x2::tmat3x2() { this->value[0] = col_type(1, 0); this->value[1] = col_type(0, 1); this->value[2] = col_type(0, 0); } template inline tmat3x2::tmat3x2 ( tmat3x2 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; this->value[2] = m.value[2]; } template inline tmat3x2::tmat3x2 ( ctor ) {} template inline tmat3x2::tmat3x2 ( value_type const & s ) { this->value[0] = col_type(s, 0); this->value[1] = col_type(0, s); this->value[2] = col_type(0, 0); } template inline tmat3x2::tmat3x2 ( value_type const & x0, value_type const & y0, value_type const & x1, value_type const & y1, value_type const & x2, value_type const & y2 ) { this->value[0] = col_type(x0, y0); this->value[1] = col_type(x1, y1); this->value[2] = col_type(x2, y2); } template inline tmat3x2::tmat3x2 ( col_type const & v0, col_type const & v1, col_type const & v2 ) { this->value[0] = v0; this->value[1] = v1; this->value[2] = v2; } // Conversion template template inline tmat3x2::tmat3x2 ( tmat3x2 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x2::tmat3x2 ( tmat2x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = col_type(T(0)); } template inline tmat3x2::tmat3x2 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x2::tmat3x2 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x2::tmat3x2 ( tmat2x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(T(0)); } template inline tmat3x2::tmat3x2 ( tmat2x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(T(0)); } template inline tmat3x2::tmat3x2 ( tmat3x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x2::tmat3x2 ( tmat4x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; } template inline tmat3x2::tmat3x2 ( tmat4x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } ////////////////////////////////////////////////////////////// // Unary updatable operators template inline tmat3x2& tmat3x2::operator= ( tmat3x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; return *this; } template template inline tmat3x2& tmat3x2::operator= ( tmat3x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; return *this; } template template inline tmat3x2& tmat3x2::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; this->value[2] += s; return *this; } template template inline tmat3x2& tmat3x2::operator+= ( tmat3x2 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; this->value[2] += m[2]; return *this; } template template inline tmat3x2& tmat3x2::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; this->value[2] -= s; return *this; } template template inline tmat3x2& tmat3x2::operator-= ( tmat3x2 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; this->value[2] -= m[2]; return *this; } template template inline tmat3x2& tmat3x2::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; this->value[2] *= s; return *this; } template template inline tmat3x2& tmat3x2::operator*= ( tmat3x2 const & m ) { return (*this = tmat3x2(*this * m)); } template template inline tmat3x2 & tmat3x2::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; this->value[2] /= s; return *this; } template inline tmat3x2& tmat3x2::operator++ () { ++this->value[0]; ++this->value[1]; ++this->value[2]; return *this; } template inline tmat3x2& tmat3x2::operator-- () { --this->value[0]; --this->value[1]; --this->value[2]; return *this; } ////////////////////////////////////////////////////////////// // Binary operators template inline tmat3x2 operator+ ( tmat3x2 const & m, typename tmat3x2::value_type const & s ) { return tmat3x2( m[0] + s, m[1] + s, m[2] + s); } template inline tmat3x2 operator+ ( tmat3x2 const & m1, tmat3x2 const & m2 ) { return tmat3x2( m1[0] + m2[0], m1[1] + m2[1], m1[2] + m2[2]); } template inline tmat3x2 operator- ( tmat3x2 const & m, typename tmat3x2::value_type const & s ) { return tmat3x2( m[0] - s, m[1] - s, m[2] - s); } template inline tmat3x2 operator- ( tmat3x2 const & m1, tmat3x2 const & m2 ) { return tmat3x2( m1[0] - m2[0], m1[1] - m2[1], m1[2] - m2[2]); } template inline tmat3x2 operator* ( tmat3x2 const & m, typename tmat3x2::value_type const & s ) { return tmat3x2( m[0] * s, m[1] * s, m[2] * s); } template inline tmat3x2 operator* ( typename tmat3x2::value_type const & s, tmat3x2 const & m ) { return tmat3x2( m[0] * s, m[1] * s, m[2] * s); } template inline typename tmat3x2::col_type operator* ( tmat3x2 const & m, typename tmat3x2::row_type const & v) { return typename tmat3x2::col_type( m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z, m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z); } template inline typename tmat3x2::row_type operator* ( typename tmat3x2::col_type const & v, tmat3x2 const & m) { return typename tmat3x2::row_type( v.x * m[0][0] + v.y * m[0][1], v.x * m[1][0] + v.y * m[1][1], v.x * m[2][0] + v.y * m[2][1]); } template inline tmat2x2 operator* ( tmat3x2 const & m1, tmat2x3 const & m2 ) { const T SrcA00 = m1[0][0]; const T SrcA01 = m1[0][1]; const T SrcA10 = m1[1][0]; const T SrcA11 = m1[1][1]; const T SrcA20 = m1[2][0]; const T SrcA21 = m1[2][1]; const T SrcB00 = m2[0][0]; const T SrcB01 = m2[0][1]; const T SrcB02 = m2[0][2]; const T SrcB10 = m2[1][0]; const T SrcB11 = m2[1][1]; const T SrcB12 = m2[1][2]; tmat2x2 Result(tmat2x2::null); Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02; Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02; Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11 + SrcA20 * SrcB12; Result[1][1] = SrcA01 * SrcB10 + SrcA11 * SrcB11 + SrcA21 * SrcB12; return Result; } template inline tmat3x2 operator/ ( tmat3x2 const & m, typename tmat3x2::value_type const & s ) { return tmat3x2( m[0] / s, m[1] / s, m[2] / s); } template inline tmat3x2 operator/ ( typename tmat3x2::value_type const & s, tmat3x2 const & m ) { return tmat3x2( s / m[0], s / m[1], s / m[2]); } // Unary constant operators template inline tmat3x2 const operator- ( tmat3x2 const & m ) { return tmat3x2( -m[0], -m[1], -m[2]); } template inline tmat3x2 const operator++ ( tmat3x2 const & m, int ) { typename tmat3x2::value_type One(1); return tmat3x2( m[0] + One, m[1] + One, m[2] + One); } template inline tmat3x2 const operator-- ( tmat3x2 const & m, int ) { typename tmat3x2::value_type One(1); return tmat3x2( m[0] - One, m[1] - One, m[2] - One); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat3x2 const & m1, tmat3x2 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]); } template inline bool operator!= ( tmat3x2 const & m1, tmat3x2 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]); } } //namespace detail } //namespace glm #line 215 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x2.hpp" #line 216 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x2.hpp" #line 218 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x2.hpp" #line 28 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x3.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2005-01-27 // Updated : 2010-02-03 // Licence : This source is under MIT License // File : glm/core/type_mat3x3.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x3.hpp" namespace glm { namespace test { void main_mat3x3(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! \brief Template for 3 * 3 matrix of floating-point numbers. //! \ingroup core_template template struct tmat3x3 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec3 col_type; typedef tvec3 row_type; static size_type col_size(); static size_type row_size(); typedef tmat3x3 type; typedef tmat3x3 transpose_type; public: // Implementation detail tmat3x3 _inverse() const; private: // Data col_type value[3]; public: // Constructors tmat3x3(); tmat3x3(tmat3x3 const & m); explicit tmat3x3( ctor Null); explicit tmat3x3( value_type const & s); explicit tmat3x3( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & x2, value_type const & y2, value_type const & z2); explicit tmat3x3( col_type const & v0, col_type const & v1, col_type const & v2); // Conversions template explicit tmat3x3(tmat3x3 const & m); explicit tmat3x3(tmat2x2 const & x); explicit tmat3x3(tmat4x4 const & x); explicit tmat3x3(tmat2x3 const & x); explicit tmat3x3(tmat3x2 const & x); explicit tmat3x3(tmat2x4 const & x); explicit tmat3x3(tmat4x2 const & x); explicit tmat3x3(tmat3x4 const & x); explicit tmat3x3(tmat4x3 const & x); // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat3x3& operator= (tmat3x3 const & m); template tmat3x3& operator= (tmat3x3 const & m); template tmat3x3& operator+= (U const & s); template tmat3x3& operator+= (tmat3x3 const & m); template tmat3x3& operator-= (U const & s); template tmat3x3& operator-= (tmat3x3 const & m); template tmat3x3& operator*= (U const & s); template tmat3x3& operator*= (tmat3x3 const & m); template tmat3x3& operator/= (U const & s); template tmat3x3& operator/= (tmat3x3 const & m); tmat3x3& operator++ (); tmat3x3& operator-- (); }; // Binary operators template tmat3x3 operator+ ( tmat3x3 const & m, typename tmat3x3::value_type const & s); template tmat3x3 operator+ ( typename tmat3x3::value_type const & s, tmat3x3 const & m); template tmat3x3 operator+ ( tmat3x3 const & m1, tmat3x3 const & m2); template tmat3x3 operator- ( tmat3x3 const & m, typename tmat3x3::value_type const & s); template tmat3x3 operator- ( typename tmat3x3::value_type const & s, tmat3x3 const & m); template tmat3x3 operator- ( tmat3x3 const & m1, tmat3x3 const & m2); template tmat3x3 operator* ( tmat3x3 const & m, typename tmat3x3::value_type const & s); template tmat3x3 operator* ( typename tmat3x3::value_type const & s, tmat3x3 const & m); template typename tmat3x3::col_type operator* ( tmat3x3 const & m, typename tmat3x3::row_type const & v); template typename tmat3x3::row_type operator* ( typename tmat3x3::col_type const & v, tmat3x3 const & m); template tmat3x3 operator* ( tmat3x3 const & m1, tmat3x3 const & m2); template tmat3x3 operator/ ( tmat3x3 const & m, typename tmat3x3::value_type const & s); template tmat3x3 operator/ ( typename tmat3x3::value_type const & s, tmat3x3 const & m); template typename tmat3x3::col_type operator/ ( tmat3x3 const & m, typename tmat3x3::row_type const & v); template typename tmat3x3::row_type operator/ ( typename tmat3x3::col_type const & v, tmat3x3 const & m); template tmat3x3 operator/ ( tmat3x3 const & m1, tmat3x3 const & m2); // Unary constant operators template tmat3x3 const operator- ( tmat3x3 const & m); template tmat3x3 const operator-- ( tmat3x3 const & m, int); template tmat3x3 const operator++ ( tmat3x3 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 3 columns of 3 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat3x3 lowp_mat3x3; //! 3 columns of 3 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat3x3 mediump_mat3x3; //! 3 columns of 3 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat3x3 highp_mat3x3; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x3.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2005-01-27 // Updated : 2010-02-03 // Licence : This source is under MIT License // File : glm/core/type_mat3x3.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat3x3::size_type tmat3x3::col_size() { return 3; } template inline typename tmat3x3::size_type tmat3x3::row_size() { return 3; } ////////////////////////////////////// // Accesses template inline typename tmat3x3::col_type & tmat3x3::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x3.inl", 35), 0) ); return this->value[i]; } template inline typename tmat3x3::col_type const & tmat3x3::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x3.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat3x3::tmat3x3() { value_type const Zero(0); value_type const One(1); this->value[0] = col_type(One, Zero, Zero); this->value[1] = col_type(Zero, One, Zero); this->value[2] = col_type(Zero, Zero, One); } template inline tmat3x3::tmat3x3 ( tmat3x3 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; this->value[2] = m.value[2]; } template inline tmat3x3::tmat3x3 ( ctor ) {} template inline tmat3x3::tmat3x3 ( value_type const & s ) { value_type const Zero(0); this->value[0] = col_type(s, Zero, Zero); this->value[1] = col_type(Zero, s, Zero); this->value[2] = col_type(Zero, Zero, s); } template inline tmat3x3::tmat3x3 ( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & x2, value_type const & y2, value_type const & z2 ) { this->value[0] = col_type(x0, y0, z0); this->value[1] = col_type(x1, y1, z1); this->value[2] = col_type(x2, y2, z2); } template inline tmat3x3::tmat3x3 ( col_type const & v0, col_type const & v1, col_type const & v2 ) { this->value[0] = v0; this->value[1] = v1; this->value[2] = v2; } ////////////////////////////////////////////////////////////// // Conversions template template inline tmat3x3::tmat3x3 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x3::tmat3x3 ( tmat2x2 const & m ) { this->value[0] = col_type(m[0], value_type(0)); this->value[1] = col_type(m[1], value_type(0)); this->value[2] = col_type(detail::tvec2(0), value_type(1)); } template inline tmat3x3::tmat3x3 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x3::tmat3x3 ( tmat2x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = col_type(detail::tvec2(0), value_type(1)); } template inline tmat3x3::tmat3x3 ( tmat3x2 const & m ) { this->value[0] = col_type(m[0], value_type(0)); this->value[1] = col_type(m[1], value_type(0)); this->value[2] = col_type(m[2], value_type(1)); } template inline tmat3x3::tmat3x3 ( tmat2x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(detail::tvec2(0), value_type(1)); } template inline tmat3x3::tmat3x3 ( tmat4x2 const & m ) { this->value[0] = col_type(m[0], value_type(0)); this->value[1] = col_type(m[1], value_type(0)); this->value[2] = col_type(m[2], value_type(1)); } template inline tmat3x3::tmat3x3 ( tmat3x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x3::tmat3x3 ( tmat4x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; } ////////////////////////////////////////////////////////////// // Operators template inline tmat3x3 & tmat3x3::operator= ( tmat3x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; return *this; } template template inline tmat3x3 & tmat3x3::operator= ( tmat3x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; return *this; } template template inline tmat3x3 & tmat3x3::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; this->value[2] += s; return *this; } template template inline tmat3x3 & tmat3x3::operator+= ( tmat3x3 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; this->value[2] += m[2]; return *this; } template template inline tmat3x3 & tmat3x3::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; this->value[2] -= s; return *this; } template template inline tmat3x3 & tmat3x3::operator-= ( tmat3x3 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; this->value[2] -= m[2]; return *this; } template template inline tmat3x3 & tmat3x3::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; this->value[2] *= s; return *this; } template template inline tmat3x3 & tmat3x3::operator*= ( tmat3x3 const & m ) { return (*this = *this * m); } template template inline tmat3x3 & tmat3x3::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; this->value[2] /= s; return *this; } template template inline tmat3x3 & tmat3x3::operator/= ( tmat3x3 const & m ) { return (*this = *this / m); } template inline tmat3x3 & tmat3x3::operator++ () { ++this->value[0]; ++this->value[1]; ++this->value[2]; return *this; } template inline tmat3x3 & tmat3x3::operator-- () { --this->value[0]; --this->value[1]; --this->value[2]; return *this; } template inline tmat3x3 tmat3x3::_inverse() const { T S00 = value[0][0]; T S01 = value[0][1]; T S02 = value[0][2]; T S10 = value[1][0]; T S11 = value[1][1]; T S12 = value[1][2]; T S20 = value[2][0]; T S21 = value[2][1]; T S22 = value[2][2]; /* tmat3x3 Inverse( + (S11 * S22 - S21 * S12), - (S10 * S22 - S20 * S12), + (S10 * S21 - S20 * S11), - (S01 * S22 - S21 * S02), + (S00 * S22 - S20 * S02), - (S00 * S21 - S20 * S01), + (S01 * S12 - S11 * S02), - (S00 * S12 - S10 * S02), + (S00 * S11 - S10 * S01)); */ tmat3x3 Inverse( S11 * S22 - S21 * S12, S12 * S20 - S22 * S10, S10 * S21 - S20 * S11, S02 * S21 - S01 * S22, S00 * S22 - S02 * S20, S01 * S20 - S00 * S21, S12 * S01 - S11 * S02, S10 * S02 - S12 * S00, S11 * S00 - S10 * S01); T Determinant = S00 * (S11 * S22 - S21 * S12) - S10 * (S01 * S22 - S21 * S02) + S20 * (S01 * S12 - S11 * S02); Inverse /= Determinant; return Inverse; } ////////////////////////////////////////////////////////////// // Binary operators template inline tmat3x3 operator+ ( tmat3x3 const & m, typename tmat3x3::value_type const & s ) { return tmat3x3( m[0] + s, m[1] + s, m[2] + s); } template inline tmat3x3 operator+ ( typename tmat3x3::value_type const & s, tmat3x3 const & m ) { return tmat3x3( m[0] + s, m[1] + s, m[2] + s); } template inline tmat3x3 operator+ ( tmat3x3 const & m1, tmat3x3 const & m2 ) { return tmat3x3( m1[0] + m2[0], m1[1] + m2[1], m1[2] + m2[2]); } template inline tmat3x3 operator- ( tmat3x3 const & m, typename tmat3x3::value_type const & s ) { return tmat3x3( m[0] - s, m[1] - s, m[2] - s); } template inline tmat3x3 operator- ( typename tmat3x3::value_type const & s, tmat3x3 const & m ) { return tmat3x3( s - m[0], s - m[1], s - m[2]); } template inline tmat3x3 operator- ( tmat3x3 const & m1, tmat3x3 const & m2 ) { return tmat3x3( m1[0] - m2[0], m1[1] - m2[1], m1[2] - m2[2]); } template inline tmat3x3 operator* ( tmat3x3 const & m, typename tmat3x3::value_type const & s ) { return tmat3x3( m[0] * s, m[1] * s, m[2] * s); } template inline tmat3x3 operator* ( typename tmat3x3::value_type const & s, tmat3x3 const & m ) { return tmat3x3( m[0] * s, m[1] * s, m[2] * s); } template inline typename tmat3x3::col_type operator* ( tmat3x3 const & m, typename tmat3x3::row_type const & v ) { return typename tmat3x3::col_type( m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z, m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z, m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z); } template inline typename tmat3x3::row_type operator* ( typename tmat3x3::col_type const & v, tmat3x3 const & m ) { return typename tmat3x3::row_type( m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z, m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z, m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z); } template inline tmat3x3 operator* ( tmat3x3 const & m1, tmat3x3 const & m2 ) { typename tmat3x3::value_type const SrcA00 = m1[0][0]; typename tmat3x3::value_type const SrcA01 = m1[0][1]; typename tmat3x3::value_type const SrcA02 = m1[0][2]; typename tmat3x3::value_type const SrcA10 = m1[1][0]; typename tmat3x3::value_type const SrcA11 = m1[1][1]; typename tmat3x3::value_type const SrcA12 = m1[1][2]; typename tmat3x3::value_type const SrcA20 = m1[2][0]; typename tmat3x3::value_type const SrcA21 = m1[2][1]; typename tmat3x3::value_type const SrcA22 = m1[2][2]; typename tmat3x3::value_type const SrcB00 = m2[0][0]; typename tmat3x3::value_type const SrcB01 = m2[0][1]; typename tmat3x3::value_type const SrcB02 = m2[0][2]; typename tmat3x3::value_type const SrcB10 = m2[1][0]; typename tmat3x3::value_type const SrcB11 = m2[1][1]; typename tmat3x3::value_type const SrcB12 = m2[1][2]; typename tmat3x3::value_type const SrcB20 = m2[2][0]; typename tmat3x3::value_type const SrcB21 = m2[2][1]; typename tmat3x3::value_type const SrcB22 = m2[2][2]; tmat3x3 Result(tmat3x3::null); Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02; Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02; Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01 + SrcA22 * SrcB02; Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11 + SrcA20 * SrcB12; Result[1][1] = SrcA01 * SrcB10 + SrcA11 * SrcB11 + SrcA21 * SrcB12; Result[1][2] = SrcA02 * SrcB10 + SrcA12 * SrcB11 + SrcA22 * SrcB12; Result[2][0] = SrcA00 * SrcB20 + SrcA10 * SrcB21 + SrcA20 * SrcB22; Result[2][1] = SrcA01 * SrcB20 + SrcA11 * SrcB21 + SrcA21 * SrcB22; Result[2][2] = SrcA02 * SrcB20 + SrcA12 * SrcB21 + SrcA22 * SrcB22; return Result; } template inline tmat3x3 operator/ ( tmat3x3 const & m, typename tmat3x3::value_type const & s ) { return tmat3x3( m[0] / s, m[1] / s, m[2] / s); } template inline tmat3x3 operator/ ( typename tmat3x3::value_type const & s, tmat3x3 const & m ) { return tmat3x3( s / m[0], s / m[1], s / m[2]); } template inline typename tmat3x3::col_type operator/ ( tmat3x3 const & m, typename tmat3x3::row_type const & v ) { return m._inverse() * v; } template inline typename tmat3x3::row_type operator/ ( typename tmat3x3::col_type const & v, tmat3x3 const & m ) { return v * m._inverse(); } template inline tmat3x3 operator/ ( tmat3x3 const & m1, tmat3x3 const & m2 ) { return m1 * m2._inverse(); } // Unary constant operators template inline tmat3x3 const operator- ( tmat3x3 const & m ) { return tmat3x3( -m[0], -m[1], -m[2]); } template inline tmat3x3 const operator++ ( tmat3x3 const & m, int ) { return tmat3x3( m[0] + T(1), m[1] + T(1), m[2] + T(1)); } template inline tmat3x3 const operator-- ( tmat3x3 const & m, int ) { return tmat3x3( m[0] - T(1), m[1] - T(1), m[2] - T(1)); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat3x3 const & m1, tmat3x3 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]); } template inline bool operator!= ( tmat3x3 const & m1, tmat3x3 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]); } } //namespace detail } //namespace glm #line 248 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x3.hpp" #line 249 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x3.hpp" #line 251 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x3.hpp" #line 29 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x4.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-08-05 // Updated : 2010-02-05 // Licence : This source is under MIT License // File : glm/core/type_mat3x4.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x4.hpp" namespace glm { namespace test { void main_mat3x4(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! \brief Template for 3 columns and 4 rows matrix of floating-point numbers. //! \ingroup core_template template struct tmat3x4 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec4 col_type; typedef tvec3 row_type; static size_type col_size(); static size_type row_size(); typedef tmat3x4 type; typedef tmat4x3 transpose_type; private: // Data col_type value[3]; public: // Constructors tmat3x4(); tmat3x4(tmat3x4 const & m); explicit tmat3x4( ctor Null); explicit tmat3x4( value_type const & s); explicit tmat3x4( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1, value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2); explicit tmat3x4( col_type const & v0, col_type const & v1, col_type const & v2); // Conversion template explicit tmat3x4(tmat3x4 const & m); explicit tmat3x4(tmat2x2 const & x); explicit tmat3x4(tmat3x3 const & x); explicit tmat3x4(tmat4x4 const & x); explicit tmat3x4(tmat2x3 const & x); explicit tmat3x4(tmat3x2 const & x); explicit tmat3x4(tmat2x4 const & x); explicit tmat3x4(tmat4x2 const & x); explicit tmat3x4(tmat4x3 const & x); // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat3x4 & operator= (tmat3x4 const & m); template tmat3x4 & operator= (tmat3x4 const & m); template tmat3x4 & operator+= (U const & s); template tmat3x4 & operator+= (tmat3x4 const & m); template tmat3x4 & operator-= (U const & s); template tmat3x4 & operator-= (tmat3x4 const & m); template tmat3x4 & operator*= (U const & s); template tmat3x4 & operator*= (tmat3x4 const & m); template tmat3x4 & operator/= (U const & s); tmat3x4 & operator++ (); tmat3x4 & operator-- (); }; // Binary operators template tmat3x4 operator+ ( tmat3x4 const & m, typename tmat3x4::value_type const & s); template tmat3x4 operator+ ( tmat3x4 const & m1, tmat3x4 const & m2); template tmat3x4 operator- ( tmat3x4 const & m, typename tmat3x4::value_type const & s); template tmat3x4 operator- ( tmat3x4 const & m1, tmat3x4 const & m2); template tmat3x4 operator* ( tmat3x4 const & m, typename tmat3x4::value_type const & s); template tmat3x4 operator* ( typename tmat3x4::value_type const & s, tmat3x4 const & m); template typename tmat3x4::col_type operator* ( tmat3x4 const & m, typename tmat3x4::row_type const & v); template typename tmat3x4::row_type operator* ( typename tmat3x4::col_type const & v, tmat3x4 const & m); template tmat4x4 operator* ( tmat3x4 const & m1, tmat4x3 const & m2); template tmat3x4 operator/ ( tmat3x4 const & m, typename tmat3x4::value_type const & s); template tmat3x4 operator/ ( typename tmat3x4::value_type const & s, tmat3x4 const & m); // Unary constant operators template tmat3x4 const operator- ( tmat3x4 const & m); template tmat3x4 const operator-- ( tmat3x4 const & m, int); template tmat3x4 const operator++ ( tmat3x4 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 3 columns of 4 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat3x4 lowp_mat3x4; //! 3 columns of 4 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat3x4 mediump_mat3x4; //! 3 columns of 4 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) typedef detail::tmat3x4 highp_mat3x4; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x4.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-08-05 // Updated : 2010-02-05 // Licence : This source is under MIT License // File : glm/core/type_mat3x4.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat3x4::size_type tmat3x4::col_size() { return 4; } template inline typename tmat3x4::size_type tmat3x4::row_size() { return 3; } ////////////////////////////////////// // Accesses template inline typename tmat3x4::col_type & tmat3x4::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x4.inl", 35), 0) ); return this->value[i]; } template inline typename tmat3x4::col_type const & tmat3x4::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x4.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat3x4::tmat3x4() { value_type const Zero(0); value_type const One(1); this->value[0] = col_type(1, 0, 0, 0); this->value[1] = col_type(0, 1, 0, 0); this->value[2] = col_type(0, 0, 1, 0); } template inline tmat3x4::tmat3x4 ( tmat3x4 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; this->value[2] = m.value[2]; } template inline tmat3x4::tmat3x4 ( ctor ) {} template inline tmat3x4::tmat3x4 ( value_type const & s ) { value_type const Zero(0); this->value[0] = col_type(s, Zero, Zero, Zero); this->value[1] = col_type(Zero, s, Zero, Zero); this->value[2] = col_type(Zero, Zero, s, Zero); } template inline tmat3x4::tmat3x4 ( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1, value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2 ) { this->value[0] = col_type(x0, y0, z0, w0); this->value[1] = col_type(x1, y1, z1, w1); this->value[2] = col_type(x2, y2, z2, w2); } template inline tmat3x4::tmat3x4 ( col_type const & v0, col_type const & v1, col_type const & v2 ) { this->value[0] = v0; this->value[1] = v1; this->value[2] = v2; } // Conversion template template inline tmat3x4::tmat3x4 ( tmat3x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x4::tmat3x4 ( tmat2x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(0)); this->value[1] = col_type(m[1], detail::tvec2(0)); this->value[2] = col_type(T(0), T(0), T(1), T(0)); } template inline tmat3x4::tmat3x4 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); this->value[2] = col_type(m[2], T(0)); } template inline tmat3x4::tmat3x4 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); } template inline tmat3x4::tmat3x4 ( tmat2x3 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); this->value[2] = col_type(T(0), T(0), T(1), T(0)); } template inline tmat3x4::tmat3x4 ( tmat3x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(0)); this->value[1] = col_type(m[1], detail::tvec2(0)); this->value[2] = col_type(m[2], T(0), T(1)); } template inline tmat3x4::tmat3x4 ( tmat2x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(T(0), T(0), T(1), T(0)); } template inline tmat3x4::tmat3x4 ( tmat4x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(T(0))); this->value[1] = col_type(m[1], detail::tvec2(T(0))); this->value[2] = col_type(m[2], detail::tvec2(T(1), T(0))); } template inline tmat3x4::tmat3x4 ( tmat4x3 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); this->value[2] = col_type(m[2], T(0)); } ////////////////////////////////////////////////////////////// // Unary updatable operators template inline tmat3x4& tmat3x4::operator= ( tmat3x4 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; return *this; } template template inline tmat3x4& tmat3x4::operator= ( tmat3x4 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; return *this; } template template inline tmat3x4& tmat3x4::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; this->value[2] += s; return *this; } template template inline tmat3x4& tmat3x4::operator+= ( tmat3x4 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; this->value[2] += m[2]; return *this; } template template inline tmat3x4& tmat3x4::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; this->value[2] -= s; return *this; } template template inline tmat3x4& tmat3x4::operator-= ( tmat3x4 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; this->value[2] -= m[2]; return *this; } template template inline tmat3x4& tmat3x4::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; this->value[2] *= s; return *this; } template template inline tmat3x4& tmat3x4::operator*= ( tmat3x4 const & m ) { return (*this = tmat3x4(*this * m)); } template template inline tmat3x4 & tmat3x4::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; this->value[2] /= s; return *this; } template inline tmat3x4& tmat3x4::operator++ () { ++this->value[0]; ++this->value[1]; ++this->value[2]; return *this; } template inline tmat3x4& tmat3x4::operator-- () { --this->value[0]; --this->value[1]; --this->value[2]; return *this; } ////////////////////////////////////////////////////////////// // Binary operators template inline tmat3x4 operator+ ( tmat3x4 const & m, typename tmat3x4::value_type const & s ) { return tmat3x4( m[0] + s, m[1] + s, m[2] + s); } template inline tmat3x4 operator+ ( tmat3x4 const & m1, tmat3x4 const & m2 ) { return tmat3x4( m1[0] + m2[0], m1[1] + m2[1], m1[2] + m2[2]); } template inline tmat3x4 operator- ( tmat3x4 const & m, typename tmat3x4::value_type const & s ) { return tmat3x4( m[0] - s, m[1] - s, m[2] - s); } template inline tmat3x4 operator- ( tmat3x4 const & m1, tmat3x4 const & m2 ) { return tmat3x4( m1[0] - m2[0], m1[1] - m2[1], m1[2] - m2[2]); } template inline tmat3x4 operator* ( tmat3x4 const & m, typename tmat3x4::value_type const & s ) { return tmat3x4( m[0] * s, m[1] * s, m[2] * s); } template inline tmat3x4 operator* ( typename tmat3x4::value_type const & s, tmat3x4 const & m ) { return tmat3x4( m[0] * s, m[1] * s, m[2] * s); } template inline typename tmat3x4::col_type operator* ( tmat3x4 const & m, typename tmat3x4::row_type const & v ) { return typename tmat3x4::col_type( m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z, m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z, m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z, m[0][3] * v.x + m[1][3] * v.y + m[2][3] * v.z); } // X X X // X X X // X X X // X X X // X X X X template inline typename tmat3x4::row_type operator* ( typename tmat3x4::col_type const & v, tmat3x4 const & m ) { return typename tmat3x4::row_type( v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2] + v.w * m[0][3], v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2] + v.w * m[1][3], v.x * m[2][0] + v.y * m[2][1] + v.z * m[2][2] + v.w * m[2][3]); } template inline tmat4x4 operator* ( tmat3x4 const & m1, tmat4x3 const & m2 ) { const T SrcA00 = m1[0][0]; const T SrcA01 = m1[0][1]; const T SrcA02 = m1[0][2]; const T SrcA03 = m1[0][3]; const T SrcA10 = m1[1][0]; const T SrcA11 = m1[1][1]; const T SrcA12 = m1[1][2]; const T SrcA13 = m1[1][3]; const T SrcA20 = m1[2][0]; const T SrcA21 = m1[2][1]; const T SrcA22 = m1[2][2]; const T SrcA23 = m1[2][3]; const T SrcB00 = m2[0][0]; const T SrcB01 = m2[0][1]; const T SrcB02 = m2[0][2]; const T SrcB10 = m2[1][0]; const T SrcB11 = m2[1][1]; const T SrcB12 = m2[1][2]; const T SrcB20 = m2[2][0]; const T SrcB21 = m2[2][1]; const T SrcB22 = m2[2][2]; const T SrcB30 = m2[3][0]; const T SrcB31 = m2[3][1]; const T SrcB32 = m2[3][2]; tmat4x4 Result(tmat4x4::null); Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02; Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02; Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01 + SrcA22 * SrcB02; Result[0][3] = SrcA03 * SrcB00 + SrcA13 * SrcB01 + SrcA23 * SrcB02; Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11 + SrcA20 * SrcB12; Result[1][1] = SrcA01 * SrcB10 + SrcA11 * SrcB11 + SrcA21 * SrcB12; Result[1][2] = SrcA02 * SrcB10 + SrcA12 * SrcB11 + SrcA22 * SrcB12; Result[1][3] = SrcA03 * SrcB10 + SrcA13 * SrcB11 + SrcA23 * SrcB12; Result[2][0] = SrcA00 * SrcB20 + SrcA10 * SrcB21 + SrcA20 * SrcB22; Result[2][1] = SrcA01 * SrcB20 + SrcA11 * SrcB21 + SrcA21 * SrcB22; Result[2][2] = SrcA02 * SrcB20 + SrcA12 * SrcB21 + SrcA22 * SrcB22; Result[2][3] = SrcA03 * SrcB20 + SrcA13 * SrcB21 + SrcA23 * SrcB22; Result[3][0] = SrcA00 * SrcB30 + SrcA10 * SrcB31 + SrcA20 * SrcB32; Result[3][1] = SrcA01 * SrcB30 + SrcA11 * SrcB31 + SrcA21 * SrcB32; Result[3][2] = SrcA02 * SrcB30 + SrcA12 * SrcB31 + SrcA22 * SrcB32; Result[3][3] = SrcA03 * SrcB30 + SrcA13 * SrcB31 + SrcA23 * SrcB32; return Result; } template inline tmat3x4 operator/ ( tmat3x4 const & m, typename tmat3x4::value_type const & s ) { return tmat3x4( m[0] / s, m[1] / s, m[2] / s); } template inline tmat3x4 operator/ ( typename tmat3x4::value_type const & s, tmat3x4 const & m ) { return tmat3x4( s / m[0], s / m[1], s / m[2]); } // Unary constant operators template inline tmat3x4 const operator- ( tmat3x4 const & m ) { return tmat3x4( -m[0], -m[1], -m[2]); } template inline tmat3x4 const operator++ ( tmat3x4 const & m, int ) { return tmat3x4( m[0] + T(1), m[1] + T(1), m[2] + T(1)); } template inline tmat3x4 const operator-- ( tmat3x4 const & m, int ) { return tmat3x4( m[0] - T(1), m[1] - T(1), m[2] - T(1)); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat3x4 const & m1, tmat3x4 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]); } template inline bool operator!= ( tmat3x4 const & m1, tmat3x4 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]); } } //namespace detail } //namespace glm #line 215 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x4.hpp" #line 216 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x4.hpp" #line 218 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat3x4.hpp" #line 30 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x2.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-10-01 // Updated : 2010-02-11 // Licence : This source is under MIT License // File : glm/core/type_mat4x2.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x2.hpp" namespace glm { namespace test { void main_mat4x2(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! \brief Template for 4 columns and 2 rows matrix of floating-point numbers. //! \ingroup core_template template struct tmat4x2 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec2 col_type; typedef tvec4 row_type; static size_type col_size(); static size_type row_size(); typedef tmat4x2 type; typedef tmat2x4 transpose_type; private: // Data col_type value[4]; public: // Constructors tmat4x2(); tmat4x2(tmat4x2 const & m); explicit tmat4x2( ctor Null); explicit tmat4x2( value_type const & x); explicit tmat4x2( value_type const & x0, value_type const & y0, value_type const & x1, value_type const & y1, value_type const & x2, value_type const & y2, value_type const & x3, value_type const & y3); explicit tmat4x2( col_type const & v0, col_type const & v1, col_type const & v2, col_type const & v3); // Conversions template explicit tmat4x2(tmat4x2 const & m); explicit tmat4x2(tmat2x2 const & x); explicit tmat4x2(tmat3x3 const & x); explicit tmat4x2(tmat4x4 const & x); explicit tmat4x2(tmat2x3 const & x); explicit tmat4x2(tmat3x2 const & x); explicit tmat4x2(tmat2x4 const & x); explicit tmat4x2(tmat4x3 const & x); explicit tmat4x2(tmat3x4 const & x); // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat4x2& operator= (tmat4x2 const & m); template tmat4x2& operator= (tmat4x2 const & m); template tmat4x2& operator+= (U const & s); template tmat4x2& operator+= (tmat4x2 const & m); template tmat4x2& operator-= (U const & s); template tmat4x2& operator-= (tmat4x2 const & m); template tmat4x2& operator*= (U const & s); template tmat4x2& operator*= (tmat4x2 const & m); template tmat4x2& operator/= (U const & s); tmat4x2& operator++ (); tmat4x2& operator-- (); }; // Binary operators template tmat4x2 operator+ ( tmat4x2 const & m, typename tmat4x2::value_type const & s); template tmat4x2 operator+ ( tmat4x2 const & m1, tmat4x2 const & m2); template tmat4x2 operator- ( tmat4x2 const & m, typename tmat4x2::value_type const & s); template tmat4x2 operator- ( tmat4x2 const & m1, tmat4x2 const & m2); template tmat4x2 operator* ( tmat4x2 const & m, typename tmat4x2::value_type const & s); template tmat4x2 operator* ( typename tmat4x2::value_type const & s, tmat4x2 const & m); template typename tmat4x2::col_type operator* ( tmat4x2 const & m, typename tmat4x2::row_type const & v); template typename tmat4x2::row_type operator* ( typename tmat4x2::col_type const & v, tmat4x2 const & m); template tmat2x2 operator* ( tmat4x2 const & m1, tmat2x4 const & m2); template tmat4x2 operator/ ( tmat4x2 const & m, typename tmat4x2::value_type const & s); template tmat4x2 operator/ ( typename tmat4x2::value_type const & s, tmat4x2 const & m); // Unary constant operators template tmat4x2 const operator- ( tmat4x2 const & m); template tmat4x2 const operator-- ( tmat4x2 const & m, int); template tmat4x2 const operator++ ( tmat4x2 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 4 columns of 2 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x2 lowp_mat4x2; //! 4 columns of 2 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x2 mediump_mat4x2; //! 4 columns of 2 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x2 highp_mat4x2; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x2.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-10-01 // Updated : 2010-02-03 // Licence : This source is under MIT License // File : glm/core/type_mat4x2.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat4x2::size_type tmat4x2::col_size() { return 2; } template inline typename tmat4x2::size_type tmat4x2::row_size() { return 4; } ////////////////////////////////////// // Accesses template inline typename tmat4x2::col_type & tmat4x2::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x2.inl", 35), 0) ); return this->value[i]; } template inline typename tmat4x2::col_type const & tmat4x2::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x2.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat4x2::tmat4x2() { value_type const Zero(0); value_type const One(1); this->value[0] = col_type(One, Zero); this->value[1] = col_type(Zero, One); this->value[2] = col_type(Zero, Zero); this->value[3] = col_type(Zero, Zero); } template inline tmat4x2::tmat4x2 ( tmat4x2 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; this->value[2] = m.value[2]; this->value[3] = m.value[3]; } template inline tmat4x2::tmat4x2 ( ctor ) {} template inline tmat4x2::tmat4x2 ( value_type const & s ) { value_type const Zero(0); this->value[0] = col_type(s, Zero); this->value[1] = col_type(Zero, s); this->value[2] = col_type(Zero, Zero); this->value[3] = col_type(Zero, Zero); } template inline tmat4x2::tmat4x2 ( value_type const & x0, value_type const & y0, value_type const & x1, value_type const & y1, value_type const & x2, value_type const & y2, value_type const & x3, value_type const & y3 ) { this->value[0] = col_type(x0, y0); this->value[1] = col_type(x1, y1); this->value[2] = col_type(x2, y2); this->value[3] = col_type(x3, y3); } template inline tmat4x2::tmat4x2 ( col_type const & v0, col_type const & v1, col_type const & v2, col_type const & v3 ) { this->value[0] = v0; this->value[1] = v1; this->value[2] = v2; this->value[3] = v3; } // Conversion template template inline tmat4x2::tmat4x2 ( tmat4x2 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(m[3]); } template inline tmat4x2::tmat4x2 ( tmat2x2 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(value_type(0)); this->value[3] = col_type(value_type(0)); } template inline tmat4x2::tmat4x2 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(value_type(0)); } template inline tmat4x2::tmat4x2 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(m[3]); } template inline tmat4x2::tmat4x2 ( tmat2x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(value_type(0)); this->value[3] = col_type(value_type(0)); } template inline tmat4x2::tmat4x2 ( tmat3x2 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(value_type(0)); } template inline tmat4x2::tmat4x2 ( tmat2x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(value_type(0)); this->value[3] = col_type(value_type(0)); } template inline tmat4x2::tmat4x2 ( tmat4x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(m[3]); } template inline tmat4x2::tmat4x2 ( tmat3x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(value_type(0)); } ////////////////////////////////////////////////////////////// // Unary updatable operators template inline tmat4x2& tmat4x2::operator= ( tmat4x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; this->value[3] = m[3]; return *this; } template template inline tmat4x2& tmat4x2::operator= ( tmat4x2 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; this->value[3] = m[3]; return *this; } template template inline tmat4x2 & tmat4x2::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; this->value[2] += s; this->value[3] += s; return *this; } template template inline tmat4x2 & tmat4x2::operator+= ( tmat4x2 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; this->value[2] += m[2]; this->value[3] += m[3]; return *this; } template template inline tmat4x2 & tmat4x2::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; this->value[2] -= s; this->value[3] -= s; return *this; } template template inline tmat4x2 & tmat4x2::operator-= ( tmat4x2 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; this->value[2] -= m[2]; this->value[3] -= m[3]; return *this; } template template inline tmat4x2 & tmat4x2::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; this->value[2] *= s; this->value[3] *= s; return *this; } template template inline tmat4x2 & tmat4x2::operator*= ( tmat4x2 const & m ) { return (*this = tmat4x2(*this * m)); } template template inline tmat4x2 & tmat4x2::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; this->value[2] /= s; this->value[3] /= s; return *this; } template inline tmat4x2 & tmat4x2::operator++ () { ++this->value[0]; ++this->value[1]; ++this->value[2]; ++this->value[3]; return *this; } template inline tmat4x2 & tmat4x2::operator-- () { --this->value[0]; --this->value[1]; --this->value[2]; --this->value[3]; return *this; } ////////////////////////////////////////////////////////////// // Binary operators template inline tmat4x2 operator+ ( tmat4x2 const & m, typename tmat4x2::value_type const & s ) { return tmat4x2( m[0] + s, m[1] + s, m[2] + s, m[3] + s); } template inline tmat4x2 operator+ ( tmat4x2 const & m1, tmat4x2 const & m2 ) { return tmat4x2( m1[0] + m2[0], m1[1] + m2[1], m1[2] + m2[2], m1[3] + m2[3]); } template inline tmat4x2 operator- ( tmat4x2 const & m, typename tmat4x2::value_type const & s ) { return tmat4x2( m[0] - s, m[1] - s, m[2] - s, m[3] - s); } template inline tmat4x2 operator- ( tmat4x2 const & m1, tmat4x2 const & m2 ) { return tmat4x2( m1[0] - m2[0], m1[1] - m2[1], m1[2] - m2[2], m1[3] - m2[3]); } template inline tmat4x2 operator* ( tmat4x2 const & m, typename tmat4x2::value_type const & s ) { return tmat4x2( m[0] * s, m[1] * s, m[2] * s, m[3] * s); } template inline tmat4x2 operator* ( typename tmat4x2::value_type const & s, tmat4x2 const & m ) { return tmat4x2( m[0] * s, m[1] * s, m[2] * s, m[3] * s); } template inline typename tmat4x2::col_type operator* ( tmat4x2 const & m, typename tmat4x2::row_type const & v) { return typename tmat4x2::col_type( m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z + m[3][0] * v.w, m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z + m[3][1] * v.w); } template inline typename tmat4x2::row_type operator* ( typename tmat4x2::col_type const & v, tmat4x2 const & m) { return typename tmat4x2::row_type( v.x * m[0][0] + v.y * m[0][1], v.x * m[1][0] + v.y * m[1][1], v.x * m[2][0] + v.y * m[2][1], v.x * m[3][0] + v.y * m[3][1]); } template inline tmat2x2 operator* ( tmat4x2 const & m1, tmat2x4 const & m2 ) { T const SrcA00 = m1[0][0]; T const SrcA01 = m1[0][1]; T const SrcA10 = m1[1][0]; T const SrcA11 = m1[1][1]; T const SrcA20 = m1[2][0]; T const SrcA21 = m1[2][1]; T const SrcA30 = m1[3][0]; T const SrcA31 = m1[3][1]; T const SrcB00 = m2[0][0]; T const SrcB01 = m2[0][1]; T const SrcB02 = m2[0][2]; T const SrcB03 = m2[0][3]; T const SrcB10 = m2[1][0]; T const SrcB11 = m2[1][1]; T const SrcB12 = m2[1][2]; T const SrcB13 = m2[1][3]; tmat2x2 Result(tmat2x2::null); Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02 + SrcA30 * SrcB03; Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02 + SrcA31 * SrcB03; Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11 + SrcA20 * SrcB12 + SrcA30 * SrcB13; Result[1][1] = SrcA01 * SrcB10 + SrcA11 * SrcB11 + SrcA21 * SrcB12 + SrcA31 * SrcB13; return Result; } template inline tmat4x2 operator/ ( tmat4x2 const & m, typename tmat4x2::value_type const & s ) { return tmat4x2( m[0] / s, m[1] / s, m[2] / s, m[3] / s); } template inline tmat4x2 operator/ ( typename tmat4x2::value_type const & s, tmat4x2 const & m ) { return tmat4x2( s / m[0], s / m[1], s / m[2], s / m[3]); } // Unary constant operators template inline tmat4x2 const operator- ( tmat4x2 const & m ) { return tmat4x2( -m[0], -m[1], -m[2], -m[3]); } template inline tmat4x2 const operator++ ( tmat4x2 const & m, int ) { return tmat4x2( m[0] + typename tmat4x2::value_type(1), m[1] + typename tmat4x2::value_type(1), m[2] + typename tmat4x2::value_type(1), m[3] + typename tmat4x2::value_type(1)); } template inline tmat4x2 const operator-- ( tmat4x2 const & m, int ) { return tmat4x2( m[0] - typename tmat4x2::value_type(1), m[1] - typename tmat4x2::value_type(1), m[2] - typename tmat4x2::value_type(1), m[3] - typename tmat4x2::value_type(1)); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat4x2 const & m1, tmat4x2 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]) && (m1[3] == m2[3]); } template inline bool operator!= ( tmat4x2 const & m1, tmat4x2 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]) || (m1[3] != m2[3]); } } //namespace detail } //namespace glm #line 220 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x2.hpp" #line 221 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x2.hpp" #line 223 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x2.hpp" #line 31 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x3.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-08-04 // Updated : 2010-02-11 // Licence : This source is under MIT License // File : glm/core/type_mat4x3.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x3.hpp" namespace glm { namespace test { void main_mat4x3(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! \brief Template for 4 columns and 3 rows matrix of floating-point numbers. //! \ingroup core_template template struct tmat4x3 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec3 col_type; typedef tvec4 row_type; static size_type col_size(); static size_type row_size(); typedef tmat4x3 type; typedef tmat3x4 transpose_type; private: // Data col_type value[4]; public: // Constructors tmat4x3(); tmat4x3(tmat4x3 const & m); explicit tmat4x3( ctor Null); explicit tmat4x3( value_type const & x); explicit tmat4x3( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & x2, value_type const & y2, value_type const & z2, value_type const & x3, value_type const & y3, value_type const & z3); explicit tmat4x3( col_type const & v0, col_type const & v1, col_type const & v2, col_type const & v3); // Conversion template explicit tmat4x3(tmat4x3 const & m); explicit tmat4x3(tmat2x2 const & x); explicit tmat4x3(tmat3x3 const & x); explicit tmat4x3(tmat4x4 const & x); explicit tmat4x3(tmat2x3 const & x); explicit tmat4x3(tmat3x2 const & x); explicit tmat4x3(tmat2x4 const & x); explicit tmat4x3(tmat4x2 const & x); explicit tmat4x3(tmat3x4 const & x); // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat4x3 & operator= (tmat4x3 const & m); template tmat4x3 & operator= (tmat4x3 const & m); template tmat4x3 & operator+= (U const & s); template tmat4x3 & operator+= (tmat4x3 const & m); template tmat4x3 & operator-= (U const & s); template tmat4x3 & operator-= (tmat4x3 const & m); template tmat4x3 & operator*= (U const & s); template tmat4x3 & operator*= (tmat4x3 const & m); template tmat4x3 & operator/= (U const & s); tmat4x3 & operator++ (); tmat4x3 & operator-- (); }; // Binary operators template tmat4x3 operator+ ( tmat4x3 const & m, typename tmat4x3::value_type const & s); template tmat4x3 operator+ ( tmat4x3 const & m1, tmat4x3 const & m2); template tmat4x3 operator- ( tmat4x3 const & m, typename tmat4x3::value_type const & s); template tmat4x3 operator- ( tmat4x3 const & m1, tmat4x3 const & m2); template tmat4x3 operator* ( tmat4x3 const & m, typename tmat4x3::value_type const & s); template tmat4x3 operator* ( typename tmat4x3::value_type const & s, tmat4x3 const & m); template typename tmat4x3::col_type operator* ( tmat4x3 const & m, typename tmat4x3::row_type const & v); template typename tmat4x3::row_type operator* ( typename tmat4x3::col_type const & v, tmat4x3 const & m); template tmat3x3 operator* ( tmat4x3 const & m1, tmat3x4 const & m2); template tmat4x3 operator/ ( tmat4x3 const & m, typename tmat4x3::value_type const & s); template tmat4x3 operator/ ( typename tmat4x3::value_type const & s, tmat4x3 const & m); // Unary constant operators template tmat4x3 const operator- ( tmat4x3 const & m); template tmat4x3 const operator-- ( tmat4x3 const & m, int); template tmat4x3 const operator++ ( tmat4x3 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 4 columns of 3 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x3 lowp_mat4x3; //! 4 columns of 3 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x3 mediump_mat4x3; //! 4 columns of 3 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x3 highp_mat4x3; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x3.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-04-17 // Updated : 2010-02-02 // Licence : This source is under MIT License // File : glm/core/type_mat4x3.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat4x3::size_type tmat4x3::col_size() { return 3; } template inline typename tmat4x3::size_type tmat4x3::row_size() { return 4; } ////////////////////////////////////// // Accesses template inline typename tmat4x3::col_type & tmat4x3::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x3.inl", 35), 0) ); return this->value[i]; } template inline typename tmat4x3::col_type const & tmat4x3::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x3.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat4x3::tmat4x3() { value_type const Zero(0); value_type const One(1); this->value[0] = col_type(One, Zero, Zero); this->value[1] = col_type(Zero, One, Zero); this->value[2] = col_type(Zero, Zero, One); this->value[3] = col_type(Zero, Zero, Zero); } template inline tmat4x3::tmat4x3 ( tmat4x3 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; this->value[2] = m.value[2]; this->value[3] = m.value[3]; } template inline tmat4x3::tmat4x3 ( ctor ) {} template inline tmat4x3::tmat4x3 ( value_type const & s ) { value_type const Zero(0); this->value[0] = col_type(s, Zero, Zero); this->value[1] = col_type(Zero, s, Zero); this->value[2] = col_type(Zero, Zero, s); this->value[3] = col_type(Zero, Zero, Zero); } template inline tmat4x3::tmat4x3 ( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & x2, value_type const & y2, value_type const & z2, value_type const & x3, value_type const & y3, value_type const & z3 ) { this->value[0] = col_type(x0, y0, z0); this->value[1] = col_type(x1, y1, z1); this->value[2] = col_type(x2, y2, z2); this->value[3] = col_type(x3, y3, z3); } template inline tmat4x3::tmat4x3 ( col_type const & v0, col_type const & v1, col_type const & v2, col_type const & v3 ) { this->value[0] = v0; this->value[1] = v1; this->value[2] = v2; this->value[3] = v3; } ////////////////////////////////////////////////////////////// // Conversions template template inline tmat4x3::tmat4x3 ( tmat4x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(m[3]); } template inline tmat4x3::tmat4x3 ( tmat2x2 const & m ) { this->value[0] = col_type(m[0], value_type(0)); this->value[1] = col_type(m[1], value_type(0)); this->value[2] = col_type(m[2], value_type(1)); this->value[3] = col_type(value_type(0)); } template inline tmat4x3::tmat4x3 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(value_type(0)); } template inline tmat4x3::tmat4x3 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(m[3]); } template inline tmat4x3::tmat4x3 ( tmat2x3 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(value_type(0), value_type(0), value_type(1)); this->value[3] = col_type(value_type(0)); } template inline tmat4x3::tmat4x3 ( tmat3x2 const & m ) { this->value[0] = col_type(m[0], value_type(0)); this->value[1] = col_type(m[1], value_type(0)); this->value[2] = col_type(m[2], value_type(1)); this->value[3] = col_type(value_type(0)); } template inline tmat4x3::tmat4x3 ( tmat2x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(value_type(0), value_type(0), value_type(1)); this->value[3] = col_type(value_type(0)); } template inline tmat4x3::tmat4x3 ( tmat4x2 const & m ) { this->value[0] = col_type(m[0], value_type(0)); this->value[1] = col_type(m[1], value_type(0)); this->value[2] = col_type(m[2], value_type(1)); this->value[3] = col_type(m[3], value_type(0)); } template inline tmat4x3::tmat4x3 ( tmat3x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(value_type(0)); } ////////////////////////////////////////////////////////////// // Unary updatable operators template inline tmat4x3& tmat4x3::operator= ( tmat4x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; this->value[3] = m[3]; return *this; } template template inline tmat4x3& tmat4x3::operator= ( tmat4x3 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; this->value[3] = m[3]; return *this; } template template inline tmat4x3 & tmat4x3::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; this->value[2] += s; this->value[3] += s; return *this; } template template inline tmat4x3 & tmat4x3::operator+= ( tmat4x3 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; this->value[2] += m[2]; this->value[3] += m[3]; return *this; } template template inline tmat4x3 & tmat4x3::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; this->value[2] -= s; this->value[3] -= s; return *this; } template template inline tmat4x3 & tmat4x3::operator-= ( tmat4x3 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; this->value[2] -= m[2]; this->value[3] -= m[3]; return *this; } template template inline tmat4x3 & tmat4x3::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; this->value[2] *= s; this->value[3] *= s; return *this; } template template inline tmat4x3 & tmat4x3::operator*= ( tmat4x3 const & m ) { return (*this = tmat4x3(*this * m)); } template template inline tmat4x3 & tmat4x3::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; this->value[2] /= s; this->value[3] /= s; return *this; } template inline tmat4x3 & tmat4x3::operator++ () { ++this->value[0]; ++this->value[1]; ++this->value[2]; ++this->value[3]; return *this; } template inline tmat4x3 & tmat4x3::operator-- () { --this->value[0]; --this->value[1]; --this->value[2]; --this->value[3]; return *this; } ////////////////////////////////////////////////////////////// // Binary operators template inline tmat4x3 operator+ ( tmat4x3 const & m, typename tmat4x3::value_type const & s) { return tmat4x3( m[0] + s, m[1] + s, m[2] + s, m[3] + s); } template inline tmat4x3 operator+ ( tmat4x3 const & m1, tmat4x3 const & m2) { return tmat4x3( m1[0] + m2[0], m1[1] + m2[1], m1[2] + m2[2], m1[3] + m2[3]); } template inline tmat4x3 operator- ( tmat4x3 const & m, typename tmat4x3::value_type const & s) { return tmat4x3( m[0] - s, m[1] - s, m[2] - s, m[3] - s); } template inline tmat4x3 operator- ( tmat4x3 const & m1, tmat4x3 const & m2) { return tmat4x3( m1[0] - m2[0], m1[1] - m2[1], m1[2] - m2[2], m1[3] - m2[3]); } template inline tmat4x3 operator* ( tmat4x3 const & m, typename tmat4x3::value_type const & s) { return tmat4x3( m[0] * s, m[1] * s, m[2] * s, m[3] * s); } template inline tmat4x3 operator* ( typename tmat4x3::value_type const & s, tmat4x3 const & m) { return tmat4x3( m[0] * s, m[1] * s, m[2] * s, m[3] * s); } template inline typename tmat4x3::col_type operator* ( tmat4x3 const & m, typename tmat4x3::row_type const & v) { return typename tmat4x3::col_type( m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z + m[3][0] * v.w, m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z + m[3][1] * v.w, m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z + m[3][2] * v.w); } template inline typename tmat4x3::row_type operator* ( typename tmat4x3::col_type const & v, tmat4x3 const & m) { return typename tmat4x3::row_type( v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2], v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2], v.x * m[2][0] + v.y * m[2][1] + v.z * m[2][2], v.x * m[3][0] + v.y * m[3][1] + v.z * m[3][2]); } template inline tmat3x3 operator* ( tmat4x3 const & m1, tmat3x4 const & m2 ) { T const SrcA00 = m1[0][0]; T const SrcA01 = m1[0][1]; T const SrcA02 = m1[0][2]; T const SrcA10 = m1[1][0]; T const SrcA11 = m1[1][1]; T const SrcA12 = m1[1][2]; T const SrcA20 = m1[2][0]; T const SrcA21 = m1[2][1]; T const SrcA22 = m1[2][2]; T const SrcA30 = m1[3][0]; T const SrcA31 = m1[3][1]; T const SrcA32 = m1[3][2]; T const SrcB00 = m2[0][0]; T const SrcB01 = m2[0][1]; T const SrcB02 = m2[0][2]; T const SrcB03 = m2[0][3]; T const SrcB10 = m2[1][0]; T const SrcB11 = m2[1][1]; T const SrcB12 = m2[1][2]; T const SrcB13 = m2[1][3]; T const SrcB20 = m2[2][0]; T const SrcB21 = m2[2][1]; T const SrcB22 = m2[2][2]; T const SrcB23 = m2[2][3]; tmat3x3 Result(tmat3x3::null); Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02 + SrcA30 * SrcB03; Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02 + SrcA31 * SrcB03; Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01 + SrcA22 * SrcB02 + SrcA32 * SrcB03; Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11 + SrcA20 * SrcB12 + SrcA30 * SrcB13; Result[1][1] = SrcA01 * SrcB10 + SrcA11 * SrcB11 + SrcA21 * SrcB12 + SrcA31 * SrcB13; Result[1][2] = SrcA02 * SrcB10 + SrcA12 * SrcB11 + SrcA22 * SrcB12 + SrcA32 * SrcB13; Result[2][0] = SrcA00 * SrcB20 + SrcA10 * SrcB21 + SrcA20 * SrcB22 + SrcA30 * SrcB23; Result[2][1] = SrcA01 * SrcB20 + SrcA11 * SrcB21 + SrcA21 * SrcB22 + SrcA31 * SrcB23; Result[2][2] = SrcA02 * SrcB20 + SrcA12 * SrcB21 + SrcA22 * SrcB22 + SrcA32 * SrcB23; return Result; } template inline tmat4x3 operator/ ( tmat4x3 const & m, typename tmat4x3::value_type const & s ) { return tmat4x3( m[0] / s, m[1] / s, m[2] / s, m[3] / s); } template inline tmat4x3 operator/ ( typename tmat4x3::value_type const & s, tmat4x3 const & m ) { return tmat4x3( s / m[0], s / m[1], s / m[2], s / m[3]); } // Unary constant operators template inline tmat4x3 const operator- ( tmat4x3 const & m ) { return tmat4x3( -m[0], -m[1], -m[2], -m[3]); } template inline tmat4x3 const operator++ ( tmat4x3 const & m, int ) { return tmat4x3( m[0] + T(1), m[1] + T(1), m[2] + T(1), m[3] + T(1)); } template inline tmat4x3 const operator-- ( tmat4x3 const & m, int ) { return tmat4x3( m[0] - T(1), m[1] - T(1), m[2] - T(1), m[3] - T(1)); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat4x3 const & m1, tmat4x3 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]) && (m1[3] == m2[3]); } template inline bool operator!= ( tmat4x3 const & m1, tmat4x3 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]) || (m1[3] != m2[3]); } } //namespace detail } //namespace glm #line 220 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x3.hpp" #line 221 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x3.hpp" #line 223 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x3.hpp" #line 32 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x4.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2005-01-27 // Updated : 2008-08-30 // Licence : This source is under MIT License // File : glm/core/type_mat4x4.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-01-26 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/type_mat.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x4.hpp" namespace glm { namespace test { void main_mat4x4(); }//namespace test namespace detail { template struct tvec1; template struct tvec2; template struct tvec3; template struct tvec4; template struct tmat2x2; template struct tmat2x3; template struct tmat2x4; template struct tmat3x2; template struct tmat3x3; template struct tmat3x4; template struct tmat4x2; template struct tmat4x3; template struct tmat4x4; //! \brief Template for 4 * 4 matrix of floating-point numbers. //! \ingroup core_template template struct tmat4x4 { enum ctor{null}; typedef T value_type; typedef std::size_t size_type; typedef tvec4 col_type; typedef tvec4 row_type; static size_type col_size(); static size_type row_size(); typedef tmat4x4 type; typedef tmat4x4 transpose_type; public: // Implementation detail tmat4x4 _inverse() const; private: // Data col_type value[4]; public: // Constructors tmat4x4(); tmat4x4(tmat4x4 const & m); explicit tmat4x4( ctor Null); explicit tmat4x4( value_type const & x); explicit tmat4x4( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1, value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2, value_type const & x3, value_type const & y3, value_type const & z3, value_type const & w3); explicit tmat4x4( col_type const & v0, col_type const & v1, col_type const & v2, col_type const & v3); // Conversions template explicit tmat4x4(tmat4x4 const & m); explicit tmat4x4(tmat2x2 const & x); explicit tmat4x4(tmat3x3 const & x); explicit tmat4x4(tmat2x3 const & x); explicit tmat4x4(tmat3x2 const & x); explicit tmat4x4(tmat2x4 const & x); explicit tmat4x4(tmat4x2 const & x); explicit tmat4x4(tmat3x4 const & x); explicit tmat4x4(tmat4x3 const & x); // Accesses col_type & operator[](size_type i); col_type const & operator[](size_type i) const; // Unary updatable operators tmat4x4 & operator= (tmat4x4 const & m); template tmat4x4 & operator= (tmat4x4 const & m); template tmat4x4 & operator+= (U const & s); template tmat4x4 & operator+= (tmat4x4 const & m); template tmat4x4 & operator-= (U const & s); template tmat4x4 & operator-= (tmat4x4 const & m); template tmat4x4 & operator*= (U const & s); template tmat4x4 & operator*= (tmat4x4 const & m); template tmat4x4 & operator/= (U const & s); template tmat4x4 & operator/= (tmat4x4 const & m); tmat4x4 & operator++ (); tmat4x4 & operator-- (); }; // Binary operators template tmat4x4 operator+ ( tmat4x4 const & m, typename tmat4x4::value_type const & s); template tmat4x4 operator+ ( typename tmat4x4::value_type const & s, tmat4x4 const & m); template tmat4x4 operator+ ( tmat4x4 const & m1, tmat4x4 const & m2); template tmat4x4 operator- ( tmat4x4 const & m, typename tmat4x4::value_type const & s); template tmat4x4 operator- ( typename tmat4x4::value_type const & s, tmat4x4 const & m); template tmat4x4 operator- ( tmat4x4 const & m1, tmat4x4 const & m2); template tmat4x4 operator* ( tmat4x4 const & m, typename tmat4x4::value_type const & s); template tmat4x4 operator* ( typename tmat4x4::value_type const & s, tmat4x4 const & m); template typename tmat4x4::col_type operator* ( tmat4x4 const & m, typename tmat4x4::row_type const & v); template typename tmat4x4::row_type operator* ( typename tmat4x4::col_type const & v, tmat4x4 const & m); template tmat4x4 operator* ( tmat4x4 const & m1, tmat4x4 const & m2); template tmat4x4 operator/ ( tmat4x4 const & m, typename tmat4x4::value_type const & s); template tmat4x4 operator/ ( typename tmat4x4::value_type const & s, tmat4x4 const & m); template typename tmat4x4::col_type operator/ ( tmat4x4 const & m, typename tmat4x4::row_type const & v); template typename tmat4x4::row_type operator/ ( typename tmat4x4::col_type & v, tmat4x4 const & m); template tmat4x4 operator/ ( tmat4x4 const & m1, tmat4x4 const & m2); // Unary constant operators template tmat4x4 const operator- ( tmat4x4 const & m); template tmat4x4 const operator-- ( tmat4x4 const & m, int); template tmat4x4 const operator++ ( tmat4x4 const & m, int); } //namespace detail namespace core{ namespace type{ namespace precision { //! 4 columns of 4 components matrix of low precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x4 lowp_mat4x4; //! 4 columns of 4 components matrix of medium precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x4 mediump_mat4x4; //! 4 columns of 4 components matrix of high precision floating-point numbers. //! There is no guarantee on the actual precision. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! \ingroup core_precision typedef detail::tmat4x4 highp_mat4x4; } //namespace precision }//namespace type }//namespace core } //namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x4.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2005-01-27 // Updated : 2010-02-05 // Licence : This source is under MIT License // File : glm/core/type_mat4x4.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail { template inline typename tmat4x4::size_type tmat4x4::col_size() { return 4; } template inline typename tmat4x4::size_type tmat4x4::row_size() { return 4; } ////////////////////////////////////// // Accesses template inline typename tmat4x4::col_type & tmat4x4::operator[] ( size_type i ) { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x4.inl", 35), 0) ); return this->value[i]; } template inline typename tmat4x4::col_type const & tmat4x4::operator[] ( size_type i ) const { (void)( (!!(i < this->row_size())) || (_wassert(L"i < this->row_size()", L"c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x4.inl", 46), 0) ); return this->value[i]; } ////////////////////////////////////////////////////////////// // Constructors template inline tmat4x4::tmat4x4() { value_type Zero(0); value_type One(1); this->value[0] = col_type(One, Zero, Zero, Zero); this->value[1] = col_type(Zero, One, Zero, Zero); this->value[2] = col_type(Zero, Zero, One, Zero); this->value[3] = col_type(Zero, Zero, Zero, One); } template inline tmat4x4::tmat4x4 ( tmat4x4 const & m ) { this->value[0] = m.value[0]; this->value[1] = m.value[1]; this->value[2] = m.value[2]; this->value[3] = m.value[3]; } template inline tmat4x4::tmat4x4 ( ctor ) {} template inline tmat4x4::tmat4x4 ( value_type const & s ) { value_type const Zero(0); this->value[0] = col_type(s, Zero, Zero, Zero); this->value[1] = col_type(Zero, s, Zero, Zero); this->value[2] = col_type(Zero, Zero, s, Zero); this->value[3] = col_type(Zero, Zero, Zero, s); } template inline tmat4x4::tmat4x4 ( value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0, value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1, value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2, value_type const & x3, value_type const & y3, value_type const & z3, value_type const & w3 ) { this->value[0] = col_type(x0, y0, z0, w0); this->value[1] = col_type(x1, y1, z1, w1); this->value[2] = col_type(x2, y2, z2, w2); this->value[3] = col_type(x3, y3, z3, w3); } template inline tmat4x4::tmat4x4 ( col_type const & v0, col_type const & v1, col_type const & v2, col_type const & v3 ) { this->value[0] = v0; this->value[1] = v1; this->value[2] = v2; this->value[3] = v3; } template template inline tmat4x4::tmat4x4 ( tmat4x4 const & m ) { this->value[0] = col_type(m[0]); this->value[1] = col_type(m[1]); this->value[2] = col_type(m[2]); this->value[3] = col_type(m[3]); } template inline tmat4x4::tmat4x4 ( tmat2x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(0)); this->value[1] = col_type(m[1], detail::tvec2(0)); this->value[2] = col_type(value_type(0)); this->value[3] = col_type(value_type(0), value_type(0), value_type(0), value_type(1)); } template inline tmat4x4::tmat4x4 ( tmat3x3 const & m ) { this->value[0] = col_type(m[0], value_type(0)); this->value[1] = col_type(m[1], value_type(0)); this->value[2] = col_type(m[2], value_type(0)); this->value[3] = col_type(value_type(0), value_type(0), value_type(0), value_type(1)); } template inline tmat4x4::tmat4x4 ( tmat2x3 const & m ) { this->value[0] = col_type(m[0], value_type(0)); this->value[1] = col_type(m[1], value_type(0)); this->value[2] = col_type(value_type(0)); this->value[3] = col_type(value_type(0), value_type(0), value_type(0), value_type(1)); } template inline tmat4x4::tmat4x4 ( tmat3x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(0)); this->value[1] = col_type(m[1], detail::tvec2(0)); this->value[2] = col_type(m[2], detail::tvec2(0)); this->value[3] = col_type(value_type(0), value_type(0), value_type(0), value_type(1)); } template inline tmat4x4::tmat4x4 ( tmat2x4 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = col_type(T(0)); this->value[3] = col_type(T(0), T(0), T(0), T(1)); } template inline tmat4x4::tmat4x4 ( tmat4x2 const & m ) { this->value[0] = col_type(m[0], detail::tvec2(0)); this->value[1] = col_type(m[1], detail::tvec2(0)); this->value[2] = col_type(T(0)); this->value[3] = col_type(T(0), T(0), T(0), T(1)); } template inline tmat4x4::tmat4x4 ( tmat3x4 const & m ) { this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; this->value[3] = col_type(T(0), T(0), T(0), T(1)); } template inline tmat4x4::tmat4x4 ( tmat4x3 const & m ) { this->value[0] = col_type(m[0], T(0)); this->value[1] = col_type(m[1], T(0)); this->value[2] = col_type(m[2], T(0)); this->value[3] = col_type(m[3], T(1)); } ////////////////////////////////////////////////////////////// // Operators template inline tmat4x4& tmat4x4::operator= ( tmat4x4 const & m ) { //memcpy could be faster //memcpy(&this->value, &m.value, 16 * sizeof(valType)); this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; this->value[3] = m[3]; return *this; } template template inline tmat4x4& tmat4x4::operator= ( tmat4x4 const & m ) { //memcpy could be faster //memcpy(&this->value, &m.value, 16 * sizeof(valType)); this->value[0] = m[0]; this->value[1] = m[1]; this->value[2] = m[2]; this->value[3] = m[3]; return *this; } template template inline tmat4x4& tmat4x4::operator+= ( U const & s ) { this->value[0] += s; this->value[1] += s; this->value[2] += s; this->value[3] += s; return *this; } template template inline tmat4x4& tmat4x4::operator+= ( tmat4x4 const & m ) { this->value[0] += m[0]; this->value[1] += m[1]; this->value[2] += m[2]; this->value[3] += m[3]; return *this; } template template inline tmat4x4 & tmat4x4::operator-= ( U const & s ) { this->value[0] -= s; this->value[1] -= s; this->value[2] -= s; this->value[3] -= s; return *this; } template template inline tmat4x4 & tmat4x4::operator-= ( tmat4x4 const & m ) { this->value[0] -= m[0]; this->value[1] -= m[1]; this->value[2] -= m[2]; this->value[3] -= m[3]; return *this; } template template inline tmat4x4 & tmat4x4::operator*= ( U const & s ) { this->value[0] *= s; this->value[1] *= s; this->value[2] *= s; this->value[3] *= s; return *this; } template template inline tmat4x4 & tmat4x4::operator*= ( tmat4x4 const & m ) { return (*this = *this * m); } template template inline tmat4x4 & tmat4x4::operator/= ( U const & s ) { this->value[0] /= s; this->value[1] /= s; this->value[2] /= s; this->value[3] /= s; return *this; } template template inline tmat4x4 & tmat4x4::operator/= ( tmat4x4 const & m ) { return (*this = *this / m); } template inline tmat4x4 & tmat4x4::operator++ () { ++this->value[0]; ++this->value[1]; ++this->value[2]; ++this->value[3]; return *this; } template inline tmat4x4 & tmat4x4::operator-- () { --this->value[0]; --this->value[1]; --this->value[2]; --this->value[3]; return *this; } template inline tmat4x4 tmat4x4::_inverse() const { // Calculate all mat2 determinants value_type SubFactor00 = this->value[2][2] * this->value[3][3] - this->value[3][2] * this->value[2][3]; value_type SubFactor01 = this->value[2][1] * this->value[3][3] - this->value[3][1] * this->value[2][3]; value_type SubFactor02 = this->value[2][1] * this->value[3][2] - this->value[3][1] * this->value[2][2]; value_type SubFactor03 = this->value[2][0] * this->value[3][3] - this->value[3][0] * this->value[2][3]; value_type SubFactor04 = this->value[2][0] * this->value[3][2] - this->value[3][0] * this->value[2][2]; value_type SubFactor05 = this->value[2][0] * this->value[3][1] - this->value[3][0] * this->value[2][1]; value_type SubFactor06 = this->value[1][2] * this->value[3][3] - this->value[3][2] * this->value[1][3]; value_type SubFactor07 = this->value[1][1] * this->value[3][3] - this->value[3][1] * this->value[1][3]; value_type SubFactor08 = this->value[1][1] * this->value[3][2] - this->value[3][1] * this->value[1][2]; value_type SubFactor09 = this->value[1][0] * this->value[3][3] - this->value[3][0] * this->value[1][3]; value_type SubFactor10 = this->value[1][0] * this->value[3][2] - this->value[3][0] * this->value[1][2]; value_type SubFactor11 = this->value[1][1] * this->value[3][3] - this->value[3][1] * this->value[1][3]; value_type SubFactor12 = this->value[1][0] * this->value[3][1] - this->value[3][0] * this->value[1][1]; value_type SubFactor13 = this->value[1][2] * this->value[2][3] - this->value[2][2] * this->value[1][3]; value_type SubFactor14 = this->value[1][1] * this->value[2][3] - this->value[2][1] * this->value[1][3]; value_type SubFactor15 = this->value[1][1] * this->value[2][2] - this->value[2][1] * this->value[1][2]; value_type SubFactor16 = this->value[1][0] * this->value[2][3] - this->value[2][0] * this->value[1][3]; value_type SubFactor17 = this->value[1][0] * this->value[2][2] - this->value[2][0] * this->value[1][2]; value_type SubFactor18 = this->value[1][0] * this->value[2][1] - this->value[2][0] * this->value[1][1]; /* tmat4x4 Inverse( + (this->value[1][1] * SubFactor00 - this->value[1][2] * SubFactor01 + this->value[1][3] * SubFactor02), - (this->value[1][0] * SubFactor00 - this->value[1][2] * SubFactor03 + this->value[1][3] * SubFactor04), + (this->value[1][0] * SubFactor01 - this->value[1][1] * SubFactor03 + this->value[1][3] * SubFactor05), - (this->value[1][0] * SubFactor02 - this->value[1][1] * SubFactor04 + this->value[1][2] * SubFactor05), - (this->value[0][1] * SubFactor00 - this->value[0][2] * SubFactor01 + this->value[0][3] * SubFactor02), + (this->value[0][0] * SubFactor00 - this->value[0][2] * SubFactor03 + this->value[0][3] * SubFactor04), - (this->value[0][0] * SubFactor01 - this->value[0][1] * SubFactor03 + this->value[0][3] * SubFactor05), + (this->value[0][0] * SubFactor02 - this->value[0][1] * SubFactor04 + this->value[0][2] * SubFactor05), + (this->value[0][1] * SubFactor06 - this->value[0][2] * SubFactor07 + this->value[0][3] * SubFactor08), - (this->value[0][0] * SubFactor06 - this->value[0][2] * SubFactor09 + this->value[0][3] * SubFactor10), + (this->value[0][0] * SubFactor11 - this->value[0][1] * SubFactor09 + this->value[0][3] * SubFactor12), - (this->value[0][0] * SubFactor08 - this->value[0][1] * SubFactor10 + this->value[0][2] * SubFactor12), - (this->value[0][1] * SubFactor13 - this->value[0][2] * SubFactor14 + this->value[0][3] * SubFactor15), + (this->value[0][0] * SubFactor13 - this->value[0][2] * SubFactor16 + this->value[0][3] * SubFactor17), - (this->value[0][0] * SubFactor14 - this->value[0][1] * SubFactor16 + this->value[0][3] * SubFactor18), + (this->value[0][0] * SubFactor15 - this->value[0][1] * SubFactor17 + this->value[0][2] * SubFactor18)); */ tmat4x4 Inverse( + this->value[1][1] * SubFactor00 - this->value[1][2] * SubFactor01 + this->value[1][3] * SubFactor02, - this->value[1][0] * SubFactor00 + this->value[1][2] * SubFactor03 - this->value[1][3] * SubFactor04, + this->value[1][0] * SubFactor01 - this->value[1][1] * SubFactor03 + this->value[1][3] * SubFactor05, - this->value[1][0] * SubFactor02 + this->value[1][1] * SubFactor04 - this->value[1][2] * SubFactor05, - this->value[0][1] * SubFactor00 + this->value[0][2] * SubFactor01 - this->value[0][3] * SubFactor02, + this->value[0][0] * SubFactor00 - this->value[0][2] * SubFactor03 + this->value[0][3] * SubFactor04, - this->value[0][0] * SubFactor01 + this->value[0][1] * SubFactor03 - this->value[0][3] * SubFactor05, + this->value[0][0] * SubFactor02 - this->value[0][1] * SubFactor04 + this->value[0][2] * SubFactor05, + this->value[0][1] * SubFactor06 - this->value[0][2] * SubFactor07 + this->value[0][3] * SubFactor08, - this->value[0][0] * SubFactor06 + this->value[0][2] * SubFactor09 - this->value[0][3] * SubFactor10, + this->value[0][0] * SubFactor11 - this->value[0][1] * SubFactor09 + this->value[0][3] * SubFactor12, - this->value[0][0] * SubFactor08 + this->value[0][1] * SubFactor10 - this->value[0][2] * SubFactor12, - this->value[0][1] * SubFactor13 + this->value[0][2] * SubFactor14 - this->value[0][3] * SubFactor15, + this->value[0][0] * SubFactor13 - this->value[0][2] * SubFactor16 + this->value[0][3] * SubFactor17, - this->value[0][0] * SubFactor14 + this->value[0][1] * SubFactor16 - this->value[0][3] * SubFactor18, + this->value[0][0] * SubFactor15 - this->value[0][1] * SubFactor17 + this->value[0][2] * SubFactor18); value_type Determinant = + this->value[0][0] * Inverse[0][0] + this->value[0][1] * Inverse[1][0] + this->value[0][2] * Inverse[2][0] + this->value[0][3] * Inverse[3][0]; Inverse /= Determinant; return Inverse; } // Binary operators template inline tmat4x4 operator+ ( tmat4x4 const & m, typename tmat4x4::value_type const & s ) { return tmat4x4( m[0] + s, m[1] + s, m[2] + s, m[3] + s); } template inline tmat4x4 operator+ ( typename tmat4x4::value_type const & s, tmat4x4 const & m ) { return tmat4x4( m[0] + s, m[1] + s, m[2] + s, m[3] + s); } template inline tmat4x4 operator+ ( tmat4x4 const & m1, tmat4x4 const & m2 ) { return tmat4x4( m1[0] + m2[0], m1[1] + m2[1], m1[2] + m2[2], m1[3] + m2[3]); } template inline tmat4x4 operator- ( tmat4x4 const & m, typename tmat4x4::value_type const & s ) { return tmat4x4( m[0] - s, m[1] - s, m[2] - s, m[3] - s); } template inline tmat4x4 operator- ( typename tmat4x4::value_type const & s, tmat4x4 const & m ) { return tmat4x4( s - m[0], s - m[1], s - m[2], s - m[3]); } template inline tmat4x4 operator- ( tmat4x4 const & m1, tmat4x4 const & m2 ) { return tmat4x4( m1[0] - m2[0], m1[1] - m2[1], m1[2] - m2[2], m1[3] - m2[3]); } template inline tmat4x4 operator* ( tmat4x4 const & m, typename tmat4x4::value_type const & s ) { return tmat4x4( m[0] * s, m[1] * s, m[2] * s, m[3] * s); } template inline tmat4x4 operator* ( typename tmat4x4::value_type const & s, tmat4x4 const & m ) { return tmat4x4( m[0] * s, m[1] * s, m[2] * s, m[3] * s); } template inline typename tmat4x4::col_type operator* ( tmat4x4 const & m, typename tmat4x4::row_type const & v ) { return typename tmat4x4::col_type( m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z + m[3][0] * v.w, m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z + m[3][1] * v.w, m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z + m[3][2] * v.w, m[0][3] * v.x + m[1][3] * v.y + m[2][3] * v.z + m[3][3] * v.w); } template inline typename tmat4x4::row_type operator* ( typename tmat4x4::col_type const & v, tmat4x4 const & m ) { return typename tmat4x4::row_type( m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z + m[0][3] * v.w, m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z + m[1][3] * v.w, m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z + m[2][3] * v.w, m[3][0] * v.x + m[3][1] * v.y + m[3][2] * v.z + m[3][3] * v.w); } template inline tmat4x4 operator* ( tmat4x4 const & m1, tmat4x4 const & m2 ) { typename tmat4x4::col_type const SrcA0 = m1[0]; typename tmat4x4::col_type const SrcA1 = m1[1]; typename tmat4x4::col_type const SrcA2 = m1[2]; typename tmat4x4::col_type const SrcA3 = m1[3]; typename tmat4x4::col_type const SrcB0 = m2[0]; typename tmat4x4::col_type const SrcB1 = m2[1]; typename tmat4x4::col_type const SrcB2 = m2[2]; typename tmat4x4::col_type const SrcB3 = m2[3]; tmat4x4 Result(tmat4x4::null); Result[0] = SrcA0 * SrcB0[0] + SrcA1 * SrcB0[1] + SrcA2 * SrcB0[2] + SrcA3 * SrcB0[3]; Result[1] = SrcA0 * SrcB1[0] + SrcA1 * SrcB1[1] + SrcA2 * SrcB1[2] + SrcA3 * SrcB1[3]; Result[2] = SrcA0 * SrcB2[0] + SrcA1 * SrcB2[1] + SrcA2 * SrcB2[2] + SrcA3 * SrcB2[3]; Result[3] = SrcA0 * SrcB3[0] + SrcA1 * SrcB3[1] + SrcA2 * SrcB3[2] + SrcA3 * SrcB3[3]; return Result; } template inline tmat4x4 operator/ ( tmat4x4 const & m, typename tmat4x4::value_type const & s ) { return tmat4x4( m[0] / s, m[1] / s, m[2] / s, m[3] / s); } template inline tmat4x4 operator/ ( typename tmat4x4::value_type const & s, tmat4x4 const & m ) { return tmat4x4( s / m[0], s / m[1], s / m[2], s / m[3]); } template inline typename tmat4x4::col_type operator/ ( tmat4x4 const & m, typename tmat4x4::row_type const & v ) { return m._inverse() * v; } template inline typename tmat4x4::row_type operator/ ( typename tmat4x4::col_type const & v, tmat4x4 const & m ) { return v * m._inverse(); } template inline tmat4x4 operator/ ( tmat4x4 const & m1, tmat4x4 const & m2 ) { return m1 * m2._inverse(); } // Unary constant operators template inline tmat4x4 const operator- ( tmat4x4 const & m ) { return tmat4x4( -m[0], -m[1], -m[2], -m[3]); } template inline tmat4x4 const operator++ ( tmat4x4 const & m, int ) { return tmat4x4( m[0] + typename tmat4x4::value_type(1), m[1] + typename tmat4x4::value_type(1), m[2] + typename tmat4x4::value_type(1), m[3] + typename tmat4x4::value_type(1)); } template inline tmat4x4 const operator-- ( tmat4x4 const & m, int ) { return tmat4x4( m[0] - typename tmat4x4::value_type(1), m[1] - typename tmat4x4::value_type(1), m[2] - typename tmat4x4::value_type(1), m[3] - typename tmat4x4::value_type(1)); } ////////////////////////////////////// // Boolean operators template inline bool operator== ( tmat4x4 const & m1, tmat4x4 const & m2 ) { return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]) && (m1[3] == m2[3]); } template inline bool operator!= ( tmat4x4 const & m1, tmat4x4 const & m2 ) { return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]) || (m1[3] != m2[3]); } } //namespace detail } //namespace glm #line 248 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x4.hpp" #line 249 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x4.hpp" #line 251 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\type_mat4x4.hpp" #line 33 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" namespace glm{ namespace core{ namespace type { ////////////////////////// // Float definition #line 55 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 68 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 81 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" //! 2 components vector of floating-point numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_vec2 vec2; //! 3 components vector of floating-point numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_vec3 vec3; //! 4 components vector of floating-point numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_vec4 vec4; //! 2 columns of 2 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat2x2 mat2x2; //! 2 columns of 3 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat2x3 mat2x3; //! 2 columns of 4 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat2x4 mat2x4; //! 3 columns of 2 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat3x2 mat3x2; //! 3 columns of 3 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat3x3 mat3x3; //! 3 columns of 4 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat3x4 mat3x4; //! 4 columns of 2 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat4x2 mat4x2; //! 4 columns of 3 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat4x3 mat4x3; //! 4 columns of 4 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef precision::mediump_mat4x4 mat4x4; #line 142 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" //! 2 columns of 2 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef mat2x2 mat2; //! 3 columns of 3 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef mat3x3 mat3; //! 4 columns of 4 components matrix of floating-point numbers. //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! \ingroup core_types typedef mat4x4 mat4; ////////////////////////// // Signed integer definition #line 166 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 170 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 174 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" //! 2 components vector of signed integer numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_ivec2 ivec2; //! 3 components vector of signed integer numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_ivec3 ivec3; //! 4 components vector of signed integer numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_ivec4 ivec4; #line 189 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" ////////////////////////// // Unsigned integer definition #line 198 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 202 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 206 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" //! 2 components vector of unsigned integer numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_uvec2 uvec2; //! 3 components vector of unsigned integer numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_uvec3 uvec3; //! 4 components vector of unsigned integer numbers. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef precision::mediump_uvec4 uvec4; #line 221 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" ////////////////////////// // Boolean definition //! 2 components vector of boolean. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef detail::tvec2 bvec2; //! 3 components vector of boolean. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef detail::tvec3 bvec3; //! 4 components vector of boolean. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! \ingroup core_types typedef detail::tvec4 bvec4; ////////////////////////// // Double definition //! Vector of 2 double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tvec2 dvec2; //! Vector of 3 double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tvec3 dvec3; //! Vector of 4 double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tvec4 dvec4; //! 2 * 2 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat2x2 dmat2; //! 3 * 3 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat3x3 dmat3; //! 4 * 4 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat4x4 dmat4; //! 2 * 2 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat2x2 dmat2x2; //! 2 * 3 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat2x3 dmat2x3; //! 2 * 4 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat2x4 dmat2x4; //! 3 * 2 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat3x2 dmat3x2; //! 3 * 3 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat3x3 dmat3x3; //! 3 * 4 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat3x4 dmat3x4; //! 4 * 2 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat4x2 dmat4x2; //! 4 * 3 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat4x3 dmat4x3; //! 4 * 4 matrix of double-precision floating-point numbers. //! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! \ingroup core_types typedef detail::tmat4x4 dmat4x4; }//namespace type }//namespace core }//namespace glm #line 323 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/type.hpp" #line 67 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_trigonometric.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-01 // Updated : 2008-09-10 // Licence : This source is under MIT License // File : glm/core/func_trigonometric.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace test{ void main_core_func_trigonometric(); }//namespace test namespace core{ namespace function{ //! Define Angle and trigonometry functions //! from Section 8.1 of GLSL 1.30.8 specification. //! Included in glm namespace. namespace trigonometric{ /// \addtogroup core_funcs ///@{ //! Converts degrees to radians and returns the result. //! (From GLSL 1.30.08 specification, section 8.1) template genType radians(genType const & degrees); //! Converts radians to degrees and returns the result. //! (From GLSL 1.30.08 specification, section 8.1) template genType degrees(genType const & radians); //! The standard trigonometric sine function. //! The values returned by this function will range from [-1, 1]. //! (From GLSL 1.30.08 specification, section 8.1) template genType sin(genType const & angle); //! The standard trigonometric cosine function. //! The values returned by this function will range from [-1, 1]. //! (From GLSL 1.30.08 specification, section 8.1) template genType cos(genType const & angle); //! The standard trigonometric tangent function. //! (From GLSL 1.30.08 specification, section 8.1) template genType tan(genType const & angle); //! Arc sine. Returns an angle whose sine is x. //! The range of values returned by this function is [-PI/2, PI/2]. //! Results are undefined if |x| > 1. //! (From GLSL 1.30.08 specification, section 8.1) template genType asin(genType const & x); //! Arc cosine. Returns an angle whose sine is x. //! The range of values returned by this function is [0, PI]. //! Results are undefined if |x| > 1. //! (From GLSL 1.30.08 specification, section 8.1) template genType acos(genType const & x); //! Arc tangent. Returns an angle whose tangent is y/x. //! The signs of x and y are used to determine what //! quadrant the angle is in. The range of values returned //! by this function is [-PI, PI]. Results are undefined //! if x and y are both 0. //! (From GLSL 1.30.08 specification, section 8.1) template genType atan(genType const & y, genType const & x); //! Arc tangent. Returns an angle whose tangent is y_over_x. //! The range of values returned by this function is [-PI/2, PI/2]. //! (From GLSL 1.30.08 specification, section 8.1) template genType atan(genType const & y_over_x); //! Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2 //! (From GLSL 1.30.08 specification, section 8.1) template genType sinh(genType const & angle); //! Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2 //! (From GLSL 1.30.08 specification, section 8.1) template genType cosh(genType const & angle); //! Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) //! (From GLSL 1.30.08 specification, section 8.1) template genType tanh(genType const & angle); //! Arc hyperbolic sine; returns the inverse of sinh. //! (From GLSL 1.30.08 specification, section 8.1) template genType asinh(genType const & x); //! Arc hyperbolic cosine; returns the non-negative inverse //! of cosh. Results are undefined if x < 1. //! (From GLSL 1.30.08 specification, section 8.1) template genType acosh(genType const & x); //! Arc hyperbolic tangent; returns the inverse of tanh. //! Results are undefined if abs(x) >= 1. //! (From GLSL 1.30.08 specification, section 8.1) template genType atanh(genType const & x); ///@} }//namespace trigonometric }//namespace function }//namespace core using namespace core::function::trigonometric; }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_trigonometric.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-03 // Updated : 2008-09-14 // Licence : This source is under MIT License // File : glm/core/func_trigonometric.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace core{ namespace function{ namespace trigonometric{ // radians template inline genType radians ( genType const & degrees ) { static_assert(detail::type::is_float, "'radians' only accept floating-point input"); const genType pi = genType(3.1415926535897932384626433832795); return degrees * (pi / genType(180)); } template inline detail::tvec2 radians ( detail::tvec2 const & degrees ) { return detail::tvec2( radians(degrees.x), radians(degrees.y)); } template inline detail::tvec3 radians ( detail::tvec3 const & degrees ) { return detail::tvec3( radians(degrees.x), radians(degrees.y), radians(degrees.z)); } template inline detail::tvec4 radians ( detail::tvec4 const & degrees ) { return detail::tvec4( radians(degrees.x), radians(degrees.y), radians(degrees.z), radians(degrees.w)); } // degrees template inline genType degrees ( genType const & radians ) { static_assert(detail::type::is_float, "'degrees' only accept floating-point input"); const genType pi = genType(3.1415926535897932384626433832795); return radians * (genType(180) / pi); } template inline detail::tvec2 degrees ( detail::tvec2 const & radians ) { return detail::tvec2( degrees(radians.x), degrees(radians.y)); } template inline detail::tvec3 degrees ( detail::tvec3 const & radians ) { return detail::tvec3( degrees(radians.x), degrees(radians.y), degrees(radians.z)); } template inline detail::tvec4 degrees ( detail::tvec4 const & radians ) { return detail::tvec4( degrees(radians.x), degrees(radians.y), degrees(radians.z), degrees(radians.w)); } // sin template inline genType sin ( genType const & angle ) { static_assert(detail::type::is_float, "'sin' only accept floating-point input"); return ::std::sin(angle); } template inline detail::tvec2 sin ( detail::tvec2 const & angle ) { return detail::tvec2( sin(angle.x), sin(angle.y)); } template inline detail::tvec3 sin ( detail::tvec3 const & angle ) { return detail::tvec3( sin(angle.x), sin(angle.y), sin(angle.z)); } template inline detail::tvec4 sin ( detail::tvec4 const & angle ) { return detail::tvec4( sin(angle.x), sin(angle.y), sin(angle.z), sin(angle.w)); } // cos template inline genType cos(genType const & angle) { static_assert(detail::type::is_float, "'cos' only accept floating-point input"); return ::std::cos(angle); } template inline detail::tvec2 cos ( detail::tvec2 const & angle ) { return detail::tvec2( cos(angle.x), cos(angle.y)); } template inline detail::tvec3 cos ( detail::tvec3 const & angle ) { return detail::tvec3( cos(angle.x), cos(angle.y), cos(angle.z)); } template inline detail::tvec4 cos ( detail::tvec4 const & angle ) { return detail::tvec4( cos(angle.x), cos(angle.y), cos(angle.z), cos(angle.w)); } // tan template inline genType tan ( genType const & angle ) { static_assert(detail::type::is_float, "'tan' only accept floating-point input"); return ::std::tan(angle); } template inline detail::tvec2 tan ( detail::tvec2 const & angle ) { return detail::tvec2( tan(angle.x), tan(angle.y)); } template inline detail::tvec3 tan ( detail::tvec3 const & angle ) { return detail::tvec3( tan(angle.x), tan(angle.y), tan(angle.z)); } template inline detail::tvec4 tan ( detail::tvec4 const & angle ) { return detail::tvec4( tan(angle.x), tan(angle.y), tan(angle.z), tan(angle.w)); } // asin template inline genType asin ( genType const & x ) { static_assert(detail::type::is_float, "'asin' only accept floating-point input"); return ::std::asin(x); } template inline detail::tvec2 asin ( detail::tvec2 const & x ) { return detail::tvec2( asin(x.x), asin(x.y)); } template inline detail::tvec3 asin ( detail::tvec3 const & x ) { return detail::tvec3( asin(x.x), asin(x.y), asin(x.z)); } template inline detail::tvec4 asin ( detail::tvec4 const & x ) { return detail::tvec4( asin(x.x), asin(x.y), asin(x.z), asin(x.w)); } // acos template inline genType acos ( genType const & x ) { static_assert(detail::type::is_float, "'acos' only accept floating-point input"); return ::std::acos(x); } template inline detail::tvec2 acos ( detail::tvec2 const & x ) { return detail::tvec2( acos(x.x), acos(x.y)); } template inline detail::tvec3 acos ( detail::tvec3 const & x ) { return detail::tvec3( acos(x.x), acos(x.y), acos(x.z)); } template inline detail::tvec4 acos ( detail::tvec4 const & x ) { return detail::tvec4( acos(x.x), acos(x.y), acos(x.z), acos(x.w)); } // atan template inline genType atan ( genType const & y, genType const & x ) { static_assert(detail::type::is_float, "'atan' only accept floating-point input"); return ::std::atan2(y, x); } template inline detail::tvec2 atan ( detail::tvec2 const & y, detail::tvec2 const & x ) { return detail::tvec2( atan(y.x, x.x), atan(y.y, x.y)); } template inline detail::tvec3 atan ( detail::tvec3 const & y, detail::tvec3 const & x ) { return detail::tvec3( atan(y.x, x.x), atan(y.y, x.y), atan(y.z, x.z)); } template inline detail::tvec4 atan ( detail::tvec4 const & y, detail::tvec4 const & x ) { return detail::tvec4( atan(y.x, x.x), atan(y.y, x.y), atan(y.z, x.z), atan(y.w, x.w)); } template inline genType atan ( genType const & x ) { static_assert(detail::type::is_float, "'atan' only accept floating-point input"); return ::std::atan(x); } template inline detail::tvec2 atan ( detail::tvec2 const & x ) { return detail::tvec2( atan(x.x), atan(x.y)); } template inline detail::tvec3 atan ( detail::tvec3 const & x ) { return detail::tvec3( atan(x.x), atan(x.y), atan(x.z)); } template inline detail::tvec4 atan ( detail::tvec4 const & x ) { return detail::tvec4( atan(x.x), atan(x.y), atan(x.z), atan(x.w)); } // sinh template inline genType sinh ( genType const & angle ) { static_assert(detail::type::is_float, "'sinh' only accept floating-point input"); return std::sinh(angle); } template inline detail::tvec2 sinh ( detail::tvec2 const & angle ) { return detail::tvec2( sinh(angle.x), sinh(angle.y)); } template inline detail::tvec3 sinh ( detail::tvec3 const & angle ) { return detail::tvec3( sinh(angle.x), sinh(angle.y), sinh(angle.z)); } template inline detail::tvec4 sinh ( detail::tvec4 const & angle ) { return detail::tvec4( sinh(angle.x), sinh(angle.y), sinh(angle.z), sinh(angle.w)); } // cosh template inline genType cosh ( genType const & angle ) { static_assert(detail::type::is_float, "'cosh' only accept floating-point input"); return std::cosh(angle); } template inline detail::tvec2 cosh ( detail::tvec2 const & angle ) { return detail::tvec2( cosh(angle.x), cosh(angle.y)); } template inline detail::tvec3 cosh ( detail::tvec3 const & angle ) { return detail::tvec3( cosh(angle.x), cosh(angle.y), cosh(angle.z)); } template inline detail::tvec4 cosh ( detail::tvec4 const & angle ) { return detail::tvec4( cosh(angle.x), cosh(angle.y), cosh(angle.z), cosh(angle.w)); } // tanh template inline genType tanh ( genType const & angle ) { static_assert(detail::type::is_float, "'tanh' only accept floating-point input"); return std::tanh(angle); } template inline detail::tvec2 tanh ( detail::tvec2 const & angle ) { return detail::tvec2( tanh(angle.x), tanh(angle.y)); } template inline detail::tvec3 tanh ( detail::tvec3 const & angle ) { return detail::tvec3( tanh(angle.x), tanh(angle.y), tanh(angle.z)); } template inline detail::tvec4 tanh ( detail::tvec4 const & angle ) { return detail::tvec4( tanh(angle.x), tanh(angle.y), tanh(angle.z), tanh(angle.w)); } // asinh template inline genType asinh ( genType const & x ) { static_assert(detail::type::is_float, "'asinh' only accept floating-point input"); return (x < genType(0) ? genType(-1) : (x > genType(0) ? genType(1) : genType(0))) * log(abs(x) + sqrt(genType(1) + x * x)); } template inline detail::tvec2 asinh ( detail::tvec2 const & x ) { return detail::tvec2( asinh(x.x), asinh(x.y)); } template inline detail::tvec3 asinh ( detail::tvec3 const & x ) { return detail::tvec3( asinh(x.x), asinh(x.y), asinh(x.z)); } template inline detail::tvec4 asinh ( detail::tvec4 const & x ) { return detail::tvec4( asinh(x.x), asinh(x.y), asinh(x.z), asinh(x.w)); } // acosh template inline genType acosh ( genType const & x ) { static_assert(detail::type::is_float, "'acosh' only accept floating-point input"); if(x < genType(1)) return genType(0); return log(x + sqrt(x * x - genType(1))); } template inline detail::tvec2 acosh ( detail::tvec2 const & x ) { return detail::tvec2( acosh(x.x), acosh(x.y)); } template inline detail::tvec3 acosh ( detail::tvec3 const & x ) { return detail::tvec3( acosh(x.x), acosh(x.y), acosh(x.z)); } template inline detail::tvec4 acosh ( detail::tvec4 const & x ) { return detail::tvec4( acosh(x.x), acosh(x.y), acosh(x.z), acosh(x.w)); } // atanh template inline genType atanh ( genType const & x ) { static_assert(detail::type::is_float, "'atanh' only accept floating-point input"); if(abs(x) >= genType(1)) return 0; return genType(0.5) * log((genType(1) + x) / (genType(1) - x)); } template inline detail::tvec2 atanh ( detail::tvec2 const & x ) { return detail::tvec2( atanh(x.x), atanh(x.y)); } template inline detail::tvec3 atanh ( detail::tvec3 const & x ) { return detail::tvec3( atanh(x.x), atanh(x.y), atanh(x.z)); } template inline detail::tvec4 atanh ( detail::tvec4 const & x ) { return detail::tvec4( atanh(x.x), atanh(x.y), atanh(x.z), atanh(x.w)); } }//namespace trigonometric }//namespace function }//namespace core }//namespace glm #line 127 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_trigonometric.hpp" #line 129 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_trigonometric.hpp" #line 69 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_exponential.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-08 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/func_exponential.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace test{ void main_core_func_exponential(); }//namespace test namespace core{ namespace function{ //! Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace. namespace exponential{ /// \addtogroup core_funcs ///@{ //! Returns x raised to the y power. //! (From GLSL 1.30.08 specification, section 8.2) template genType pow(genType const & x, genType const & y); //! Returns the natural exponentiation of x, i.e., e^x. //! (From GLSL 1.30.08 specification, section 8.2) template genType exp(genType const & x); //! Returns the natural logarithm of x, i.e., //! returns the value y which satisfies the equation x = e^y. //! Results are undefined if x <= 0. //! (From GLSL 1.30.08 specification, section 8.2) template genType log(genType const & x); //! Returns 2 raised to the x power. //! (From GLSL 1.30.08 specification, section 8.2) template genType exp2(genType const & x); //! Returns the base 2 log of x, i.e., returns the value y, //! which satisfies the equation x = 2 ^ y. //! (From GLSL 1.30.08 specification, section 8.2) template genType log2(genType const & x); //! Returns the positive square root of x. //! (From GLSL 1.30.08 specification, section 8.2) template genType sqrt(genType const & x); //! Returns the reciprocal of the positive square root of x. //! (From GLSL 1.30.08 specification, section 8.2) template genType inversesqrt(genType const & x); ///@} }//namespace exponential }//namespace function }//namespace core using namespace core::function::exponential; }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_exponential.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-03 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/func_exponential.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace core{ namespace function{ namespace exponential{ // pow template inline genType pow ( genType const & x, genType const & y ) { static_assert(detail::type::is_float, "'pow' only accept floating-point input"); return ::std::pow(x, y); } template inline detail::tvec2 pow ( detail::tvec2 const & x, detail::tvec2 const & y ) { return detail::tvec2( pow(x.x, y.x), pow(x.y, y.y)); } template inline detail::tvec3 pow ( detail::tvec3 const & x, detail::tvec3 const & y ) { return detail::tvec3( pow(x.x, y.x), pow(x.y, y.y), pow(x.z, y.z)); } template inline detail::tvec4 pow ( detail::tvec4 const & x, detail::tvec4 const & y ) { return detail::tvec4( pow(x.x, y.x), pow(x.y, y.y), pow(x.z, y.z), pow(x.w, y.w)); } // exp template inline genType exp ( genType const & x ) { static_assert(detail::type::is_float, "'exp' only accept floating-point input"); return ::std::exp(x); } template inline detail::tvec2 exp ( detail::tvec2 const & x ) { return detail::tvec2( exp(x.x), exp(x.y)); } template inline detail::tvec3 exp ( detail::tvec3 const & x ) { return detail::tvec3( exp(x.x), exp(x.y), exp(x.z)); } template inline detail::tvec4 exp ( detail::tvec4 const & x ) { return detail::tvec4( exp(x.x), exp(x.y), exp(x.z), exp(x.w)); } // log template inline genType log ( genType const & x ) { static_assert(detail::type::is_float, "'log' only accept floating-point input"); return ::std::log(x); } template inline detail::tvec2 log ( detail::tvec2 const & x ) { return detail::tvec2( log(x.x), log(x.y)); } template inline detail::tvec3 log ( detail::tvec3 const & x ) { return detail::tvec3( log(x.x), log(x.y), log(x.z)); } template inline detail::tvec4 log ( detail::tvec4 const & x ) { return detail::tvec4( log(x.x), log(x.y), log(x.z), log(x.w)); } //exp2, ln2 = 0.69314718055994530941723212145818f template inline genType exp2 ( genType const & x ) { static_assert(detail::type::is_float, "'exp2' only accept floating-point input"); return ::std::exp(genType(0.69314718055994530941723212145818) * x); } template inline detail::tvec2 exp2 ( detail::tvec2 const & x ) { return detail::tvec2( exp2(x.x), exp2(x.y)); } template inline detail::tvec3 exp2 ( detail::tvec3 const & x ) { return detail::tvec3( exp2(x.x), exp2(x.y), exp2(x.z)); } template inline detail::tvec4 exp2 ( detail::tvec4 const & x ) { return detail::tvec4( exp2(x.x), exp2(x.y), exp2(x.z), exp2(x.w)); } // log2, ln2 = 0.69314718055994530941723212145818f template inline genType log2 ( genType const & x ) { static_assert(detail::type::is_float, "'log2' only accept floating-point input"); return ::std::log(x) / genType(0.69314718055994530941723212145818); } template inline detail::tvec2 log2 ( detail::tvec2 const & x ) { return detail::tvec2( log2(x.x), log2(x.y)); } template inline detail::tvec3 log2 ( detail::tvec3 const & x ) { return detail::tvec3( log2(x.x), log2(x.y), log2(x.z)); } template inline detail::tvec4 log2 ( detail::tvec4 const & x ) { return detail::tvec4( log2(x.x), log2(x.y), log2(x.z), log2(x.w)); } // sqrt template inline genType sqrt ( genType const & x ) { static_assert(detail::type::is_float, "'sqrt' only accept floating-point input"); return genType(::std::sqrt(x)); } template inline detail::tvec2 sqrt ( detail::tvec2 const & x ) { return detail::tvec2( sqrt(x.x), sqrt(x.y)); } template inline detail::tvec3 sqrt ( detail::tvec3 const & x ) { return detail::tvec3( sqrt(x.x), sqrt(x.y), sqrt(x.z)); } template inline detail::tvec4 sqrt ( detail::tvec4 const & x ) { return detail::tvec4( sqrt(x.x), sqrt(x.y), sqrt(x.z), sqrt(x.w)); } template inline genType inversesqrt ( genType const & x ) { static_assert(detail::type::is_float, "'inversesqrt' only accept floating-point input"); return genType(1) / ::std::sqrt(x); } template inline detail::tvec2 inversesqrt ( detail::tvec2 const & x ) { return detail::tvec2( inversesqrt(x.x), inversesqrt(x.y)); } template inline detail::tvec3 inversesqrt ( detail::tvec3 const & x ) { return detail::tvec3( inversesqrt(x.x), inversesqrt(x.y), inversesqrt(x.z)); } template inline detail::tvec4 inversesqrt ( detail::tvec4 const & x ) { return detail::tvec4( inversesqrt(x.x), inversesqrt(x.y), inversesqrt(x.z), inversesqrt(x.w)); } }//namespace exponential }//namespace function }//namespace core }//namespace glm #line 75 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_exponential.hpp" #line 77 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_exponential.hpp" #line 70 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_common.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-03-08 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/func_common.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_fixes.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2011-02-21 // Updated : 2011-02-21 // Licence : This source is under MIT License // File : glm/core/_fixes.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// //! Workaround for compatibility with other libraries //! Workaround for compatibility with other libraries #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_common.hpp" namespace glm { namespace test{ void main_core_func_common(); }//namespace test namespace core{ namespace function{ //! Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace. namespace common{ /// \addtogroup core_funcs ///@{ //! Returns x if x >= 0; otherwise, it returns -x. //! (From GLSL 1.30.08 specification, section 8.3) template genFIType abs(genFIType const & x); //! Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. //! (From GLSL 1.30.08 specification, section 8.3) template genFIType sign(genFIType const & x); //! Returns a value equal to the nearest integer that is less then or equal to x. //! (From GLSL 1.30.08 specification, section 8.3) template genType floor(genType const & x); //! Returns a value equal to the nearest integer to x //! whose absolute value is not larger than the absolute value of x. //! (From GLSL 1.30.08 specification, section 8.3) template genType trunc(genType const & x); //! Returns a value equal to the nearest integer to x. //! The fraction 0.5 will round in a direction chosen by the //! implementation, presumably the direction that is fastest. //! This includes the possibility that round(x) returns the //! same value as roundEven(x) for all values of x. //! (From GLSL 1.30.08 specification, section 8.3) template genType round(genType const & x); //! Returns a value equal to the nearest integer to x. //! A fractional part of 0.5 will round toward the nearest even //! integer. (Both 3.5 and 4.5 for x will return 4.0.) //! (From GLSL 1.30.08 specification, section 8.3) template genType roundEven(genType const & x); //! Returns a value equal to the nearest integer //! that is greater than or equal to x. //! (From GLSL 1.30.08 specification, section 8.3) template genType ceil(genType const & x); //! Return x - floor(x). //! (From GLSL 1.30.08 specification, section 8.3) template genType fract(genType const & x); //! Modulus. Returns x - y * floor(x / y) //! for each component in x using the floating point value y. //! (From GLSL 1.30.08 specification, section 8.3) template genType mod( genType const & x, genType const & y); //! Modulus. Returns x - y * floor(x / y) //! for each component in x using the floating point value y. //! (From GLSL 1.30.08 specification, section 8.3) template genType mod( genType const & x, typename genType::value_type const & y); //! Returns the fractional part of x and sets i to the integer //! part (as a whole number floating point value). Both the //! return value and the output parameter will have the same //! sign as x. //! (From GLSL 1.30.08 specification, section 8.3) template genType modf( genType const & x, genType & i); //! Returns y if y < x; otherwise, it returns x. //! (From GLSL 1.30.08 specification, section 8.3) template genType min( genType const & x, genType const & y); template genType min( genType const & x, typename genType::value_type const & y); //! Returns y if x < y; otherwise, it returns x. //! (From GLSL 1.30.08 specification, section 8.3) template genType max( genType const & x, genType const & y); template genType max( genType const & x, typename genType::value_type const & y); //! Returns min(max(x, minVal), maxVal) for each component in x //! using the floating-point values minVal and maxVal. //! (From GLSL 1.30.08 specification, section 8.3) template genType clamp( genType const & x, genType const & minVal, genType const & maxVal); template genType clamp( genType const & x, typename genType::value_type const & minVal, typename genType::value_type const & maxVal); //! \return If genTypeU is a floating scalar or vector: //! Returns x * (1.0 - a) + y * a, i.e., the linear blend of //! x and y using the floating-point value a. //! The value for a is not restricted to the range [0, 1]. //! //! \return If genTypeU is a boolean scalar or vector: //! Selects which vector each returned component comes //! from. For a component of a that is false, the //! corresponding component of x is returned. For a //! component of a that is true, the corresponding //! component of y is returned. Components of x and y that //! are not selected are allowed to be invalid floating point //! values and will have no effect on the results. Thus, this //! provides different functionality than //! genType mix(genType x, genType y, genType(a)) //! where a is a Boolean vector. //! //! From GLSL 1.30.08 specification, section 8.3 //! //! \param[in] x Floating point scalar or vector. //! \param[in] y Floating point scalar or vector. //! \param[in] a Floating point or boolean scalar or vector. //! // \todo Test when 'a' is a boolean. template genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a); //! Returns 0.0 if x < edge, otherwise it returns 1.0. //! (From GLSL 1.30.08 specification, section 8.3) template genType step( genType const & edge, genType const & x); template genType step( typename genType::value_type const & edge, genType const & x); //! Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and //! performs smooth Hermite interpolation between 0 and 1 //! when edge0 < x < edge1. This is useful in cases where //! you would want a threshold function with a smooth //! transition. This is equivalent to: //! genType t; //! t = clamp ((x – edge0) / (edge1 – edge0), 0, 1); //! return t * t * (3 – 2 * t); //! Results are undefined if edge0 >= edge1. //! (From GLSL 1.30.08 specification, section 8.3) template genType smoothstep( genType const & edge0, genType const & edge1, genType const & x); template genType smoothstep( typename genType::value_type const & edge0, typename genType::value_type const & edge1, genType const & x); //! Returns true if x holds a NaN (not a number) //! representation in the underlying implementation's set of //! floating point representations. Returns false otherwise, //! including for implementations with no NaN //! representations. //! (From GLSL 1.30.08 specification, section 8.3) template typename genType::bool_type isnan(genType const & x); //! Returns true if x holds a positive infinity or negative //! infinity representation in the underlying implementation's //! set of floating point representations. Returns false //! otherwise, including for implementations with no infinity //! representations. //! (From GLSL 1.30.08 specification, section 8.3) template typename genType::bool_type isinf(genType const & x); //! Returns a signed or unsigned integer value representing //! the encoding of a floating-point value. The floatingpoint //! value's bit-level representation is preserved. //! (From GLSL 4.00.08 specification, section 8.3) template genIType floatBitsToInt(genType const & value); //! Returns a signed or unsigned integer value representing //! the encoding of a floating-point value. The floatingpoint //! value's bit-level representation is preserved. //! (From GLSL 4.00.08 specification, section 8.3) template genUType floatBitsToInt(genType const & value); //! Returns a floating-point value corresponding to a signed //! or unsigned integer encoding of a floating-point value. //! If an inf or NaN is passed in, it will not signal, and the //! resulting floating point value is unspecified. Otherwise, //! the bit-level representation is preserved. //! (From GLSL 4.00.08 specification, section 8.3) template genType intBitsToFloat(genIUType const & value); //! Computes and returns a * b + c. //! (From GLSL 4.00.08 specification, section 8.3) template genType fma(genType const & a, genType const & b, genType const & c); //! Splits x into a floating-point significand in the range //! [0.5, 1.0) and an integral exponent of two, such that: //! x = significand * exp(2, exponent) //! The significand is returned by the function and the //! exponent is returned in the parameter exp. For a //! floating-point value of zero, the significant and exponent //! are both zero. For a floating-point value that is an //! infinity or is not a number, the results are undefined. //! (From GLSL 4.00.08 specification, section 8.3) template genType frexp(genType const & x, genIType & exp); //! Builds a floating-point number from x and the //! corresponding integral exponent of two in exp, returning: //! significand * exp(2, exponent) //! If this product is too large to be represented in the //! floating-point type, the result is undefined. //! (From GLSL 4.00.08 specification, section 8.3) template genType ldexp(genType const & x, genIType const & exp); ///@} }//namespace common }//namespace function }//namespace core using namespace core::function::common; }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-03 // Updated : 2010-01-26 // Licence : This source is under MIT License // File : glm/core/func_common.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace detail { template struct Abs_ { }; template struct Abs_ { static genFIType get(genFIType const & x) { static_assert(detail::type::is_float || detail::type::is_int, "'abs' only accept floating-point and integer inputs"); #line 27 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" return x >= genFIType(0) ? x : -x; } }; template struct Abs_ { static genFIType get(genFIType const & x) { static_assert(detail::type::is_uint, "'abs' only accept floating-point and integer inputs"); #line 38 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" return x; } }; }//namespace detail namespace core{ namespace function{ namespace common{ // abs template inline genFIType abs( genFIType const & x) { return detail::Abs_::is_signed>::get(x); } //template //inline detail::tvec1 abs( // detail::tvec1 const & v) //{ // return detail::tvec1( // abs(v.x)); //} template inline detail::tvec2 abs( detail::tvec2 const & v) { return detail::tvec2( abs(v.x), abs(v.y)); } template inline detail::tvec3 abs( detail::tvec3 const & v) { return detail::tvec3( abs(v.x), abs(v.y), abs(v.z)); } template inline detail::tvec4 abs( detail::tvec4 const & v) { return detail::tvec4( abs(v.x), abs(v.y), abs(v.z), abs(v.w)); } // sign //Try something like based on x >> 31 to get the sign bit template inline genFIType sign( genFIType const & x) { static_assert(detail::type::is_float || detail::type::is_int, "'sign' only accept signed inputs"); #line 104 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" genFIType result; if(x > genFIType(0)) result = genFIType(1); else if(x < genFIType(0)) result = genFIType(-1); else result = genFIType(0); return result; } template inline detail::tvec2 sign( detail::tvec2 const & x) { return detail::tvec2( sign(x.x), sign(x.y)); } template inline detail::tvec3 sign( detail::tvec3 const & x) { return detail::tvec3( sign(x.x), sign(x.y), sign(x.z)); } template inline detail::tvec4 sign( detail::tvec4 const & x) { return detail::tvec4( sign(x.x), sign(x.y), sign(x.z), sign(x.w)); } // floor template <> inline detail::thalf floor(detail::thalf const& x) { return detail::thalf(::std::floor(float(x))); } template inline genType floor(genType const& x) { static_assert(detail::type::is_float, "'floor' only accept floating-point inputs"); return ::std::floor(x); } template inline detail::tvec2 floor(detail::tvec2 const& x) { return detail::tvec2( floor(x.x), floor(x.y)); } template inline detail::tvec3 floor(detail::tvec3 const& x) { return detail::tvec3( floor(x.x), floor(x.y), floor(x.z)); } template inline detail::tvec4 floor(detail::tvec4 const& x) { return detail::tvec4( floor(x.x), floor(x.y), floor(x.z), floor(x.w)); } // trunc template inline genType trunc(genType const & x) { static_assert(detail::type::is_float, "'trunc' only accept floating-point inputs"); return x < 0 ? -floor(-x) : floor(x); } template inline detail::tvec2 trunc(detail::tvec2 const & x) { return detail::tvec2( trunc(x.x), trunc(x.y)); } template inline detail::tvec3 trunc(detail::tvec3 const & x) { return detail::tvec3( trunc(x.x), trunc(x.y), trunc(x.z)); } template inline detail::tvec4 trunc(detail::tvec4 const & x) { return detail::tvec4( trunc(x.x), trunc(x.y), trunc(x.z), trunc(x.w)); } // round template inline genType round(genType const& x) { static_assert(detail::type::is_float, "'round' only accept floating-point inputs"); return genType(int(x + genType(0.5))); } template inline detail::tvec2 round(detail::tvec2 const& x) { return detail::tvec2( round(x.x), round(x.y)); } template inline detail::tvec3 round(detail::tvec3 const& x) { return detail::tvec3( round(x.x), round(x.y), round(x.z)); } template inline detail::tvec4 round(detail::tvec4 const& x) { return detail::tvec4( round(x.x), round(x.y), round(x.z), round(x.w)); } // roundEven template inline genType roundEven(genType const& x) { static_assert(detail::type::is_float, "'roundEven' only accept floating-point inputs"); return genType(int(x + genType(int(x) % 2))); } template inline detail::tvec2 roundEven(detail::tvec2 const& x) { return detail::tvec2( roundEven(x.x), roundEven(x.y)); } template inline detail::tvec3 roundEven(detail::tvec3 const& x) { return detail::tvec3( roundEven(x.x), roundEven(x.y), roundEven(x.z)); } template inline detail::tvec4 roundEven(detail::tvec4 const& x) { return detail::tvec4( roundEven(x.x), roundEven(x.y), roundEven(x.z), roundEven(x.w)); } // ceil template inline genType ceil(genType const & x) { static_assert(detail::type::is_float, "'ceil' only accept floating-point inputs"); return ::std::ceil(x); } template inline detail::tvec2 ceil(detail::tvec2 const & x) { return detail::tvec2( ceil(x.x), ceil(x.y)); } template inline detail::tvec3 ceil(detail::tvec3 const & x) { return detail::tvec3( ceil(x.x), ceil(x.y), ceil(x.z)); } template inline detail::tvec4 ceil(detail::tvec4 const & x) { return detail::tvec4( ceil(x.x), ceil(x.y), ceil(x.z), ceil(x.w)); } // fract template inline genType fract ( genType const & x ) { static_assert(detail::type::is_float, "'fract' only accept floating-point inputs"); return x - ::std::floor(x); } template inline detail::tvec2 fract ( detail::tvec2 const & x ) { return detail::tvec2( fract(x.x), fract(x.y)); } template inline detail::tvec3 fract ( detail::tvec3 const & x ) { return detail::tvec3( fract(x.x), fract(x.y), fract(x.z)); } template inline detail::tvec4 fract ( detail::tvec4 const & x ) { return detail::tvec4( fract(x.x), fract(x.y), fract(x.z), fract(x.w)); } // mod template inline genType mod ( genType const & x, genType const & y ) { static_assert(detail::type::is_float, "'mod' only accept floating-point inputs"); return x - y * floor(x / y); } template inline detail::tvec2 mod ( detail::tvec2 const & x, typename detail::tvec2::value_type const & y ) { return detail::tvec2( mod(x.x, y), mod(x.y, y)); } template inline detail::tvec3 mod ( detail::tvec3 const & x, typename detail::tvec3::value_type const & y ) { return detail::tvec3( mod(x.x, y), mod(x.y, y), mod(x.z, y)); } template inline detail::tvec4 mod ( detail::tvec4 const & x, typename detail::tvec4::value_type const & y ) { return detail::tvec4( mod(x.x, y), mod(x.y, y), mod(x.z, y), mod(x.w, y)); } template inline detail::tvec2 mod ( detail::tvec2 const & x, detail::tvec2 const & y ) { return detail::tvec2( mod(x.x, y.x), mod(x.y, y.y)); } template inline detail::tvec3 mod ( detail::tvec3 const & x, detail::tvec3 const & y ) { return detail::tvec3( mod(x.x, y.x), mod(x.y, y.y), mod(x.z, y.z)); } template inline detail::tvec4 mod ( detail::tvec4 const & x, detail::tvec4 const & y ) { return detail::tvec4( mod(x.x, y.x), mod(x.y, y.y), mod(x.z, y.z), mod(x.w, y.w)); } // modf template inline genType modf ( genType const & x, genType & i ) { static_assert(detail::type::is_float, "'modf' only accept floating-point inputs"); i = glm::floor(x); return x - i; } template inline detail::tvec2 modf ( detail::tvec2 const & x, detail::tvec2 const & y ) { return detail::tvec2( modf(x.x, y.x), modf(x.y, y.y)); } template inline detail::tvec3 modf ( detail::tvec3 const & x, detail::tvec3 const & y ) { return detail::tvec3( modf(x.x, y.x), modf(x.y, y.y), modf(x.z, y.z)); } template inline detail::tvec4 modf ( detail::tvec4 const & x, detail::tvec4 const & y ) { return detail::tvec4( modf(x.x, y.x), modf(x.y, y.y), modf(x.z, y.z), modf(x.w, y.w)); } //// Only valid if (INT_MIN <= x-y <= INT_MAX) //// min(x,y) //r = y + ((x - y) & ((x - y) >> (sizeof(int) * //CHAR_BIT – 1))); //// max(x,y) //r = x - ((x - y) & ((x - y) >> (sizeof(int) * //CHAR_BIT - 1))); // min template inline genType min ( genType const & x, genType const & y ) { static_assert(detail::type::is_float || detail::type::is_int || detail::type::is_uint, "'min' only accept numbers"); #line 543 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" return x < y ? x : y; } template inline detail::tvec2 min ( detail::tvec2 const & x, typename detail::tvec2::value_type const & y ) { return detail::tvec2( min(x.x, y), min(x.y, y)); } template inline detail::tvec3 min ( detail::tvec3 const & x, typename detail::tvec3::value_type const & y ) { return detail::tvec3( min(x.x, y), min(x.y, y), min(x.z, y)); } template inline detail::tvec4 min ( detail::tvec4 const & x, typename detail::tvec4::value_type const & y ) { return detail::tvec4( min(x.x, y), min(x.y, y), min(x.z, y), min(x.w, y)); } template inline detail::tvec2 min ( detail::tvec2 const & x, detail::tvec2 const & y ) { return detail::tvec2( min(x.x, y.x), min(x.y, y.y)); } template inline detail::tvec3 min ( detail::tvec3 const & x, detail::tvec3 const & y ) { return detail::tvec3( min(x.x, y.x), min(x.y, y.y), min(x.z, y.z)); } template inline detail::tvec4 min ( detail::tvec4 const & x, detail::tvec4 const & y ) { return detail::tvec4( min(x.x, y.x), min(x.y, y.y), min(x.z, y.z), min(x.w, y.w)); } // max template inline genType max ( genType const & x, genType const & y ) { static_assert(detail::type::is_float || detail::type::is_int || detail::type::is_uint, "'max' only accept numbers"); #line 637 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" return x > y ? x : y; } template inline detail::tvec2 max ( detail::tvec2 const & x, typename detail::tvec2::value_type y ) { return detail::tvec2( max(x.x, y), max(x.y, y)); } template inline detail::tvec3 max ( detail::tvec3 const & x, typename detail::tvec3::value_type y ) { return detail::tvec3( max(x.x, y), max(x.y, y), max(x.z, y)); } template inline detail::tvec4 max ( detail::tvec4 const & x, typename detail::tvec4::value_type y ) { return detail::tvec4( max(x.x, y), max(x.y, y), max(x.z, y), max(x.w, y)); } template inline detail::tvec2 max ( detail::tvec2 const & x, detail::tvec2 const & y ) { return detail::tvec2( max(x.x, y.x), max(x.y, y.y)); } template inline detail::tvec3 max ( detail::tvec3 const & x, detail::tvec3 const & y ) { return detail::tvec3( max(x.x, y.x), max(x.y, y.y), max(x.z, y.z)); } template inline detail::tvec4 max ( detail::tvec4 const & x, detail::tvec4 const & y) { return detail::tvec4( max(x.x, y.x), max(x.y, y.y), max(x.z, y.z), max(x.w, y.w)); } // clamp template inline valType clamp ( valType const & x, valType const & minVal, valType const & maxVal ) { static_assert(detail::type::is_float || detail::type::is_int || detail::type::is_uint, "'clamp' only accept numbers"); #line 731 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" // Old implementation, less predictable branching //if(x >= maxVal) return maxVal; //if(x <= minVal) return minVal; //return x; return glm::max(glm::min(x, maxVal), minVal); } template inline detail::tvec2 clamp ( detail::tvec2 const & x, typename detail::tvec2::value_type const & minVal, typename detail::tvec2::value_type const & maxVal ) { return detail::tvec2( clamp(x.x, minVal, maxVal), clamp(x.y, minVal, maxVal)); } template inline detail::tvec3 clamp ( detail::tvec3 const & x, typename detail::tvec3::value_type const & minVal, typename detail::tvec3::value_type const & maxVal ) { return detail::tvec3( clamp(x.x, minVal, maxVal), clamp(x.y, minVal, maxVal), clamp(x.z, minVal, maxVal)); } template inline detail::tvec4 clamp ( detail::tvec4 const & x, typename detail::tvec4::value_type const & minVal, typename detail::tvec4::value_type const & maxVal ) { return detail::tvec4( clamp(x.x, minVal, maxVal), clamp(x.y, minVal, maxVal), clamp(x.z, minVal, maxVal), clamp(x.w, minVal, maxVal)); } template inline detail::tvec2 clamp ( detail::tvec2 const & x, detail::tvec2 const & minVal, detail::tvec2 const & maxVal ) { return detail::tvec2( clamp(x.x, minVal.x, maxVal.x), clamp(x.y, minVal.y, maxVal.y)); } template inline detail::tvec3 clamp ( detail::tvec3 const & x, detail::tvec3 const & minVal, detail::tvec3 const & maxVal ) { return detail::tvec3( clamp(x.x, minVal.x, maxVal.x), clamp(x.y, minVal.y, maxVal.y), clamp(x.z, minVal.z, maxVal.z)); } template inline detail::tvec4 clamp ( detail::tvec4 const & x, detail::tvec4 const & minVal, detail::tvec4 const & maxVal ) { return detail::tvec4( clamp(x.x, minVal.x, maxVal.x), clamp(x.y, minVal.y, maxVal.y), clamp(x.z, minVal.z, maxVal.z), clamp(x.w, minVal.w, maxVal.w)); } // mix template inline genTypeT mix ( genTypeT const & x, genTypeT const & y, genTypeU const & a ) { // It could be a vector too //GLM_STATIC_ASSERT( // detail::type::is_float && // detail::type::is_float); //return x + a * (y - x); return genTypeT(genTypeU(x) + a * genTypeU(y - x)); } template inline detail::tvec2 mix ( detail::tvec2 const & x, detail::tvec2 const & y, valTypeB const & a ) { return detail::tvec2( detail::tvec2(x) + a * detail::tvec2(y - x)); } template inline detail::tvec3 mix ( detail::tvec3 const & x, detail::tvec3 const & y, valTypeB const & a ) { return detail::tvec3( detail::tvec3(x) + a * detail::tvec3(y - x)); } template inline detail::tvec4 mix ( detail::tvec4 const & x, detail::tvec4 const & y, valTypeB const & a ) { return detail::tvec4( detail::tvec4(x) + a * detail::tvec4(y - x)); } template inline detail::tvec2 mix ( detail::tvec2 const & x, detail::tvec2 const & y, detail::tvec2 const & a ) { return detail::tvec2( detail::tvec2(x) + a * detail::tvec2(y - x)); } template inline detail::tvec3 mix ( detail::tvec3 const & x, detail::tvec3 const & y, detail::tvec3 const & a ) { return detail::tvec3( detail::tvec3(x) + a * detail::tvec3(y - x)); } template inline detail::tvec4 mix ( detail::tvec4 const & x, detail::tvec4 const & y, detail::tvec4 const & a ) { return detail::tvec4( detail::tvec4(x) + a * detail::tvec4(y - x)); } //template //inline genTypeT mix //( // genTypeT const & x, // genTypeT const & y, // float const & a //) //{ // // It could be a vector too // //GLM_STATIC_ASSERT( // // detail::type::is_float && // // detail::type::is_float); // return x + a * (y - x); //} template inline genType mix ( genType const & x, genType const & y, bool a ) { static_assert(detail::type::is_float, "'mix' only accept floating-point inputs"); return a ? x : y; } template inline detail::tvec2 mix ( detail::tvec2 const & x, detail::tvec2 const & y, typename detail::tvec2::bool_type a ) { static_assert(detail::type::is_float, "'mix' only accept floating-point inputs"); detail::tvec2 result; for ( typename detail::tvec2::size_type i = 0; i < detail::tvec2::value_size(); ++i ) { result[i] = a[i] ? x[i] : y[i]; } return result; } template inline detail::tvec3 mix ( detail::tvec3 const & x, detail::tvec3 const & y, typename detail::tvec3::bool_type a ) { static_assert(detail::type::is_float, "'mix' only accept floating-point inputs"); detail::tvec3 result; for ( typename detail::tvec3::size_type i = 0; i < detail::tvec3::value_size(); ++i ) { result[i] = a[i] ? x[i] : y[i]; } return result; } template inline detail::tvec4 mix ( detail::tvec4 const & x, detail::tvec4 const & y, typename detail::tvec4::bool_type a ) { static_assert(detail::type::is_float, "'mix' only accept floating-point inputs"); detail::tvec4 result; for ( typename detail::tvec4::size_type i = 0; i < detail::tvec4::value_size(); ++i ) { result[i] = a[i] ? x[i] : y[i]; } return result; } // step template inline genType step ( genType const & edge, genType const & x ) { static_assert(detail::type::is_float, "'mix' only accept floating-point inputs"); return x <= edge ? genType(0) : genType(1); } template inline detail::tvec2 step ( typename detail::tvec2::value_type const & edge, detail::tvec2 const & x ) { return detail::tvec2( x.x <= edge ? T(0) : T(1), x.y <= edge ? T(0) : T(1)); } template inline detail::tvec3 step ( typename detail::tvec3::value_type const & edge, detail::tvec3 const & x ) { return detail::tvec3( x.x <= edge ? T(0) : T(1), x.y <= edge ? T(0) : T(1), x.z <= edge ? T(0) : T(1)); } template inline detail::tvec4 step ( typename detail::tvec4::value_type const & edge, detail::tvec4 const & x ) { return detail::tvec4( x.x <= edge ? T(0) : T(1), x.y <= edge ? T(0) : T(1), x.z <= edge ? T(0) : T(1), x.w <= edge ? T(0) : T(1)); } template inline detail::tvec2 step ( detail::tvec2 const & edge, detail::tvec2 const & x ) { return detail::tvec2( x.x <= edge.x ? T(0) : T(1), x.y <= edge.y ? T(0) : T(1)); } template inline detail::tvec3 step ( detail::tvec3 const & edge, detail::tvec3 const & x ) { return detail::tvec3( x.x <= edge.x ? T(0) : T(1), x.y <= edge.y ? T(0) : T(1), x.z <= edge.z ? T(0) : T(1)); } template inline detail::tvec4 step ( detail::tvec4 const & edge, detail::tvec4 const & x ) { return detail::tvec4( x.x <= edge.x ? T(0) : T(1), x.y <= edge.y ? T(0) : T(1), x.z <= edge.z ? T(0) : T(1), x.w <= edge.w ? T(0) : T(1)); } // smoothstep template inline genType smoothstep ( genType const & edge0, genType const & edge1, genType const & x ) { static_assert(detail::type::is_float, "'mix' only accept floating-point inputs"); genType tmp = clamp((x - edge0) / (edge1 - edge0), genType(0), genType(1)); return tmp * tmp * (genType(3) - genType(2) * tmp); } template inline detail::tvec2 smoothstep ( typename detail::tvec2::value_type const & edge0, typename detail::tvec2::value_type const & edge1, detail::tvec2 const & x ) { return detail::tvec2( smoothstep(edge0, edge1, x.x), smoothstep(edge0, edge1, x.y)); } template inline detail::tvec3 smoothstep ( typename detail::tvec3::value_type const & edge0, typename detail::tvec3::value_type const & edge1, detail::tvec3 const & x ) { return detail::tvec3( smoothstep(edge0, edge1, x.x), smoothstep(edge0, edge1, x.y), smoothstep(edge0, edge1, x.z)); } template inline detail::tvec4 smoothstep ( typename detail::tvec4::value_type const & edge0, typename detail::tvec4::value_type const & edge1, detail::tvec4 const & x ) { return detail::tvec4( smoothstep(edge0, edge1, x.x), smoothstep(edge0, edge1, x.y), smoothstep(edge0, edge1, x.z), smoothstep(edge0, edge1, x.w)); } template inline detail::tvec2 smoothstep ( detail::tvec2 const & edge0, detail::tvec2 const & edge1, detail::tvec2 const & x ) { return detail::tvec2( smoothstep(edge0.x, edge1.x, x.x), smoothstep(edge0.y, edge1.y, x.y)); } template inline detail::tvec3 smoothstep ( detail::tvec3 const & edge0, detail::tvec3 const & edge1, detail::tvec3 const & x ) { return detail::tvec3( smoothstep(edge0.x, edge1.x, x.x), smoothstep(edge0.y, edge1.y, x.y), smoothstep(edge0.z, edge1.z, x.z)); } template inline detail::tvec4 smoothstep ( detail::tvec4 const & edge0, detail::tvec4 const & edge1, detail::tvec4 const & x ) { return detail::tvec4( smoothstep(edge0.x, edge1.x, x.x), smoothstep(edge0.y, edge1.y, x.y), smoothstep(edge0.z, edge1.z, x.z), smoothstep(edge0.w, edge1.w, x.w)); } template inline typename genType::bool_type isnan ( genType const & x ) { static_assert(detail::type::is_float, "'mix' only accept floating-point inputs"); return typename genType::bool_type(_isnan(x)); #line 1214 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" } template inline typename detail::tvec2::bool_type isnan ( detail::tvec2 const & x ) { return typename detail::tvec2::bool_type( isnan(x.x), isnan(x.y)); } template inline typename detail::tvec3::bool_type isnan ( detail::tvec3 const & x ) { return typename detail::tvec3::bool_type( isnan(x.x), isnan(x.y), isnan(x.z)); } template inline typename detail::tvec4::bool_type isnan ( detail::tvec4 const & x ) { return typename detail::tvec4::bool_type( isnan(x.x), isnan(x.y), isnan(x.z), isnan(x.w)); } template inline typename genType::bool_type isinf ( genType const & x ) { static_assert(detail::type::is_float, "'isinf' only accept floating-point inputs"); return typename genType::bool_type(_fpclass(x) == 0x0004 || _fpclass(x) == 0x0200); #line 1265 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_common.inl" } template inline typename detail::tvec2::bool_type isinf ( detail::tvec2 const & x ) { return typename detail::tvec2::bool_type( isnan(x.x), isnan(x.y)); } template inline typename detail::tvec3::bool_type isinf ( detail::tvec3 const & x ) { return typename detail::tvec3::bool_type( isnan(x.x), isnan(x.y), isnan(x.z)); } template inline typename detail::tvec4::bool_type isinf ( detail::tvec4 const & x ) { return typename detail::tvec4::bool_type( isnan(x.x), isnan(x.y), isnan(x.z), isnan(x.w)); } inline int floatBitsToInt(float const & value) { union { float f; int i; } fi; fi.f = value; return fi.i; } template inline detail::tvec2 floatBitsToInt ( detail::tvec2 const & value ) { return detail::tvec2( floatBitsToInt(value.x), floatBitsToInt(value.y)); } template inline detail::tvec3 floatBitsToInt ( detail::tvec3 const & value ) { return detail::tvec3( floatBitsToInt(value.x), floatBitsToInt(value.y)); } template inline detail::tvec4 floatBitsToInt ( detail::tvec4 const & value ) { return detail::tvec4( floatBitsToInt(value.x), floatBitsToInt(value.y)); } inline uint floatBitsToUint(float const & value) { union { float f; uint u; } fu; fu.f = value; return fu.u; } template inline detail::tvec2 floatBitsToUint ( detail::tvec2 const & value ) { return detail::tvec2( floatBitsToUint(value.x), floatBitsToUint(value.y)); } template inline detail::tvec3 floatBitsToUint ( detail::tvec3 const & value ) { return detail::tvec3( floatBitsToUint(value.x), floatBitsToUint(value.y)); } template inline detail::tvec4 floatBitsToUint ( detail::tvec4 const & value ) { return detail::tvec4( floatBitsToUint(value.x), floatBitsToUint(value.y)); } inline float intBitsToFloat(int const & value) { union { float f; int i; } fi; fi.i = value; return fi.f; } inline float intBitsToFloat(uint const & value) { union { float f; uint u; } fu; fu.u = value; return fu.f; } template inline detail::tvec2 intBitsToFloat ( detail::tvec2 const & value ) { return detail::tvec2( intBitsToFloat(value.x), intBitsToFloat(value.y)); } template inline detail::tvec3 intBitsToFloat ( detail::tvec3 const & value ) { return detail::tvec3( intBitsToFloat(value.x), intBitsToFloat(value.y)); } template inline detail::tvec4 intBitsToFloat ( detail::tvec4 const & value ) { return detail::tvec4( intBitsToFloat(value.x), intBitsToFloat(value.y)); } template inline genType fma ( genType const & a, genType const & b, genType const & c ) { return a * b + c; } template genType frexp ( genType const & x, int & exp ) { return std::frexp(x, exp); } template detail::tvec2 frexp ( detail::tvec2 const & x, detail::tvec2 & exp ) { return std::frexp(x, exp); } template detail::tvec3 frexp ( detail::tvec3 const & x, detail::tvec3 & exp ) { return std::frexp(x, exp); } template detail::tvec4 frexp ( detail::tvec4 const & x, detail::tvec4 & exp ) { return std::frexp(x, exp); } template genType ldexp ( genType const & x, int const & exp ) { return std::frexp(x, exp); } template detail::tvec2 ldexp ( detail::tvec2 const & x, detail::tvec2 const & exp ) { return std::frexp(x, exp); } template detail::tvec3 ldexp ( detail::tvec3 const & x, detail::tvec3 const & exp ) { return std::frexp(x, exp); } template detail::tvec4 ldexp ( detail::tvec4 const & x, detail::tvec4 const & exp ) { return std::frexp(x, exp); } }//namespace common }//namespace function }//namespace core }//namespace glm #line 280 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_common.hpp" #line 282 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_common.hpp" #line 71 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_packing.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-03-17 // Updated : 2010-03-17 // Licence : This source is under MIT License // File : glm/core/func_packing.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace test{ void main_core_func_packing(); }//namespace test namespace core{ namespace function{ //! Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification namespace packing { /// \addtogroup core_funcs ///@{ detail::uint32 packUnorm2x16(detail::tvec2 const & v); detail::uint32 packUnorm4x8(detail::tvec4 const & v); detail::uint32 packSnorm4x8(detail::tvec4 const & v); detail::tvec2 unpackUnorm2x16(detail::uint32 const & p); detail::tvec4 unpackUnorm4x8(detail::uint32 const & p); detail::tvec4 unpackSnorm4x8(detail::uint32 const & p); double packDouble2x32(detail::tvec2 const & v); detail::tvec2 unpackDouble2x32(double const & v); ///@} }//namespace packing }//namespace function }//namespace core using namespace core::function::packing; }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_packing.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2010-03-17 // Updated : 2010-03-17 // Licence : This source is under MIT License // File : glm/core/func_packing.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace detail { }//namespace detail namespace core{ namespace function{ namespace packing { inline detail::uint32 packUnorm2x16(detail::tvec2 const & v) { detail::uint16 A((detail::uint16)round(clamp(v.x, 0.0f, 1.0f) * 65535.0f)); detail::uint16 B((detail::uint16)round(clamp(v.y, 0.0f, 1.0f) * 65535.0f)); return detail::uint32((B << 16) | A); } inline detail::uint32 packUnorm4x8(detail::tvec4 const & v) { detail::uint8 A((detail::uint8)round(clamp(v.x, 0.0f, 1.0f) * 255.0f)); detail::uint8 B((detail::uint8)round(clamp(v.y, 0.0f, 1.0f) * 255.0f)); detail::uint8 C((detail::uint8)round(clamp(v.z, 0.0f, 1.0f) * 255.0f)); detail::uint8 D((detail::uint8)round(clamp(v.w, 0.0f, 1.0f) * 255.0f)); return detail::uint32((D << 24) | (C << 16) | (B << 8) | A); } inline detail::uint32 packSnorm4x8(detail::tvec4 const & v) { detail::uint8 A((detail::uint8)round(clamp(v.x,-1.0f, 1.0f) * 255.0f)); detail::uint8 B((detail::uint8)round(clamp(v.y,-1.0f, 1.0f) * 255.0f)); detail::uint8 C((detail::uint8)round(clamp(v.z,-1.0f, 1.0f) * 255.0f)); detail::uint8 D((detail::uint8)round(clamp(v.w,-1.0f, 1.0f) * 255.0f)); return detail::uint32((D << 24) | (C << 16) | (B << 8) | A); } inline detail::tvec2 unpackUnorm2x16(detail::uint32 const & p) { detail::uint16 A(detail::uint16(p >> 0)); detail::uint16 B(detail::uint16(p >> 16)); return detail::tvec2( A * 1.0f / 65535.0f, B * 1.0f / 65535.0f); } inline detail::tvec4 unpackUnorm4x8(detail::uint32 const & p) { detail::uint8 A(detail::uint8(p >> 0)); detail::uint8 B(detail::uint8(p >> 8)); detail::uint8 C(detail::uint8(p >> 16)); detail::uint8 D(detail::uint8(p >> 24)); return detail::tvec4( A * 1.0f / 255.0f, B * 1.0f / 255.0f, C * 1.0f / 255.0f, D * 1.0f / 255.0f); } inline detail::tvec4 unpackSnorm4x8(detail::uint32 const & p) { detail::uint8 A(detail::uint8(p >> 0)); detail::uint8 B(detail::uint8(p >> 8)); detail::uint8 C(detail::uint8(p >> 16)); detail::uint8 D(detail::uint8(p >> 24)); return clamp(detail::tvec4( A * 1.0f / 127.0f, B * 1.0f / 127.0f, C * 1.0f / 127.0f, D * 1.0f / 127.0f), -1.0f, 1.0f); } inline double packDouble2x32(detail::tvec2 const & v) { return *(double*)&v; } inline detail::tvec2 unpackDouble2x32(double const & v) { return *(detail::tvec2*)&v; } }//namespace packing }//namespace function }//namespace core }//namespace glm #line 48 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_packing.hpp" #line 50 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_packing.hpp" #line 72 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_geometric.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-03 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/func_geometric.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace test{ void main_core_func_geometric(); }//namespace test namespace core{ namespace function{ //! Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace. namespace geometric{ /// \addtogroup core_funcs ///@{ //! Returns the length of x, i.e., sqrt(x * x). //! (From GLSL 1.30.08 specification, section 8.4) template typename genType::value_type length( genType const & x); //! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). //! (From GLSL 1.30.08 specification, section 8.4) template typename genType::value_type distance( genType const & p0, genType const & p1); //! Returns the dot product of x and y, i.e., result = x * y. //! (From GLSL 1.30.08 specification, section 8.4) template typename genType::value_type dot( genType const & x, genType const & y); //! Returns the cross product of x and y. //! (From GLSL 1.30.08 specification, section 8.4) template detail::tvec3 cross( detail::tvec3 const & x, detail::tvec3 const & y); //! Returns a vector in the same direction as x but with length of 1. //! (From GLSL 1.30.08 specification, section 8.4) template genType normalize( genType const & x); //! If dot(Nref, I) < 0.0, return N, otherwise, return -N. //! (From GLSL 1.30.08 specification, section 8.4) template genType faceforward( genType const & N, genType const & I, genType const & Nref); //! For the incident vector I and surface orientation N, //! returns the reflection direction : result = I - 2.0 * dot(N, I) * N. //! (From GLSL 1.30.08 specification, section 8.4) template genType reflect( genType const & I, genType const & N); //! For the incident vector I and surface normal N, //! and the ratio of indices of refraction eta, //! return the refraction vector. //! (From GLSL 1.30.08 specification, section 8.4) template genType refract( genType const & I, genType const & N, typename genType::value_type const & eta); ///@} }//namespace geometric }//namespace function }//namespace core using namespace core::function::geometric; }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_geometric.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-03 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/func_geometric.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace core{ namespace function{ namespace geometric{ // length template inline genType length ( genType const & x ) { static_assert(detail::type::is_float, "'length' only accept floating-point inputs"); genType sqr = x * x; return sqrt(sqr); } template inline typename detail::tvec2::value_type length ( detail::tvec2 const & v ) { static_assert(detail::type::is_float, "'length' only accept floating-point inputs"); typename detail::tvec2::value_type sqr = v.x * v.x + v.y * v.y; return sqrt(sqr); } template inline typename detail::tvec3::value_type length ( detail::tvec3 const & v ) { static_assert(detail::type::is_float, "'length' only accept floating-point inputs"); typename detail::tvec3::value_type sqr = v.x * v.x + v.y * v.y + v.z * v.z; return sqrt(sqr); } template inline typename detail::tvec4::value_type length ( detail::tvec4 const & v ) { static_assert(detail::type::is_float, "'length' only accept floating-point inputs"); typename detail::tvec4::value_type sqr = v.x * v.x + v.y * v.y + v.z * v.z + v.w * v.w; return sqrt(sqr); } // distance template inline genType distance ( genType const & p0, genType const & p1 ) { static_assert(detail::type::is_float, "'distance' only accept floating-point inputs"); return length(p1 - p0); } template inline typename detail::tvec2::value_type distance ( detail::tvec2 const & p0, detail::tvec2 const & p1 ) { static_assert(detail::type::is_float, "'distance' only accept floating-point inputs"); return length(p1 - p0); } template inline typename detail::tvec3::value_type distance ( detail::tvec3 const & p0, detail::tvec3 const & p1 ) { static_assert(detail::type::is_float, "'distance' only accept floating-point inputs"); return length(p1 - p0); } template inline typename detail::tvec4::value_type distance ( detail::tvec4 const & p0, detail::tvec4 const & p1 ) { static_assert(detail::type::is_float, "'distance' only accept floating-point inputs"); return length(p1 - p0); } // dot template inline genType dot ( genType const & x, genType const & y ) { static_assert(detail::type::is_float, "'dot' only accept floating-point inputs"); return x * y; } template inline typename detail::tvec2::value_type dot ( detail::tvec2 const & x, detail::tvec2 const & y ) { static_assert(detail::type::is_float, "'dot' only accept floating-point inputs"); return x.x * y.x + x.y * y.y; } template inline T dot ( detail::tvec3 const & x, detail::tvec3 const & y ) { static_assert(detail::type::is_float, "'dot' only accept floating-point inputs"); return x.x * y.x + x.y * y.y + x.z * y.z; } /* // SSE3 inline float dot(const tvec4& x, const tvec4& y) { float Result; __asm { mov esi, x mov edi, y movaps xmm0, [esi] mulps xmm0, [edi] haddps( _xmm0, _xmm0 ) haddps( _xmm0, _xmm0 ) movss Result, xmm0 } return Result; } */ template inline T dot ( detail::tvec4 const & x, detail::tvec4 const & y ) { static_assert(detail::type::is_float, "'dot' only accept floating-point inputs"); return x.x * y.x + x.y * y.y + x.z * y.z + x.w * y.w; } // cross template inline detail::tvec3 cross ( detail::tvec3 const & x, detail::tvec3 const & y ) { static_assert(detail::type::is_float, "'cross' only accept floating-point inputs"); return detail::tvec3( x.y * y.z - y.y * x.z, x.z * y.x - y.z * x.x, x.x * y.y - y.x * x.y); } // normalize template inline genType normalize ( genType const & x ) { static_assert(detail::type::is_float, "'normalize' only accept floating-point inputs"); return x < genType(0) ? genType(-1) : genType(1); } // According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefine and generate an error template inline detail::tvec2 normalize ( detail::tvec2 const & x ) { static_assert(detail::type::is_float, "'normalize' only accept floating-point inputs"); typename detail::tvec2::value_type sqr = x.x * x.x + x.y * x.y; return x * inversesqrt(sqr); } template inline detail::tvec3 normalize ( detail::tvec3 const & x ) { static_assert(detail::type::is_float, "'normalize' only accept floating-point inputs"); typename detail::tvec3::value_type sqr = x.x * x.x + x.y * x.y + x.z * x.z; return x * inversesqrt(sqr); } template inline detail::tvec4 normalize ( detail::tvec4 const & x ) { static_assert(detail::type::is_float, "'normalize' only accept floating-point inputs"); typename detail::tvec4::value_type sqr = x.x * x.x + x.y * x.y + x.z * x.z + x.w * x.w; return x * inversesqrt(sqr); } // faceforward template inline genType faceforward ( genType const & N, genType const & I, genType const & Nref ) { return dot(Nref, I) < 0 ? N : -N; } // reflect template genType reflect ( genType const & I, genType const & N ) { return I - N * dot(N, I) * float(2); } // refract template inline genType refract ( genType const & I, genType const & N, typename genType::value_type const & eta ) { //It could be a vector //GLM_STATIC_ASSERT(detail::type::is_float); typename genType::value_type dotValue = dot(N, I); typename genType::value_type k = typename genType::value_type(1) - eta * eta * (typename genType::value_type(1) - dotValue * dotValue); if(k < typename genType::value_type(0)) return genType(0); else return eta * I - (eta * dotValue + sqrt(k)) * N; } }//namespace geometric }//namespace function }//namespace core }//namespace glm #line 96 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_geometric.hpp" #line 98 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_geometric.hpp" #line 73 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_matrix.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-03 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/func_matrix.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace test{ void main_core_func_matrix(); }//namespace test namespace core{ namespace function{ //! Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace. namespace matrix{ /// \addtogroup core_funcs ///@{ //! Multiply matrix x by matrix y component-wise, i.e., //! result[i][j] is the scalar product of x[i][j] and y[i][j]. //! (From GLSL 1.30.08 specification, section 8.5) template matType matrixCompMult( matType const & x, matType const & y); //! Treats the first parameter c as a column vector //! and the second parameter r as a row vector //! and does a linear algebraic matrix multiply c * r. //! (From GLSL 1.30.08 specification, section 8.5) template matType outerProduct( vecType const & c, vecType const & r); //! Returns the transposed matrix of x //! (From GLSL 1.30.08 specification, section 8.5) template typename matType::transpose_type transpose( matType const & x); //! Return the determinant of a mat2 matrix. //! (From GLSL 1.50.09 specification, section 8.5).. template typename detail::tmat2x2::value_type determinant( detail::tmat2x2 const & m); //! Return the determinant of a mat3 matrix. //! (From GLSL 1.50.09 specification, section 8.5). template typename detail::tmat3x3::value_type determinant( detail::tmat3x3 const & m); //! Return the determinant of a mat4 matrix. //! (From GLSL 1.50.09 specification, section 8.5). template typename detail::tmat4x4::value_type determinant( detail::tmat4x4 const & m); //! Return the inverse of a mat2 matrix. //! (From GLSL 1.40.07 specification, section 8.5). template detail::tmat2x2 inverse( detail::tmat2x2 const & m); //! Return the inverse of a mat3 matrix. //! (From GLSL 1.40.07 specification, section 8.5). template detail::tmat3x3 inverse( detail::tmat3x3 const & m); //! Return the inverse of a mat4 matrix. //! (From GLSL 1.40.07 specification, section 8.5). template detail::tmat4x4 inverse( detail::tmat4x4 const & m); ///@} }//namespace matrix }//namespace function }//namespace core using namespace core::function::matrix; }//namespace glm #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\func_matrix.inl" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-03-08 // Updated : 2010-02-04 // Licence : This source is under MIT License // File : glm/core/func_matrix.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm { namespace core{ namespace function{ namespace matrix{ // matrixCompMult template inline matType matrixCompMult ( matType const & x, matType const & y ) { static_assert(detail::type::is_float, "'matrixCompMult' only accept floating-point inputs"); matType result(matType::null); for(typename matType::size_type i = 0; i < matType::col_size(); ++i) result[i] = x[i] * y[i]; return result; } // outerProduct template inline detail::tmat2x2 outerProduct ( detail::tvec2 const & c, detail::tvec2 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat2x2 m(detail::tmat2x2::null); m[0][0] = c[0] * r[0]; m[0][1] = c[1] * r[0]; m[1][0] = c[0] * r[1]; m[1][1] = c[1] * r[1]; return m; } template inline detail::tmat3x3 outerProduct ( detail::tvec3 const & c, detail::tvec3 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat3x3 m(detail::tmat3x3::null); for(typename detail::tmat3x3::size_type i = 0; i < detail::tmat3x3::col_size(); ++i) m[i] = c * r[i]; return m; } template inline detail::tmat4x4 outerProduct ( detail::tvec4 const & c, detail::tvec4 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat4x4 m(detail::tmat4x4::null); for(typename detail::tmat4x4::size_type i = 0; i < detail::tmat4x4::col_size(); ++i) m[i] = c * r[i]; return m; } template inline detail::tmat2x3 outerProduct ( detail::tvec3 const & c, detail::tvec2 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat2x3 m(detail::tmat2x3::null); m[0][0] = c.x * r.x; m[0][1] = c.y * r.x; m[0][2] = c.z * r.x; m[1][0] = c.x * r.y; m[1][1] = c.y * r.y; m[1][2] = c.z * r.y; return m; } template inline detail::tmat3x2 outerProduct ( detail::tvec2 const & c, detail::tvec3 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat3x2 m(detail::tmat3x2::null); m[0][0] = c.x * r.x; m[0][1] = c.y * r.x; m[1][0] = c.x * r.y; m[1][1] = c.y * r.y; m[2][0] = c.x * r.z; m[2][1] = c.y * r.z; return m; } template inline detail::tmat2x4 outerProduct ( detail::tvec2 const & c, detail::tvec4 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat2x4 m(detail::tmat2x4::null); m[0][0] = c.x * r.x; m[0][1] = c.y * r.x; m[0][2] = c.z * r.x; m[0][3] = c.w * r.x; m[1][0] = c.x * r.y; m[1][1] = c.y * r.y; m[1][2] = c.z * r.y; m[1][3] = c.w * r.y; return m; } template inline detail::tmat4x2 outerProduct ( detail::tvec4 const & c, detail::tvec2 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat4x2 m(detail::tmat4x2::null); m[0][0] = c.x * r.x; m[0][1] = c.y * r.x; m[1][0] = c.x * r.y; m[1][1] = c.y * r.y; m[2][0] = c.x * r.z; m[2][1] = c.y * r.z; m[3][0] = c.x * r.w; m[3][1] = c.y * r.w; return m; } template inline detail::tmat3x4 outerProduct ( detail::tvec4 const & c, detail::tvec3 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat3x4 m(detail::tmat3x4::null); m[0][0] = c.x * r.x; m[0][1] = c.y * r.x; m[0][2] = c.z * r.x; m[0][3] = c.w * r.x; m[1][0] = c.x * r.y; m[1][1] = c.y * r.y; m[1][2] = c.z * r.y; m[1][3] = c.w * r.y; m[2][0] = c.x * r.z; m[2][1] = c.y * r.z; m[2][2] = c.z * r.z; m[2][3] = c.w * r.z; return m; } template inline detail::tmat4x3 outerProduct ( detail::tvec3 const & c, detail::tvec4 const & r ) { static_assert(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); detail::tmat4x3 m(detail::tmat4x3::null); m[0][0] = c.x * r.x; m[0][1] = c.y * r.x; m[0][2] = c.z * r.x; m[1][0] = c.x * r.y; m[1][1] = c.y * r.y; m[1][2] = c.z * r.y; m[2][0] = c.x * r.z; m[2][1] = c.y * r.z; m[2][2] = c.z * r.z; m[3][0] = c.x * r.w; m[3][1] = c.y * r.w; m[3][2] = c.z * r.w; return m; } template inline detail::tmat2x2 transpose ( detail::tmat2x2 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat2x2 result(detail::tmat2x2::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; return result; } template inline detail::tmat3x3 transpose ( detail::tmat3x3 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat3x3 result(detail::tmat3x3::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[0][2] = m[2][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; result[1][2] = m[2][1]; result[2][0] = m[0][2]; result[2][1] = m[1][2]; result[2][2] = m[2][2]; return result; } template inline detail::tmat4x4 transpose ( detail::tmat4x4 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat4x4 result(detail::tmat4x4::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[0][2] = m[2][0]; result[0][3] = m[3][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; result[1][2] = m[2][1]; result[1][3] = m[3][1]; result[2][0] = m[0][2]; result[2][1] = m[1][2]; result[2][2] = m[2][2]; result[2][3] = m[3][2]; result[3][0] = m[0][3]; result[3][1] = m[1][3]; result[3][2] = m[2][3]; result[3][3] = m[3][3]; return result; } template inline detail::tmat2x3 transpose ( detail::tmat3x2 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat2x3 result(detail::tmat2x3::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[0][2] = m[2][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; result[1][2] = m[2][1]; return result; } template inline detail::tmat3x2 transpose ( detail::tmat2x3 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat3x2 result(detail::tmat3x2::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; result[2][0] = m[0][2]; result[2][1] = m[1][2]; return result; } template inline detail::tmat2x4 transpose ( detail::tmat4x2 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat2x4 result(detail::tmat2x4::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[0][2] = m[2][0]; result[0][3] = m[3][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; result[1][2] = m[2][1]; result[1][3] = m[3][1]; return result; } template inline detail::tmat4x2 transpose ( detail::tmat2x4 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat4x2 result(detail::tmat4x2::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; result[2][0] = m[0][2]; result[2][1] = m[1][2]; result[3][0] = m[0][3]; result[3][1] = m[1][3]; return result; } template inline detail::tmat3x4 transpose ( detail::tmat4x3 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat3x4 result(detail::tmat3x4::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[0][2] = m[2][0]; result[0][3] = m[3][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; result[1][2] = m[2][1]; result[1][3] = m[3][1]; result[2][0] = m[0][2]; result[2][1] = m[1][2]; result[2][2] = m[2][2]; result[2][3] = m[3][2]; return result; } template inline detail::tmat4x3 transpose ( detail::tmat3x4 const & m ) { static_assert(detail::type::is_float, "'transpose' only accept floating-point inputs"); detail::tmat4x3 result(detail::tmat4x3::null); result[0][0] = m[0][0]; result[0][1] = m[1][0]; result[0][2] = m[2][0]; result[1][0] = m[0][1]; result[1][1] = m[1][1]; result[1][2] = m[2][1]; result[2][0] = m[0][2]; result[2][1] = m[1][2]; result[2][2] = m[2][2]; result[3][0] = m[0][3]; result[3][1] = m[1][3]; result[3][2] = m[2][3]; return result; } template inline typename detail::tmat2x2::value_type determinant ( detail::tmat2x2 const & m ) { static_assert(detail::type::is_float, "'determinant' only accept floating-point inputs"); return m[0][0] * m[1][1] - m[1][0] * m[0][1]; } template inline typename detail::tmat3x3::value_type determinant ( detail::tmat3x3 const & m ) { static_assert(detail::type::is_float, "'determinant' only accept floating-point inputs"); return + m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2]) - m[1][0] * (m[0][1] * m[2][2] - m[2][1] * m[0][2]) + m[2][0] * (m[0][1] * m[1][2] - m[1][1] * m[0][2]); } template inline typename detail::tmat4x4::value_type determinant ( detail::tmat4x4 const & m ) { static_assert(detail::type::is_float, "'determinant' only accept floating-point inputs"); T SubFactor00 = m[2][2] * m[3][3] - m[3][2] * m[2][3]; T SubFactor01 = m[2][1] * m[3][3] - m[3][1] * m[2][3]; T SubFactor02 = m[2][1] * m[3][2] - m[3][1] * m[2][2]; T SubFactor03 = m[2][0] * m[3][3] - m[3][0] * m[2][3]; T SubFactor04 = m[2][0] * m[3][2] - m[3][0] * m[2][2]; T SubFactor05 = m[2][0] * m[3][1] - m[3][0] * m[2][1]; detail::tvec4 DetCof( + (m[1][1] * SubFactor00 - m[1][2] * SubFactor01 + m[1][3] * SubFactor02), - (m[1][0] * SubFactor00 - m[1][2] * SubFactor03 + m[1][3] * SubFactor04), + (m[1][0] * SubFactor01 - m[1][1] * SubFactor03 + m[1][3] * SubFactor05), - (m[1][0] * SubFactor02 - m[1][1] * SubFactor04 + m[1][2] * SubFactor05)); return m[0][0] * DetCof[0] + m[0][1] * DetCof[1] + m[0][2] * DetCof[2] + m[0][3] * DetCof[3]; } template inline detail::tmat2x2 inverse ( detail::tmat2x2 const & m ) { static_assert(detail::type::is_float, "'inverse' only accept floating-point inputs"); //valType Determinant = m[0][0] * m[1][1] - m[1][0] * m[0][1]; T Determinant = determinant(m); detail::tmat2x2 Inverse( + m[1][1] / Determinant, - m[1][0] / Determinant, - m[0][1] / Determinant, + m[0][0] / Determinant); return Inverse; } template inline detail::tmat3x3 inverse ( detail::tmat3x3 const & m ) { static_assert(detail::type::is_float, "'inverse' only accept floating-point inputs"); //valType Determinant = m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2]) // - m[1][0] * (m[0][1] * m[2][2] - m[2][1] * m[0][2]) // + m[2][0] * (m[0][1] * m[1][2] - m[1][1] * m[0][2]); T Determinant = determinant(m); detail::tmat3x3 Inverse(detail::tmat3x3::null); Inverse[0][0] = + (m[1][1] * m[2][2] - m[2][1] * m[1][2]); Inverse[1][0] = - (m[1][0] * m[2][2] - m[2][0] * m[1][2]); Inverse[2][0] = + (m[1][0] * m[2][1] - m[2][0] * m[1][1]); Inverse[0][1] = - (m[0][1] * m[2][2] - m[2][1] * m[0][2]); Inverse[1][1] = + (m[0][0] * m[2][2] - m[2][0] * m[0][2]); Inverse[2][1] = - (m[0][0] * m[2][1] - m[2][0] * m[0][1]); Inverse[0][2] = + (m[0][1] * m[1][2] - m[1][1] * m[0][2]); Inverse[1][2] = - (m[0][0] * m[1][2] - m[1][0] * m[0][2]); Inverse[2][2] = + (m[0][0] * m[1][1] - m[1][0] * m[0][1]); Inverse /= Determinant; return Inverse; } template inline detail::tmat4x4 inverse ( detail::tmat4x4 const & m ) { static_assert(detail::type::is_float, "'inverse' only accept floating-point inputs"); T Coef00 = m[2][2] * m[3][3] - m[3][2] * m[2][3]; T Coef02 = m[1][2] * m[3][3] - m[3][2] * m[1][3]; T Coef03 = m[1][2] * m[2][3] - m[2][2] * m[1][3]; T Coef04 = m[2][1] * m[3][3] - m[3][1] * m[2][3]; T Coef06 = m[1][1] * m[3][3] - m[3][1] * m[1][3]; T Coef07 = m[1][1] * m[2][3] - m[2][1] * m[1][3]; T Coef08 = m[2][1] * m[3][2] - m[3][1] * m[2][2]; T Coef10 = m[1][1] * m[3][2] - m[3][1] * m[1][2]; T Coef11 = m[1][1] * m[2][2] - m[2][1] * m[1][2]; T Coef12 = m[2][0] * m[3][3] - m[3][0] * m[2][3]; T Coef14 = m[1][0] * m[3][3] - m[3][0] * m[1][3]; T Coef15 = m[1][0] * m[2][3] - m[2][0] * m[1][3]; T Coef16 = m[2][0] * m[3][2] - m[3][0] * m[2][2]; T Coef18 = m[1][0] * m[3][2] - m[3][0] * m[1][2]; T Coef19 = m[1][0] * m[2][2] - m[2][0] * m[1][2]; T Coef20 = m[2][0] * m[3][1] - m[3][0] * m[2][1]; T Coef22 = m[1][0] * m[3][1] - m[3][0] * m[1][1]; T Coef23 = m[1][0] * m[2][1] - m[2][0] * m[1][1]; detail::tvec4 const SignA(+1, -1, +1, -1); detail::tvec4 const SignB(-1, +1, -1, +1); detail::tvec4 Fac0(Coef00, Coef00, Coef02, Coef03); detail::tvec4 Fac1(Coef04, Coef04, Coef06, Coef07); detail::tvec4 Fac2(Coef08, Coef08, Coef10, Coef11); detail::tvec4 Fac3(Coef12, Coef12, Coef14, Coef15); detail::tvec4 Fac4(Coef16, Coef16, Coef18, Coef19); detail::tvec4 Fac5(Coef20, Coef20, Coef22, Coef23); detail::tvec4 Vec0(m[1][0], m[0][0], m[0][0], m[0][0]); detail::tvec4 Vec1(m[1][1], m[0][1], m[0][1], m[0][1]); detail::tvec4 Vec2(m[1][2], m[0][2], m[0][2], m[0][2]); detail::tvec4 Vec3(m[1][3], m[0][3], m[0][3], m[0][3]); detail::tvec4 Inv0 = SignA * (Vec1 * Fac0 - Vec2 * Fac1 + Vec3 * Fac2); detail::tvec4 Inv1 = SignB * (Vec0 * Fac0 - Vec2 * Fac3 + Vec3 * Fac4); detail::tvec4 Inv2 = SignA * (Vec0 * Fac1 - Vec1 * Fac3 + Vec3 * Fac5); detail::tvec4 Inv3 = SignB * (Vec0 * Fac2 - Vec1 * Fac4 + Vec2 * Fac5); detail::tmat4x4 Inverse(Inv0, Inv1, Inv2, Inv3); detail::tvec4 Row0(Inverse[0][0], Inverse[1][0], Inverse[2][0], Inverse[3][0]); T Determinant = glm::dot(m[0], Row0); Inverse /= Determinant; return Inverse; } }//namespace matrix }//namespace function }//namespace core }//namespace glm #line 96 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_matrix.hpp" #line 98 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_matrix.hpp" #line 74 "C:\\Users\\Arnaud\\Projects\\tutorials\\external\\glm-0.9.1\\glm/glm.hpp" #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-08-03 // Updated : 2008-09-09 // Licence : This source is under MIT License // File : glm/core/func_vector_relational.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 1 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\core\\_detail.hpp" /////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2008-07-24 // Updated : 2008-08-31 // Licence : This source is under MIT License // File : glm/core/_detail.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// #line 14 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" namespace glm { namespace test{ void main_core_func_vector_relational(); }//namespace test namespace core{ namespace function{ //! Define vector relational functions from Section 8.3 of GLSL 1.30.8 specification. //! Included in glm namespace. namespace vector_relational { /// \addtogroup core_funcs ///@{ //! Returns the component-wise comparison result of x < y. //! (From GLSL 1.30.08 specification, section 8.6) template class vecType> inline typename vecType::bool_type lessThan ( vecType const & x, vecType const & y ) { static_assert(detail::is_vector >::_YES, "Invalid template instantiation of 'lessThan', GLM vector types required"); #line 41 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" static_assert(detail::is_bool::_NO, "Invalid template instantiation of 'lessThan', GLM vector types required floating-point or integer value types vectors"); #line 43 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" typename vecType::bool_type Result(vecType::null); for(typename vecType::size_type i = 0; i < vecType::value_size(); ++i) Result[i] = x[i] < y[i]; return Result; } //! Returns the component-wise comparison of result x <= y. //! (From GLSL 1.30.08 specification, section 8.6) template class vecType> inline typename vecType::bool_type lessThanEqual ( vecType const & x, vecType const & y ) { static_assert(detail::is_vector >::_YES, "Invalid template instantiation of 'lessThanEqual', GLM vector types required"); #line 62 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" static_assert(detail::is_bool::_NO, "Invalid template instantiation of 'lessThanEqual', GLM vector types required floating-point or integer value types vectors"); #line 64 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" typename vecType::bool_type Result(vecType::null); for(typename vecType::size_type i = 0; i < vecType::value_size(); ++i) Result[i] = x[i] <= y[i]; return Result; } //! Returns the component-wise comparison of result x > y. //! (From GLSL 1.30.08 specification, section 8.6) template class vecType> inline typename vecType::bool_type greaterThan ( vecType const & x, vecType const & y ) { static_assert(detail::is_vector >::_YES, "Invalid template instantiation of 'greaterThan', GLM vector types required"); #line 82 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" static_assert(detail::is_bool::_NO, "Invalid template instantiation of 'greaterThan', GLM vector types required floating-point or integer value types vectors"); #line 84 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" typename vecType::bool_type Result(vecType::null); for(typename vecType::size_type i = 0; i < vecType::value_size(); ++i) Result[i] = x[i] > y[i]; return Result; } //! Returns the component-wise comparison of result x >= y. //! (From GLSL 1.30.08 specification, section 8.6) template class vecType> inline typename vecType::bool_type greaterThanEqual ( vecType const & x, vecType const & y ) { static_assert(detail::is_vector >::_YES, "Invalid template instantiation of 'greaterThanEqual', GLM vector types required"); #line 102 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" static_assert(detail::is_bool::_NO, "Invalid template instantiation of 'greaterThanEqual', GLM vector types required floating-point or integer value types vectors"); #line 104 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" typename vecType::bool_type Result(vecType::null); for(typename vecType::size_type i = 0; i < vecType::value_size(); ++i) Result[i] = x[i] >= y[i]; return Result; } //! Returns the component-wise comparison of result x == y. //! (From GLSL 1.30.08 specification, section 8.6) template class vecType> inline typename vecType::bool_type equal ( vecType const & x, vecType const & y ) { static_assert(detail::is_vector >::_YES, "Invalid template instantiation of 'equal', GLM vector types required"); #line 122 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" typename vecType::bool_type Result(vecType::null); for(typename vecType::size_type i = 0; i < vecType::value_size(); ++i) Result[i] = x[i] == y[i]; return Result; } //! Returns the component-wise comparison of result x != y. //! (From GLSL 1.30.08 specification, section 8.6) template class vecType> inline typename vecType::bool_type notEqual ( vecType const & x, vecType const & y ) { static_assert(detail::is_vector >::_YES, "Invalid template instantiation of 'notEqual', GLM vector types required"); #line 140 "c:\\users\\arnaud\\projects\\tutorials\\external\\glm-0.9.1\\glm\\./core/func_vector_relational.hpp" typename vecType::bool_type Result(vecType::null); for(typename vecType::size_type i = 0; i < vecType::value_size(); ++i) Result[i] = x[i] != y[i]; return Result; } //! Returns true if any component of x is true. //! (From GLSL 1.30.08 specification, section 8.6) template