diff --git a/src/console/Device.cpp b/src/console/Device.cpp index b2f08c2..9bb65a2 100644 --- a/src/console/Device.cpp +++ b/src/console/Device.cpp @@ -198,6 +198,10 @@ void ConsoleDeviceInitialize(const char* title) { EGxApi api = GxApi_OpenGl; #if defined(WHOA_SYSTEM_WIN) api = GxApi_D3d9; + + if (CmdLineGetBool(CMD_OPENGL)) { + api = GxApi_OpenGl; + } #elif defined(WHOA_SYSTEM_MAC) api = GxApi_GLL; #endif diff --git a/src/gx/CGxDevice.cpp b/src/gx/CGxDevice.cpp index 16387a9..a5c5653 100644 --- a/src/gx/CGxDevice.cpp +++ b/src/gx/CGxDevice.cpp @@ -14,6 +14,10 @@ #include "gx/d3d/CGxDeviceD3d.hpp" #endif +#if defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WIN) + #include "gx/glsdl/CGxDeviceGLSDL.hpp" +#endif + #if defined(WHOA_SYSTEM_MAC) #include "gx/gll/CGxDeviceGLL.hpp" #endif @@ -119,13 +123,13 @@ CGxDevice* CGxDevice::NewGLL() { } #endif -CGxDevice* CGxDevice::NewOpenGl() { - // TODO - // auto m = SMemAlloc(sizeof(CGxDeviceOpenGl), __FILE__, __LINE__, 0x0); - // return new (m) CGxDeviceOpenGl(); - return nullptr; +#if defined(WHOA_SYSTEM_WIN) || defined(WHOA_SYSTEM_LINUX) +CGxDevice* CGxDevice::NewOpenGl() { + auto m = SMemAlloc(sizeof(CGxDeviceGLSDL), __FILE__, __LINE__, 0x0); + return new (m) CGxDeviceGLSDL(); } +#endif uint32_t CGxDevice::PrimCalcCount(EGxPrim primType, uint32_t count) { auto div = CGxDevice::s_primVtxDiv[primType]; diff --git a/src/gx/CMakeLists.txt b/src/gx/CMakeLists.txt index 33338b0..dc0d56c 100644 --- a/src/gx/CMakeLists.txt +++ b/src/gx/CMakeLists.txt @@ -19,6 +19,12 @@ if(WHOA_SYSTEM_MAC) list(APPEND GX_SOURCES ${GLL_SOURCES}) endif() +# Build OpenGL/SDL graphics device on Windows and Linux +if(WHOA_SYSTEM_WIN OR WHOA_SYSTEM_LINUX) + file(GLOB GLSDL_SOURCES "glsdl/*.cpp") + list(APPEND GX_SOURCES ${GLSDL_SOURCES}) +endif() + add_library(gx STATIC ${GX_SOURCES}) target_include_directories(gx @@ -47,6 +53,15 @@ if(WHOA_SYSTEM_WIN) ) endif() +# Link SDL3 and GLEW for Windows and Linux +if (WHOA_SYSTEM_WIN OR WHOA_SYSTEM_LINUX) + target_link_libraries(gx + PRIVATE + SDL3::SDL3-static + libglew_static + ) +endif() + if(WHOA_SYSTEM_MAC) target_link_libraries(gx PRIVATE diff --git a/src/gx/glsdl/CGxDeviceGLSDL.cpp b/src/gx/glsdl/CGxDeviceGLSDL.cpp new file mode 100644 index 0000000..4c814d8 --- /dev/null +++ b/src/gx/glsdl/CGxDeviceGLSDL.cpp @@ -0,0 +1,1326 @@ +#include "gx/glsdl/CGxDeviceGLSDL.hpp" +#include "event/Input.hpp" +#include "gx/Blit.hpp" +#include "gx/CGxBatch.hpp" +#include "gx/Shader.hpp" +#include "gx/Window.hpp" +#include "gx/texture/CGxTex.hpp" +#include +#include +#include +#include + +GLEnum CGxDeviceGLSDL::s_glCubeMapFaces[] = { + GL_TEXTURE_CUBE_MAP_POSITIVE_X, + GL_TEXTURE_CUBE_MAP_NEGATIVE_X, + GL_TEXTURE_CUBE_MAP_POSITIVE_Y, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, + GL_TEXTURE_CUBE_MAP_POSITIVE_Z, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z +}; + +GLEnum CGxDeviceGLSDL::s_glDstBlend[] = { + GL_ZERO, // GxBlend_Opaque + GL_ZERO, // GxBlend_AlphaKey + GL_ONE_MINUS_SRC_ALPHA, // GxBlend_Alpha + GL_ONE, // GxBlend_Add + GL_ZERO, // GxBlend_Mod + GL_SRC_COLOR, // GxBlend_Mod2x + GL_ONE, // GxBlend_ModAdd + GL_ONE, // GxBlend_InvSrcAlphaAdd + GL_ZERO, // GxBlend_InvSrcAlphaOpaque + GL_ZERO, // GxBlend_SrcAlphaOpaque + GL_ONE, // GxBlend_NoAlphaAdd + GL_ONE_MINUS_CONSTANT_ALPHA // GxBlend_ConstantAlpha +}; + +GLEnum CGxDeviceGLSDL::s_glSrcBlend[] = { + GL_ONE, // GxBlend_Opaque + GL_ONE, // GxBlend_AlphaKey + GL_SRC_ALPHA, // GxBlend_Alpha + GL_SRC_ALPHA, // GxBlend_Add + GL_DST_COLOR, // GxBlend_Mod + GL_DST_COLOR, // GxBlend_Mod2x + GL_DST_COLOR, // GxBlend_ModAdd + GL_ONE_MINUS_SRC_ALPHA, // GxBlend_InvSrcAlphaAdd + GL_ONE_MINUS_SRC_ALPHA, // GxBlend_InvSrcAlphaOpaque + GL_SRC_ALPHA, // GxBlend_SrcAlphaOpaque + GL_ONE, // GxBlend_NoAlphaAdd + GL_CONSTANT_ALPHA // GxBlend_ConstantAlpha +}; + +GLTextureFormat CGxDeviceGLSDL::s_gxTexFmtToGLSDLFmt[] = { + GLTF_INVALID, // GxTex_Unknown + GLTF_ABGR8888, // GxTex_Abgr8888 + GLTF_ARGB8888, // GxTex_Argb8888 + GLTF_ARGB4444, // GxTex_Argb4444 + GLTF_ARGB1555, // GxTex_Argb1555 + GLTF_RGB565, // GxTex_Rgb565 + GLTF_DXT1, // GxTex_Dxt1 + GLTF_DXT3, // GxTex_Dxt3 + GLTF_DXT5, // GxTex_Dxt5 + GLTF_INVALID, // GxTex_Uv88 + GLTF_INVALID, // GxTex_Gr1616F + GLTF_INVALID, // GxTex_R32F + GLTF_D24 // GxTex_D24X8 +}; + +GLEnum CGxDeviceGLSDL::s_poolTarget2BufferFormat[] = { + GL_ZERO, // GxPoolTarget_Vertex + GL_UNSIGNED_SHORT // GxPoolTarget_Index +}; + +GLEnum CGxDeviceGLSDL::s_poolTarget2BufferType[] = { + GL_ARRAY_BUFFER, // GxPoolTarget_Vertex + GL_ELEMENT_ARRAY_BUFFER // GxPoolTarget_Index +}; + +GLEnum CGxDeviceGLSDL::s_poolUsage2BufferUsage[] = { + GL_STATIC_DRAW, // GxPoolUsage_Static + GL_DYNAMIC_DRAW, // GxPoolUsage_Dynamic + GL_DYNAMIC_DRAW // GxPoolUsage_Stream +}; + +GLEnum CGxDeviceGLSDL::s_primitiveConversion[] = { + GL_POINTS, // GxPrim_Points + GL_LINES, // GxPrim_Lines + GL_LINE_STRIP, // GxPrim_LineStrip + GL_TRIANGLES, // GxPrim_Triangles + GL_TRIANGLE_STRIP, // GxPrim_TriangleStrip + GL_TRIANGLE_FAN, // GxPrim_TriangleFan + GL_ZERO // GxPrims_Last +}; + +CGxDeviceGLSDL::CGxDeviceGLSDL() : CGxDevice() { + // TODO + + this->m_api = GxApi_OpenGl; + this->m_caps.m_colorFormat = GxCF_rgba; + + // TODO + + this->DeviceCreatePools(); + this->DeviceCreateStreamBufs(); + + // TODO +} + +char* CGxDeviceGLSDL::BufLock(CGxBuf* buf) { + CGxDevice::BufLock(buf); + return this->IBufLock(buf); +} + +int32_t CGxDeviceGLSDL::BufUnlock(CGxBuf* buf, uint32_t size) { + CGxDevice::BufUnlock(buf, size); + return this->IBufUnlock(buf); +} + +void CGxDeviceGLSDL::BufData(CGxBuf* buf, const void* data, size_t size, uintptr_t offset) { + CGxDevice::BufData(buf, data, size, offset); + + auto bufData = this->IBufLock(buf); + memcpy(&bufData[offset], data, size); + this->IBufUnlock(buf); +} + +void CGxDeviceGLSDL::CapsWindowSize(CRect& rect) { + CRect windowRect = this->DeviceCurWindow(); + + rect.minX = windowRect.minX; + rect.minY = windowRect.minY; + rect.maxX = windowRect.maxX; + rect.maxY = windowRect.maxY; +} + +void CGxDeviceGLSDL::CapsWindowSizeInScreenCoords(CRect& dst) { + if (this->IDevIsWindowed()) { + auto windowRect = this->DeviceCurWindow(); + auto deviceRect = this->m_GLSDLWindow.GetRect(); + + dst.minX = windowRect.minX + deviceRect.origin.x; + dst.maxX = windowRect.maxX + deviceRect.origin.x; + dst.minY = windowRect.minY + deviceRect.origin.y; + dst.maxY = windowRect.maxY + deviceRect.origin.y; + } else { + dst = this->DeviceCurWindow(); + } +} + +int32_t CGxDeviceGLSDL::DeviceCreate(int32_t (*windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam), const CGxFormat& format) { + GLSDLWindowRect rect; + Rect* bounds; + Rect* zoomedBounds = GetSavedZoomedWindowBounds(); + + if ( + zoomedBounds + && zoomedBounds->bottom - zoomedBounds->top > 599 + && zoomedBounds->right - zoomedBounds->left > 799 + ) { + bounds = GetSavedZoomedWindowBounds(); + } else { + bounds = GetSavedWindowBounds(); + } + + if ( + bounds->bottom - bounds->top > 599 + && bounds->right - bounds->left > 799 + ) { + rect.origin.x = bounds->left; + rect.origin.y = bounds->top; + rect.size.width = bounds->right - bounds->left; + rect.size.height = bounds->bottom - bounds->top; + } else { + Rect newBounds = { + 0, + 0, + static_cast(std::floor((static_cast(format.size.y) / static_cast(format.size.x)) * 1024.0f)), + 1024, + }; + + SetSavedWindowBounds(newBounds); + + rect.origin.x = newBounds.left; + rect.origin.y = newBounds.top; + rect.size.width = newBounds.right; + rect.size.height = newBounds.bottom; + } + + this->m_GLSDLWindow.Create("World of Warcraft", rect, GLTF_D24, 1); + this->m_GLSDLDevice.Init(&this->m_GLSDLWindow, "WoW", 0); + // this->m_GLSDLDevice.Init(&this->m_GLSDLWindow, "WoW", 4); + + GLSDLDevice::SetOption(GLSDLDevice::eShaderConstantBindings, false); + GLSDLDevice::SetOption(GLSDLDevice::eUseMTGL, true); + + if (CGxDevice::DeviceCreate(windowProc, format)) { + // this->m_glWindow.Show(); + + GLSDLDevice::SetOption(GLSDLDevice::eUseHybridShader, true); + + this->ISetCaps(format); + + this->m_context = 1; + + this->ICursorCreate(format); + + return 1; + } else { + return 0; + } +} + +int32_t CGxDeviceGLSDL::DeviceSetFormat(const CGxFormat& format) { + static GLTextureFormat glSDLTexFormats[] = { + GLTF_RGB565, + GLTF_XRGB8888, + GLTF_ARGB8888, + GLTF_A2RGB10, + GLTF_D16, + GLTF_D24, + GLTF_D24S8, + GLTF_D32 + }; + + bool v7 = false; + bool v10 = false; + + Rect v15 = { + 0, + 0, + static_cast(format.size.y), + static_cast(format.size.x) + }; + + if (format.window && format.maximize != 1) { + Rect* zoomedBounds = GetSavedZoomedWindowBounds(); + Rect* bounds; + + if ( + zoomedBounds + && zoomedBounds->bottom - zoomedBounds->top > 599 + && zoomedBounds->right - zoomedBounds->left > 799 + ) { + bounds = GetSavedZoomedWindowBounds(); + } else { + bounds = GetSavedWindowBounds(); + } + + if ( + bounds->bottom - bounds->top > 599 + && bounds->right - bounds->left > 799 + ) { + v15.right = bounds->right - bounds->left; + v15.bottom = bounds->bottom - bounds->top; + } else { + Rect newBounds = { + 0, + 0, + static_cast(std::floor((static_cast(format.size.y) / static_cast(format.size.x)) * 1024.0f)), + 1024, + }; + + SetSavedWindowBounds(newBounds); + + v15.right = newBounds.right; + v15.bottom = newBounds.bottom; + } + + // TODO GxMacPrivate::SetAspectRatio(static_cast(format.size.x) / static_cast(format.size.y)); + + // TODO auto v8 = LMGetMainDevice(); + // TODO GxMacPrivate::ConstrainWindowRect(v15, v8); + + v7 = true; + v10 = true; + } + + CRect wind = { + 0.0f, + 0.0f, + static_cast(v15.bottom - v15.top), + static_cast(v15.right - v15.left) + }; + + this->DeviceSetDefWindow(wind); + + this->m_GLSDLDevice.SetDisplay( + v15.right - v15.left, + v15.bottom - v15.top, + glSDLTexFormats[format.colorFormat], + glSDLTexFormats[format.depthFormat], + format.refreshRate, + v7, + format.window ^ 1, + format.sampleCount + ); + + OsInputPostEvent(OS_INPUT_SIZE, v15.right - v15.left, v15.bottom - v15.top, 0, 0); + + // TODO + // GameFrame::SetSize(v15.right - v15.left, v15.bottom - v15.top); + + // TODO + // this->m_GLSDLDevice.SetVSync(format.vsync != 0); + + this->IStateSetGLSDLDefaults(); + + if (v10) { + // TODO + // this->m_GLSDLDevice.RestoreDefaultGamma(); + } else { + // TODO + // - unknown vtable call + } + + // TODO + // - this seems to belong elsewhere + CGxDevice::DeviceSetFormat(format); + + return 1; +} + +void* CGxDeviceGLSDL::DeviceWindow() { + return &this->m_GLSDLWindow; +} + +void CGxDeviceGLSDL::Draw(CGxBatch* batch, int32_t indexed) { + if (!this->m_context) { + return; + } + + // TODO + // unk conditional check early return + + this->IStateSync(); + this->ValidateDraw(batch, indexed); + + uint32_t baseIndex = 0; + if (!this->m_caps.int10) { + baseIndex = this->m_primVertexFormatBuf[0]->m_index / this->m_primVertexFormatBuf[0]->m_itemSize; + } + + if (indexed) { + this->m_GLSDLDevice.DrawIndexed( + CGxDeviceGLSDL::s_primitiveConversion[batch->m_primType], + batch->m_minIndex, + batch->m_maxIndex, + baseIndex, + batch->m_start + (this->m_primIndexBuf->m_index / 2), + batch->m_count + ); + } else { + this->m_GLSDLDevice.Draw( + CGxDeviceGLSDL::s_primitiveConversion[batch->m_primType], + baseIndex, + batch->m_count + ); + } +} + +char* CGxDeviceGLSDL::IBufLock(CGxBuf* buf) { + if (!this->m_context) { + // TODO + // EmergencyMem + return nullptr; + } + + CGxPool* pool = buf->m_pool; + + GLBuffer::eMapFlag mapFlag = GLBuffer::GLMap_None; + + if (pool->m_usage == GxPoolUsage_Stream) { + mapFlag = GLBuffer::GLMap_Unk1; + + uint32_t v7 = pool->unk1C + buf->m_itemSize - 1; + uint32_t alignedNext = v7 - v7 % buf->m_itemSize; + + if (alignedNext + buf->m_size > pool->m_size) { + pool->Discard(); + alignedNext = 0; + mapFlag = GLBuffer::GLMap_Unk2; + } + + buf->m_index = alignedNext; + pool->unk1C = alignedNext + buf->m_size; + } else { + mapFlag = pool->m_usage == GxPoolUsage_Dynamic ? GLBuffer::GLMap_Unk1 : GLBuffer::GLMap_None; + } + + GLBuffer* glBuf = reinterpret_cast(pool->m_apiSpecific); + + if (!glBuf) { + glBuf = this->m_GLSDLDevice.CreateBuffer( + CGxDeviceGLSDL::s_poolTarget2BufferType[pool->m_target], + pool->m_size, + nullptr, + CGxDeviceGLSDL::s_poolUsage2BufferUsage[pool->m_usage], + CGxDeviceGLSDL::s_poolTarget2BufferFormat[pool->m_target] + ); + + pool->m_apiSpecific = glBuf; + } + + if (!glBuf) { + // TODO + // EmergencyMem + return nullptr; + } + + return glBuf->Map(buf->m_index, buf->m_size, mapFlag); +} + +int32_t CGxDeviceGLSDL::IBufUnlock(CGxBuf* buf) { + CGxPool* pool = buf->m_pool; + + // TODO + // EmergencyMem + + auto glBuf = reinterpret_cast(pool->m_apiSpecific); + + glBuf->Unmap(0); + buf->unk1D = 1; + + return 1; +} + +void CGxDeviceGLSDL::IRsSendToHw(EGxRenderState which) { + auto state = &this->m_appRenderStates[which]; + + switch (which) { + // TODO + // - remaining render states + + case GxRs_BlendingMode: { + int32_t blend = static_cast(state->m_value); + + if (blend <= GxBlend_AlphaKey) { + this->m_GLSDLDevice.SetAlphaBlendEnable(0); + } else { + this->m_GLSDLDevice.SetAlphaBlendEnable(1); + this->m_GLSDLDevice.SetAlphaBlend( + CGxDeviceGLSDL::s_glSrcBlend[blend], + CGxDeviceGLSDL::s_glDstBlend[blend], + GL_FUNC_ADD + ); + } + + break; + } + + case GxRs_AlphaRef: { + int32_t alphaRef = static_cast(state->m_value); + + if (alphaRef <= 0) { + this->m_GLSDLDevice.SetAlphaTestEnable(0); + } else { + this->m_GLSDLDevice.SetAlphaTest(GL_GEQUAL, static_cast(alphaRef) / static_cast(255)); + this->m_GLSDLDevice.SetAlphaTestEnable(1); + } + + break; + } + + case GxRs_FogStart: { + auto fogStart = static_cast(state->m_value); + + this->m_GLSDLDevice.SetFogParam(GL_FOG_START, fogStart); + + break; + } + + case GxRs_FogEnd: { + auto fogEnd = static_cast(state->m_value); + + this->m_GLSDLDevice.SetFogParam(GL_FOG_END, fogEnd); + + break; + } + + case GxRs_FogColor: { + auto fogColor = static_cast(state->m_value); + + this->m_GLSDLDevice.SetFogColor( + fogColor.r / 255.0f, + fogColor.g / 255.0f, + fogColor.b / 255.0f, + fogColor.a / 255.0f + ); + + break; + } + + case GxRs_Lighting: { + int32_t lightingEnable = 0; + + if (this->MasterEnable(GxMasterEnable_Lighting)) { + lightingEnable = static_cast(state->m_value); + } + + this->m_GLSDLDevice.SetLightingEnable(lightingEnable); + + break; + } + + case GxRs_Fog: { + int32_t fogEnable = 0; + + if (this->MasterEnable(GxMasterEnable_Fog)) { + fogEnable = static_cast(state->m_value); + } + + this->m_GLSDLDevice.SetFogEnable(fogEnable); + + break; + } + + case GxRs_DepthTest: { + int32_t depthTest = 0; + + if (this->MasterEnable(GxMasterEnable_DepthTest)) { + depthTest = static_cast(state->m_value); + } + + this->m_GLSDLDevice.SetDepthTestEnable(depthTest != 0); + + break; + } + + case GxRs_DepthFunc: { + static GLEnum s_glDepthFunc[] = { + GL_LEQUAL, + GL_EQUAL, + GL_GEQUAL, + GL_LESS, + GL_NONE, + GL_NONE + }; + + GLEnum depthFunc = s_glDepthFunc[static_cast(state->m_value)]; + this->m_GLSDLDevice.SetDepthTestFunc(depthFunc); + + break; + } + + case GxRs_DepthWrite: { + int32_t depthWrite = static_cast(state->m_value); + bool depthWriteMask = this->MasterEnable(GxMasterEnable_DepthWrite) && depthWrite + ? 1 : 0; + + this->m_GLSDLDevice.SetDepthWriteMask(depthWriteMask); + + break; + } + + case GxRs_Culling: { + static GLEnum cullMode[] = { + GL_ZERO, + GL_CW, + GL_CCW + }; + + // TODO + // - only use state if unk flag 0x20 set, otherwise use 0 + + int32_t mode = static_cast(state->m_value); + + // TODO + // BLIZZARD_ASSERT(mode <= GxCullState_CCW); + + this->m_GLSDLDevice.SetCullMode(cullMode[mode]); + + break; + } + + case GxRs_Texture0: + case GxRs_Texture1: + case GxRs_Texture2: + case GxRs_Texture3: + case GxRs_Texture4: + case GxRs_Texture5: + case GxRs_Texture6: + case GxRs_Texture7: + case GxRs_Texture8: + case GxRs_Texture9: + case GxRs_Texture10: + case GxRs_Texture11: + case GxRs_Texture12: + case GxRs_Texture13: + case GxRs_Texture14: + case GxRs_Texture15: { + int32_t tmu = which - GxRs_Texture0; + + if (tmu <= 15) { + CGxTex* texture = static_cast(static_cast(state->m_value)); + + if (texture) { + this->ITexBind(); + this->ITexMarkAsUpdated(texture); + + GLTexture* glTexture = static_cast(texture->m_apiSpecificData); + this->m_GLSDLDevice.SetTexture(tmu, glTexture); + } else { + this->m_GLSDLDevice.SetTexture(tmu, nullptr); + } + } + + break; + } + + case GxRs_TexGen0: + case GxRs_TexGen1: + case GxRs_TexGen2: + case GxRs_TexGen3: + case GxRs_TexGen4: + case GxRs_TexGen5: + case GxRs_TexGen6: + case GxRs_TexGen7: { + // TODO + + break; + } + + case GxRs_VertexShader: { + auto vs = static_cast(static_cast(state->m_value)); + this->IShaderBindVertex(vs); + + break; + } + + case GxRs_PixelShader: { + auto ps = static_cast(static_cast(state->m_value)); + this->IShaderBindPixel(ps); + + break; + } + + default: { + fprintf(stderr, "Unhandled render state in CGxDeviceGLSDL::IRsSendToHw: %i\n", which); + + break; + } + } +} + +void CGxDeviceGLSDL::ISceneBegin() { + if (this->m_context) { + this->ShaderConstantsClear(); + } + + // TODO GameMovie::ReadFrame(this); +} + +void CGxDeviceGLSDL::ISetCaps(const CGxFormat& format) { + // TODO fill in proper implementation + + this->m_caps.m_pixelCenterOnEdge = 1; + this->m_caps.m_texelCenterOnEdge = 1; + + this->m_caps.m_colorFormat = GxCF_rgba; + + this->m_caps.m_generateMipMaps = 1; + + this->m_caps.int10 = 1; + + this->m_caps.m_texFmt[GxTex_Dxt1] = 1; + this->m_caps.m_texFmt[GxTex_Dxt3] = 1; + this->m_caps.m_texFmt[GxTex_Dxt5] = 1; + + this->m_caps.m_shaderTargets[GxSh_Vertex] = GxShVS_arbvp1; + this->m_caps.m_shaderTargets[GxSh_Pixel] = GxShPS_arbfp1; + + this->m_caps.m_texFilterAnisotropic = 1; + this->m_caps.m_maxTexAnisotropy = 16; + + this->m_caps.m_texTarget[GxTex_2d] = 1; + this->m_caps.m_texTarget[GxTex_CubeMap] = 1; + this->m_caps.m_texTarget[GxTex_Rectangle] = 1; + this->m_caps.m_texTarget[GxTex_NonPow2] = 1; + + this->m_caps.m_texMaxSize[GxTex_2d] = 4096; + this->m_caps.m_texMaxSize[GxTex_CubeMap] = 4096; + this->m_caps.m_texMaxSize[GxTex_Rectangle] = 4096; + this->m_caps.m_texMaxSize[GxTex_NonPow2] = 4096; + + // TODO +} + +void CGxDeviceGLSDL::IShaderBindPixel(CGxShader* sh) { + CGxDevice::IShaderBind(); + + if (!sh) { + this->m_GLSDLDevice.SetShader(GLShader::ePixelShader, nullptr); + return; + } + + if (!sh->loaded) { + this->IShaderCreatePixel(sh); + } + + BLIZZARD_ASSERT(sh->Valid()); + + this->m_GLSDLDevice.SetShader(GLShader::ePixelShader, static_cast(sh->apiSpecific)); +} + +void CGxDeviceGLSDL::IShaderBindVertex(CGxShader* sh) { + CGxDevice::IShaderBind(); + + if (!sh) { + this->m_GLSDLDevice.SetShader(GLShader::eVertexShader, nullptr); + return; + } + + if (!sh->loaded) { + this->IShaderCreateVertex(sh); + } + + BLIZZARD_ASSERT(sh->Valid()); + + this->m_GLSDLDevice.SetShader(GLShader::eVertexShader, static_cast(sh->apiSpecific)); +} + +void CGxDeviceGLSDL::IShaderConstantsFlush() { + // Vertex shader constants + auto vsConst = &CGxDevice::s_shadowConstants[1]; + if (vsConst->unk2 <= vsConst->unk1) { + this->m_GLSDLDevice.SetShaderConstants( + GLShader::eVertexShader, + vsConst->unk2, + reinterpret_cast(&vsConst->constants[vsConst->unk2]), + vsConst->unk1 - vsConst->unk2 + 1 + ); + } + vsConst->unk2 = 255; + vsConst->unk1 = 0; + + // Pixel shader constants + auto psConst = &CGxDevice::s_shadowConstants[0]; + if (psConst->unk2 <= psConst->unk1) { + this->m_GLSDLDevice.SetShaderConstants( + GLShader::ePixelShader, + psConst->unk2, + reinterpret_cast(&psConst->constants[psConst->unk2]), + psConst->unk1 - psConst->unk2 + 1 + ); + } + psConst->unk2 = 255; + psConst->unk1 = 0; +} + +void CGxDeviceGLSDL::IShaderCreate(CGxShader* sh) { + if (sh->target == GxSh_Vertex) { + this->IShaderCreateVertex(sh); + } else if (sh->target == GxSh_Pixel) { + this->IShaderCreatePixel(sh); + } +} + +void CGxDeviceGLSDL::IShaderCreatePixel(CGxShader* ps) { + BLIZZARD_ASSERT(!ps->loaded); + + ps->loaded = 1; + ps->valid = 0; + + unsigned char* codeStr = ps->code.m_data; + uint32_t codeLen = ps->code.Count(); + + if (codeLen) { + this->PatchPixelShader(ps); + + GLShader* glShader = this->m_GLSDLDevice.CreateShader( + GLShader::ShaderType::ePixelShader, + codeStr, + codeLen, + ps->m_key.m_str + ); + + glShader->Compile(nullptr); + + ps->apiSpecific = glShader; + ps->valid = 1; + } +} + +void CGxDeviceGLSDL::IShaderCreateVertex(CGxShader* vs) { + BLIZZARD_ASSERT(!vs->loaded); + + vs->loaded = 1; + vs->valid = 0; + + unsigned char* code = vs->code.m_data; + uint32_t codeLen = vs->code.Count(); + + if (codeLen) { + this->PatchVertexShader(vs); + + GLShader* glShader = this->m_GLSDLDevice.CreateShader( + GLShader::ShaderType::eVertexShader, + code, + codeLen, + vs->m_key.m_str + ); + + glShader->Compile(nullptr); + + vs->apiSpecific = glShader; + vs->valid = 1; + } +} + +void CGxDeviceGLSDL::IStateSetGLSDLDefaults() { + this->IRsForceUpdate(); + this->IRsSync(0); + + // TODO a1->unk8 = -1; + // TODO a1->unk13 = 0; + + this->m_GLSDLDevice.SetIndexBuffer(nullptr); + + GLTexture* a2 = nullptr; + GLTexture* a3 = nullptr; + // TODO this->m_GLSDLDevice.GetBackBuffer(&a2, &a3, nullptr); + // TODO this->gllunk2[12] = a2->GetMipmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + // TODO this->gllunk2[13] = a3->GetMipmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + + this->m_GLSDLDevice.SetFogParam(GL_FOG_DENSITY, 0.0f); + // TODO this->InitLights(); + + // TODO this->gllunk2[10] = 0; + + this->ISceneBegin(); +} + +void CGxDeviceGLSDL::IStateSync() { + this->IShaderConstantsFlush(); + this->IRsSync(0); + this->IStateSyncXforms(); + this->IStateSyncLights(); + this->IStateSyncEnables(); + this->IStateSyncMaterial(); + // TODO clip plane + this->IStateSyncScissorRect(); + this->IStateSyncVertexPtrs(); + this->IStateSyncIndexPtr(); +} + +void CGxDeviceGLSDL::IStateSyncEnables() { + // TODO +} + +void CGxDeviceGLSDL::IStateSyncIndexPtr() { + if (this->m_primIndexDirty) { + this->m_primIndexDirty = 0; + this->m_GLSDLDevice.SetIndexBuffer(static_cast(this->m_primIndexBuf->m_pool->m_apiSpecific)); + } +} + +void CGxDeviceGLSDL::IStateSyncLights() { + // TODO +} + +void CGxDeviceGLSDL::IStateSyncMaterial() { + // TODO +} + +void CGxDeviceGLSDL::IStateSyncScissorRect() { + // TODO +} + +void CGxDeviceGLSDL::IStateSyncVertexPtrs() { + static int32_t gxAttribSlot[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; + + static int32_t gxAttribTypeToGLSDLAttribType[] = { + GLVT_UBYTE4N, + GLVT_UBYTE4, + GLVT_UBYTE4N, + GLVT_FLOAT2, + GLVT_FLOAT3, + GLVT_SHORT2N, + GLVT_FLOAT1 + }; + + if (this->m_primVertexFormat < GxVertexBufferFormats_Last) { + GLVertexFormat* glFormat = &this->m_glFormats[this->m_primVertexFormat]; + + if (glFormat->m_Size) { + this->m_GLSDLDevice.SetVertexFormat(glFormat); + + this->m_GLSDLDevice.SetVertexBuffer( + 0, + static_cast(this->m_primVertexBuf->m_pool->m_apiSpecific), + this->m_primVertexBuf->m_index, + this->m_primVertexSize + ); + + return; + } + } + + GLVertexFormat* glFormat = nullptr; + + if (this->m_primVertexFormat < GxVertexBufferFormats_Last) { + glFormat = &this->m_glFormats[this->m_primVertexFormat]; + } + + for (int32_t i = 0; i < GxVAs_Last; i++) { + if ((1 << i) & this->m_primVertexMask) { + CGxVertexAttrib* attrib = &this->m_primVertexFormatAttrib[i]; + + uint32_t j = glFormat->m_Size; + + glFormat->m_Attribs[j].stream = 0; + glFormat->m_Attribs[j].slot = gxAttribSlot[attrib->attrib]; + glFormat->m_Attribs[j].type = gxAttribTypeToGLSDLAttribType[attrib->type]; + glFormat->m_Attribs[j].offset = attrib->offset; + + glFormat->m_Size++; + } + } + + this->m_GLSDLDevice.SetVertexFormat(glFormat); + + this->m_GLSDLDevice.SetVertexBuffer( + 0, + static_cast(this->m_primVertexBuf->m_pool->m_apiSpecific), + this->m_primVertexBuf->m_index, + this->m_primVertexSize + ); +} + +void CGxDeviceGLSDL::IStateSyncXforms() { + // TODO this->IXformSetWorld(); + // TODO this->IXformSetTex(); + + this->IXformSetViewport(); +} + +void CGxDeviceGLSDL::ITexCreate(CGxTex* gxTex) { + uint32_t width, height, baseMip, mipCount; + this->ITexWHDStartEnd(gxTex, width, height, baseMip, mipCount); + + uint32_t flags = 0; + + flags |= gxTex->m_flags.m_renderTarget ? GLTFLAG_RENDERTARGET : 0x0; + flags |= gxTex->m_format == GxTex_D24X8 ? GLTFLAG_DEPTH : 0x0; + flags |= gxTex->m_flags.m_generateMipMaps ? GLTFLAG_AUTOGEN_MIPMAP : 0x0; + + // TODO + // 2 bits, appearing at m_maxAnisotropy + 1 bit + // flags |= gxTex->m_flags & 0xC000 : GLTFLAG_READ_ACCESS : 0x0; + + if (gxTex->m_target == 1) { + gxTex->m_apiSpecificData = this->m_GLSDLDevice.CreateTextureCubeMap( + width, + mipCount - baseMip, + CGxDeviceGLSDL::s_gxTexFmtToGLSDLFmt[gxTex->m_format], + flags + ); + } else { + gxTex->m_apiSpecificData = this->m_GLSDLDevice.CreateTexture2D( + width, + height, + mipCount - baseMip, + CGxDeviceGLSDL::s_gxTexFmtToGLSDLFmt[gxTex->m_format], + flags + ); + + if (gxTex->m_flags.m_renderTarget) { + gxTex->m_apiSpecificData2 = this->m_GLSDLDevice.CreateTexture2D( + width, + height, + mipCount - baseMip, + GLTF_D24, + flags | GLTFLAG_DEPTH + ); + } + } + + this->ITexSetFlags(gxTex); + + // TODO + // CGxDevice::IOnAcquireCPUTex(); + + gxTex->m_needsCreation = 0; +} + +void CGxDeviceGLSDL::ITexMarkAsUpdated(CGxTex* texId) { + if (texId->m_needsFlagUpdate && !texId->m_needsCreation && (texId->m_apiSpecificData || texId->m_apiSpecificData2)) { + this->ITexSetFlags(texId); + } + + if (texId->m_needsUpdate/* TODO && (this + 4000) */) { + if (texId->m_needsCreation || (!texId->m_apiSpecificData && !texId->m_apiSpecificData2)) { + this->ITexCreate(texId); + } + + if (!texId->m_needsCreation && (texId->m_apiSpecificData || texId->m_apiSpecificData2)) { + if (texId->m_userFunc) { + this->ITexUpload(texId); + } + + CGxDevice::ITexMarkAsUpdated(texId); + } + } +} + +void CGxDeviceGLSDL::ITexSetFlags(CGxTex* texId) { + GLTexture* v2 = static_cast(texId->m_apiSpecificData); + GLSDLTexSetFlags(texId, v2); + texId->m_needsFlagUpdate = 0; +} + +void CGxDeviceGLSDL::ITexUpload(CGxTex* texId) { + uint32_t texelStrideInBytes; + const void* texels = nullptr; + + texId->m_userFunc( + GxTex_Lock, + texId->m_width, + texId->m_height, + 0, + 0, + texId->m_userArg, + texelStrideInBytes, + texels + ); + + uint32_t width, height, baseMip, mipCount; + this->ITexWHDStartEnd(texId, width, height, baseMip, mipCount); + + int32_t numFace = texId->m_target == GxTex_CubeMap ? 6 : 1; + + for (int32_t face = 0; face < numFace; face++) { + for (int32_t mipLevel = baseMip; mipLevel < mipCount; mipLevel++) { + texels = nullptr; + + texId->m_userFunc( + GxTex_Latch, + texId->m_width >> mipLevel, + texId->m_height >> mipLevel, + face, + mipLevel, + texId->m_userArg, + texelStrideInBytes, + texels + ); + + BLIZZARD_ASSERT(texels != nullptr || texId->m_flags.m_renderTarget); + + if (!texId->m_flags.m_renderTarget) { + GLMipmap* mipmap = static_cast(texId->m_apiSpecificData)->GetMipmap(mipLevel - baseMip, CGxDeviceGLSDL::s_glCubeMapFaces[face]); + + CiRect lockRect = { + texId->m_updateRect.minY >> mipLevel, + texId->m_updateRect.minX >> mipLevel, + (texId->m_updateRect.maxY >> mipLevel) + 1, + (texId->m_updateRect.maxX >> mipLevel) + 1 + }; + + lockRect.maxY = std::min(lockRect.maxY, static_cast(height)); + lockRect.maxX = std::min(lockRect.maxX, static_cast(width)); + + BLIZZARD_ASSERT(lockRect.minX >= 0 && lockRect.maxX <= static_cast(width)); + BLIZZARD_ASSERT(lockRect.minY >= 0 && lockRect.maxY <= static_cast(height)); + + GLRect rect = { + lockRect.minX, + lockRect.minY, + lockRect.maxX - lockRect.minX, + lockRect.maxY - lockRect.minY + }; + + if (mipmap->GetFormatInfo().m_IsCompressed) { + int32_t v17 = rect.width + (rect.left & 3); + rect.left &= 0xFFFFFFFC; + rect.width = (v17 + 3) & 0xFFFFFFFC; + rect.width = std::max(rect.width, 4); + + int32_t v20 = rect.height + (rect.top & 3); + rect.top &= 0xFFFFFFFC; + rect.height = (v20 + 3) & 0xFFFFFFFC; + rect.height = std::max(rect.height, 4); + } + + const void* src = texels; + + if (texId->m_flags.m_bit15) { + src = texels; + } else if (texId->m_dataFormat == GxTex_Dxt1 || texId->m_dataFormat == GxTex_Dxt3 || texId->m_dataFormat == GxTex_Dxt5) { + uint32_t bytesPerBlock = CGxDevice::s_texFormatBytesPerBlock[texId->m_dataFormat]; + uint32_t offset = (bytesPerBlock * (rect.left >> 2)) + (texelStrideInBytes * (rect.top >> 2)); + + src = static_cast(texels) + offset; + } else { + uint32_t bitDepth = CGxDevice::s_texFormatBitDepth[texId->m_dataFormat]; + uint32_t offset = ((bitDepth * rect.left) >> 3) + (texelStrideInBytes * rect.top); + + src = static_cast(texels) + offset; + } + + uint32_t dstStride = mipmap->GetPitch(); + + BlitFormat dstFmt = GxGetBlitFormat(texId->m_format); + + void* dst = mipmap->Map(GL_WRITE_ONLY, &rect); + + BlitFormat srcFmt = GxGetBlitFormat(texId->m_dataFormat); + + C2iVector size = { rect.width, rect.height }; + + Blit(size, BlitAlpha_0, src, texelStrideInBytes, srcFmt, dst, dstStride, dstFmt); + + mipmap->Unmap(); + } + + width = std::max(width >> 1, 1u); + height = std::max(height >> 1, 1u); + } + } + + texId->m_userFunc( + GxTex_Unlock, + texId->m_width, + texId->m_height, + 0, + 0, + texId->m_userArg, + texelStrideInBytes, + texels + ); +} + +void CGxDeviceGLSDL::IXformSetProjection(const C44Matrix& matrix) { + C44Matrix glSDLMat = matrix; + + if (!this->MasterEnable(GxMasterEnable_NormalProjection) && matrix.d3 != 1.0f) { + C44Matrix shrink = { + 0.2f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.2f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.2f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + glSDLMat = glSDLMat * shrink; + } + + this->m_GLSDLDevice.SetTransform(GL_PROJECTION, reinterpret_cast(&glSDLMat)); + + this->m_projNative = glSDLMat; + + this->m_projNative.a1 *= -1.0f; + this->m_projNative.b1 *= -1.0f; + this->m_projNative.c1 *= -1.0f; + this->m_projNative.d1 *= -1.0f; +} + +void CGxDeviceGLSDL::IXformSetView(const C44Matrix& matrix) { + this->m_GLSDLDevice.SetTransform('VIEW', reinterpret_cast(&matrix)); +} + +void CGxDeviceGLSDL::IXformSetViewport() { + auto window = this->DeviceCurWindow(); + + GLRect viewport = { + static_cast((this->m_viewport.x.l * window.maxX) + 0.5f), + static_cast(((1.0f - this->m_viewport.y.h) * window.maxY) + 0.5f), + static_cast(((this->m_viewport.x.h - this->m_viewport.x.l) * window.maxX) + 0.5f), + static_cast(((this->m_viewport.y.h - this->m_viewport.y.l) * window.maxY) + 0.5f), + }; + + this->m_GLSDLDevice.SetViewport(viewport, this->m_viewport.z.l, this->m_viewport.z.h); + + // TODO (this + 4020) = 0; +} + +void CGxDeviceGLSDL::PatchPixelShader(CGxShader* ps) { + // TODO +} + +void CGxDeviceGLSDL::PatchVertexShader(CGxShader* vs) { + if (vs->patched) { + return; + } + + vs->patched = 1; + + // TODO properly calculate v2 + int32_t v2 = 192; + + char buf[64]; + + for (int32_t i = 0; i < vs->code.Count(); i++) { + char* str = reinterpret_cast(&vs->code[i]); + + if (!SStrCmp(str, ".local", 6)) { + memcpy(str, ".env ", 6); + + int v16, v12, n; + if (str[6] == '[' && sscanf(&str[4], " [%d..%d]%n", &v16, &v12, &n) == 2 && v12 == 93) { + SStrPrintf(buf, sizeof(buf), "[%d..%d] ", v16, v2 - 1); + memcpy(&str[4], buf, n); + } + } + + int32_t v13, n; + if (sscanf(str, "PARAM c[%d] = { %n", &v13, &n) == 1 && v13 == 94) { + SStrPrintf(buf, sizeof(buf), "PARAM c[%d]={ ", v2); + memcpy(str, buf, n); + } + } +} + +void CGxDeviceGLSDL::PoolSizeSet(CGxPool* pool, uint32_t size) { + if (pool->m_usage == GxPoolUsage_Stream) { + pool->unk1C = 0; + } + + GLBuffer* buffer = reinterpret_cast(pool->m_apiSpecific); + + if (buffer) { + delete buffer; + } + + pool->m_size = size; + + pool->m_apiSpecific = this->m_GLSDLDevice.CreateBuffer( + CGxDeviceGLSDL::s_poolTarget2BufferType[pool->m_target], + size, + nullptr, + CGxDeviceGLSDL::s_poolUsage2BufferUsage[pool->m_usage], + CGxDeviceGLSDL::s_poolTarget2BufferFormat[pool->m_target] + ); +} + +void CGxDeviceGLSDL::Resize(uint32_t width, uint32_t height) { + this->m_GLSDLDevice.Resize(width, height); + + CRect rect = { 0.0f, 0.0f, static_cast(height), static_cast(width) }; + this->DeviceSetDefWindow(rect); +} + +void CGxDeviceGLSDL::SceneClear(uint32_t mask, CImVector color) { + CGxDevice::SceneClear(mask, color); + + if (!this->m_context) { + return; + } + + uint32_t glMask = 0x0; + + if (mask & 0x1) { + glMask |= GL_COLOR_BUFFER_BIT; + } + + if (mask & 0x2) { + glMask |= GL_DEPTH_BUFFER_BIT; + } + + this->IXformSetViewport(); + this->IStateSyncScissorRect(); + + GLColor4f glColor = { + color.r / 255.0f, + color.g / 255.0f, + color.b / 255.0f, + color.a / 255.0f + }; + + this->m_GLSDLDevice.Clear(glMask, glColor, 1.0, 0); +} + +void CGxDeviceGLSDL::ScenePresent() { + if (this->m_context) { + // TODO + + CGxDevice::ScenePresent(); + + // TODO + + this->m_GLSDLDevice.Swap(); + + // TODO + + CGxDevice::ShaderConstantsClear(); + } + + // TODO +} + +void CGxDeviceGLSDL::ShaderCreate(CGxShader* shaders[], EGxShTarget target, const char* a4, const char* a5, int32_t permutations) { + CGxDevice::ShaderCreate(shaders, target, a4, a5, permutations); + + if (permutations == 1 && !shaders[0]->loaded) { + if (target == GxSh_Vertex) { + this->IShaderCreateVertex(shaders[0]); + } else if (target == GxSh_Pixel) { + this->IShaderCreatePixel(shaders[0]); + } + } +} + +int32_t CGxDeviceGLSDL::StereoEnabled() { + return 0; +} + +void CGxDeviceGLSDL::TexDestroy(CGxTex* texId) { + BLIZZARD_ASSERT(texId); + + auto texture = static_cast(texId->m_apiSpecificData); + + if (texture) { + texture->Release(); + texId->m_apiSpecificData = nullptr; + } + + // TODO CGxDevice::IOnReleaseCPUTex(texId); + CGxDevice::TexDestroy(texId); +} + +void CGxDeviceGLSDL::XformSetProjection(const C44Matrix& matrix) { + CGxDevice::XformSetProjection(matrix); + this->IXformSetProjection(matrix); +} + +void CGxDeviceGLSDL::XformSetView(const C44Matrix& matrix) { + CGxDevice::XformSetView(matrix); + this->IXformSetView(matrix); +} diff --git a/src/gx/glsdl/CGxDeviceGLSDL.hpp b/src/gx/glsdl/CGxDeviceGLSDL.hpp new file mode 100644 index 0000000..316317c --- /dev/null +++ b/src/gx/glsdl/CGxDeviceGLSDL.hpp @@ -0,0 +1,82 @@ +#ifndef GX_GL_SDL_C_GX_DEVICE_GL_SDL_HPP +#define GX_GL_SDL_C_GX_DEVICE_GL_SDL_HPP + +#include "gx/CGxDevice.hpp" +#include "gx/glsdl/GLSDLDevice.hpp" +#include "gx/glsdl/GLSDLWindow.hpp" + +class CGxBatch; +class CGxShader; + +class CGxDeviceGLSDL : public CGxDevice { + public: + // Static variables + static GLEnum s_glCubeMapFaces[]; + static GLEnum s_glDstBlend[]; + static GLEnum s_glSrcBlend[]; + static GLTextureFormat s_gxTexFmtToGLSDLFmt[]; + static GLEnum s_poolTarget2BufferFormat[]; + static GLEnum s_poolTarget2BufferType[]; + static GLEnum s_poolUsage2BufferUsage[]; + static GLEnum s_primitiveConversion[]; + + // Member variables + GLSDLDevice m_GLSDLDevice; + GLSDLWindow m_GLSDLWindow; + GLVertexFormat m_glFormats[GxVertexBufferFormats_Last] = {}; + + // Virtual member functions + virtual void ITexMarkAsUpdated(CGxTex*); + virtual void IRsSendToHw(EGxRenderState); + virtual int32_t DeviceCreate(int32_t (*windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam), const CGxFormat&); + virtual int32_t DeviceSetFormat(const CGxFormat&); + virtual void* DeviceWindow(); + virtual void DeviceWM(EGxWM wm, uintptr_t param1, uintptr_t param2) {}; + virtual void CapsWindowSize(CRect&); + virtual void CapsWindowSizeInScreenCoords(CRect& dst); + virtual void ScenePresent(); + virtual void SceneClear(uint32_t, CImVector); + virtual void XformSetProjection(const C44Matrix&); + virtual void XformSetView(const C44Matrix&); + virtual void Draw(CGxBatch* batch, int32_t indexed); + virtual void PoolSizeSet(CGxPool*, uint32_t); + virtual char* BufLock(CGxBuf*); + virtual int32_t BufUnlock(CGxBuf*, uint32_t); + virtual void BufData(CGxBuf* buf, const void* data, size_t size, uintptr_t offset); + virtual void TexDestroy(CGxTex* texId); + virtual void IShaderCreate(CGxShader*); + virtual void ShaderCreate(CGxShader*[], EGxShTarget, const char*, const char*, int32_t); + virtual int32_t StereoEnabled(); + + // Member functions + CGxDeviceGLSDL(); + char* IBufLock(CGxBuf*); + int32_t IBufUnlock(CGxBuf*); + void ISceneBegin(); + void ISetCaps(const CGxFormat& format); + void IShaderBindPixel(CGxShader*); + void IShaderBindVertex(CGxShader*); + void IShaderConstantsFlush(); + void IShaderCreatePixel(CGxShader*); + void IShaderCreateVertex(CGxShader*); + void IStateSetGLSDLDefaults(); + void IStateSync(); + void IStateSyncEnables(); + void IStateSyncIndexPtr(); + void IStateSyncLights(); + void IStateSyncMaterial(); + void IStateSyncScissorRect(); + void IStateSyncVertexPtrs(); + void IStateSyncXforms(); + void ITexCreate(CGxTex*); + void ITexSetFlags(CGxTex*); + void ITexUpload(CGxTex*); + void IXformSetProjection(const C44Matrix&); + void IXformSetView(const C44Matrix&); + void IXformSetViewport(); + void PatchPixelShader(CGxShader*); + void PatchVertexShader(CGxShader*); + void Resize(uint32_t width, uint32_t height); +}; + +#endif diff --git a/src/gx/glsdl/GL.cpp b/src/gx/glsdl/GL.cpp new file mode 100644 index 0000000..e5c5e8e --- /dev/null +++ b/src/gx/glsdl/GL.cpp @@ -0,0 +1,50 @@ +#include "gx/glsdl/GL.hpp" + +TextureFormatInfo k_TextureFormatInfo[GLTF_NUM_TEXTURE_FORMATS] = { + { 0, 0, 0, 0, 0, "GLTF INVALID!!" }, + { GL_RGBA8, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, 0, 4, "ARGB8888" }, + { GL_RGB8, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, 0, 4, "XRGB8888" }, + { GL_RGBA8, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, 0, 4, "RGBA8888" }, + { GL_RGBA8, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, 0, 4, "ABGR8888" }, + { GL_RGB8, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, 0, 4, "ARGB0888" }, + { GL_RGB8, GL_RGB, GL_UNSIGNED_BYTE, 0, 3, "RGB888" }, + { GL_RGB8, GL_BGR, GL_UNSIGNED_BYTE, 0, 3, "BGR888" }, + { GL_RGBA32F_ARB, GL_RGBA, GL_FLOAT, 0, 16, "RGBA32F" }, + { GL_RGBA16F_ARB, GL_RGBA, GL_HALF_FLOAT, 0, 8, "RGBA16F" }, + { GL_RGB16F_ARB, GL_RGB, GL_HALF_FLOAT, 0, 6, "RG16F" }, + { GL_DEPTH_COMPONENT32, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, 0, 4, "D32" }, + { GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, 0, 4, "D24" }, + { GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, 0, 2, "D16" }, + { GL_DEPTH_COMPONENT32, GL_DEPTH_COMPONENT, GL_HALF_FLOAT, 0, 4, "DF" }, + { GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 0, 4, "D24S8" }, + { GL_ALPHA8, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, 0, 1, "S8" }, + { GL_RGBA4, GL_BGRA, GL_UNSIGNED_SHORT_4_4_4_4_REV, 0, 2, "ARGB4444" }, + { GL_RGB5_A1, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, 0, 2, "ARGB1555" }, + { GL_RGB5, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, 0, 2, "ARGB0555" }, + { GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 0, 2, "RGB565" }, + { GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_2_10_10_10_REV, 0, 4, "A2RGB10" }, + { GL_RGB16, GL_RGB, GL_UNSIGNED_SHORT, 0, 6, "RGB16" }, + { GL_LUMINANCE8, GL_LUMINANCE, GL_UNSIGNED_BYTE, 0, 1, "L8" }, + { GL_ALPHA8, GL_ALPHA, GL_UNSIGNED_BYTE, 0, 1, "A8" }, + { GL_LUMINANCE8_ALPHA8, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, 0, 2, "A8L8" }, + { GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_RGBA, GL_UNSIGNED_BYTE, 1, 8, "DXT1" }, + { GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, GL_RGBA, GL_UNSIGNED_BYTE, 1, 16, "DXT3" }, + { GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, GL_RGBA, GL_UNSIGNED_BYTE, 1, 16, "DXT5" } +}; + +VertexTypeInfo k_VertexTypeInfo[GLVT_NUM_VERTEX_TYPES] = { + { 0, 0, 0, 0, "INVALID" }, + { GL_FLOAT, 1, 0, 4, "FLOAT1" }, + { GL_FLOAT, 2, 0, 8, "FLOAT2" }, + { GL_FLOAT, 3, 0, 12, "FLOAT3" }, + { GL_FLOAT, 4, 0, 16, "FLOAT4" }, + { GL_UNSIGNED_BYTE, 4, 0, 4, "UBYTE4" }, + { GL_UNSIGNED_BYTE, 4, 1, 4, "UBYTE4N" }, + { GL_SHORT, 1, 0, 2, "SHORT" }, + { GL_SHORT, 2, 0, 4, "SHORT2" }, + { GL_SHORT, 4, 0, 8, "SHORT4" }, + { GL_SHORT, 2, 1, 4, "SHORT2N" }, + { GL_SHORT, 4, 1, 8, "SHORT4N" }, + { GL_UNSIGNED_SHORT, 2, 1, 4, "USHORT2N" }, + { GL_UNSIGNED_SHORT, 4, 1, 8, "USHORT4N" } +}; diff --git a/src/gx/glsdl/GL.hpp b/src/gx/glsdl/GL.hpp new file mode 100644 index 0000000..80ab4bd --- /dev/null +++ b/src/gx/glsdl/GL.hpp @@ -0,0 +1,33 @@ +#ifndef GX_GL_SDL_GL_HPP +#define GX_GL_SDL_GL_HPP + +#include +#include + +#include "gx/glsdl/GLTypes.hpp" + +typedef GLenum GLEnum; + +#define kMAX_VERTEX_ATTRIBS 16 + +struct TextureFormatInfo { + GLenum m_InternalFormat; + GLenum m_DataFormat; + GLenum m_DataType; + int32_t m_IsCompressed; + int32_t m_BytePerPixel; + char m_Name[16]; +}; + +struct VertexTypeInfo { + GLenum m_Type; + GLint m_Size; + GLboolean m_Normalized; + GLint m_ByteSize; + const char* m_Name; +}; + +extern TextureFormatInfo k_TextureFormatInfo[GLTF_NUM_TEXTURE_FORMATS]; +extern VertexTypeInfo k_VertexTypeInfo[GLVT_NUM_VERTEX_TYPES]; + +#endif diff --git a/src/gx/glsdl/GLBatch.hpp b/src/gx/glsdl/GLBatch.hpp new file mode 100644 index 0000000..83632d1 --- /dev/null +++ b/src/gx/glsdl/GLBatch.hpp @@ -0,0 +1,45 @@ +#ifndef GX_GL_SDL_GL_BATCH_HPP +#define GX_GL_SDL_GL_BATCH_HPP + +#include "gx/glsdl/GLBuffer.hpp" +#include "gx/glsdl/GLShader.hpp" +#include "gx/glsdl/GLTexture.hpp" +#include "gx/glsdl/GLTypes.hpp" +#include "gx/glsdl/GLVertexFormat.hpp" +#include + +class GLBatch { + public: + GLShader* var0; + GLShader* var1; + GLTexture* textures[16]; + GLBuffer* var3; + GLBuffer* var4[4]; + uint32_t var5[4]; + uint32_t var6[4]; + GLVertexFormat* var7; + uint32_t var8; + uint32_t var9; + uint32_t var10; + uint32_t var11; + uint32_t var12; + uint32_t var13; + uint32_t var14; + int32_t var15; + bool var16; + bool var17; + GLStates var18; + GLTexture2D* colorBuffer[4]; + GLTexture2D* var20; + uint32_t var21[128]; + char var22[64]; + char var23[1024]; + uint32_t var24; + bool var25; + int64_t var26; + int64_t var27; + float var28[4096]; + float var29[1024]; +}; + +#endif diff --git a/src/gx/glsdl/GLBuffer.cpp b/src/gx/glsdl/GLBuffer.cpp new file mode 100644 index 0000000..e0f22e2 --- /dev/null +++ b/src/gx/glsdl/GLBuffer.cpp @@ -0,0 +1,130 @@ +#include "gx/glsdl/GLBuffer.hpp" +#include "gx/glsdl/GLSDLDevice.hpp" +#include "gx/glsdl/GLPool.hpp" +#include "gx/glsdl/GL.hpp" +#include +#include + +bool GLBuffer::m_UsingVBO = 1; + +GLEnum GLBuffer::s_FlagToAccess[] = { + GL_READ_WRITE, // GLMap_None + GL_WRITE_ONLY, // GLMap_Unk1 + GL_WRITE_ONLY, // GLMap_Unk2 + GL_READ_ONLY // GLMap_Unk3 +}; + +GLBuffer* GLBuffer::Create(GLEnum type, uint32_t size, const void* a3, GLEnum usage, GLEnum format) { + GLBuffer* buffer = GLPool::Get()->GetNextObject(); + + buffer->m_Type = type; + buffer->m_Size = size; + buffer->m_Usage = usage; + buffer->m_IndexFormat = format; + + GLSDLDevice* device = GLSDLDevice::Get(); + device->BindBuffer(buffer, GL_ZERO); + + if (GLBuffer::m_UsingVBO) { + glBufferData(buffer->m_Type, buffer->m_Size, a3, buffer->m_Usage); + // glBufferParameteriAPPLE(buffer->m_Type, GL_BUFFER_SERIALIZED_MODIFY_APPLE, buffer->m_Usage - GL_DYNAMIC_DRAW > 1); + // glBufferParameteriAPPLE(buffer->m_Type, GL_BUFFER_FLUSHING_UNMAP_APPLE, 0); + } else { + Blizzard::Memory::Free(buffer->m_Data); + + void* data = Blizzard::Memory::Allocate(size); + if (a3) { + memcpy(data, a3, size); + } + + buffer->m_Data = reinterpret_cast(data); + } + + // TODO + // buffer->m_TimeStamp = Blizzard::Time::GetTimestamp(); + + return buffer; +} + +GLBuffer::GLBuffer() : GLObject() { + if (GLBuffer::m_UsingVBO) { + this->m_BufferID = GLPool::Get()->GetNextName(); + } +} + +char* GLBuffer::Map(uint32_t offset, uint32_t size, eMapFlag flag) { + BLIZZARD_ASSERT((offset + size) <= this->m_Size); + BLIZZARD_ASSERT(this->m_Usage == GL_STATIC_DRAW || flag != GLMap_None); + BLIZZARD_ASSERT(this->m_MapFlag == GLMap_NotMapped); + BLIZZARD_ASSERT(flag >= GLMap_None && flag < GLMap_Count); + + this->m_MapOffset = offset; + this->m_MapSize = offset + size == 0 ? this->m_Size : size; + this->m_MapFlag = flag; + + if (GLBuffer::m_UsingVBO) { + GLSDLDevice* device = GLSDLDevice::Get(); + device->BindBuffer(this, GL_ZERO); + + if (flag == GLMap_Unk2) { + if (this->m_Usage - GL_DYNAMIC_DRAW <= 1) { + BLIZZARD_ASSERT(offset == 0); + } + + glBufferData(this->m_Type, this->m_Size, nullptr, this->m_Usage); + } + + void* data = glMapBuffer(this->m_Type, GLBuffer::s_FlagToAccess[flag]); + this->m_Data = reinterpret_cast(data); + + BLIZZARD_ASSERT(this->m_Data != nullptr); + } + + return this->m_Data + offset; +} + +void GLBuffer::ReleaseObject() { + if (GLBuffer::m_UsingVBO) { + if (this->m_Type) { + GLSDLDevice* device = GLSDLDevice::Get(); + device->BindBuffer(this, GL_ZERO); + + glBufferData(this->m_Type, 1, nullptr, this->m_Usage); + + // TODO GLPool::GLObjectPool::Push((GLPool::m_pool + 32776), this); + } else { + // TODO GLPool::GLObjectPool::Push((GLPool::m_pool + 32776), this); + } + } else { + Blizzard::Memory::Free(this->m_Data); + this->m_Data = nullptr; + + // TODO GLPool::GLObjectPool::Push((GLPool::m_pool + 32776), this); + } +} + +void GLBuffer::Unmap(uint32_t size) { + BLIZZARD_ASSERT((this->m_MapOffset + size) <= m_Size); + + GLSDLDevice* device = GLSDLDevice::Get(); + device->BindBuffer(this, GL_ZERO); + + if (this->m_MapFlag != 3) { + if (GLBuffer::m_UsingVBO) { + glFlushMappedBufferRange(this->m_Type, this->m_MapOffset, size ? size : this->m_MapSize); + } + + // TODO + // this->m_TimeStamp = Blizzard::Time::GetTimestamp(); + } + + if (!GLBuffer::m_UsingVBO) { + this->m_MapFlag = GLMap_NotMapped; + return; + } + + GLboolean result = glUnmapBuffer(this->m_Type); + BLIZZARD_ASSERT(result); + + this->m_MapFlag = GLMap_NotMapped; +} diff --git a/src/gx/glsdl/GLBuffer.hpp b/src/gx/glsdl/GLBuffer.hpp new file mode 100644 index 0000000..93ed6d5 --- /dev/null +++ b/src/gx/glsdl/GLBuffer.hpp @@ -0,0 +1,47 @@ +#ifndef GX_GL_SDL_GL_BUFFER_HPP +#define GX_GL_SDL_GL_BUFFER_HPP + +#include "gx/glsdl/GL.hpp" +#include "gx/glsdl/GLObject.hpp" +#include "gx/glsdl/GLTypes.hpp" + +class GLBuffer : public GLObject { + public: + // Types + enum eMapFlag { + GLMap_NotMapped = -1, + GLMap_None = 0, + GLMap_Unk1 = 1, + GLMap_Unk2 = 2, + GLMap_Unk3 = 3, + GLMap_Count = 4 + }; + + // Static variables + static bool m_UsingVBO; + static GLEnum s_FlagToAccess[]; + + // Static functions + static GLBuffer* Create(GLEnum, uint32_t, const void*, GLEnum, GLEnum); + + // Member variables + uint32_t m_Size = 0; + GLEnum m_Type = 0; + GLEnum m_Usage = 0; + uint32_t m_BufferID = 0; + GLEnum m_IndexFormat = 0; + char* m_Data = nullptr; + uint32_t m_MapOffset = 0; + uint32_t m_MapSize = 0; + uint32_t m_MapFlag = GLMap_NotMapped; + + // Virtual member functions + virtual void ReleaseObject(); + + // Member functions + GLBuffer(); + char* Map(uint32_t, uint32_t, eMapFlag); + void Unmap(uint32_t); +}; + +#endif diff --git a/src/gx/glsdl/GLBufferPool.hpp b/src/gx/glsdl/GLBufferPool.hpp new file mode 100644 index 0000000..b00d198 --- /dev/null +++ b/src/gx/glsdl/GLBufferPool.hpp @@ -0,0 +1,8 @@ +#ifndef GX_GL_SDL_GL_BUFFER_POOL_HPP +#define GX_GL_SDL_GL_BUFFER_POOL_HPP + +class GLBufferPool { + public: +}; + +#endif diff --git a/src/gx/glsdl/GLDebugMipmap2D.hpp b/src/gx/glsdl/GLDebugMipmap2D.hpp new file mode 100644 index 0000000..7ad41aa --- /dev/null +++ b/src/gx/glsdl/GLDebugMipmap2D.hpp @@ -0,0 +1,8 @@ +#ifndef GX_GL_SDL_GL_DEBUG_MIPMAP_2D_HPP +#define GX_GL_SDL_GL_DEBUG_MIPMAP_2D_HPP + +class GLDebugMipmap2D { + public: +}; + +#endif diff --git a/src/gx/glsdl/GLFramebuffer.cpp b/src/gx/glsdl/GLFramebuffer.cpp new file mode 100644 index 0000000..ade6c35 --- /dev/null +++ b/src/gx/glsdl/GLFramebuffer.cpp @@ -0,0 +1,150 @@ +#include "gx/glsdl/GLFramebuffer.hpp" +#include "gx/glsdl/GLSDLDevice.hpp" +#include "gx/glsdl/GLMipmap.hpp" +#include "gx/glsdl/GLPool.hpp" +#include "gx/glsdl/GLTypes.hpp" +#include + +GLFramebuffer* GLFramebuffer::Create(bool a1) { + GLFramebuffer* framebuffer = new GLFramebuffer(a1); + + if (!a1) { + // TODO + // BLIZZARD_ASSERT(framebuffer->m_FramebufferID >= PoolStats::NAME_POOL_FIRST_NAME); + } + + BLIZZARD_ASSERT(framebuffer->m_NumAttach == 0); + + framebuffer->m_Width = 0; + framebuffer->m_Height = 0; + framebuffer->m_Device = GLSDLDevice::Get(); + + return framebuffer; +} + +GLFramebuffer::GLFramebuffer(bool a1) : GLObject() { + if (!a1) { + this->m_FramebufferID = GLPool::Get()->GetNextName(); + } +} + +void GLFramebuffer::Attach(GLMipmap* image, GLenum a3, int32_t a4) { + BLIZZARD_ASSERT(this->m_Device == GLSDLDevice::Get()); + + if (!image) { + this->Detach(a3); + return; + } + + if (a3 == GL_DEPTH_STENCIL) { + BLIZZARD_ASSERT(image->GetFormat() == GLTF_D24S8); + + this->Attach(image, GL_DEPTH_ATTACHMENT, 0); + this->Attach(image, GL_STENCIL_ATTACHMENT, 0); + + (*image->m_AttachPoints)[this->m_FramebufferID].point = GL_DEPTH_STENCIL; + + return; + } + + int32_t index; + + if (a3 == GL_DEPTH_ATTACHMENT) { + index = 4; + } else if (a3 == GL_STENCIL_ATTACHMENT) { + index = 5; + } else { + index = a3 - GL_COLOR_ATTACHMENT0; + } + + BLIZZARD_ASSERT(index < MAX_ATTACHMENT); + + GLMipmap* oldImage = this->m_Attachments[index]; + + if (image != oldImage) { + if (oldImage) { + oldImage->Detach(this, a3, true); + } else { + ++this->m_NumAttach; + } + + this->m_Attachments[index] = image; + + this->m_Width = image->m_Width; + this->m_Height = image->m_Height; + + image->Attach(this, a3, a4); + this->m_Device->Sub38460(0); + } + + BLIZZARD_ASSERT((*image->m_AttachPoints)[m_FramebufferID].framebuffer == this); +} + +void GLFramebuffer::Detach(GLenum a2) { + int32_t v2 = a2; + int32_t index; + + if (a2 == GL_DEPTH_STENCIL) { + index = 5; + v2 = GL_STENCIL_ATTACHMENT; + this->Detach(GL_DEPTH_ATTACHMENT); + } else if (a2 == GL_DEPTH_ATTACHMENT) { + index = 4; + } else if (a2 == GL_STENCIL_ATTACHMENT) { + index = 5; + } else { + index = a2 - GL_COLOR_ATTACHMENT0; + } + + BLIZZARD_ASSERT(index < MAX_ATTACHMENT); + + GLMipmap* oldImage = this->m_Attachments[index]; + + if (oldImage) { + oldImage->Detach(this, v2, 0); + + --this->m_NumAttach; + + this->m_Attachments[index] = 0; + + if (this->m_Device == GLSDLDevice::Get()) { + this->m_Device->Sub38460(0); + } + + if (this->m_NumAttach == 0) { + this->m_Width = 0; + this->m_Height = 0; + } + } +} + +GLMipmap* GLFramebuffer::GetAttachment(GLEnum a2) { + int32_t index; + + if (a2 == GL_DEPTH_ATTACHMENT) { + index = 4; + } else if (a2 == GL_STENCIL_ATTACHMENT) { + index = 5; + } else { + index = a2 - GL_COLOR_ATTACHMENT0; + } + + BLIZZARD_ASSERT(index < MAX_ATTACHMENT); + + return this->m_Attachments[index]; +} + +int32_t GLFramebuffer::GetSampleCount() { + return this->m_FramebufferID + ? 1 + : this->m_Device->m_Context.GetSampleCount(); +} + +bool GLFramebuffer::IsValid() { + auto status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER); + return status == GL_FRAMEBUFFER_COMPLETE; +} + +void GLFramebuffer::ReleaseObject() { + // TODO +} diff --git a/src/gx/glsdl/GLFramebuffer.hpp b/src/gx/glsdl/GLFramebuffer.hpp new file mode 100644 index 0000000..1fee673 --- /dev/null +++ b/src/gx/glsdl/GLFramebuffer.hpp @@ -0,0 +1,38 @@ +#ifndef GX_GL_SDL_GL_FRAMEBUFFER_HPP +#define GX_GL_SDL_GL_FRAMEBUFFER_HPP + +#include "gx/glsdl/GL.hpp" +#include "gx/glsdl/GLObject.hpp" +#include + +#define MAX_ATTACHMENT 6 + +class GLSDLDevice; +class GLMipmap; + +class GLFramebuffer : public GLObject { + public: + // Static functions + static GLFramebuffer* Create(bool); + + // Member variables + int32_t m_Width = 0; + int32_t m_Height = 0; + uint32_t m_FramebufferID = 0; + GLSDLDevice* m_Device; + GLMipmap* m_Attachments[6] = {}; + uint32_t m_NumAttach = 0; + + // Virtual member functions + virtual void ReleaseObject(); + + // Member functions + GLFramebuffer(bool); + void Attach(GLMipmap*, GLenum, int32_t); + void Detach(GLenum); + GLMipmap* GetAttachment(GLEnum); + int32_t GetSampleCount(void); + bool IsValid(); +}; + +#endif diff --git a/src/gx/glsdl/GLGLSLProgram.cpp b/src/gx/glsdl/GLGLSLProgram.cpp new file mode 100644 index 0000000..55e59c0 --- /dev/null +++ b/src/gx/glsdl/GLGLSLProgram.cpp @@ -0,0 +1,7 @@ +#include "gx/glsdl/GLGLSLProgram.hpp" +#include "gx/glsdl/GLShader.hpp" + +GLGLSLProgram* GLGLSLProgram::Find(GLShader* a1, GLShader* a2) { + // TODO + return nullptr; +} diff --git a/src/gx/glsdl/GLGLSLProgram.hpp b/src/gx/glsdl/GLGLSLProgram.hpp new file mode 100644 index 0000000..45f2390 --- /dev/null +++ b/src/gx/glsdl/GLGLSLProgram.hpp @@ -0,0 +1,14 @@ +#ifndef GX_GL_SDL_GL_GLSL_PROGRAM_HPP +#define GX_GL_SDL_GL_GLSL_PROGRAM_HPP + +#include "gx/glsdl/GLObject.hpp" + +class GLShader; + +class GLGLSLProgram : public GLObject { + public: + // Static functions + static GLGLSLProgram* Find(GLShader*, GLShader*); +}; + +#endif diff --git a/src/gx/glsdl/GLMipmap.cpp b/src/gx/glsdl/GLMipmap.cpp new file mode 100644 index 0000000..e913ed8 --- /dev/null +++ b/src/gx/glsdl/GLMipmap.cpp @@ -0,0 +1,480 @@ +#include "gx/glsdl/GLMipmap.hpp" +#include "gx/glsdl/GLSDLDevice.hpp" +#include "gx/glsdl/GLFramebuffer.hpp" +#include + +int32_t GLMipmap::GetDepthBits() { + return this->m_DepthBits; +} + +void GLMipmap::Attach(GLFramebuffer* framebuffer, GLenum attachPoint, int32_t a4) { + if (!this->m_AttachPoints) { + this->m_AttachPoints = new std::vector(); + } + + auto& attachPoints = *this->m_AttachPoints; + auto framebufferID = framebuffer->m_FramebufferID; + + if (framebufferID >= attachPoints.size()) { + attachPoints.resize(framebufferID + 1); + } else { + BLIZZARD_ASSERT(attachPoints[framebufferID].framebuffer != framebuffer || attachPoints[framebufferID].point != attachPoint); + + auto& attach = attachPoints[framebufferID]; + + if ( + attach.point + && (attach.point != GL_DEPTH_ATTACHMENT || attachPoint != GL_STENCIL_ATTACHMENT) + && (attach.point != GL_STENCIL_ATTACHMENT || attachPoint != GL_DEPTH_ATTACHMENT) + ) { + framebuffer->Detach(attach.point); + } + } + + GLSDLDevice* device = GLSDLDevice::Get(); + + auto currentTarget = device->GetCurrentTarget(); + device->BindFramebuffer(framebuffer); + + if (framebufferID) { + if (this->m_Target == GL_TEXTURE_3D) { + glFramebufferTexture3DEXT( + GL_FRAMEBUFFER, + attachPoint, + GL_TEXTURE_3D, + this->m_Texture->m_TextureID, + this->m_Level, + a4 + ); + } else { + glFramebufferTexture2DEXT( + GL_FRAMEBUFFER, + attachPoint, + this->m_Target, + this->m_Texture->m_TextureID, + this->m_Level + ); + } + } + + if (attachPoint == GL_DEPTH_ATTACHMENT && !this->m_DepthBits) { + GLint depthBits = 0; + glGetIntegerv(GL_DEPTH_BITS, &depthBits); + this->m_DepthBits = depthBits; + } + + device->BindFramebuffer(currentTarget); + + auto& attach = attachPoints[framebufferID]; + attach.framebuffer = framebuffer; + attach.zOffset = a4; + + if ( + (attach.point != GL_DEPTH_ATTACHMENT || attachPoint != GL_STENCIL_ATTACHMENT) + && (attach.point != GL_STENCIL_ATTACHMENT || attachPoint != GL_DEPTH_ATTACHMENT) + ) { + attach.point = attachPoint; + } else { + attach.point = GL_DEPTH_STENCIL; + } +} + +void GLMipmap::Detach(GLFramebuffer* framebuffer, GLenum attachPoint, bool a4) { + GLuint framebufferID = framebuffer->m_FramebufferID; + + auto& attachPoints = *this->m_AttachPoints; + + BLIZZARD_ASSERT(attachPoints.size() >= framebufferID); + BLIZZARD_ASSERT(attachPoints[framebufferID].framebuffer == framebuffer); + + if (!a4 && framebufferID) { + GLSDLDevice* v12 = GLSDLDevice::Get(); + GLFramebuffer* v14 = v12->GetCurrentTarget(); + v12->BindFramebuffer(framebuffer); + + if (this->m_Target == GL_TEXTURE_3D) { + glFramebufferTexture3DEXT(GL_FRAMEBUFFER, attachPoint, GL_TEXTURE_3D, 0, 0, 0); + } else { + glFramebufferTexture2DEXT(GL_FRAMEBUFFER, attachPoint, this->m_Target, 0, 0); + } + + v12->BindFramebuffer(v14); + } + + GLAttachPoint* v9 = &attachPoints[framebufferID]; + + if (v9->point == GL_DEPTH_STENCIL) { + BLIZZARD_ASSERT(this->GetFormat() == GLTF_D24S8); + + if (attachPoint == GL_DEPTH_ATTACHMENT) { + v9->point = GL_STENCIL_ATTACHMENT; + } else if (attachPoint == GL_STENCIL_ATTACHMENT) { + v9->point = GL_DEPTH_ATTACHMENT; + } else { + BLIZZARD_ASSERT(false); + } + } else { + BLIZZARD_ASSERT(attachPoints[framebufferID].point == attachPoint); + + v9->framebuffer = 0; + v9->point = 0; + v9->zOffset = 0; + + // TODO + // this->m_Texture->m_TimeStamp = Blizzard::Time::GetTimestamp(); + } +} + +void GLMipmap::DetachAll() { + if (!this->m_AttachPoints) { + return; + } + + auto& attachPoints = *this->m_AttachPoints; + for (int32_t i = 0; i < attachPoints.size(); i++) { + BLIZZARD_ASSERT(attachPoints[i].point != GL_ZERO); + BLIZZARD_ASSERT(attachPoints[i].framebuffer->m_FramebufferID == i); + + attachPoints[i].framebuffer->Detach(attachPoints[i].point); + } +} + +GLTextureFormat GLMipmap::GetFormat() { + return this->m_Texture->GetFormat(); +} + +TextureFormatInfo& GLMipmap::GetFormatInfo() { + return this->m_Texture->GetFormatInfo(); +}; + +uint16_t GLMipmap::GetHeight() { + return this->m_Height; +} + +int32_t GLMipmap::GetPitch() { + int32_t bpp = this->GetFormatInfo().m_BytePerPixel; + int32_t v4 = this->m_Texture->var12 >> this->m_Level; + return v4 >= bpp ? v4 : bpp; +} + +GLTexture* GLMipmap::GetTexture() { + return this->m_Texture; +} + +uint32_t GLMipmap::GetTextureID() { + return this->m_Texture->m_TextureID; +} + +uint16_t GLMipmap::GetWidth() { + return this->m_Width; +} + +void* GLMipmap::Map(GLEnum mode, const GLBox* area) { + BLIZZARD_ASSERT(!this->m_Texture->IsSystemBuffer()); + BLIZZARD_ASSERT(this->m_Data != nullptr); + BLIZZARD_ASSERT(!this->m_Texture->IsRenderTarget()); + BLIZZARD_ASSERT(mode != GL_ZERO); + BLIZZARD_ASSERT(this->m_MapParams == nullptr); + + if (mode != GL_READ_ONLY) { + this->m_Texture->m_MappedMipmaps++; + } + + MapParams* mapParams = new MapParams(); + this->m_MapParams = mapParams; + + if (area) { + BLIZZARD_ASSERT(area->width > 0); + BLIZZARD_ASSERT(area->height > 0); + BLIZZARD_ASSERT(area->depth > 0); + BLIZZARD_ASSERT(!this->GetFormatInfo().m_IsCompressed || ((area->top & 0x3) == 0 && (area->left & 0x3) == 0 && (area->width & 0x3) == 0 && (area->height & 0x3) == 0)); + BLIZZARD_ASSERT((area->height + area->top) <= this->m_Height); + BLIZZARD_ASSERT((area->depth + area->front) <= this->m_Depth); + BLIZZARD_ASSERT((area->width + area->left) <= this->m_Width); + + mapParams->m_MapArea = { + area->left, + area->top, + area->front, + area->width, + area->height, + area->depth + }; + + int32_t size = this->GetFormatInfo().m_BytePerPixel + * this->m_Width + * mapParams->m_MapArea.depth + * mapParams->m_MapArea.height; + + mapParams->m_Size = this->GetFormatInfo().m_IsCompressed + ? size >> 4 + : size; + + mapParams->m_Unk7 = (this->GetFormatInfo().m_BytePerPixel * mapParams->m_MapArea.left) + >> this->GetFormatInfo().m_IsCompressed ? 2 : 0; + } else { + mapParams->m_MapArea = { + 0, + 0, + 0, + this->m_Width, + this->m_Height, + this->m_Depth + }; + + mapParams->m_Size = this->m_Size; + + mapParams->m_Unk7 = 0; + } + + mapParams->m_MapMode = mode; + + int32_t rowPitch = this->GetPitch(); + + BLIZZARD_ASSERT(((mapParams->m_MapArea.top * rowPitch) + mapParams->m_MapArea.left * this->GetFormatInfo().m_BytePerPixel) < (this->GetFormatInfo().m_IsCompressed ? this->m_Size << 4 : this->m_Size)); + + int32_t v22 = rowPitch * this->m_Height; + if (this->GetFormatInfo().m_IsCompressed) { + v22 >>= 2; + } + + unsigned char* v24 = this->m_Data + + ((mapParams->m_MapArea.top * rowPitch) >> (this->GetFormatInfo().m_IsCompressed ? 2 : 0)) + + (mapParams->m_MapArea.front * v22); + + mapParams->m_Unk8 = v24; + + return v24 + mapParams->m_Unk7; +} + +void* GLMipmap::Map(GLEnum mode, const GLRect* rect) { + if (rect) { + GLBox area = { + rect->left, + rect->top, + 0, + rect->width, + rect->height, + 1 + }; + + return this->Map(mode, &area); + } else { + return this->Map(mode, static_cast(nullptr)); + } +} + +void GLMipmap::ReleaseObject() { + BLIZZARD_ASSERT(this->m_MapParams == nullptr); + + this->RemoveDebugMipmap(); + this->DetachAll(); + + if (this->m_AttachPoints) { + delete this->m_AttachPoints; + } + + this->m_AttachPoints = nullptr; + this->m_Unk24 = 0; +} + +void GLMipmap::RemoveDebugMipmap() { + // TODO +} + +void GLMipmap::ResetData(GLEnum target, int32_t level, unsigned char* data) { + BLIZZARD_ASSERT(this->m_Target != GL_TEXTURE_3D || !this->GetFormatInfo().m_IsCompressed); + + this->m_Target = target; + this->m_Level = level; + this->m_Data = data; + + BLIZZARD_ASSERT(this->GetFormat() != GLTF_INVALID); + BLIZZARD_ASSERT(this->GetFormat() < GLTF_NUM_TEXTURE_FORMATS); + + if (!this->m_Texture->IsSystemBuffer() && this->m_Texture->IsRenderTarget()) { + BLIZZARD_ASSERT(!this->GetFormatInfo().m_IsCompressed); + + this->TexImage(nullptr); + this->m_Unk24 = 1; + } +} + +void GLMipmap::ResetSize(uint32_t width, uint32_t height, uint32_t depth) { + this->m_Width = width ? width : 1; + this->m_Height = height ? height : 1; + this->m_Depth = depth ? depth : 1; + + if (this->GetFormatInfo().m_IsCompressed) { + BLIZZARD_ASSERT(this->m_Depth == 1); + + this->m_Width = (this->m_Width + 3) & 0xFFFC; + this->m_Height = (this->m_Height + 3) & 0xFFFC; + } + + uint32_t v11 = this->GetFormatInfo().m_BytePerPixel; + uint32_t v20 = this->m_Texture->var12 >> this->m_Level; + + if (v20 >= v11) { + v11 = v20; + } + + uint32_t v15 = v11 * this->m_Height; + uint32_t v12; + + if (this->GetFormatInfo().m_IsCompressed) { + v12 = v15 >> 2; + } else { + v12 = v15; + } + + this->m_Size = this->m_Depth * v12; +} + +void GLMipmap::TexImage(const void* pixels) { + BLIZZARD_ASSERT((this->m_Texture->IsRenderTarget() || pixels != nullptr) && GLSDLDevice::Get()->GetVertexArrayStates().buffers[eGLBT_PIXEL_UNPACK] == 0); + + if (this->m_Target == GL_TEXTURE_3D) { + glTexImage3D( + GL_TEXTURE_3D, + this->m_Level, + this->GetFormatInfo().m_InternalFormat, + this->m_Width, + this->m_Height, + this->m_Depth, + 0, + this->GetFormatInfo().m_DataFormat, + this->GetFormatInfo().m_DataType, + pixels + ); + } else if (this->GetFormatInfo().m_IsCompressed) { + glCompressedTexImage2D( + this->m_Target, + this->m_Level, + this->GetFormatInfo().m_InternalFormat, + this->m_Width, + this->m_Height, + 0, + this->m_Size, + pixels + ); + } else { + glTexImage2D( + this->m_Target, + this->m_Level, + this->GetFormatInfo().m_InternalFormat, + this->m_Width, + this->m_Height, + 0, + this->GetFormatInfo().m_DataFormat, + this->GetFormatInfo().m_DataType, + pixels + ); + } +} + +void GLMipmap::TexSubImage(const GLBox& a2, int32_t size, const void* pixels) { + BLIZZARD_ASSERT(!this->m_Texture->IsRenderTarget() && pixels != nullptr && GLSDLDevice::Get()->GetVertexArrayStates().buffers[eGLBT_PIXEL_UNPACK] == 0); + + if (this->m_Target == GL_TEXTURE_3D) { + glPixelStorei(GL_UNPACK_ROW_LENGTH, this->m_Width); + glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, this->m_Height); + + glTexSubImage3D( + this->m_Target, + this->m_Level, + a2.left, + a2.top, + a2.front, + a2.width, + a2.height, + a2.depth, + this->GetFormatInfo().m_DataFormat, + this->GetFormatInfo().m_DataType, + pixels + ); + + glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); + glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, 0); + } else if (this->GetFormatInfo().m_IsCompressed) { + glCompressedTexSubImage2D( + this->m_Target, + this->m_Level, + 0, + a2.top, + this->m_Width, + a2.height, + this->GetFormatInfo().m_InternalFormat, + size, + pixels + ); + } else { + glPixelStorei(GL_UNPACK_ROW_LENGTH, this->m_Width); + + glTexSubImage2D( + this->m_Target, + this->m_Level, + a2.left, + a2.top, + a2.width, + a2.height, + this->GetFormatInfo().m_DataFormat, + this->GetFormatInfo().m_DataType, + pixels + ); + + glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); + } +} + +void GLMipmap::Unmap() { + BLIZZARD_ASSERT(!this->m_Texture->IsRenderTarget()); + BLIZZARD_ASSERT(!this->m_Texture->IsSystemBuffer()); + BLIZZARD_ASSERT(this->m_MapParams != nullptr); + + if (this->m_MapParams->m_MapMode == GL_READ_ONLY) { + delete this->m_MapParams; + this->m_MapParams = nullptr; + return; + } + + GLSDLDevice* device = GLSDLDevice::Get(); + + BLIZZARD_ASSERT(this->m_Texture->m_MappedMipmaps > 0); + + this->Unmap(this->m_MapParams); + + this->m_MapParams = nullptr; +} + +void GLMipmap::Unmap(MapParams* mapParams) { + BLIZZARD_ASSERT(mapParams != nullptr); + + this->m_Texture->Bind(nullptr, 0); + + if (this->m_Unk24) { + if (this->GetFormatInfo().m_IsCompressed) { + GLBox area = { + 0, + mapParams->m_MapArea.top, + mapParams->m_MapArea.front, + this->m_Width, + mapParams->m_MapArea.height, + mapParams->m_MapArea.depth + }; + + this->TexSubImage(area, mapParams->m_Size, mapParams->m_Unk8); + } else { + this->TexSubImage(mapParams->m_MapArea, mapParams->m_Size, mapParams->m_Unk8 + mapParams->m_Unk7); + } + } else { + this->TexImage(this->m_Data); + this->m_Unk24 = 1; + } + + delete mapParams; + + // TODO + + this->m_Texture->m_MappedMipmaps--; +} diff --git a/src/gx/glsdl/GLMipmap.hpp b/src/gx/glsdl/GLMipmap.hpp new file mode 100644 index 0000000..33e7b8c --- /dev/null +++ b/src/gx/glsdl/GLMipmap.hpp @@ -0,0 +1,62 @@ +#ifndef GX_GL_SDL_GL_MIPMAP_HPP +#define GX_GL_SDL_GL_MIPMAP_HPP + +#include "gx/glsdl/GL.hpp" +#include "gx/glsdl/GLTypes.hpp" +#include +#include + +class GLFramebuffer; +class GLTexture; + +class GLMipmap { + public: + // Types + struct MapParams { + GLBox m_MapArea; + int32_t m_MapMode = 0; + int32_t m_Unk7 = 0; + unsigned char* m_Unk8 = nullptr; + int32_t m_Size = 0; + }; + + // Member variables + GLTexture* m_Texture = nullptr; + uint16_t m_Width = 0; + uint16_t m_Height = 0; + uint16_t m_Depth = 0; + uint8_t m_Level = 0; + uint8_t m_DepthBits = 0; + uint32_t m_Size = 0; + int32_t m_Target = 0; + unsigned char* m_Data = nullptr; // TODO proper type + MapParams* m_MapParams = nullptr; + std::vector* m_AttachPoints = nullptr; + uint32_t m_Unk20 = 0; + uint32_t m_Unk24 = 0; + + // Member functions + void Attach(GLFramebuffer*, GLenum, int32_t); + void Detach(GLFramebuffer*, GLenum, bool); + void DetachAll(); + int32_t GetDepthBits(void); + GLTextureFormat GetFormat(void); + TextureFormatInfo& GetFormatInfo(void); + uint16_t GetHeight(void); + int32_t GetPitch(void); + GLTexture* GetTexture(); + uint32_t GetTextureID(void); + uint16_t GetWidth(void); + void* Map(GLEnum, const GLBox*); + void* Map(GLEnum, const GLRect*); + void ReleaseObject(); + void RemoveDebugMipmap(); + void ResetData(GLEnum, int32_t, unsigned char*); + void ResetSize(uint32_t, uint32_t, uint32_t); + void TexImage(const void*); + void TexSubImage(const GLBox&, int32_t, const void*); + void Unmap(void); + void Unmap(MapParams*); +}; + +#endif diff --git a/src/gx/glsdl/GLObject.cpp b/src/gx/glsdl/GLObject.cpp new file mode 100644 index 0000000..205acca --- /dev/null +++ b/src/gx/glsdl/GLObject.cpp @@ -0,0 +1,22 @@ +#include "gx/glsdl/GLObject.hpp" +#include + +void GLObject::AddRefTwin() { +} + +uint32_t GLObject::Release() { + BLIZZARD_ASSERT(this->m_RefCount > 0); + + this->m_RefCount--; + + if (this->m_RefCount == 0) { + this->ReleaseObject(); + } + + this->ReleaseTwin(); + + return this->m_RefCount; +} + +void GLObject::ReleaseTwin() { +} diff --git a/src/gx/glsdl/GLObject.hpp b/src/gx/glsdl/GLObject.hpp new file mode 100644 index 0000000..32e0eba --- /dev/null +++ b/src/gx/glsdl/GLObject.hpp @@ -0,0 +1,22 @@ +#ifndef GX_GL_SDL_GL_OBJECT_HPP +#define GX_GL_SDL_GL_OBJECT_HPP + +#include + +class GLObject { + public: + // Member variables + GLObject* m_Next; + uint32_t m_RefCount; + int64_t m_TimeStamp; + + // Virtual member functions + virtual void ReleaseObject() = 0; + virtual void AddRefTwin(); + virtual void ReleaseTwin(); + + // Member functions + uint32_t Release(); +}; + +#endif diff --git a/src/gx/glsdl/GLPixelShader.cpp b/src/gx/glsdl/GLPixelShader.cpp new file mode 100644 index 0000000..dfe4f50 --- /dev/null +++ b/src/gx/glsdl/GLPixelShader.cpp @@ -0,0 +1,17 @@ +#include "gx/glsdl/GLPixelShader.hpp" +#include "gx/glsdl/GL.hpp" + +GLPixelShader* GLPixelShader::Create() { + // TODO + // GLPool stuff + + GLPixelShader* shader = new GLPixelShader(); + + shader->m_ShaderID = 0; + shader->m_RefCount = 1; + shader->m_ShaderType = ePixelShader; + shader->m_UsingGLSL = 0; + shader->var5 = GL_FRAGMENT_PROGRAM_ARB; + + return shader; +} diff --git a/src/gx/glsdl/GLPixelShader.hpp b/src/gx/glsdl/GLPixelShader.hpp new file mode 100644 index 0000000..eec6ded --- /dev/null +++ b/src/gx/glsdl/GLPixelShader.hpp @@ -0,0 +1,12 @@ +#ifndef GX_SDL_GL_PIXEL_SHADER_HPP +#define GX_SDL_GL_PIXEL_SHADER_HPP + +#include "gx/glsdl/GLShader.hpp" + +class GLPixelShader : public GLShader { + public: + // Static functions + static GLPixelShader* Create(void); +}; + +#endif diff --git a/src/gx/glsdl/GLPool.hpp b/src/gx/glsdl/GLPool.hpp new file mode 100644 index 0000000..18a829b --- /dev/null +++ b/src/gx/glsdl/GLPool.hpp @@ -0,0 +1,57 @@ +#ifndef GX_GL_SDL_GL_POOL_HPP +#define GX_GL_SDL_GL_POOL_HPP + +#include +#include + +template +class GLPool { + public: + // Static variables + static GLPool* m_pool; + + // Static functions + static GLPool* Get(void); + static void Init(void); + + // Member variables + std::atomic m_NextName; + + // Member functions + uint32_t GetNextName(void); + T* GetNextObject(void); + void SetNextName(uint32_t); +}; + +template +GLPool* GLPool::m_pool; + +template +GLPool* GLPool::Get() { + return GLPool::m_pool; +} + +template +void GLPool::Init() { + GLPool::m_pool = new GLPool(); +} + +template +uint32_t GLPool::GetNextName() { + return this->m_NextName++; +} + +template +T* GLPool::GetNextObject() { + // TODO + // - pop off of GLObjectPool + + return new T(); +} + +template +void GLPool::SetNextName(uint32_t name) { + this->m_NextName = name; +} + +#endif diff --git a/src/gx/glsdl/GLSDLContext.cpp b/src/gx/glsdl/GLSDLContext.cpp new file mode 100644 index 0000000..23a94fc --- /dev/null +++ b/src/gx/glsdl/GLSDLContext.cpp @@ -0,0 +1,48 @@ +#include "gx/glsdl/GLSDLContext.hpp" +#include +#include + +static bool s_GLEW_Initialized = false; + +void GLSDLContext::Create(GLSDLWindow* window) { + BLIZZARD_ASSERT(this->m_sdlGLContext == nullptr); + + this->m_sdlGLContext = SDL_GL_CreateContext(window->m_sdlWindow); + + BLIZZARD_ASSERT(this->m_sdlGLContext != nullptr); + + if (s_GLEW_Initialized == false) { + glewExperimental = true; + + auto glewError = glewInit(); + + if (glewError != GLEW_OK) { + SErrDisplayAppFatal("Error initializing GLEW: %s\n", glewGetErrorString(glewError)); + } + + s_GLEW_Initialized = true; + } +} + +void GLSDLContext::Destroy() { + BLIZZARD_ASSERT(this->m_sdlGLContext != nullptr); + + SDL_GL_DeleteContext(this->m_sdlGLContext); + this->m_sdlGLContext = nullptr; +} + +bool GLSDLContext::IsCurrentContext() { + return this->m_sdlGLContext == SDL_GL_GetCurrentContext(); +} + +void GLSDLContext::MakeCurrent(GLSDLWindow* window) { + auto status = SDL_GL_MakeCurrent(window->m_sdlWindow, this->m_sdlGLContext); + BLIZZARD_ASSERT(status == 0); +} + +int32_t GLSDLContext::GetSampleCount() { + int samples; + auto status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &samples); + BLIZZARD_ASSERT(status == 0); + return static_cast(samples); +} diff --git a/src/gx/glsdl/GLSDLContext.hpp b/src/gx/glsdl/GLSDLContext.hpp new file mode 100644 index 0000000..8fd074a --- /dev/null +++ b/src/gx/glsdl/GLSDLContext.hpp @@ -0,0 +1,20 @@ +#ifndef GX_GL_SDL_GL_SDL_CONTEXT_HPP + +#include + +#include "gx/glsdl/GLSDLWindow.hpp" +#include "gx/glsdl/GLTypes.hpp" + +class GLSDLContext { + public: + SDL_GLContext m_sdlGLContext = nullptr; + + GLSDLContext() = default; + void Create(GLSDLWindow* window); + void Destroy(); + bool IsCurrentContext(); + void MakeCurrent(GLSDLWindow* window); + int32_t GetSampleCount(); +}; + +#endif diff --git a/src/gx/glsdl/GLSDLDevice.cpp b/src/gx/glsdl/GLSDLDevice.cpp new file mode 100644 index 0000000..dd49d79 --- /dev/null +++ b/src/gx/glsdl/GLSDLDevice.cpp @@ -0,0 +1,2769 @@ +#include "gx/glsdl/GLSDLDevice.hpp" +#include "gx/glsdl/GLPool.hpp" +#include "gx/glsdl/GLUtil.hpp" +#include "gx/glsdl/GL.hpp" +#include +#include +#include +#include +#include + +#define GL_MAX_STREAM 4 + +class GLPixelShader; +class GLVertexShader; + +Blizzard::Thread::TLSSlot GLSDLDevice::m_CurrentDevice; +std::vector> GLSDLDevice::m_Devices; +bool GLSDLDevice::m_ExtColorMaskIndexed = false; +int32_t GLSDLDevice::m_StaticResourcesRefCount = 0; +GLSDLDevice::RendererInfo GLSDLDevice::m_RendererInfo; +bool GLSDLDevice::m_UseHybridShader = 0; +bool GLSDLDevice::m_ExtARBShadow = 0; +bool GLSDLDevice::m_ShaderConstantBindings = 1; +GLBuffer* GLSDLDevice::m_BlitQuadVBO = nullptr; +GLShader* GLSDLDevice::m_DeviceShaders[11] = {}; +GLTexture* GLSDLDevice::m_DeviceTextures[4] = {}; +GLVertexFormat GLSDLDevice::m_NormalBlitVF; +GLVertexFormat GLSDLDevice::m_InvertedBlitVF; +GLFramebuffer* GLSDLDevice::m_F8330C = nullptr; + +const char* GLSDLBlitVsCode = R"(!!ARBvp1.0 +PARAM c0 = { 1.0 }; +MOV result.position.xyz, vertex.attrib[0]; +MOV result.position.w, c0.x; +MOV result.texcoord[0].xyz, vertex.attrib[1]; +END)"; + +const char* GLSDLDummyVsCode = R"(!!ARBvp1.0 +PARAM c = {0.0, 0.0, 0.0, 1.0}; +MOV result.position, c; +END)"; + +const char* GLSDLBlitPsCode = R"(!!ARBfp1.0 +PARAM c0 = { 1.0 }; +TEX result.color.rgba, fragment.texcoord[0], texture[0], 2D; +END)"; + +inline void COPY_TRANSFORM(GLTransform& dst, const GLTransform& src) { + if (src.isIdentity) { + dst.isIdentity = true; + dst.isDirty = true; + } else { + dst.isIdentity = false; + dst.isDirty = true; + memcpy(dst.m, src.m, sizeof(float) * 16); + } +} + +void* Sub1D210(void* ptr) { + GLSDLDevice** ptrptr = new GLSDLDevice*; + *ptrptr = nullptr; + return ptrptr; +} + +void Sub1D230(void* ptr) { + delete static_cast(ptr); +} + +GLSDLDevice* GLSDLDevice::Get() { + return *static_cast( + Blizzard::Thread::RegisterLocalStorage(&GLSDLDevice::m_CurrentDevice, Sub1D210, 0, Sub1D230) + ); +} + +void GLSDLDevice::Set(GLSDLDevice* device) { + *static_cast( + Blizzard::Thread::RegisterLocalStorage(&GLSDLDevice::m_CurrentDevice, Sub1D210, 0, Sub1D230) + ) = device; +} + +GLSDLDevice::RendererInfo GLSDLDevice::GetRendererInfo() { + if (!GLSDLDevice::m_RendererInfo.init) { + GLSDLDevice::InitRendererInfo(); + } + + return GLSDLDevice::m_RendererInfo; +} + +void GLSDLDevice::InitRendererInfo() { + // TODO + + GLSDLDevice::m_RendererInfo.init = 1; +} + +void GLSDLDevice::InitPools() { + // TODO + // - init all pools + + GLPool::Init(); + GLPool::Get()->SetNextName(1); + + GLPool::Init(); + GLPool::Get()->SetNextName(0x21); + + GLPool::Init(); + GLPool::Get()->SetNextName(0x1); + + GLPool::Init(); + GLPool::Get()->SetNextName(0x2001); + + GLPool::Init(); + GLPool::Get()->SetNextName(0x1); +} + +void GLSDLDevice::SetOption(GLSDLDeviceOption option, bool enable) { + switch (option) { + case eUseMTGL: { + break; + } + + case eUseVertexArray: { + break; + } + + case eUseGLSL: { + break; + } + + case eCheckGLStates: { + break; + } + + case eFlushBeforeDraw: { + break; + } + + case eDeviceOption5: { + break; + } + + case eUseHybridShader: { + break; + } + + case eDeviceOption7: { + break; + } + + case eDeviceOption8: { + break; + } + + case eShaderConstantBindings: { + GLSDLDevice::m_ShaderConstantBindings = enable; + break; + } + + default: { + BLIZZARD_ASSERT(false); + } + } +} + +void GLSDLDevice::StaticInit() { + static float blitQuad[] = { + -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, + -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 1.0f, -1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f + }; + + GLSDLDevice::m_BlitQuadVBO = GLBuffer::Create( + GL_ARRAY_BUFFER, + sizeof(blitQuad), + blitQuad, + GL_STATIC_DRAW, + 0 + ); + + GLSDLDevice::m_InvertedBlitVF.m_Attribs[0] = { 0, 0, GLVT_FLOAT3, 0 }; + GLSDLDevice::m_InvertedBlitVF.m_Attribs[1] = { 0, 1, GLVT_FLOAT2, 12 }; + GLSDLDevice::m_InvertedBlitVF.m_Size = 2; + + GLSDLDevice::m_NormalBlitVF.m_Attribs[0] = { 0, 0, GLVT_FLOAT3, 0 }; + GLSDLDevice::m_NormalBlitVF.m_Attribs[1] = { 0, 1, GLVT_FLOAT2, 20 }; + GLSDLDevice::m_NormalBlitVF.m_Size = 2; + + GLSDLDevice::m_F8330C = GLFramebuffer::Create(0); + + GLSDLDevice::m_DeviceShaders[0] = GLShader::Create( + GLShader::eVertexShader, + GLSDLDevice::m_UseHybridShader, + false, + "", + GLSDLBlitVsCode, + strlen(GLSDLBlitVsCode), + "", + "GL SDL Blit VS", + nullptr + ); + + GLSDLDevice::m_DeviceShaders[0]->Compile(nullptr); + + GLSDLDevice::m_DeviceShaders[1] = GLShader::Create( + GLShader::eVertexShader, + GLSDLDevice::m_UseHybridShader, + false, + "", + GLSDLDummyVsCode, + strlen(GLSDLDummyVsCode), + "", + "GL SDL Dummy VS", + nullptr + ); + + GLSDLDevice::m_DeviceShaders[1]->Compile(nullptr); + + GLSDLDevice::m_DeviceShaders[2] = GLShader::Create( + GLShader::ePixelShader, + GLSDLDevice::m_UseHybridShader, + false, + "", + GLSDLBlitPsCode, + strlen(GLSDLBlitPsCode), + "", + "GL SDL Blit PS", + nullptr + ); + + GLSDLDevice::m_DeviceShaders[2]->Compile(nullptr); + + // TODO + // - remaining device shaders + + // Device textures + + uint32_t v30 = 0; + uint32_t v31 = 0; + + auto texture0 = GLTexture2D::Create(1, 1, 1, GLTF_RGBA8888, 0x0); + *static_cast(texture0->Map(0, nullptr, v30, GL_WRITE_ONLY)) = 0xFF; + texture0->Unmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + GLSDLDevice::m_DeviceTextures[0] = texture0; + + // TODO + // auto texture1 = GLTexture3D::Create(1, 1, 1, 1, GLTF_RGBA8888, 0x0); + // *texture1->Map(0, nullptr, v30, v31, GL_WRITE_ONLY) = 0xFF; + // texture1->Unmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + // GLSDLDevice::m_DeviceTextures[1] = texture1; + + // TODO texture2 + + auto texture3 = GLTexture2D::Create(1, 1, 1, GLTF_D32, 0x0); + *static_cast(texture3->Map(0, nullptr, v30, GL_WRITE_ONLY)) = 0xFF; + texture3->Unmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + GLSDLDevice::m_DeviceTextures[3] = texture3; +} + +GLSDLDevice::GLSDLDevice() : m_Context(), m_DefaultVertexArrayObject(true) { + // TODO + // - fill in remaining initializers +} + +void GLSDLDevice::ApplyGLBindings(const GLStates& states, bool a3) { + static GLenum texTarget[4] = { + GL_TEXTURE_2D, + GL_TEXTURE_3D, + GL_TEXTURE_CUBE_MAP, + GL_TEXTURE_RECTANGLE + }; + + for (int32_t i = 0; i < 16; ++i) { + for (int32_t t = 0; t < 4; ++t) { + if (this->m_States.binding.texture[t][i] != states.binding.texture[t][i] || a3) { + glActiveTexture(GL_TEXTURE0 + i); + glBindTexture(texTarget[t], states.binding.texture[t][i]); + } + } + } + + glActiveTexture(GL_TEXTURE0 + states.binding.currentActiveTexture); + + if (this->m_States.binding.framebuffer != states.binding.framebuffer || a3) { + glBindFramebufferEXT(GL_FRAMEBUFFER, states.binding.framebuffer); + } + + if (this->m_States.binding.renderbuffer != states.binding.renderbuffer || a3) { + glBindRenderbufferEXT(GL_RENDERBUFFER, states.binding.renderbuffer); + } + + if (this->m_States.binding.vertexArrayObject != states.binding.vertexArrayObject || a3) { + glBindVertexArray(states.binding.vertexArrayObject); + } + + if (this->m_States.binding.vertexProgram != states.binding.vertexProgram || a3) { + glBindProgramARB(GL_VERTEX_PROGRAM_ARB, states.binding.vertexProgram); + } + + if (this->m_States.binding.pixelProgram != states.binding.pixelProgram || a3) { + glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, states.binding.pixelProgram); + } + + if (this->m_States.binding.glslProgram != states.binding.glslProgram || a3) { + glUseProgram(states.binding.glslProgram); + } + + memcpy(&this->m_States.binding, &states.binding, sizeof(this->m_States.binding)); +} + +void GLSDLDevice::ApplyGLStates(const GLStates& states, bool force) { + if (force) { + for (int32_t i = 0; i < 8; ++i) { + glActiveTexture(GL_TEXTURE0 + i); + + float sPlane[] = { 1.0, 0.0, 0.0, 0.0 }; + float tPlane[] = { 0.0, 1.0, 0.0, 0.0 }; + float rPlane[] = { 0.0, 0.0, 1.0, 0.0 }; + float qPlane[] = { 0.0, 0.0, 0.0, 1.0 }; + + glTexGenfv(GL_S, GL_EYE_PLANE, sPlane); + glTexGenfv(GL_T, GL_EYE_PLANE, tPlane); + glTexGenfv(GL_R, GL_EYE_PLANE, rPlane); + glTexGenfv(GL_Q, GL_EYE_PLANE, qPlane); + glTexGenfv(GL_S, GL_OBJECT_PLANE, sPlane); + glTexGenfv(GL_T, GL_OBJECT_PLANE, tPlane); + glTexGenfv(GL_R, GL_OBJECT_PLANE, rPlane); + glTexGenfv(GL_Q, GL_OBJECT_PLANE, qPlane); + + glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, 1); + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); + glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, (GLfloat*)&GLColor4f::WHITE); + } + + glActiveTexture(GL_TEXTURE0 + states.binding.currentActiveTexture); + glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR_EXT); + glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glPixelStorei(GL_PACK_ALIGNMENT, 1); + } + + if (this->m_States.depth.testEnable != states.depth.testEnable || force) { + if (states.depth.testEnable) { + glEnable(GL_DEPTH_TEST); + } else { + glDisable(GL_DEPTH_TEST); + } + } + + if (this->m_States.depth.compareFunc != states.depth.compareFunc || force) { + glDepthFunc(states.depth.compareFunc); + } + + if (this->m_States.depth.writeMask != states.depth.writeMask || force) { + glDepthMask(states.depth.writeMask); + } + + if (this->m_States.stencil.testEnable != states.stencil.testEnable || force) { + if (states.stencil.testEnable) { + glEnable(GL_STENCIL_TEST); + } else { + glDisable(GL_STENCIL_TEST); + } + } + + if (this->m_States.stencil.front.compareFunc != states.stencil.front.compareFunc + || this->m_States.stencil.back.compareFunc != states.stencil.back.compareFunc + || this->m_States.stencil.ref != states.stencil.ref + || this->m_States.stencil.mask != states.stencil.mask + || force) + { + glStencilFuncSeparate( + states.stencil.front.compareFunc, + states.stencil.back.compareFunc, + states.stencil.ref, + states.stencil.mask + ); + } + + if (this->m_States.stencil.front.opFail != states.stencil.front.opFail + || this->m_States.stencil.front.opZFail != states.stencil.front.opZFail + || this->m_States.stencil.front.opZPass != states.stencil.front.opZPass + || force) + { + glStencilOpSeparate( + states.stencil.useTwoSidedStencil ? GL_FRONT : GL_FRONT_AND_BACK, + states.stencil.front.opFail, + states.stencil.front.opZFail, + states.stencil.front.opZPass + ); + } + + if (states.stencil.useTwoSidedStencil) { + if (this->m_States.stencil.back.opFail != states.stencil.back.opFail + || this->m_States.stencil.back.opZFail != states.stencil.back.opZFail + || this->m_States.stencil.back.opZPass != states.stencil.back.opZPass + || force) + { + glStencilOpSeparate( + GL_BACK, + states.stencil.back.opFail, + states.stencil.back.opZFail, + states.stencil.back.opZPass + ); + } + } + + if (this->m_States.stencil.writeMask != states.stencil.writeMask || force) { + glStencilMask(states.stencil.writeMask); + } + + if (this->m_States.rasterizer.cullFaceMode != states.rasterizer.cullFaceMode || force) { + glCullFace(states.rasterizer.cullFaceMode); + } + + if (this->m_States.rasterizer.cullMode != states.rasterizer.cullMode || force) { + if (states.rasterizer.cullMode != 0) { + glEnable(GL_CULL_FACE); + glFrontFace(states.rasterizer.cullMode); + } else { + glDisable(GL_CULL_FACE); + } + } + + if (this->m_States.rasterizer.fillMode != states.rasterizer.fillMode || force) { + glPolygonMode(GL_FRONT_AND_BACK, states.rasterizer.fillMode); + } + + if (this->m_CurrentTargetDepth + && (this->m_States.rasterizer.constantDepthBias != states.rasterizer.constantDepthBias + || this->m_States.rasterizer.slopeScaledDepthBias != states.rasterizer.slopeScaledDepthBias + || force)) + { + if (states.rasterizer.slopeScaledDepthBias == 0.0 && states.rasterizer.constantDepthBias == 0.0) { + glDisable(GL_POLYGON_OFFSET_FILL); + } else { + glEnable(GL_POLYGON_OFFSET_FILL); + } + + float units; + + if (states.rasterizer.constantDepthBias == 0.0 ) { + units = 0.0; + } else { + units = + (states.rasterizer.constantDepthBias * 2.0) + * (1 << this->m_CurrentTargetDepth->GetDepthBits()); + } + + glPolygonOffset(states.rasterizer.slopeScaledDepthBias * 2.0, units); + } + + if (this->m_States.rasterizer.viewport.left != states.rasterizer.viewport.left + || this->m_States.rasterizer.viewport.top != states.rasterizer.viewport.top + || this->m_States.rasterizer.viewport.width != states.rasterizer.viewport.width + || this->m_States.rasterizer.viewport.height != states.rasterizer.viewport.height + || force) + { + glViewport( + states.rasterizer.viewport.left, + states.rasterizer.viewport.top, + states.rasterizer.viewport.width, + states.rasterizer.viewport.height + ); + } + + if (this->m_States.rasterizer.zNear != states.rasterizer.zNear + || this->m_States.rasterizer.zFar != states.rasterizer.zFar + || force) + { + glDepthRange(states.rasterizer.zNear, states.rasterizer.zFar); + } + + if (this->m_States.rasterizer.scissorEnable != states.rasterizer.scissorEnable || force) { + if (states.rasterizer.scissorEnable) { + glEnable(GL_SCISSOR_TEST); + } else { + glDisable(GL_SCISSOR_TEST); + } + } + + if (this->m_States.rasterizer.scissor.left != states.rasterizer.scissor.left + || this->m_States.rasterizer.scissor.top != states.rasterizer.scissor.top + || this->m_States.rasterizer.scissor.width != states.rasterizer.scissor.width + || this->m_States.rasterizer.scissor.height != states.rasterizer.scissor.height + || force) + { + glScissor( + states.rasterizer.scissor.left, + states.rasterizer.scissor.top, + states.rasterizer.scissor.width, + states.rasterizer.scissor.height + ); + } + + int32_t maxClipPlaneIndex = GLSDLDevice::GetRendererInfo().unk36; + + if (this->m_States.rasterizer.clipPlaneMask != states.rasterizer.clipPlaneMask) { + for (int32_t i = 0; i < maxClipPlaneIndex; ++i) { + if (!(states.rasterizer.clipPlaneMask & this->m_States.rasterizer.clipPlaneMask & (1 << i))) { + if ((1 << i) & states.rasterizer.clipPlaneMask) { + glEnable(GL_CLIP_PLANE0 + i); + } else { + glDisable(GL_CLIP_PLANE0 + i); + } + } + } + } + + for (int32_t i = 0; i < maxClipPlaneIndex; ++i) { + if (memcmp(&this->m_States.rasterizer.clipPlanes[i].plane, &states.rasterizer.clipPlanes[i].plane, sizeof(this->m_States.rasterizer.clipPlanes[i].plane))) { + glClipPlane(GL_CLIP_PLANE0 + i, states.rasterizer.clipPlanes[i].plane); + } + } + + int32_t maxColorMaskIndex = GLSDLDevice::m_ExtColorMaskIndexed ? GLSDLDevice::GetRendererInfo().max_color_attachments : 1; + + for (int32_t i = 0; i < maxColorMaskIndex; ++i) { + if (memcmp(&this->m_States.blend.colorMask[i], &states.blend.colorMask[i], sizeof(GLColor4f)) || force) { + if (GLSDLDevice::m_ExtColorMaskIndexed) { + glColorMaskIndexedEXT( + i, + states.blend.colorMask[i].red, + states.blend.colorMask[i].green, + states.blend.colorMask[i].blue, + states.blend.colorMask[i].alpha + ); + } else { + glColorMask( + states.blend.colorMask[i].red, + states.blend.colorMask[i].green, + states.blend.colorMask[i].blue, + states.blend.colorMask[i].alpha + ); + } + } + } + + if (this->m_States.blend.alphaBlend != states.blend.alphaBlend || force) { + if (states.blend.alphaBlend) { + glEnable(GL_BLEND); + } else { + glDisable(GL_BLEND); + } + } + + if (this->m_States.blend.srcBlendFactor != states.blend.srcBlendFactor + || this->m_States.blend.destBlendFactor != states.blend.destBlendFactor + || force) + { + glBlendFunc(states.blend.srcBlendFactor, states.blend.destBlendFactor); + } + + if (this->m_States.blend.blendOp != states.blend.blendOp || force) { + glBlendEquation(states.blend.blendOp); + } + + if (memcmp(&this->m_States.blend.blendColor, &states.blend.blendColor, sizeof(GLColor4f)) || force) { + glBlendColor( + states.blend.blendColor.r, + states.blend.blendColor.g, + states.blend.blendColor.b, + states.blend.blendColor.a + ); + } + + if (this->m_States.fixedFunc.fogEnable != states.fixedFunc.fogEnable) { + if (states.fixedFunc.fogEnable) { + glEnable(GL_FOG); + } else { + glDisable(GL_FOG); + } + } + + if (memcmp(&this->m_States.fixedFunc.fogColor, &states.fixedFunc.fogColor, sizeof(GLColor4f)) || force) { + glFogfv(GL_FOG_COLOR, (GLfloat*)&states.fixedFunc.fogColor); + } + + if (this->m_States.fixedFunc.fogMode != states.fixedFunc.fogMode || force) { + glFogi(GL_FOG_MODE, states.fixedFunc.fogMode); + } + + if (this->m_States.fixedFunc.fogStart != states.fixedFunc.fogStart || force) { + glFogf(GL_FOG_START, states.fixedFunc.fogStart); + } + + if (this->m_States.fixedFunc.fogEnd != states.fixedFunc.fogEnd || force) { + glFogf(GL_FOG_END, states.fixedFunc.fogEnd); + } + + if (this->m_States.fixedFunc.fogDensity != states.fixedFunc.fogDensity || force) { + glFogf(GL_FOG_DENSITY, states.fixedFunc.fogDensity); + } + + if (this->m_States.fixedFunc.alphaTestEnable != states.fixedFunc.alphaTestEnable || force) { + if (states.fixedFunc.alphaTestEnable) { + glEnable(GL_ALPHA_TEST); + } else { + glDisable(GL_ALPHA_TEST); + } + } + + if (this->m_States.fixedFunc.alphaTestFunc != states.fixedFunc.alphaTestFunc + || this->m_States.fixedFunc.alphaTestRef != states.fixedFunc.alphaTestRef + || force) + { + glAlphaFunc(states.fixedFunc.alphaTestFunc, states.fixedFunc.alphaTestRef); + } + + if (this->m_States.fixedFunc.transforms.modelView.isIdentity != states.fixedFunc.transforms.modelView.isIdentity + || memcmp(this->m_States.fixedFunc.transforms.modelView.m, states.fixedFunc.transforms.modelView.m, sizeof(float) * 16) + || force) + { + glMatrixMode(GL_MODELVIEW); + + if (states.fixedFunc.transforms.modelView.isIdentity) { + glLoadIdentity(); + } else { + glLoadMatrixf(states.fixedFunc.transforms.modelView.m); + } + + const_cast(states).fixedFunc.transforms.modelView.isDirty = false; + } + + if (this->m_States.fixedFunc.transforms.projection.isIdentity != states.fixedFunc.transforms.projection.isIdentity + || memcmp(this->m_States.fixedFunc.transforms.projection.m, states.fixedFunc.transforms.projection.m, sizeof(float) * 16) + || force) + { + glMatrixMode(GL_PROJECTION); + + GLTransform projection = { + true, + { + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f, + }, + true + }; + + if (!states.fixedFunc.transforms.projection.isIdentity) { + projection.isIdentity = false; + + memcpy(projection.m, states.fixedFunc.transforms.projection.m, sizeof(projection.m)); + projection.isDirty = true; + } + + if (projection.isIdentity) { + projection.SetIdentity(); + } + + projection.a1 *= -1.0f; + projection.b1 *= -1.0f; + projection.c1 *= -1.0f; + projection.d1 *= -1.0f; + + auto isIdentity = projection.a0 == 1.0f + && projection.a1 == 0.0f + && projection.a2 == 0.0f + && projection.a3 == 0.0f + && projection.b0 == 0.0f + && projection.b1 == 1.0f + && projection.b2 == 0.0f + && projection.b3 == 0.0f + && projection.c0 == 0.0f + && projection.c1 == 0.0f + && projection.c2 == 1.0f + && projection.c3 == 0.0f + && projection.d0 == 0.0f + && projection.d1 == 0.0f + && projection.d2 == 0.0f + && projection.d3 == 1.0f; + + projection.isDirty = true; + + if (isIdentity) { + glLoadIdentity(); + } else { + glLoadMatrixf(projection.m); + } + + projection.isDirty = false; + } + + glMatrixMode(states.fixedFunc.transforms.matrixMode); + glMatrixMode(GL_MODELVIEW); + + if (states.fixedFunc.transforms.view.isIdentity) { + glLoadIdentity(); + } else { + glLoadMatrixf(states.fixedFunc.transforms.view.m); + } + + const_cast(states).fixedFunc.transforms.view.isDirty = false; + + if (this->m_States.fixedFunc.lighting.enable != states.fixedFunc.lighting.enable || force) { + if (states.fixedFunc.lighting.enable) { + glEnable(GL_LIGHTING); + } else { + glDisable(GL_LIGHTING); + } + } + + for (int32_t i = 0; i < 8; ++i) { + // TODO + // Set up each light + } + + if (memcmp(&this->m_States.fixedFunc.lighting.sceneAmbient, &states.fixedFunc.lighting.sceneAmbient, sizeof(GLColor4f)) || force) { + glLightModelfv(GL_LIGHT_MODEL_AMBIENT, (GLfloat*)&states.fixedFunc.lighting.sceneAmbient); + } + + if (this->m_States.fixedFunc.lighting.material.materialSource != states.fixedFunc.lighting.material.materialSource || force) { + glColorMaterial(GL_FRONT_AND_BACK, states.fixedFunc.lighting.material.materialSource); + + // TODO + // this->Sub38A20(); + } + + if (this->m_States.fixedFunc.lighting.material.colorTracking != states.fixedFunc.lighting.material.colorTracking || force) { + if (states.fixedFunc.lighting.material.colorTracking) { + glEnable(GL_COLOR_MATERIAL); + } else { + glDisable(GL_COLOR_MATERIAL); + } + + // TODO + // this->Sub38A20(); + } + + if (memcmp(&this->m_States.fixedFunc.lighting.material.ambient, &states.fixedFunc.lighting.material.ambient, sizeof(GLColor4f)) || force) { + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (GLfloat*)&states.fixedFunc.lighting.material.ambient); + } + + if (memcmp(&this->m_States.fixedFunc.lighting.material.diffuse, &states.fixedFunc.lighting.material.diffuse, sizeof(GLColor4f)) || force) { + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (GLfloat*)&states.fixedFunc.lighting.material.diffuse); + } + + if (memcmp(&this->m_States.fixedFunc.lighting.material.specular, &states.fixedFunc.lighting.material.specular, sizeof(GLColor4f)) || force) { + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (GLfloat*)&states.fixedFunc.lighting.material.specular); + } + + if (memcmp(&this->m_States.fixedFunc.lighting.material.emission, &states.fixedFunc.lighting.material.emission, sizeof(GLColor4f)) || force) { + glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (GLfloat*)&states.fixedFunc.lighting.material.emission); + } + + if (this->m_States.fixedFunc.lighting.material.shininess != states.fixedFunc.lighting.material.shininess || force) { + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, states.fixedFunc.lighting.material.shininess); + } + + for (int32_t i = 0; i < 8; ++i) { + // TODO fixedFunc.transforms.texture[i] + // TODO fixedFunc.texOp[i] + // TODO fixedFunc.texGen[i] + } + + glMatrixMode(states.fixedFunc.transforms.matrixMode); + + if (this->m_States.fixedFunc.normalizeNormal != states.fixedFunc.normalizeNormal) { + if (states.fixedFunc.normalizeNormal) { + glEnable(GL_NORMALIZE); + } else { + glDisable(GL_NORMALIZE); + } + } + + if (this->m_States.fixedFunc.pointSprite.enable != states.fixedFunc.pointSprite.enable || force) { + if (states.fixedFunc.pointSprite.enable) { + glEnable(GL_POINT_SPRITE); + glEnable(GL_PROGRAM_POINT_SIZE_EXT); + } else { + glDisable(GL_POINT_SPRITE); + glDisable(GL_PROGRAM_POINT_SIZE_EXT); + } + } + + if (this->m_States.fixedFunc.pointSprite.size != states.fixedFunc.pointSprite.size || force) { + glPointSize(states.fixedFunc.pointSprite.size); + } + + if (memcmp(&this->m_States.fixedFunc.pointSprite.attenuation, &states.fixedFunc.pointSprite.attenuation, sizeof(this->m_States.fixedFunc.pointSprite.attenuation)) || force) { + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION, states.fixedFunc.pointSprite.attenuation); + } + + if (this->m_States.fixedFunc.pointSprite.min != states.fixedFunc.pointSprite.min || force ) { + glPointParameterfARB(GL_POINT_SIZE_MIN, states.fixedFunc.pointSprite.min); + } + + if (this->m_States.fixedFunc.pointSprite.max != states.fixedFunc.pointSprite.max || force) { + glPointParameterfARB(GL_POINT_SIZE_MAX, states.fixedFunc.pointSprite.max); + } + + if (this->m_States.shader.vertexShaderEnable != states.shader.vertexShaderEnable || force) { + if (states.shader.vertexShaderEnable) { + glEnable(GL_VERTEX_PROGRAM_ARB); + } else { + glDisable(GL_VERTEX_PROGRAM_ARB); + } + } + + glProgramEnvParameters4fvEXT(GL_VERTEX_PROGRAM_ARB, 0, 256, (GLfloat*)states.shader.vertexShaderConst); + + if (this->m_States.shader.pixelShaderEnable != states.shader.pixelShaderEnable || force) { + if (states.shader.pixelShaderEnable) { + glEnable(GL_FRAGMENT_PROGRAM_ARB); + } else { + glDisable(GL_FRAGMENT_PROGRAM_ARB); + } + } + + glProgramEnvParameters4fvEXT(GL_FRAGMENT_PROGRAM_ARB, 0, 64, (GLfloat*)states.shader.pixelShaderConst); + + if (memcmp(&this->m_States.clear.clearColor, &states.clear.clearColor, sizeof(GLColor4f)) || force) { + glClearColor( + states.clear.clearColor.r, + states.clear.clearColor.g, + states.clear.clearColor.b, + states.clear.clearColor.a + ); + } + + if (this->m_States.clear.clearDepth != states.clear.clearDepth || force) { + glClearDepth(states.clear.clearDepth); + } + + if (this->m_States.clear.clearStencil != states.clear.clearStencil || force) { + glClearStencil(states.clear.clearStencil); + } + + // Copy provided states into current states + + memcpy(&this->m_States.depth, &states.depth, sizeof(this->m_States.depth)); + memcpy(&this->m_States.stencil, &states.stencil, sizeof(this->m_States.stencil)); + + if (!states.stencil.useTwoSidedStencil) { + memcpy(&this->m_States.stencil.back, &states.stencil.front, sizeof(this->m_States.stencil.back)); + } + + if (this->m_CurrentTargetDepth) { + memcpy(&this->m_States.rasterizer, &states.rasterizer, sizeof(this->m_States.rasterizer)); + } else { + float v117 = this->m_States.rasterizer.constantDepthBias; + float v118 = this->m_States.rasterizer.slopeScaledDepthBias; + memcpy(&this->m_States.rasterizer, &states.rasterizer, sizeof(this->m_States.rasterizer)); + this->m_States.rasterizer.constantDepthBias = v117; + this->m_States.rasterizer.slopeScaledDepthBias = v118; + } + + memcpy(&this->m_States.blend, &states.blend, sizeof(this->m_States.blend)); + memcpy(&this->m_States.clear, &states.clear, sizeof(this->m_States.clear)); + + this->m_States.fixedFunc.fogEnable = states.fixedFunc.fogEnable; + memcpy(&this->m_States.fixedFunc.fogColor, &states.fixedFunc.fogColor, sizeof(GLColor4f)); + this->m_States.fixedFunc.fogMode = states.fixedFunc.fogMode; + this->m_States.fixedFunc.fogStart = states.fixedFunc.fogStart; + this->m_States.fixedFunc.fogEnd = states.fixedFunc.fogEnd; + + this->m_States.fixedFunc.alphaTestEnable = states.fixedFunc.alphaTestEnable; + this->m_States.fixedFunc.alphaTestRef = states.fixedFunc.alphaTestRef; + + memcpy(this->m_States.fixedFunc.texOp, states.fixedFunc.texOp, sizeof(this->m_States.fixedFunc.texOp)); + + this->m_States.fixedFunc.lighting.enable = states.fixedFunc.lighting.enable; + memcpy(&this->m_States.fixedFunc.lighting.sceneAmbient, &states.fixedFunc.lighting.sceneAmbient, sizeof(GLColor4f)); + + for (int32_t i = 0; i < 8; ++i) { + this->m_States.fixedFunc.lighting.lights[i].enable = states.fixedFunc.lighting.lights[i].enable; + memcpy(&this->m_States.fixedFunc.lighting.lights[i].position, &states.fixedFunc.lighting.lights[i].position, sizeof(GLfloat4)); + COPY_TRANSFORM(this->m_States.fixedFunc.lighting.lights[i].view, states.fixedFunc.lighting.lights[i].view); + this->m_States.fixedFunc.lighting.lights[i].constantAttenuation = states.fixedFunc.lighting.lights[i].constantAttenuation; + this->m_States.fixedFunc.lighting.lights[i].linearAttenuation = states.fixedFunc.lighting.lights[i].linearAttenuation; + this->m_States.fixedFunc.lighting.lights[i].quadraticAttenuation = states.fixedFunc.lighting.lights[i].quadraticAttenuation; + memcpy(&this->m_States.fixedFunc.lighting.lights[i].ambient, &states.fixedFunc.lighting.lights[i].ambient, sizeof(GLColor4f)); + memcpy(&this->m_States.fixedFunc.lighting.lights[i].diffuse, &states.fixedFunc.lighting.lights[i].diffuse, sizeof(GLColor4f)); + memcpy(&this->m_States.fixedFunc.lighting.lights[i].specular, &states.fixedFunc.lighting.lights[i].specular, sizeof(GLColor4f)); + } + + memcpy(&this->m_States.fixedFunc.lighting.material, &states.fixedFunc.lighting.material, sizeof(this->m_States.fixedFunc.lighting.material)); + + COPY_TRANSFORM(this->m_States.fixedFunc.transforms.modelView, states.fixedFunc.transforms.modelView); + COPY_TRANSFORM(this->m_States.fixedFunc.transforms.world, states.fixedFunc.transforms.world); + COPY_TRANSFORM(this->m_States.fixedFunc.transforms.view, states.fixedFunc.transforms.view); + COPY_TRANSFORM(this->m_States.fixedFunc.transforms.projection, states.fixedFunc.transforms.projection); + + for (int32_t i = 0; i < 8; ++i) { + COPY_TRANSFORM(this->m_States.fixedFunc.transforms.texture[i], states.fixedFunc.transforms.texture[i]); + } + + memcpy(this->m_States.fixedFunc.texCoordIndex, states.fixedFunc.texCoordIndex, sizeof(this->m_States.fixedFunc.texCoordIndex)); + memcpy(this->m_States.fixedFunc.texGen, states.fixedFunc.texGen, sizeof(this->m_States.fixedFunc.texGen)); + + memcpy(this->m_States.samplers, states.samplers, sizeof(this->m_States.samplers)); + memcpy(&this->m_States.shader, &states.shader, sizeof(this->m_States.shader)); +} + +void GLSDLDevice::ApplyShaderConstants() { + GLShader* vs = this->m_VertexShader; + + if (vs) { + if (vs->m_UsingGLSL) { + vs->FlushUniforms(this->m_GLSLProgram); + } else { + auto start = this->m_DirtyVertexShaderConsts.start; + auto end = this->m_DirtyVertexShaderConsts.end; + + if (start != end) { + glProgramEnvParameters4fvEXT( + GL_VERTEX_PROGRAM_ARB, + start, + end - start, + reinterpret_cast(&this->m_States.shader.vertexShaderConst[start]) + ); + + this->m_DirtyVertexShaderConsts.start = 0; + this->m_DirtyVertexShaderConsts.end = 0; + } + } + } + + GLShader* ps = this->m_PixelShader; + + if (ps) { + if (ps->m_UsingGLSL) { + ps->FlushUniforms(this->m_GLSLProgram); + } else { + auto start = this->m_DirtyPixelShaderConsts.start; + auto end = this->m_DirtyPixelShaderConsts.end; + + if (start != end) { + glProgramEnvParameters4fvEXT( + GL_FRAGMENT_PROGRAM_ARB, + start, + end - start, + reinterpret_cast(&this->m_States.shader.pixelShaderConst[start]) + ); + + this->m_DirtyPixelShaderConsts.start = 0; + this->m_DirtyPixelShaderConsts.end = 0; + } + } + } +} + +void GLSDLDevice::ApplyTransforms() { + this->SetModelView(GL_MODELVIEW); + + auto& projection = this->m_States.fixedFunc.transforms.projection; + if (projection.isDirty) { + if (projection.isIdentity) { + projection.SetIdentity(); + } + + projection.a1 *= -1.0f; + projection.b1 *= -1.0f; + projection.c1 *= -1.0f; + projection.d1 *= -1.0f; + + projection.isIdentity = projection.a0 == 1.0f + && projection.a1 == 0.0f + && projection.a2 == 0.0f + && projection.a3 == 0.0f + && projection.b0 == 0.0f + && projection.b1 == 1.0f + && projection.b2 == 0.0f + && projection.b3 == 0.0f + && projection.c0 == 0.0f + && projection.c1 == 0.0f + && projection.c2 == 1.0f + && projection.c3 == 0.0f + && projection.d0 == 0.0f + && projection.d1 == 0.0f + && projection.d2 == 0.0f + && projection.d3 == 1.0f; + + projection.isDirty = true; + + if (this->m_States.fixedFunc.transforms.matrixMode != GL_PROJECTION) { + glMatrixMode(GL_PROJECTION); + this->m_States.fixedFunc.transforms.matrixMode = GL_PROJECTION; + } + + if (projection.isIdentity) { + glLoadIdentity(); + } else { + glLoadMatrixf(projection.m); + } + + projection.isDirty = false; + } + + // TODO texture transforms +} + +void GLSDLDevice::BindBuffer(GLBuffer* buffer, GLEnum target) { + BLIZZARD_ASSERT(this->m_Context.IsCurrentContext()); + BLIZZARD_ASSERT(buffer != nullptr || target != GL_ZERO); + + GLEnum bindTarget = target == GL_ZERO ? buffer->m_Type : target; + GLuint bindName = buffer == nullptr ? 0 : buffer->m_BufferID; + + int32_t bindIndex; + + if (bindTarget == GL_ARRAY_BUFFER) { + bindIndex = 0; + } else if (bindTarget == GL_ELEMENT_ARRAY_BUFFER) { + bindIndex = 1; + } else if (bindTarget == GL_PIXEL_PACK_BUFFER) { + bindIndex = 2; + } else if (bindTarget == GL_PIXEL_UNPACK_BUFFER) { + bindIndex = 3; + } else { + BLIZZARD_ASSERT(false); + } + + if (bindTarget == GL_ARRAY_BUFFER) { + if (this->m_States.binding.vertexArrayObject && this->m_VertexArrayObject != &this->m_DefaultVertexArrayObject) { + glBindVertexArray(0); + this->m_States.binding.vertexArrayObject = 0; + this->m_VertexArrayObject = &this->m_DefaultVertexArrayObject; + } + } else if (bindTarget == GL_PIXEL_PACK_BUFFER) { + this->m_VertexArrayObject->m_Properties.m_PixelPackBuffer = buffer; + } else if (bindTarget == GL_PIXEL_UNPACK_BUFFER) { + this->m_VertexArrayObject->m_Properties.m_PixelUnpackBuffer = buffer; + } + + if (this->m_VertexArrayObject->m_GLStates.buffers[bindIndex] != bindName) { + glBindBuffer(bindTarget, bindName); + this->m_VertexArrayObject->m_GLStates.buffers[bindIndex] = bindName; + } +} + +void GLSDLDevice::BindFramebuffer(GLFramebuffer* framebuffer) { + BLIZZARD_ASSERT(this->m_Context.IsCurrentContext()); + + GLuint v3; + + if (framebuffer) { + v3 = framebuffer->m_FramebufferID; + } else { + v3 = 0; + } + + this->m_CurrentTarget = framebuffer; + + if (this->m_States.binding.framebuffer != v3) { + glBindFramebufferEXT(GL_FRAMEBUFFER, v3); + this->m_States.binding.framebuffer = v3; + } +} + +void GLSDLDevice::BindGLSLProgram(GLGLSLProgram* a2) { + // TODO +} + +void GLSDLDevice::BindShader(GLShader* shader) { + BLIZZARD_ASSERT(this->m_Context.IsCurrentContext()); + BLIZZARD_ASSERT(shader); + + if (shader->var5 == GL_FRAGMENT_PROGRAM_ARB) { + if (this->m_States.binding.pixelProgram != shader->m_ShaderID) { + glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, shader->m_ShaderID); + this->m_States.binding.pixelProgram = shader->m_ShaderID; + } + } else if (shader->var5 == GL_VERTEX_PROGRAM_ARB) { + if (this->m_States.binding.vertexProgram != shader->m_ShaderID) { + glBindProgramARB(GL_VERTEX_PROGRAM_ARB, shader->m_ShaderID); + this->m_States.binding.vertexProgram = shader->m_ShaderID; + } + } else { + BLIZZARD_ASSERT(false); + } +} + +void GLSDLDevice::BindTexture(GLEnum textureType, GLTexture* texture) { + BLIZZARD_ASSERT(this->m_Context.IsCurrentContext()); + BLIZZARD_ASSERT(texture == nullptr || textureType == texture->m_TextureType); + + uint32_t textureID = texture ? texture->m_TextureID : 0; + uint32_t index = GLSDLTextureTypeToIndex(textureType); + + BLIZZARD_ASSERT(this->m_States.binding.texture[index][this->m_States.binding.currentActiveTexture] != textureID); + BLIZZARD_ASSERT(this->m_BoundTextures[index][this->m_States.binding.currentActiveTexture] != texture); + + GLTexture* boundTexture = this->m_BoundTextures[index][this->m_States.binding.currentActiveTexture]; + if (boundTexture) { + boundTexture->Unbind(this, this->m_States.binding.currentActiveTexture); + } + + glBindTexture(textureType, textureID); + this->m_BoundTextures[index][this->m_States.binding.currentActiveTexture] = texture; + this->m_States.binding.texture[index][this->m_States.binding.currentActiveTexture] = textureID; + + if (!texture || this->m_WorkerDevice || textureType == GL_TEXTURE_RECTANGLE) { + return; + } + + GLSDLDevice* mainDevice = GLSDLDevice::m_Devices[0]; + + if (texture->var7 == mainDevice->m_TextureList.begin()) { + texture->var7 = mainDevice->m_TextureList.insert(mainDevice->m_TextureList.begin(), texture); + + mainDevice->m_TextureTotalSize += texture->m_Size; + texture->m_LastFrameUsed = mainDevice->m_FrameNumber; + } else if (texture->m_LastFrameUsed == 0 || texture->m_LastFrameUsed + 60 < mainDevice->m_FrameNumber) { + if (texture->m_LastFrameUsed == 0) { + texture->RecreateGLTexture(); + mainDevice->m_TextureTotalSize += texture->m_Size; + } + + // TODO + // - oldest texture logic + + // TODO + // - list transfer logic + + texture->m_LastFrameUsed = mainDevice->m_FrameNumber; + } + + if (mainDevice->m_TextureTotalSize > 384 * 1024 * 1024) { + // TODO + // - track / clean up oldest textures + } +} + +void GLSDLDevice::BindVertexArray(GLVertexArray* a2) { + BLIZZARD_ASSERT(this->m_Context.IsCurrentContext()); + + int32_t v4 = a2 ? a2->m_VertexArrayID : 0; + + if (this->m_States.binding.vertexArrayObject != v4) { + glBindVertexArray(v4); + this->m_States.binding.vertexArrayObject = v4; + this->m_VertexArrayObject = a2 ? a2 : &this->m_DefaultVertexArrayObject; + } +} + +void GLSDLDevice::BlitFramebuffer(GLMipmap* src, const GLRect* srcRect, GLMipmap* dst, const GLRect* dstRect, GLEnum mask, GLEnum filter) { + BLIZZARD_ASSERT(mask == GL_COLOR_BUFFER_BIT); + BLIZZARD_ASSERT(src != nullptr); + + GLRect fullSrcRect = { + 0, + 0, + src->GetWidth(), + src->GetHeight() + }; + + GLRect fullDstRect = { + 0, + 0, + dst ? dst->GetWidth() : this->m_Window->GetWidth(), + dst ? dst->GetHeight() : this->m_Window->GetHeight() + }; + + BLIZZARD_ASSERT(filter == GL_NEAREST); + // TODO + // BLIZZARD_ASSERT(srcRect == nullptr || *srcRect == fullSrcRect); + + // TODO + // - non-shader code path + + glEnable(GL_VERTEX_PROGRAM_ARB); + glEnable(GL_FRAGMENT_PROGRAM_ARB); + + auto alphaTestEnable = this->m_States.fixedFunc.alphaTestEnable; + auto depthTestEnable = this->m_States.depth.testEnable; + auto alphaBlend = this->m_States.blend.alphaBlend; + auto cullEnable = this->m_States.rasterizer.cullMode != 0; + auto scissorEnable = this->m_States.rasterizer.scissorEnable; + auto stencilTestEnable = this->m_States.stencil.testEnable; + uint32_t width; + uint32_t height; + + if (alphaTestEnable) { + glDisable(GL_ALPHA_TEST); + } + + if (depthTestEnable) { + glDisable(GL_DEPTH_TEST); + } + + if (alphaBlend) { + glDisable(GL_BLEND); + } + + if (cullEnable) { + glDisable(GL_CULL_FACE); + } + + if (scissorEnable) { + glDisable(GL_SCISSOR_TEST); + } + + if (stencilTestEnable) { + glDisable(GL_STENCIL_TEST); + } + + if (GLSDLDevice::m_ExtColorMaskIndexed) { + glColorMaskIndexedEXT(0, GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); + } else { + glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); + } + + if (dst) { + glFramebufferTexture2DEXT( + GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + dst->m_Target, + dst->GetTextureID(), + dst->m_Level + ); + + auto currentTargetDepth = this->m_CurrentTargetDepth; + if (currentTargetDepth) { + glFramebufferTexture2DEXT( + GL_FRAMEBUFFER, + GL_DEPTH_ATTACHMENT, + currentTargetDepth->m_Target, + 0, + 0 + ); + } + + auto currentTargetStencil = this->m_CurrentTargetStencil; + if (currentTargetStencil) { + glFramebufferTexture2DEXT( + GL_FRAMEBUFFER, + GL_STENCIL_ATTACHMENT, + currentTargetStencil->m_Target, + 0, + 0 + ); + } + + dst->m_Texture->SetAddressModeS(GL_CLAMP_TO_EDGE); + dst->m_Texture->SetAddressModeT(GL_CLAMP_TO_EDGE); + dst->m_Texture->SetMinFilterMode(GL_LINEAR); + dst->m_Texture->SetMagFilterMode(GL_LINEAR); + + width = dst->m_Width; + height = dst->m_Height; + } else { + glBindFramebufferEXT(GL_FRAMEBUFFER, 0); + + width = this->m_Window->GetWidth(); + height = this->m_Window->GetHeight(); + } + + if ( + this->m_States.rasterizer.viewport.left != 0 + || this->m_States.rasterizer.viewport.top != 0 + || this->m_States.rasterizer.viewport.width != width + || this->m_States.rasterizer.viewport.height != height + ) { + glViewport(0, 0, width, height); + } + + this->SetActiveTexture(0); + src->m_Texture->Bind(nullptr, true); + src->m_Texture->SetAddressModeS(GL_CLAMP_TO_EDGE); + src->m_Texture->SetAddressModeT(GL_CLAMP_TO_EDGE); + src->m_Texture->SetMinFilterMode(filter); + src->m_Texture->SetMagFilterMode(filter); + + this->SetVertexBuffer(0, GLSDLDevice::m_BlitQuadVBO, 0, 28); + + GLVertexFormat* format = dst + ? &GLSDLDevice::m_NormalBlitVF + : &GLSDLDevice::m_InvertedBlitVF; + + this->SetVertexFormat(format); + + auto vertexShader = this->m_VertexShader; + auto pixelShader = this->m_PixelShader; + this->BindGLSLProgram(nullptr); + + this->SetShader(GLShader::eVertexShader, GLSDLDevice::m_DeviceShaders[0]); + this->SetShader(GLShader::ePixelShader, GLSDLDevice::m_DeviceShaders[2]); + + this->m_DefaultVertexArrayObject.m_Properties.m_VertexBase = 0; + GLVertexArray::FindVertexArray(this, this->m_DefaultVertexArrayObject); + + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + + this->SetShader(GLShader::eVertexShader, vertexShader); + this->SetShader(GLShader::ePixelShader, pixelShader); + + if (alphaTestEnable) { + glEnable(GL_ALPHA_TEST); + } + + if (depthTestEnable) { + glEnable(GL_DEPTH_TEST); + } + + if (alphaBlend) { + glEnable(GL_BLEND); + } + + if (cullEnable) { + glEnable(GL_CULL_FACE); + } + + if (scissorEnable) { + glEnable(GL_SCISSOR_TEST); + } + + if (stencilTestEnable) { + glEnable(GL_STENCIL_TEST); + } + + if (GLSDLDevice::m_ExtColorMaskIndexed) { + glColorMaskIndexedEXT( + 0, + this->m_States.blend.colorMask[0].red, + this->m_States.blend.colorMask[0].green, + this->m_States.blend.colorMask[0].blue, + this->m_States.blend.colorMask[0].alpha + ); + } else { + glColorMask( + this->m_States.blend.colorMask[0].red, + this->m_States.blend.colorMask[0].green, + this->m_States.blend.colorMask[0].blue, + this->m_States.blend.colorMask[0].alpha + ); + } + + if (dst) { + auto currentTargetColor = this->m_CurrentTargetColor[0]; + glFramebufferTexture2DEXT( + GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + dst->m_Target, + currentTargetColor->GetTextureID(), + 0 + ); + + auto currentTargetDepth = this->m_CurrentTargetDepth; + if (currentTargetDepth) { + glFramebufferTexture2DEXT( + GL_FRAMEBUFFER, + GL_DEPTH_ATTACHMENT, + currentTargetDepth->m_Target, + currentTargetDepth->GetTextureID(), + currentTargetDepth->m_Level + ); + } + + auto currentTargetStencil = this->m_CurrentTargetStencil; + if (currentTargetStencil) { + glFramebufferTexture2DEXT( + GL_FRAMEBUFFER, + GL_STENCIL_ATTACHMENT, + currentTargetStencil->m_Target, + currentTargetStencil->GetTextureID(), + currentTargetStencil->m_Level + ); + } + } + + if ( + this->m_States.rasterizer.viewport.left != 0 + || this->m_States.rasterizer.viewport.top != 0 + || this->m_States.rasterizer.viewport.width != width + || this->m_States.rasterizer.viewport.height != height + ) { + glViewport( + this->m_States.rasterizer.viewport.left, + this->m_States.rasterizer.viewport.top, + this->m_States.rasterizer.viewport.width, + this->m_States.rasterizer.viewport.height + ); + } +} + +void GLSDLDevice::CheckDepthTarget() { + BLIZZARD_ASSERT(this->m_CurrentTargetColor[0] == nullptr || this->m_CurrentTargetColor[0]->GetTexture()->IsValid()); + BLIZZARD_ASSERT(this->m_CurrentTargetColor[1] == nullptr || this->m_CurrentTargetColor[1]->GetTexture()->IsValid()); + BLIZZARD_ASSERT(this->m_CurrentTargetColor[2] == nullptr || this->m_CurrentTargetColor[2]->GetTexture()->IsValid()); + BLIZZARD_ASSERT(this->m_CurrentTargetColor[3] == nullptr || this->m_CurrentTargetColor[3]->GetTexture()->IsValid()); + + BLIZZARD_ASSERT(this->m_CurrentTargetDepth == nullptr || this->m_CurrentDepthBuffer != nullptr); + + if (!this->m_CurrentDepthBuffer) { + return; + } + + BLIZZARD_ASSERT(this->m_CurrentDepthBuffer->GetTexture()->IsValid()); + + auto currentTargetColor = this->m_CurrentTargetColor[0]; + auto currentDepthBuffer = this->m_CurrentDepthBuffer; + + if ( + !currentTargetColor + || (currentTargetColor->m_Width == currentDepthBuffer->m_Width && currentTargetColor->m_Height == currentDepthBuffer->m_Height) + ) { + if (this->m_CurrentTargetDepth != currentDepthBuffer) { + this->Sub34BB0(GL_DEPTH_ATTACHMENT, currentDepthBuffer, 0); + this->m_CurrentTarget->Attach(currentDepthBuffer, GL_DEPTH_ATTACHMENT, 0); + auto currentTargetDepth = this->m_CurrentTargetDepth; + this->m_CurrentTargetDepth = currentDepthBuffer; + this->m_CurrentDepthBuffer = currentDepthBuffer; + + if ( + (currentTargetDepth == nullptr && currentDepthBuffer != nullptr) + || (currentDepthBuffer != nullptr && currentTargetDepth != nullptr && currentTargetDepth->m_DepthBits != currentDepthBuffer->m_DepthBits) + ) { + this->SetDepthBias(this->m_ConstantDepthBias, this->m_SlopeScaledDepthBias); + } + + if (this->m_CurrentDepthBuffer->GetFormat() == GLTF_D24S8) { + this->Sub34BB0(GL_STENCIL_ATTACHMENT, this->m_CurrentDepthBuffer, 0); + this->m_CurrentTarget->Attach(this->m_CurrentDepthBuffer, GL_STENCIL_ATTACHMENT, 0); + this->m_CurrentTargetStencil = this->m_CurrentDepthBuffer; + } + } + + return; + } + + auto currentTargetDepth = this->m_CurrentTargetDepth; + + if (currentTargetDepth == currentDepthBuffer) { + this->Sub34BB0(GL_DEPTH_ATTACHMENT, nullptr, 0); + this->m_CurrentTarget->Attach(nullptr, GL_DEPTH_ATTACHMENT, 0); + this->m_CurrentTargetDepth = nullptr; + this->m_CurrentDepthBuffer = currentTargetDepth; + + if (currentTargetDepth->GetFormat() == GLTF_D24S8) { + this->Sub34BB0(GL_STENCIL_ATTACHMENT, nullptr, 0); + this->m_CurrentTarget->Attach(nullptr, GL_STENCIL_ATTACHMENT, 0); + this->m_CurrentTargetStencil = nullptr; + } + } +} + +void GLSDLDevice::Clear(uint32_t clearMask, const GLColor4f& clearColor, double clearDepth, int32_t clearStencil) { + this->CheckDepthTarget(); + this->RestoreTextures(); + + auto colorMask = this->m_States.blend.colorMask[0]; + + if (clearMask & 0x4000) { + for (int32_t i = 0; i < 4; i++) { + if (this->m_CurrentTargetColor[i] && this->m_CurrentTargetColor[i]->GetTextureID() == this->m_States.binding.texture[0][this->m_States.binding.currentActiveTexture]) { + this->BindTexture(this->m_CurrentTargetColor[i]->m_Target, nullptr); + } + } + + this->SetColorWriteMask(1, 1, 1, 1, 0); + this->SetClearColor(clearColor); + } + + if (clearMask & 0x100) { + if (this->m_CurrentTargetDepth) { + if (this->m_CurrentTargetDepth->GetTextureID() == this->m_States.binding.texture[0][this->m_States.binding.currentActiveTexture]) { + this->BindTexture(this->m_CurrentTargetDepth->m_Target, nullptr); + } + + if (!this->m_States.depth.writeMask) { + glDepthMask(1); + } + + this->SetClearDepth(clearDepth); + } else { + clearMask &= ~0x100; + } + } else { + if (this->m_CurrentTargetDepth) { + this->m_CurrentTarget->Detach(GL_DEPTH_ATTACHMENT); + } + } + + if (clearMask & 0x400) { + if (this->m_CurrentTargetStencil) { + if (this->m_CurrentTargetStencil->GetTextureID() == this->m_States.binding.texture[0][this->m_States.binding.currentActiveTexture]) { + this->BindTexture(this->m_CurrentTargetStencil->m_Target, nullptr); + } + + if (this->m_States.stencil.writeMask != -1) { + glStencilMask(-1); + } + + this->SetClearStencil(clearStencil); + } else { + clearMask &= ~0x400; + } + } else { + if (this->m_CurrentTargetStencil) { + this->m_CurrentTarget->Detach(GL_STENCIL_ATTACHMENT); + } + } + + auto scissorEnable = this->m_States.rasterizer.scissorEnable; + auto scissorRect = this->m_States.rasterizer.scissor; + auto currentTargetColor = this->m_CurrentTargetColor[0]; + + if ( + currentTargetColor + && ( + this->m_States.rasterizer.viewport.left + || this->m_States.rasterizer.viewport.top + || this->m_States.rasterizer.viewport.width != currentTargetColor->m_Width + || this->m_States.rasterizer.viewport.height != currentTargetColor->m_Height + ) + ) { + this->SetScissor(1, this->m_States.rasterizer.viewport); + glClear(clearMask); + this->SetScissor(scissorEnable, scissorRect); + } else { + glClear(clearMask); + } + + if (clearMask & 0x4000) { + this->SetColorWriteMask(colorMask.red, colorMask.blue, colorMask.green, colorMask.alpha, 0); + } + + if (clearMask & 0x100) { + if (!this->m_States.depth.writeMask) { + glDepthMask(0); + } + } else { + if (this->m_CurrentTargetDepth) { + this->m_CurrentTarget->Attach(this->m_CurrentTargetDepth, GL_DEPTH_ATTACHMENT, 0); + } + } + + if (clearMask & 0x400) { + if (this->m_States.stencil.writeMask != -1) { + glStencilMask(this->m_States.stencil.writeMask); + } + } else { + if (this->m_CurrentTargetStencil) { + this->m_CurrentTarget->Attach(this->m_CurrentTargetStencil, GL_STENCIL_ATTACHMENT, 0); + } + } +} + +void GLSDLDevice::CopyTex(uint32_t a2, uint32_t a3, GLMipmap* dst, const GLRect* framebufferRect) { + BLIZZARD_ASSERT(framebufferRect->width == dst->GetWidth()); + BLIZZARD_ASSERT(framebufferRect->height == dst->GetHeight()); + + dst->m_Texture->Bind(nullptr, false); + + glCopyTexSubImage2D( + dst->m_Target, + dst->m_Level, + a2, + a3, + framebufferRect->left, + framebufferRect->top, + framebufferRect->width, + framebufferRect->height + ); +} + +GLBuffer* GLSDLDevice::CreateBuffer(GLEnum type, uint32_t a3, const void* a4, GLEnum usage, GLEnum format) { + return GLBuffer::Create(type, a3, a4, usage, format); +} + +GLShader* GLSDLDevice::CreateShader(GLShader::ShaderType type, const void* buf, int32_t codeLen, const char* name) { + // TODO + // Blizzard::Debug::Assert(this); + + return GLShader::Create(type, GLSDLDevice::m_UseHybridShader, false, "", buf, codeLen, "", name, nullptr); +} + +GLTexture* GLSDLDevice::CreateTexture2D(uint32_t width, uint32_t height, uint32_t numMipMap, GLTextureFormat format, uint32_t flags) { + return GLTexture2D::Create(width, height, numMipMap, format, flags); +} + +GLTexture* GLSDLDevice::CreateTextureCubeMap(uint32_t size, uint32_t numMipMap, GLTextureFormat format, uint32_t flags) { + // TODO + + return nullptr; +} + +void GLSDLDevice::Draw(GLEnum primitive, uint32_t a3, uint32_t a4) { + // TODO +} + +void GLSDLDevice::DrawIndexed(GLEnum primitive, uint32_t a3, uint32_t a4, uint32_t a5, uint32_t a6, uint32_t count) { + this->GLSDLDraw(primitive, a3, a4, a5, a6, count); +} + +void GLSDLDevice::DrawRect() { + if (!this->m_Window) { + return; + } + + if (!this->m_UseWindowSystemBuffer || this->m_FlippedSystemBuffer) { + GLTexture2D* backBuffer = this->m_BackBufferColor; + + if (!backBuffer) { + return; + } + + GLMipmap* backBufferImage = backBuffer->GetMipmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + this->BlitFramebuffer(backBufferImage, nullptr, nullptr, nullptr, GL_COLOR_BUFFER_BIT, GL_NEAREST); + + glBindFramebufferEXT(GL_FRAMEBUFFER, 0); + this->m_States.binding.framebuffer = 0; + } + + this->m_Window->Swap(); + + if (!this->m_UseWindowSystemBuffer || this->m_FlippedSystemBuffer) { + glBindFramebufferEXT(GL_FRAMEBUFFER, this->m_CurrentTarget->m_FramebufferID); + this->m_States.binding.framebuffer = this->m_CurrentTarget->m_FramebufferID; + } +} + +uint32_t GLSDLDevice::GetID() { + return this->m_ID; +} + +GLFramebuffer* GLSDLDevice::GetCurrentTarget() { + return this->m_CurrentTarget; +} + +GLShader* GLSDLDevice::GetShader(GLShader::ShaderType shaderType) { + if (shaderType == GLShader::eVertexShader) { + return this->m_VertexShader; + } else if (shaderType == GLShader::ePixelShader) { + return this->m_PixelShader; + } else { + return nullptr; + } +} + +const GLStates::VertexArrayObject& GLSDLDevice::GetVertexArrayStates() { + return this->m_VertexArrayObject->m_GLStates; +} + +void GLSDLDevice::GLSDLDraw(GLEnum mode, uint32_t start, uint32_t end, uint32_t a5, uint32_t a6, uint32_t count) { + BLIZZARD_ASSERT(this->m_Context.IsCurrentContext()); + + this->CheckDepthTarget(); + + // if (!this->m_DrawCount) { + // if (this->m_Context.m_MTGLEnabled) { + // glFlush(); + // } + + // // GLFence::TestFences(); + // } + + this->m_DrawCount++; + + this->RestoreTextures(); + + this->m_DefaultVertexArrayObject.m_Properties.m_VertexBase = a5; + GLVertexArray::FindVertexArray(this, this->m_DefaultVertexArrayObject); + + auto vs = this->m_VertexShader; + auto ps = this->m_PixelShader; + + if (ps) { + // TODO + // this->Sub30440(); + } + + // if (this->m_TexWorker && !this->m_TexWorker->m_UnkA1) { + // this->m_TexWorker->WaitOnGLObjects(); + // } + + if (vs) { + this->SetShader(GLShader::eVertexShader, vs); + } else { + this->ApplyTransforms(); + } + + if (ps) { + this->SetShader(GLShader::ePixelShader, ps); + } else { + this->UpdateFFPTexturing(); + } + + if (vs && vs->m_UsingGLSL && ps && ps->m_UsingGLSL) { + this->m_GLSLProgram = GLGLSLProgram::Find(vs, ps); + } else { + this->BindGLSLProgram(nullptr); + } + + this->ApplyShaderConstants(); + + if (count) { + GLBuffer* buffer = this->m_VertexArrayObject->m_Properties.m_IndexBuffer; + GLEnum format = buffer->m_IndexFormat; + + uint32_t v18; + + if (format == GL_UNSIGNED_SHORT) { + v18 = 1; + } else if (format == GL_UNSIGNED_INT) { + v18 = 2; + } else { + BLIZZARD_ASSERT(!"buffer uses unknown format"); + } + + void* indices = GLBuffer::m_UsingVBO + ? reinterpret_cast(a6 << v18) + : buffer->m_Data + (a6 << v18); + + glDrawRangeElements(mode, start, end, count, buffer->m_IndexFormat, indices); + } else { + glDrawArrays(mode, start, end - start); + } +} + +void GLSDLDevice::Init(GLSDLWindow* window, const char* debugName, uint32_t flags) { + if (this->m_Init) { + return; + } + + this->m_BatchViewerEnabled = flags & 0x1; + this->m_UseWindowSystemBuffer = flags & (0x2 | 0x4); + this->m_FlippedSystemBuffer = flags & 0x4; + this->m_ShaderCompiler = flags & 0x8; + this->m_WorkerDevice = flags & 0x10; + + this->m_DebugName.assign(debugName, strlen(debugName)); + + this->m_Window = window; + + // *** sets + // this->m_UseWindowSystemBuffer = false; + // *** + + GLSDLDevice::Set(this); + + this->m_Context.Create(window); + this->m_Context.MakeCurrent(window); + + // TODO + // if (dword_10329E4 == dword_10329E0) + // GLRendererInfo::InitExtensions(); + + this->LoadDefaultStates(); + + this->m_Init = true; + + if (this->m_ID == -1) { + this->m_ID = GLSDLDevice::m_Devices.size(); + GLSDLDevice::m_Devices.insert(GLSDLDevice::m_Devices.end(), this); + } else { + GLSDLDevice::m_Devices[this->m_ID] = this; + } + + if (!GLSDLDevice::m_StaticResourcesRefCount) { + // GLContext::s_MainContext = this->m_Context.m_Context->context; + GLSDLDevice::InitPools(); + GLSDLDevice::StaticInit(); + } + + ++GLSDLDevice::m_StaticResourcesRefCount; + + // if (!this->m_WorkerDevice) { + // GLWorker* v11 = new GLWorker(this); + // this->m_TexWorker = v11; + // } + + glBindFramebufferEXT(GL_FRAMEBUFFER, 0); + glClear(GL_COLOR_BUFFER_BIT); + + GLFramebuffer* v12 = GLFramebuffer::Create(0); + this->m_FBOTarget = v12; + GLFramebuffer* currentTarget = v12; + + // TODO verify this check + if (this->m_UseWindowSystemBuffer) { + GLFramebuffer* v14 = GLFramebuffer::Create(1); + this->m_SystemTarget = v14; + currentTarget = v14; + } + + this->m_CurrentTarget = currentTarget; + + GLuint v15 = 0; + + if (currentTarget) { + v15 = currentTarget->m_FramebufferID; + } + + if (this->m_States.binding.framebuffer != v15) { + glBindFramebufferEXT(GL_FRAMEBUFFER, v15); + this->m_States.binding.framebuffer = v15; + } +} + +void GLSDLDevice::LoadDefaultStates() { + // Depth + + this->m_States.depth.testEnable = false; + this->m_States.depth.compareFunc = GL_GEQUAL; + this->m_States.depth.writeMask = true; + + // Stencil + + this->m_States.stencil.testEnable = false; + this->m_States.stencil.ref = 0; + this->m_States.stencil.mask = 0xFFFFFFFF; + this->m_States.stencil.writeMask = 0xFFFFFFFF; + this->m_States.stencil.useTwoSidedStencil = false; + + this->m_States.stencil.front.compareFunc = GL_ALWAYS; + this->m_States.stencil.front.opFail = GL_KEEP; + this->m_States.stencil.front.opZFail = GL_KEEP; + this->m_States.stencil.front.opZPass = GL_KEEP; + + this->m_States.stencil.back.compareFunc = GL_ALWAYS; + this->m_States.stencil.back.opFail = GL_KEEP; + this->m_States.stencil.back.opZFail = GL_KEEP; + this->m_States.stencil.back.opZPass = GL_KEEP; + + // Rasterizer + + this->m_States.rasterizer.cullMode = GL_CCW; + this->m_States.rasterizer.cullFaceMode = GL_BACK; + this->m_States.rasterizer.fillMode = GL_FILL; + this->m_States.rasterizer.constantDepthBias = 0.0; + this->m_States.rasterizer.slopeScaledDepthBias = 0.0; + + this->m_States.rasterizer.viewport = { + 0, + 0, + this->m_Window->GetWidth(), + this->m_Window->GetHeight() + }; + + this->m_States.rasterizer.zNear = 0.0; + this->m_States.rasterizer.zFar = 1.0; + this->m_States.rasterizer.scissorEnable = false; + + this->m_States.rasterizer.scissor = { + 0, + 0, + this->m_Window->GetWidth(), + this->m_Window->GetHeight() + }; + + this->m_States.rasterizer.clipPlaneMask = 0; + memset(this->m_States.rasterizer.clipPlanes, 0, sizeof(this->m_States.rasterizer.clipPlanes)); + + // Blend + + for (int32_t i = 0; i < 4; ++i) { + this->m_States.blend.colorMask[i] = { true, true, true, true }; + } + + this->m_States.blend.alphaBlend = 0; + this->m_States.blend.srcBlendFactor = 1; + this->m_States.blend.destBlendFactor = 0; + this->m_States.blend.blendOp = GL_FUNC_ADD; + this->m_States.blend.blendColor = GLColor4f::ZERO; + + // FixedFunc + + this->m_States.fixedFunc.fogColor = { 0.0, 0.0, 0.0, 0.0 }; + this->m_States.fixedFunc.fogStart = 0.0; + this->m_States.fixedFunc.alphaTestRef = 0.0; + this->m_States.fixedFunc.fogEnable = 0; + this->m_States.fixedFunc.fogMode = GL_LINEAR; + this->m_States.fixedFunc.fogEnd = 1.0; + this->m_States.fixedFunc.fogDensity = 1.0; + this->m_States.fixedFunc.alphaTestEnable = 0; + this->m_States.fixedFunc.alphaTestFunc = GL_ALWAYS; + + for (int32_t i = 0; i < 8; ++i) { + this->m_States.fixedFunc.texOp[i].texturing = 0; + this->m_States.fixedFunc.texOp[i].constant = GLColor4f::ZERO; + this->m_States.fixedFunc.texOp[i].colorOp = GL_MODULATE; + this->m_States.fixedFunc.texOp[i].colorScale = 1.0; + this->m_States.fixedFunc.texOp[i].colorArg0 = GL_TEXTURE; + this->m_States.fixedFunc.texOp[i].colorArg1 = GL_PREVIOUS; + this->m_States.fixedFunc.texOp[i].colorArg2 = GL_CONSTANT; + this->m_States.fixedFunc.texOp[i].alphaOp = GL_MODULATE; + this->m_States.fixedFunc.texOp[i].alphaScale = 1.0; + this->m_States.fixedFunc.texOp[i].alphaArg0 = GL_TEXTURE; + this->m_States.fixedFunc.texOp[i].alphaArg1 = GL_PREVIOUS; + this->m_States.fixedFunc.texOp[i].alphaArg2 = GL_CONSTANT; + } + + this->m_States.fixedFunc.lighting.enable = true; + this->m_States.fixedFunc.lighting.sceneAmbient = { 0.0, 0.0, 0.0, 0.0 }; + + for (int32_t i = 0; i < 8; ++i) { + this->m_States.fixedFunc.lighting.lights[i].enable = false; + this->m_States.fixedFunc.lighting.lights[i].position = { 0.0, 0.0, 1.0, 0.0 }; + this->m_States.fixedFunc.lighting.lights[i].view.isDirty = true; + this->m_States.fixedFunc.lighting.lights[i].view.isIdentity = true; + this->m_States.fixedFunc.lighting.lights[i].constantAttenuation = 0.0; + this->m_States.fixedFunc.lighting.lights[i].linearAttenuation = 0.0; + this->m_States.fixedFunc.lighting.lights[i].quadraticAttenuation = 0.0; + this->m_States.fixedFunc.lighting.lights[i].ambient = GLColor4f::ZERO; + this->m_States.fixedFunc.lighting.lights[i].diffuse = GLColor4f::WHITE; + this->m_States.fixedFunc.lighting.lights[i].specular = GLColor4f::ZERO; + } + + this->m_States.fixedFunc.lighting.lights[0].enable = true; + + this->m_States.fixedFunc.lighting.material.materialSource = 4609; + this->m_States.fixedFunc.lighting.material.ambient = GLColor4f::ZERO; + this->m_States.fixedFunc.lighting.material.diffuse = GLColor4f::WHITE; + this->m_States.fixedFunc.lighting.material.specular = GLColor4f::ZERO; + this->m_States.fixedFunc.lighting.material.shininess = 0.0; + this->m_States.fixedFunc.lighting.material.emission = GLColor4f::ZERO; + + this->m_States.fixedFunc.transforms.matrixMode = 5888; + this->m_States.fixedFunc.transforms.modelviewStatus = 5888; + this->m_States.fixedFunc.transforms.modelView.isIdentity = true; + this->m_States.fixedFunc.transforms.modelView.isDirty = true; + this->m_States.fixedFunc.transforms.world.isIdentity = true; + this->m_States.fixedFunc.transforms.world.isDirty = true; + this->m_States.fixedFunc.transforms.view.isIdentity = true; + this->m_States.fixedFunc.transforms.view.isDirty = true; + this->m_States.fixedFunc.transforms.projection.isIdentity = true; + this->m_States.fixedFunc.transforms.projection.isDirty = true; + + for (int32_t i = 0; i < 8; ++i) { + this->m_States.fixedFunc.transforms.texture[i].isIdentity = true; + this->m_States.fixedFunc.transforms.texture[i].isDirty = true; + } + + for (int32_t i = 0; i < 8; ++i) { + this->m_States.fixedFunc.texCoordIndex[i] = i; + } + + for (int32_t i = 0; i < 8; ++i) { + this->m_States.fixedFunc.texGen[i].S = 0; + this->m_States.fixedFunc.texGen[i].T = 0; + this->m_States.fixedFunc.texGen[i].R = 0; + this->m_States.fixedFunc.texGen[i].Q = 0; + } + + this->m_States.fixedFunc.pointSprite.enable = false; + this->m_States.fixedFunc.pointSprite.size = 1.0; + this->m_States.fixedFunc.pointSprite.attenuation[0] = 1.0; + this->m_States.fixedFunc.pointSprite.attenuation[1] = 0.0; + this->m_States.fixedFunc.pointSprite.attenuation[2] = 0.0; + this->m_States.fixedFunc.pointSprite.min = 0.0; + this->m_States.fixedFunc.pointSprite.max = 1.0; + + this->m_States.fixedFunc.normalizeNormal = false; + + // Samplers + + for (int32_t i = 0; i < 16; ++i) { + this->m_States.samplers[i].mipmapBias = 0.0; + this->m_States.samplers[i].addressModeS = 10497; + this->m_States.samplers[i].addressModeT = 10497; + this->m_States.samplers[i].addressModeR = 10497; + this->m_States.samplers[i].magFilterMode = 9729; + this->m_States.samplers[i].minFilterMode = 9729; + this->m_States.samplers[i].maxAnisotropy = 1.0; + this->m_States.samplers[i].borderColor = { 0.0, 0.0, 0.0, 0.0 }; + } + + // Shader + + this->m_States.shader.vertexShaderEnable = false; + + for (int32_t i = 0; i < 256; ++i) { + this->m_States.shader.vertexShaderConst[i] = { 0.0, 0.0, 0.0, 1.0 }; + } + + this->m_States.shader.pixelShaderEnable = false; + + for (int32_t i = 0; i < 64; ++i) { + this->m_States.shader.pixelShaderConst[i] = { 0.0, 0.0, 0.0, 1.0 }; + } + + // Binding + + memset(&this->m_States.binding, 0, sizeof(this->m_States.binding)); + + // Clear + + this->m_States.clear.clearColor = GLColor4f::ZERO; + this->m_States.clear.clearDepth = 1.0; + this->m_States.clear.clearStencil = 0; + + // Misc + + this->m_States.misc.drawBuffers[0] = 0; + this->m_States.misc.drawBuffers[1] = 0; + this->m_States.misc.drawBuffers[2] = 0; + this->m_States.misc.drawBuffers[3] = 0; + this->m_States.misc.readBuffer = 0; + + // Assign default states + memcpy(&this->m_DefaultStates.depth, &this->m_States.depth, sizeof(this->m_DefaultStates.depth)); + memcpy(&this->m_DefaultStates.stencil, &this->m_States.stencil, sizeof(this->m_DefaultStates.stencil)); + memcpy(&this->m_DefaultStates.rasterizer, &this->m_States.rasterizer, sizeof(this->m_DefaultStates.rasterizer)); + memcpy(&this->m_DefaultStates.blend, &this->m_States.blend, sizeof(this->m_DefaultStates.blend)); + memcpy(&this->m_DefaultStates.clear, &this->m_States.clear, sizeof(this->m_DefaultStates.clear)); + memcpy(&this->m_DefaultStates.fixedFunc, &this->m_States.fixedFunc, sizeof(this->m_DefaultStates.fixedFunc)); + memcpy(this->m_DefaultStates.samplers, this->m_States.samplers, sizeof(this->m_DefaultStates.samplers)); + memcpy(&this->m_DefaultStates.shader, &this->m_States.shader, sizeof(this->m_DefaultStates.shader)); + memcpy(&this->m_DefaultStates.binding, &this->m_States.binding, sizeof(this->m_DefaultStates.binding)); + memcpy(&this->m_DefaultStates.misc, &this->m_States.misc, sizeof(this->m_DefaultStates.misc)); + + // TODO + // if (v54 != this->m_States.misc.unpackClientStorage) { + // glPixelStorei(34226, v54); + // this->m_States.misc.unpackClientStorage = v54; + // } + + this->ApplyGLBindings(this->m_States, 1); + this->ApplyGLStates(this->m_States, 1); +} + +void GLSDLDevice::ResetBackbuffer(uint32_t width, uint32_t height, GLTextureFormat colorFormat, GLTextureFormat depthFormat, uint32_t sampleCount) { + BLIZZARD_ASSERT(this->m_Context.IsCurrentContext()); + + if ( + this->m_BackBufferColor + && this->m_BackBufferColor->m_Width == width + && this->m_BackBufferColor->m_Height == height + && this->m_BackBufferColor->m_Format == colorFormat + && this->m_BackBufferDepth + && this->m_BackBufferDepth->m_Format == depthFormat + ) { + if (this->m_UseWindowSystemBuffer && this->m_CurrentTarget->GetSampleCount() != sampleCount) { + // this->m_Context.SetContextFormat(depthFormat, sampleCount); + } + + return; + } + + auto v24 = this->m_BackBufferColor != 0; + + if (this->m_BackBufferColor) { + this->m_BackBufferColor->Release(); + this->m_BackBufferColor = nullptr; + } + + if (this->m_BackBufferStencil) { + this->m_BackBufferStencil->Release(); + this->m_BackBufferStencil = nullptr; + } + + if (this->m_BackBufferDepth) { + this->m_BackBufferDepth->Release(); + this->m_BackBufferDepth = nullptr; + } + + GLTextureFormat v10 = this->m_UseWindowSystemBuffer ? depthFormat : GLTF_INVALID; + // this->m_Context.SetContextFormat(v10, sampleCount); + + this->BindFramebuffer( + this->m_UseWindowSystemBuffer + ? this->m_SystemTarget + : this->m_FBOTarget + ); + + if (this->m_UseWindowSystemBuffer && !v24) { + this->Clear(0x4500, GLColor4f::BLACK, 1.0, 0); + this->m_Window->Swap(); + } + + uint32_t v13 = GLTFLAG_SYSTEM_BUFFER; + if (!this->m_UseWindowSystemBuffer) { + v13 = 0; + } + + uint32_t v14 = GLTFLAG_RENDERTARGET; + if (!this->m_FlippedSystemBuffer) { + v14 = v13 | GLTFLAG_RENDERTARGET; + } + + auto v15 = GLTexture2D::Create(width, height, 1, colorFormat, v14); + this->m_BackBufferColor = v15; + auto v16 = v15->GetMipmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + this->m_CurrentTargetColor[0] = v16; + this->m_CurrentTarget->Attach(v16, GL_COLOR_ATTACHMENT0, 0); + + GLRect v29 = { 0, 0, static_cast(width), static_cast(height) }; + this->SetViewport(v29, 0.0, 1.0); + + if (this->m_FlippedSystemBuffer) { + auto v19 = this->m_BackBufferColor->GetMipmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + GLRect v25 = { 0, 0, v19->m_Width, v19->m_Height }; + this->CopyTex(0, 0, v19, &v25); + } + + if (depthFormat) { + if (depthFormat == GLTF_D24S8) { + auto v20 = GLTexture2D::Create(width, height, 1, GLTF_D24S8, v13 | GLTFLAG_RENDERTARGET | GLTFLAG_DEPTH | GLTFLAG_STENCIL); + this->m_BackBufferDepth = v20; + this->m_BackBufferStencil = v20; + + // TODO how to properly increment GLObject ref counts? + v20->AddRefTwin(); + v20->m_RefCount++; + + auto v22 = this->m_BackBufferStencil->GetMipmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + this->m_CurrentTargetStencil = v22; + this->m_CurrentTarget->Attach(v22, GL_STENCIL_ATTACHMENT, 0); + } else { + this->m_BackBufferDepth = GLTexture2D::Create(width, height, 1, depthFormat, v13 | GLTFLAG_RENDERTARGET | GLTFLAG_DEPTH); + } + + auto v17 = this->m_BackBufferDepth->GetMipmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + this->m_CurrentTargetDepth = v17; + this->m_CurrentTarget->Attach(v17, GL_DEPTH_ATTACHMENT, 0); + this->m_CurrentDepthBuffer = this->m_CurrentTargetDepth; + this->SetDepthTestEnable(1); + } + + BLIZZARD_ASSERT(this->m_CurrentTarget->IsValid()); + + this->Clear(0x4500, GLColor4f::BLACK, 1.0, 0); +} + +void GLSDLDevice::Resize(uint32_t width, uint32_t height) { + auto colorFormat = this->m_BackBufferColor ? this->m_BackBufferColor->m_Format : GLTF_INVALID; + auto depthFormat = this->m_BackBufferDepth ? this->m_BackBufferDepth->m_Format : GLTF_INVALID; + + this->SetDisplay( + width, + height, + colorFormat, + depthFormat, + 0, + false, + false, + this->m_Context.GetSampleCount() + ); +} + +void GLSDLDevice::RestoreTextures() { + BLIZZARD_ASSERT(this->m_Context.IsCurrentContext()); + + for (int32_t i = 0; i < 16; i++) { + GLTexture* texture = this->m_Textures[i]; + + if (texture && !texture->IsValid()) { + this->m_Textures[i] = nullptr; + } + + this->SetTexture(i, this->m_Textures[i]); + } +} + +void GLSDLDevice::SetActiveTexture(uint32_t a2) { + if (this->m_States.binding.currentActiveTexture != a2) { + glActiveTexture(GL_TEXTURE0 + a2); + this->m_States.binding.currentActiveTexture = a2; + } +} + +void GLSDLDevice::SetAlphaBlend(GLEnum srcBlend, GLEnum dstBlend, GLEnum blendOp) { + if (this->m_States.blend.srcBlendFactor != srcBlend || this->m_States.blend.destBlendFactor != dstBlend) { + glBlendFunc(srcBlend, dstBlend); + this->m_States.blend.srcBlendFactor = srcBlend; + this->m_States.blend.destBlendFactor = dstBlend; + } + + if (this->m_States.blend.blendOp != blendOp) { + glBlendEquation(blendOp); + this->m_States.blend.blendOp = blendOp; + } +} + +void GLSDLDevice::SetAlphaBlendEnable(bool enable) { + if (this->m_States.blend.alphaBlend != enable) { + if (enable) { + glEnable(GL_BLEND); + } else { + glDisable(GL_BLEND); + } + + this->m_States.blend.alphaBlend = enable; + } +} + +void GLSDLDevice::SetAlphaTest(GLEnum func, float ref) { + if (this->m_States.fixedFunc.alphaTestFunc != func || this->m_States.fixedFunc.alphaTestRef != ref) { + BLIZZARD_ASSERT(ref <= 1.0f); + + glAlphaFunc(func, ref); + this->m_States.fixedFunc.alphaTestFunc = func; + this->m_States.fixedFunc.alphaTestRef = ref; + } +} + +void GLSDLDevice::SetAlphaTestEnable(bool enable) { + if (this->m_States.fixedFunc.alphaTestEnable != enable) { + if (enable) { + glEnable(GL_ALPHA_TEST); + } else { + glDisable(GL_ALPHA_TEST); + } + } +} + +void GLSDLDevice::SetClearColor(const GLColor4f& clearColor) { + if ( + this->m_States.clear.clearColor.r != clearColor.r + || this->m_States.clear.clearColor.g != clearColor.g + || this->m_States.clear.clearColor.b != clearColor.b + || this->m_States.clear.clearColor.a != clearColor.a + ) { + glClearColor(clearColor.r, clearColor.g, clearColor.b, clearColor.a); + this->m_States.clear.clearColor = { clearColor.r, clearColor.g, clearColor.b, clearColor.a }; + } +} + +void GLSDLDevice::SetClearDepth(double clearDepth) { + if (this->m_States.clear.clearDepth != clearDepth) { + glClearDepth(clearDepth); + this->m_States.clear.clearDepth = clearDepth; + } +} + +void GLSDLDevice::SetClearStencil(int32_t clearStencil) { + if (this->m_States.clear.clearStencil != clearStencil) { + glClearStencil(clearStencil); + this->m_States.clear.clearStencil = clearStencil; + } +} + +void GLSDLDevice::SetColorWriteMask(bool red, bool green, bool blue, bool alpha, uint32_t index) { + if ( + this->m_States.blend.colorMask[index].red != red + || this->m_States.blend.colorMask[index].green != green + || this->m_States.blend.colorMask[index].blue != blue + || this->m_States.blend.colorMask[index].alpha != alpha + ) { + if (GLSDLDevice::m_ExtColorMaskIndexed) { + glColorMaskIndexedEXT(index, red, green, blue, alpha); + } else if (index == 0) { + glColorMask(red, green, blue, alpha); + } + + this->m_States.blend.colorMask[index].red = red; + this->m_States.blend.colorMask[index].green = green; + this->m_States.blend.colorMask[index].blue = blue; + this->m_States.blend.colorMask[index].alpha = alpha; + } +} + +void GLSDLDevice::SetCullMode(GLEnum cullMode) { + if (this->m_States.rasterizer.cullMode != cullMode) { + if (cullMode) { + if (cullMode - GL_CW <= 1) { + glEnable(GL_CULL_FACE); + glFrontFace(cullMode); + } + + this->m_States.rasterizer.cullMode = cullMode; + } else { + glDisable(GL_CULL_FACE); + this->m_States.rasterizer.cullMode = 0; + } + } +} + +void GLSDLDevice::SetDepthBias(float constantBias, float slopeScaledBias) { + // TODO +} + +void GLSDLDevice::SetDepthTestEnable(bool enable) { + if (this->m_States.depth.testEnable != enable) { + if (enable) { + glEnable(GL_DEPTH_TEST); + } else { + glDisable(GL_DEPTH_TEST); + } + + this->m_States.depth.testEnable = enable; + } +} + +void GLSDLDevice::SetDepthTestFunc(GLEnum func) { + if (this->m_States.depth.compareFunc != func) { + glDepthFunc(func); + this->m_States.depth.compareFunc = func; + } +} + +void GLSDLDevice::SetDepthWriteMask(bool enable) { + if (this->m_States.depth.writeMask != enable) { + glDepthMask(enable); + this->m_States.depth.writeMask = enable; + } +} + +void GLSDLDevice::SetDisplay(uint32_t width, uint32_t height, GLTextureFormat colorFormat, GLTextureFormat depthFormat, uint32_t refreshRate, bool windowed, bool captureDisplay, uint32_t sampleCount) { + // uint32_t v9 = a9; + + // if (this->m_PBOPool) { + // // TODO + // // this->m_PBOPool->Flush(1); + // } + + // if (a9 > 7) { + // uint32_t v10; + + // if (a7) { + // // CGDirectDisplayID mainDisplay = CGMainDisplayID(); + // // CGRect bounds = CGDisplayBounds(mainDisplay); + // // CGFloat boundsWidth = CGRectGetWidth(bounds); + // // CGFloat boundsHeight = CGRectGetHeight(bounds); + + // // v10 = std::floor(boundsWidth) * std::floor(boundsHeight); + // } else { + // v10 = width * height; + // } + + // if (v10 >= 2304001) { + // v9 = 6; + // } + // } + + // if (this->m_Context.m_Window) { + // // TODO + // // - callback related... set to default callbacks? + // // (this->m_Context.m_Window + 84)(); + // } + + // if (a7) { + // if (this->m_Context.m_Window) { + // this->m_Context.m_Window->Resize(width, height); + // } + + // this->m_Context.SetWindow(this->m_Context.m_Window, 0); + // } else { + // this->m_Context.SetFullscreenMode(width, height, a6, a8); + // } + + GLSDLWindowRect newRect; + newRect.size.width = width; + newRect.size.height = height; + + this->m_Window->Resize(newRect); + + this->ResetBackbuffer(width, height, colorFormat, depthFormat, sampleCount); + + // if (this->m_Context.m_Window) { + // // TODO + // // - set active callbacks to callbacks + // // (this->m_Context.m_Window + 88)(); + // } +} + +void GLSDLDevice::SetFogColor(float r, float g, float b, float a) { + if ( + this->m_States.fixedFunc.fogColor.r != r + || this->m_States.fixedFunc.fogColor.g != g + || this->m_States.fixedFunc.fogColor.b != b + || this->m_States.fixedFunc.fogColor.a != a + ) { + this->m_States.fixedFunc.fogColor.r = r; + this->m_States.fixedFunc.fogColor.g = g; + this->m_States.fixedFunc.fogColor.b = b; + this->m_States.fixedFunc.fogColor.a = a; + + glFogfv(GL_FOG_COLOR, reinterpret_cast(&this->m_States.fixedFunc.fogColor)); + + // TODO logic related to a renderer info value + } +} + +void GLSDLDevice::SetFogEnable(bool enable) { + if (this->m_States.fixedFunc.fogEnable != enable) { + if (enable) { + glEnable(GL_FOG); + } else { + glDisable(GL_FOG); + } + + this->m_States.fixedFunc.fogEnable = enable; + } +} + +void GLSDLDevice::SetFogParam(GLEnum param, float value) { + if (param == GL_FOG_START) { + if (this->m_States.fixedFunc.fogStart != value) { + glFogf(GL_FOG_START, value); + this->m_States.fixedFunc.fogStart = value; + } + } else if (param == GL_FOG_END) { + if (this->m_States.fixedFunc.fogEnd != value) { + glFogf(GL_FOG_END, value); + this->m_States.fixedFunc.fogEnd = value; + } + } else if (param == GL_FOG_DENSITY) { + if (this->m_States.fixedFunc.fogDensity != value) { + glFogf(GL_FOG_DENSITY, value); + this->m_States.fixedFunc.fogDensity = value; + } + } else { + BLIZZARD_ASSERT(false); + } +} + +void GLSDLDevice::SetIndexBuffer(GLBuffer* buffer) { + BLIZZARD_ASSERT(buffer == nullptr || buffer->m_IndexFormat != GL_ZERO); + this->m_DefaultVertexArrayObject.m_Properties.m_IndexBuffer = buffer; +} + +void GLSDLDevice::SetLightingEnable(bool enable) { + if (this->m_States.fixedFunc.lighting.enable != enable) { + if (enable) { + glEnable(GL_LIGHTING); + } else { + glDisable(GL_LIGHTING); + } + + this->m_States.fixedFunc.lighting.enable = enable; + } +} + +void GLSDLDevice::SetModelView(GLEnum transform) { + if (transform == 'VIEW') { + // TODO + return; + } + + if (transform == 'WRLD') { + // TODO + return; + } + + if (transform != GL_MODELVIEW) { + BLIZZARD_ASSERT(false); + } + + auto& world = this->m_States.fixedFunc.transforms.world; + auto& view = this->m_States.fixedFunc.transforms.view; + auto& modelView = this->m_States.fixedFunc.transforms.modelView; + + if (this->m_States.fixedFunc.transforms.modelviewStatus != transform || modelView.isDirty) { + if (world.isIdentity && view.isIdentity) { + modelView.isIdentity = true; + modelView.isDirty = true; + } else if (world.isIdentity) { + modelView = view; + modelView.isIdentity = false; + modelView.isDirty = true; + } else if (view.isIdentity) { + modelView = world; + modelView.isIdentity = false; + modelView.isDirty = true; + } else { + // TODO assign model * view to modelView + BLIZZARD_ASSERT(!"Unimplemented"); + } + + if (this->m_States.fixedFunc.transforms.matrixMode != GL_MODELVIEW) { + glMatrixMode(GL_MODELVIEW); + this->m_States.fixedFunc.transforms.matrixMode = GL_MODELVIEW; + } + + if (modelView.isIdentity) { + glLoadIdentity(); + } else { + glLoadMatrixf(modelView.m); + } + + this->m_States.fixedFunc.transforms.modelviewStatus = transform; + } +} + +void GLSDLDevice::SetScissor(bool a2, const GLRect& a3) { + // TODO +} + +void GLSDLDevice::SetShader(GLShader::ShaderType shaderType, GLShader* shader) { + if (shader) { + if (shader->var18) { + // TODO + } + + BLIZZARD_ASSERT(shader->IsEnabled()); + BLIZZARD_ASSERT(shader->GetShaderType() == shaderType); + + this->BindShader(shader); + } + + int32_t enable = shader != nullptr; + + if (shaderType == GLShader::eVertexShader) { + if (this->m_States.shader.vertexShaderEnable != enable) { + if (enable) { + glEnable(GL_VERTEX_PROGRAM_ARB); + } else { + glDisable(GL_VERTEX_PROGRAM_ARB); + } + + this->m_States.shader.vertexShaderEnable = enable; + } + + this->m_VertexShader = shader; + } else if (shaderType == GLShader::ePixelShader) { + if (this->m_States.shader.pixelShaderEnable != enable) { + if (enable) { + glEnable(GL_FRAGMENT_PROGRAM_ARB); + } else { + glDisable(GL_FRAGMENT_PROGRAM_ARB); + } + + this->m_States.shader.pixelShaderEnable = enable; + } + + this->m_PixelShader = shader; + } else { + BLIZZARD_ASSERT(!"Unknown shader type!"); + } +} + +void GLSDLDevice::SetShaderConstants(GLShader::ShaderType shaderType, uint32_t index, const float* constants, uint32_t count) { + BLIZZARD_ASSERT(count != 0); + + GLShader* shader = nullptr; + + if (shaderType == GLShader::eVertexShader) { + shader = this->m_VertexShader; + } else if (shaderType == GLShader::ePixelShader) { + shader = this->m_PixelShader; + } + + if (GLSDLDevice::m_ShaderConstantBindings) { + if (!shader) { + return; + } + + if (shader && shader->var10) { + shader->SetShaderConstants(shaderType, index, constants, count); + return; + } + } + + this->SetShaderConstantsInternal(shaderType, index, constants, count); +} + +void GLSDLDevice::SetShaderConstantsInternal(GLShader::ShaderType shaderType, uint32_t index, const float* constants, uint32_t count) { + if (shaderType == GLShader::eVertexShader) { + BLIZZARD_ASSERT((index + count) <= std::extentm_States.shader.vertexShaderConst)>::value); + + memcpy(&this->m_States.shader.vertexShaderConst[index], constants, (sizeof(float) * 4) * count); + + BLIZZARD_ASSERT(index <= 0xFFFF); + BLIZZARD_ASSERT(count <= 0xFFFF); + + uint16_t start = std::min(static_cast(index), this->m_DirtyVertexShaderConsts.start); + uint16_t end = std::max(static_cast(index + count), this->m_DirtyVertexShaderConsts.end); + + this->m_DirtyVertexShaderConsts.start = start; + this->m_DirtyVertexShaderConsts.end = end; + } else if (shaderType == GLShader::ePixelShader) { + BLIZZARD_ASSERT((index + count) <= std::extentm_States.shader.pixelShaderConst)>::value); + + memcpy(&this->m_States.shader.pixelShaderConst[index], constants, (sizeof(float) * 4) * count); + + BLIZZARD_ASSERT(index <= 0xFFFF); + BLIZZARD_ASSERT(count <= 0xFFFF); + + uint16_t start = std::min(static_cast(index), this->m_DirtyPixelShaderConsts.start); + uint16_t end = std::max(static_cast(index + count), this->m_DirtyPixelShaderConsts.end); + + this->m_DirtyPixelShaderConsts.start = start; + this->m_DirtyPixelShaderConsts.end = end; + } else { + // TODO + // BLIZZARD_ASSERT(false, "Unknown shader type %d!", shaderType); + } +} + +void GLSDLDevice::SetTexture(uint32_t stage, GLTexture* texture) { + if (stage > 15) { + BLIZZARD_ASSERT(!"setting an unsupported texture stage to a non-NULL texture"); + } + + BLIZZARD_ASSERT(texture == nullptr || texture->IsValid()); + + uint32_t textureID = 0; + GLEnum textureType = GL_TEXTURE_2D; + + if (this->m_Textures[stage]) { + textureType = this->m_Textures[stage]->m_TextureType; + } + + if (texture) { + textureID = texture->m_TextureID; + textureType = texture->m_TextureType; + } + + uint32_t index = GLSDLTextureTypeToIndex(textureType); + + if (this->m_States.binding.texture[index][stage] != textureID) { + this->SetActiveTexture(stage); + + if (texture) { + texture->Bind(this, 1); + } else { + this->BindTexture(textureType, nullptr); + } + } + + this->m_Textures[stage] = texture; +} + +void GLSDLDevice::SetTransform(GLEnum transform, const float* a3) { + GLTransform* t; + + if (transform == 'VIEW') { + t = &this->m_States.fixedFunc.transforms.view; + } else if (transform == 'WRLD') { + t = &this->m_States.fixedFunc.transforms.world; + } else if (transform == GL_PROJECTION) { + t = &this->m_States.fixedFunc.transforms.projection; + } else if (transform >= GL_TEXTURE0 && transform <= GL_TEXTURE7) { + t = &this->m_States.fixedFunc.transforms.texture[transform - GL_TEXTURE0]; + } else { + BLIZZARD_ASSERT(false); + } + + if (*t != a3) { + t->Set(a3); + } + + if (t->isDirty) { + if (transform == 'VIEW' || transform == 'WRLD') { + this->m_States.fixedFunc.transforms.modelView.isDirty = true; + } + } +} + +void GLSDLDevice::SetUnpackClientStorage(bool enable) { + // TODO + // Blizzard::Debug::Assert(!this->IsUsingPBO() || enable == GL_FALSE); + + if (this->m_States.misc.unpackClientStorage != enable) { + // glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, enable); + this->m_States.misc.unpackClientStorage = enable; + } +} + +void GLSDLDevice::SetVertexBuffer(uint32_t index, GLBuffer* buffer, uint32_t offset, uint32_t stride) { + BLIZZARD_ASSERT(index < GL_MAX_STREAM); + BLIZZARD_ASSERT(buffer == nullptr || buffer->m_IndexFormat == GL_ZERO); + + auto properties = &this->m_DefaultVertexArrayObject.m_Properties; + properties->m_VertexBuffer[index] = buffer; + properties->m_VertexBufferOffset[index] = offset; + properties->m_VertexBufferStride[index] = stride; +} + +void GLSDLDevice::SetVertexFormat(GLVertexFormat* format) { + BLIZZARD_ASSERT(format->m_Size <= kMAX_VERTEX_ATTRIBS); + this->m_DefaultVertexArrayObject.m_Properties.m_VertexBufferFormat = format; +} + +void GLSDLDevice::SetViewport(const GLRect& viewport, double zNear, double zFar) { + if ( + this->m_States.rasterizer.viewport.left != viewport.left + || this->m_States.rasterizer.viewport.top != viewport.top + || this->m_States.rasterizer.viewport.width != viewport.width + || this->m_States.rasterizer.viewport.height != viewport.height + ) { + glViewport(viewport.left, viewport.top, viewport.width, viewport.height); + this->m_States.rasterizer.viewport = viewport; + } + + if ( + this->m_States.rasterizer.zNear != zNear + || this->m_States.rasterizer.zFar != zFar + ) { + glDepthRange(zNear, zFar); + this->m_States.rasterizer.zNear = zNear; + this->m_States.rasterizer.zFar = zFar; + } +} + +void GLSDLDevice::Sub34BB0(GLEnum a2, GLMipmap* a3, uint32_t index) { + if (!a3 || !this->m_UseWindowSystemBuffer) { + return; + } + + GLFramebuffer* target; + + if (a3->GetTexture() == this->m_BackBufferColor || a3->GetTexture() == this->m_BackBufferDepth || a3->GetTexture() == this->m_BackBufferStencil) { + if (this->m_CurrentTarget == this->m_SystemTarget) { + return; + } + + switch (a2) { + case GL_DEPTH_ATTACHMENT: + this->Sub34BB0(GL_DEPTH_ATTACHMENT, nullptr, 0); + this->m_CurrentTarget->Attach(nullptr, GL_DEPTH_ATTACHMENT, 0); + this->m_CurrentTargetDepth = nullptr; + this->m_CurrentDepthBuffer = nullptr; + break; + + case GL_STENCIL_ATTACHMENT: + this->Sub34BB0(GL_STENCIL_ATTACHMENT, nullptr, 0); + this->m_CurrentTarget->Attach(nullptr, GL_STENCIL_ATTACHMENT, 0); + this->m_CurrentTargetStencil = nullptr; + break; + + case GL_COLOR_ATTACHMENT0: + // TODO this->SetColorTarget(0, index); + break; + } + + target = this->m_SystemTarget; + } else { + target = this->m_FBOTarget; + } + + this->BindFramebuffer(target); +} + +void GLSDLDevice::Sub38460(bool a2) { + if (this->m_States.binding.framebuffer == 0) { + glDrawBuffer(GL_BACK); + this->m_States.misc.drawBuffers[0] = GL_BACK; + + glReadBuffer(GL_BACK); + this->m_States.misc.readBuffer = GL_BACK; + + return; + } + + if (a2) { + // TODO + + return; + } + + // TODO +} + +void GLSDLDevice::Swap() { + // if (this->m_Context.m_Window) { + // if (this->m_FlippedSystemBuffer) { + // GLRect rect = { + // 0, + // 0, + // static_cast(this->m_BackBufferColor->m_Width), + // static_cast(this->m_BackBufferColor->m_Height) + // }; + + // GLMipmap* image = this->m_BackBufferColor->GetMipmap(0, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + // this->CopyTex(0, 0, image, &rect); + // } + + // this->DrawRect(); + + // this->m_FrameNumber++; + // this->m_DrawCount = 0; + // } else { + // // glFlushRender(); + // this->m_DrawCount = 0; + // } + + this->DrawRect(); + this->m_FrameNumber++; + this->m_DrawCount = 0; +} + +void GLSDLDevice::UpdateFFPTexturing() { + // TODO +} diff --git a/src/gx/glsdl/GLSDLDevice.hpp b/src/gx/glsdl/GLSDLDevice.hpp new file mode 100644 index 0000000..fd7cd1f --- /dev/null +++ b/src/gx/glsdl/GLSDLDevice.hpp @@ -0,0 +1,190 @@ +#ifndef GX_GL_SDL_GL_SDL_DEVICE_HPP +#define GX_GL_SDL_GL_SDL_DEVICE_HPP + +#include "gx/glsdl/GL.hpp" +#include "gx/glsdl/GLSDLWindow.hpp" +#include "gx/glsdl/GLBatch.hpp" +#include "gx/glsdl/GLBufferPool.hpp" +#include "gx/glsdl/GLSDLContext.hpp" +#include "gx/glsdl/GLDebugMipmap2D.hpp" +#include "gx/glsdl/GLFramebuffer.hpp" +#include "gx/glsdl/GLGLSLProgram.hpp" +#include "gx/glsdl/GLMipmap.hpp" +#include "gx/glsdl/GLShader.hpp" +#include "gx/glsdl/GLTexture.hpp" +#include "gx/glsdl/GLTypes.hpp" +#include "gx/glsdl/GLVertexArray.hpp" +#include +#include +#include +#include +#include + +class GLSDLDevice { + public: + // Types + enum GLSDLDeviceOption { + eUseMTGL = 0, + eUseVertexArray = 1, + eUseGLSL = 2, + eCheckGLStates = 3, + eFlushBeforeDraw = 4, + eDeviceOption5 = 5, + eUseHybridShader = 6, + eDeviceOption7 = 7, + eDeviceOption8 = 8, + eShaderConstantBindings = 9 + }; + + struct RendererInfo { + uint8_t init = 0; + uint32_t vendor_id; + uint32_t renderer_id; + uint32_t max_color_attachments; + uint32_t unk36; // max clip planes + uint32_t unk100; + }; + + // Static variables + static Blizzard::Thread::TLSSlot m_CurrentDevice; + static std::vector m_Devices; + static bool m_ExtARBShadow; + static bool m_ExtColorMaskIndexed; + static RendererInfo m_RendererInfo; + static bool m_ShaderConstantBindings; + static int32_t m_StaticResourcesRefCount; + static bool m_UseHybridShader; + static GLBuffer* m_BlitQuadVBO; + static GLShader* m_DeviceShaders[]; + static GLTexture* m_DeviceTextures[]; + static GLVertexFormat m_NormalBlitVF; + static GLVertexFormat m_InvertedBlitVF; + static GLFramebuffer* m_F8330C; + + // Static functions + static GLSDLDevice* Get(); + static void Set(GLSDLDevice* device); + static void InitPools(); + static RendererInfo GetRendererInfo(); + static void InitRendererInfo(); + static void SetOption(GLSDLDeviceOption option, bool enable); + static void StaticInit(); + + // Member variables + std::string m_DebugName; + GLStates m_States; + GLTexture* m_Textures[16] = {}; + GLShader* m_PixelShader = nullptr; + GLShader* m_VertexShader = nullptr; + GLGLSLProgram* m_GLSLProgram = nullptr; + GLVertexArray* m_VertexArrayObject = &m_DefaultVertexArrayObject; + GLFramebuffer* m_SystemTarget = nullptr; + GLFramebuffer* m_FBOTarget = nullptr; + GLFramebuffer* m_CurrentTarget = nullptr; + GLMipmap* m_CurrentTargetColor[4] = {}; + GLMipmap* m_CurrentTargetDepth = nullptr; + GLMipmap* m_CurrentTargetStencil = nullptr; + GLMipmap* m_CurrentDepthBuffer = nullptr; + GLTexture2D* m_BackBufferColor = nullptr; + GLTexture2D* m_BackBufferDepth = nullptr; + GLTexture2D* m_BackBufferStencil = nullptr; + GLSDLWindow* m_Window = nullptr; + GLBufferPool* m_PBOPool = nullptr; + GLSDLContext m_Context; + GLTexture* m_BoundTextures[4][16] = {}; + GLVertexArray m_DefaultVertexArrayObject; + GLDirtyRange m_DirtyVertexShaderConsts; + GLDirtyRange m_DirtyPixelShaderConsts; + float m_ConstantDepthBias = 0.0f; + float m_SlopeScaledDepthBias = 0.0f; + bool m_Init = 0; + uint32_t m_DrawCount = 0; + uint32_t m_ID = -1; + std::list m_TextureList; + std::list::iterator m_OldestActiveTexture; + uint32_t m_TextureTotalSize = 0; + uint32_t m_FrameNumber = 1; + std::list m_DebugMipmaps; + bool m_BatchViewerEnabled = 0; + bool m_UseWindowSystemBuffer = 0; + bool m_FlippedSystemBuffer = 0; + bool m_ShaderCompiler = 0; + bool m_WorkerDevice; + GLStates m_DefaultStates; + std::vector* m_FrameBatches; + bool m_CaptureOnlyOneFrame = 0; + bool m_StopCapturingBatches = 0; + bool m_CaptureBatches = 0; + int32_t m_IndentLevel = 0; + + // Member functions + GLSDLDevice(); + void ApplyGLBindings(const GLStates& states, bool a3); + void ApplyGLStates(const GLStates& states, bool force); + void ApplyShaderConstants(); + void ApplyTransforms(); + void BindBuffer(GLBuffer* buffer, GLEnum target); + void BindFramebuffer(GLFramebuffer* framebuffer); + void BindGLSLProgram(GLGLSLProgram* a2); + void BindShader(GLShader* shader); + void BindTexture(GLEnum textureType, GLTexture* texture); + void BindVertexArray(GLVertexArray* a2); + void BlitFramebuffer(GLMipmap* src, const GLRect* srcRect, GLMipmap* dst, const GLRect* dstRect, GLEnum mask, GLEnum filter); + void CheckDepthTarget(); + void Clear(uint32_t clearMask, const GLColor4f& clearColor, double clearDepth, int32_t clearStencil); + void CopyTex(uint32_t a2, uint32_t a3, GLMipmap* dst, const GLRect* framebufferRect); + GLBuffer* CreateBuffer(GLEnum type, uint32_t a3, const void* a4, GLEnum usage, GLEnum format); + GLShader* CreateShader(GLShader::ShaderType type, const void* buf, int32_t codeLen, const char* name); + GLTexture* CreateTexture2D(uint32_t width, uint32_t height, uint32_t numMipMap, GLTextureFormat format, uint32_t flags); + GLTexture* CreateTextureCubeMap(uint32_t size, uint32_t numMipMap, GLTextureFormat format, uint32_t flags); + void Draw(GLEnum primitive, uint32_t a3, uint32_t a4); + void DrawIndexed(GLEnum primitive, uint32_t a3, uint32_t a4, uint32_t a5, uint32_t a6, uint32_t count); + void DrawRect(); + GLFramebuffer* GetCurrentTarget(); // invented name + uint32_t GetID(); + GLShader* GetShader(GLShader::ShaderType shaderType); + const GLStates::VertexArrayObject& GetVertexArrayStates(); + void GLSDLDraw(GLEnum mode, uint32_t start, uint32_t end, uint32_t a5, uint32_t a6, uint32_t count); + void Init(GLSDLWindow* a2, const char* a3, uint32_t a4); + void LoadDefaultStates(); + void ResetBackbuffer(uint32_t width, uint32_t height, GLTextureFormat colorFormat, GLTextureFormat depthFormat,uint32_t sampleCount); + void Resize(uint32_t width, uint32_t height); + void RestoreTextures(); + void SetActiveTexture(uint32_t a2); + void SetAlphaBlend(GLEnum srcBlend, GLEnum dstBlend, GLEnum blendOp); + void SetAlphaBlendEnable(bool enable); + void SetAlphaTest(GLEnum func, float ref); + void SetAlphaTestEnable(bool enable); + void SetClearColor(const GLColor4f& clearColor); + void SetClearDepth(double clearDepth); + void SetClearStencil(int32_t clearStencil); + void SetColorWriteMask(bool red, bool green, bool blue, bool alpha, uint32_t index); + void SetCullMode(GLEnum cullMode); + void SetDepthBias(float constantBias, float slopeScaledBias); + void SetDepthTestEnable(bool enable); + void SetDepthTestFunc(GLEnum func); + void SetDepthWriteMask(bool enable); + void SetDisplay(uint32_t width, uint32_t height, GLTextureFormat colorFormat, GLTextureFormat depthFormat, uint32_t refreshRate, bool windowed, bool captureDisplay, uint32_t sampleCount); + void SetFogColor(float r, float g, float b, float a); + void SetFogEnable(bool enable); + void SetFogParam(GLEnum param, float value); + void SetIndexBuffer(GLBuffer* buffer); + void SetLightingEnable(bool enable); + void SetModelView(GLEnum transform); + void SetScissor(bool a2, const GLRect& a3); + void SetShader(GLShader::ShaderType shaderType, GLShader* shader); + void SetShaderConstants(GLShader::ShaderType shaderType, uint32_t index, const float* constants, uint32_t count); + void SetShaderConstantsInternal(GLShader::ShaderType shaderType, uint32_t index, const float* constants, uint32_t count); + void SetTexture(uint32_t stage, GLTexture* texture); + void SetTransform(GLEnum transform, const float* a3); + void SetUnpackClientStorage(bool enable); + void SetVertexBuffer(uint32_t index, GLBuffer* buffer, uint32_t offset, uint32_t stride); + void SetVertexFormat(GLVertexFormat* format); + void SetViewport(const GLRect& viewport, double zNear, double zFar); + void Sub34BB0(GLEnum a2, GLMipmap* a3, uint32_t index); + void Sub38460(bool a2); + void Swap(); + void UpdateFFPTexturing(); +}; + +#endif diff --git a/src/gx/glsdl/GLSDLWindow.cpp b/src/gx/glsdl/GLSDLWindow.cpp new file mode 100644 index 0000000..2ac49af --- /dev/null +++ b/src/gx/glsdl/GLSDLWindow.cpp @@ -0,0 +1,131 @@ +#include "gx/glsdl/GLSDLWindow.hpp" + +#include + +static bool s_GLSDL_Initialized = false; + +void GLSDLWindow::Create(const char* title, const GLSDLWindowRect& rect, GLTextureFormat depthFormat, uint32_t sampleCount) { + BLIZZARD_ASSERT(this->m_sdlWindow == nullptr); + + if (!s_GLSDL_Initialized) { + // Initialize SDL video context + SDL_Init(SDL_INIT_VIDEO); + + // Set GL version profile + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); + + s_GLSDL_Initialized = true; + } + + // Set depth and stencil size according to format + uint32_t depthSize = 0; + uint32_t stencilSize = 0; + + switch (depthFormat) { + case GLTF_INVALID: + break; + case GLTF_D32: + depthSize = 32; + break; + case GLTF_D24: + depthSize = 24; + break; + case GLTF_D16: + depthSize = 16; + break; + case GLTF_D24S8: + depthSize = 24; + stencilSize = 8; + break; + default: + BLIZZARD_ASSERT(false); + break; + } + + SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, depthSize); + SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, stencilSize); + + SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8); + + // Set multisampling + if (sampleCount >= 1) { + SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, sampleCount); + SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); + } + + this->m_sdlWindow = SDL_CreateWindow( + title, + static_cast(rect.size.width), static_cast(rect.size.height), + SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE + ); + + BLIZZARD_ASSERT(this->m_sdlWindow != nullptr); +} + +void GLSDLWindow::Swap() { + SDL_GL_SwapWindow(this->m_sdlWindow); +} + +void GLSDLWindow::Destroy() { + SDL_DestroyWindow(this->m_sdlWindow); + this->m_sdlWindow = nullptr; +} + +GLSDLWindowRect GLSDLWindow::GetRect() { + // Default rectangle + GLSDLWindowRect rect; + + int origin_x = 0; + int origin_y = 0; + if (SDL_GetWindowPosition(this->m_sdlWindow, &origin_x, &origin_y) == 0) { + rect.origin.x = static_cast(origin_x); + rect.origin.y = static_cast(origin_y); + } + + int width = 0; + int height = 0; + if (SDL_GetWindowSize(this->m_sdlWindow, &width, &height) == 0) { + rect.size.width = static_cast(width); + rect.size.height = static_cast(height); + } + + return rect; +} + +GLSDLWindowRect GLSDLWindow::GetBackingRect() { + // Default rectangle + GLSDLWindowRect rect; + + // Query backing width/height + int width = 0; + int height = 0; + if (SDL_GetWindowSizeInPixels(this->m_sdlWindow, &width, &height) == 0) { + rect.size.width = static_cast(width); + rect.size.height = static_cast(height); + } + + return rect; +} + +void GLSDLWindow::Resize(const GLSDLWindowRect& rect) { + auto current = this->GetBackingRect(); + + if (current.size.width != rect.size.width || current.size.height != rect.size.width) { + auto status = SDL_SetWindowSize(this->m_sdlWindow, rect.size.width, rect.size.height); + BLIZZARD_ASSERT(status == 0); + } +} + +int32_t GLSDLWindow::GetWidth() { + return this->GetBackingRect().size.width; +} + +int32_t GLSDLWindow::GetHeight() { + return this->GetBackingRect().size.height; +} + diff --git a/src/gx/glsdl/GLSDLWindow.hpp b/src/gx/glsdl/GLSDLWindow.hpp new file mode 100644 index 0000000..40d84bb --- /dev/null +++ b/src/gx/glsdl/GLSDLWindow.hpp @@ -0,0 +1,44 @@ +#ifndef GX_GL_SDL_GL_SDL_WINDOW_HPP +#define GX_GL_SDL_GL_SDL_WINDOW_HPP + +#include +#include + +#include "gx/glsdl/GLTypes.hpp" + +class GLSDLWindowRect { + public: + struct Point { + int32_t x = 0; + int32_t y = 0; + }; + + struct Size { + int32_t width = 0; + int32_t height = 0; + }; + + Point origin; + Size size; +}; + +class GLSDLWindow { + public: + SDL_Window* m_sdlWindow = nullptr; + + // Create an SDL window with the requested OpenGL attributes + void Create(const char* title, const GLSDLWindowRect& rect, GLTextureFormat depthFormat, uint32_t sampleCount); + void Destroy(); + void Swap(); + void Resize(const GLSDLWindowRect& rect); + + GLSDLWindowRect GetRect(); + GLSDLWindowRect GetBackingRect(); + + int32_t GetWidth(); + int32_t GetHeight(); + + +}; + +#endif diff --git a/src/gx/glsdl/GLShader.cpp b/src/gx/glsdl/GLShader.cpp new file mode 100644 index 0000000..94fec2f --- /dev/null +++ b/src/gx/glsdl/GLShader.cpp @@ -0,0 +1,135 @@ +#include "gx/glsdl/GLShader.hpp" +#include "gx/glsdl/GLSDLDevice.hpp" +#include "gx/glsdl/GLPixelShader.hpp" +#include "gx/glsdl/GLPool.hpp" +#include "gx/glsdl/GLVertexShader.hpp" +#include "gx/glsdl/GL.hpp" +#include + +// TODO +// - threaded compiler support +// - glsl support +// - hybrid support +GLShader* GLShader::Create(ShaderType shaderType, bool hybrid, bool usingCG, const char* a4, const void* buf, int32_t codeLen, const char* a7, const char* name, GLShaderLogInfo* logInfo) { + const char* shaderCode = reinterpret_cast(buf); + + if (*reinterpret_cast(buf) == 'GSL1') { + BLIZZARD_ASSERT(!usingCG); + + const ShaderDataHeader header = *reinterpret_cast(buf); + + BLIZZARD_ASSERT(header.shaderType == shaderType); + BLIZZARD_ASSERT(header.size == codeLen); + BLIZZARD_ASSERT(header.codePos >= sizeof(ShaderDataHeader)); + BLIZZARD_ASSERT(header.codeSize > 0); + + shaderCode = &reinterpret_cast(buf)[header.codePos]; + } + + GLShader* shader = nullptr; + + if (shaderType == ePixelShader) { + shader = GLPixelShader::Create(); + } else if (shaderType == eVertexShader) { + shader = GLVertexShader::Create(); + } else { + // TODO + // sub_1C5E0(&v38, "Unknown shader type %d!", shaderType); + } + + shader->m_UsingCG = usingCG; + + if (usingCG) { + shader->CompileCG(a4, shaderCode, codeLen, a7, logInfo); + } else { + shader->m_Code.assign(shaderCode, codeLen); + + // TODO + // sub_5CD10(shader); + } + + return shader; +} + +bool GLShader::CheckErrorsARB(GLShaderLogInfo* logInfo) { + GLint errorPos; + + glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorPos); + const GLubyte* errorStr = glGetString(GL_PROGRAM_ERROR_STRING_ARB); + + // TODO + // Blizzard::Debug::VAssert(logInfo != 0 || errorPos == -1, errorStr); + + return errorPos == -1; +} + +void GLShader::Compile(GLShaderLogInfo* logInfo) { + this->ImmediateCompile(logInfo); +} + +void GLShader::CompileCG(const char* a2, const void* shaderCode, int32_t codeLen, const char* a5, GLShaderLogInfo* logInfo) { + // TODO +} + +void GLShader::FlushUniforms(GLGLSLProgram* program) { + // TODO +} + +std::string& GLShader::GetCode() { + return this->m_Code; +} + +int32_t GLShader::GetShaderType() { + return this->m_ShaderType; +} + +void GLShader::ImmediateCompile(GLShaderLogInfo* logInfo) { + BLIZZARD_ASSERT(!this->GetCode().empty()); + + this->m_Device = GLSDLDevice::Get(); + + if (!this->m_UsingGLSL) { + if (!this->m_ShaderID) { + if (this->m_ShaderType == eVertexShader) { + this->m_ShaderID = GLPool::Get()->GetNextName(); + } else { + this->m_ShaderID = GLPool::Get()->GetNextName(); + } + } + + this->m_Device->BindShader(this); + + const char* arbCode = this->GetCode().c_str(); + size_t arbLen = strlen(arbCode); + + glProgramStringARB(this->var5, GL_PROGRAM_FORMAT_ASCII_ARB, arbLen, arbCode); + + BLIZZARD_ASSERT(this->CheckErrorsARB(logInfo)); + } else { + // TODO + // - handle GLSL shaders + // - handle hybrid shaders + } + + if (logInfo) { + // TODO + // this->var20 = logInfo[0]; + } else { + this->var20 = 1; + } + + // TODO + // this->m_TimeStamp = Blizzard::Time::GetTimestamp(); +} + +bool GLShader::IsEnabled() { + return this->m_Enabled; +} + +void GLShader::ReleaseObject() { + // TODO +} + +void GLShader::SetShaderConstants(ShaderType shaderType, uint32_t index, const float* constants, uint32_t count) { + // TODO +} diff --git a/src/gx/glsdl/GLShader.hpp b/src/gx/glsdl/GLShader.hpp new file mode 100644 index 0000000..3ca970e --- /dev/null +++ b/src/gx/glsdl/GLShader.hpp @@ -0,0 +1,75 @@ +#ifndef GX_GL_SDL_GL_SHADER_HPP +#define GX_GL_SDL_GL_SHADER_HPP + +#include "gx/glsdl/GLObject.hpp" +#include "gx/glsdl/GLShaderInput.hpp" +#include +#include +#include + +class GLSDLDevice; +class GLGLSLProgram; +class GLShaderLogInfo; + +class GLShader : public GLObject { + public: + // Types + enum ShaderType { + eVertexShader = 1, + ePixelShader = 2, + eShaderTypeCount = 3 + }; + + struct ShaderDataHeader { + uint32_t signature; + uint32_t size; + ShaderType shaderType; + uint32_t codePos; + uint32_t codeSize; + uint32_t unk1; + uint32_t unk2; + uint32_t unk3; + }; + + // Static functions + static GLShader* Create(ShaderType, bool, bool, const char*, const void*, int32_t, const char*, const char*, GLShaderLogInfo*); + + // Member variables + int32_t m_ShaderType = 0; + int32_t var5 = 0; + uint32_t m_ShaderID = 0; + bool m_UsingCG = false; + bool m_UsingGLSL = false; + uint32_t m_UniformRegisterCount = 0; + GLShaderInput** var10 = nullptr; + float* var11 = nullptr; + bool var12 = false; + uint32_t var13 = 0; + uint32_t var14 = 0; + std::vector> var15; + std::vector> var16; + std::vector> var17; + GLShader* var18 = nullptr; + GLSDLDevice* m_Device = nullptr; + bool var20 = 0; + bool m_Enabled = true; + std::basic_string, std::allocator> m_Code; + std::basic_string, std::allocator> var23; + + // Virtual member functions + virtual void ReleaseObject(); + + // Member functions + bool CheckErrorsARB(GLShaderLogInfo*); + bool CheckErrorsGLSL(GLShaderLogInfo*); + void Compile(GLShaderLogInfo*); + void CompileCG(const char*, const void*, int32_t, const char*, GLShaderLogInfo*); + void FlushUniforms(GLGLSLProgram*); + std::string& GetCode(void); + int32_t GetShaderType(void); + void ImmediateCompile(GLShaderLogInfo*); + bool IsEnabled(void); + void SetShaderConstants(ShaderType, uint32_t, const float*, uint32_t); +}; + +#endif diff --git a/src/gx/glsdl/GLShaderInput.hpp b/src/gx/glsdl/GLShaderInput.hpp new file mode 100644 index 0000000..dca3947 --- /dev/null +++ b/src/gx/glsdl/GLShaderInput.hpp @@ -0,0 +1,33 @@ +#ifndef GX_GL_SDL_GL_SHADER_INPUT_HPP +#define GX_GL_SDL_GL_SHADER_INPUT_HPP + +#include + +class GLShader; + +class GLShaderInput { + public: + // Member variables + GLShader *m_Shader; + std::basic_string, std::allocator> m_Name; + std::basic_string, std::allocator> var2; + int16_t m_MapIndex; + int16_t var4; + int16_t var5; + int16_t m_UsedSize; + int16_t var7; + int16_t var8; + GLShaderInput *m_Parent; + int32_t var10; + int32_t var11; + int32_t var12; + int8_t m_ChildrenCount; + int8_t var14; + uint16_t var15; + int8_t var16; + int8_t m_Variability; + int8_t var18; + int8_t var19; +}; + +#endif diff --git a/src/gx/glsdl/GLTexture.cpp b/src/gx/glsdl/GLTexture.cpp new file mode 100644 index 0000000..6f0d9ff --- /dev/null +++ b/src/gx/glsdl/GLTexture.cpp @@ -0,0 +1,632 @@ +#include "gx/glsdl/GLTexture.hpp" +#include "gx/glsdl/GLSDLDevice.hpp" +#include "gx/glsdl/GLPool.hpp" +#include "gx/glsdl/GLUtil.hpp" +#include "gx/texture/CGxTex.hpp" +#include +#include +#include + +Blizzard::Thread::TLSSlot GLTexture::m_Bindings[4]; + +void* GLTexture::CreateBindings(void* ptr) { + return new std::deque>; +} + +void GLTexture::DestroyBindings(void* ptr) { + delete static_cast>*>(ptr); +} + +void GLTexture::Bind(GLSDLDevice* device, bool force) { + BLIZZARD_ASSERT(!this->IsSystemBuffer()); + BLIZZARD_ASSERT(this->m_Depth != 0); + + if (!device) { + device = GLSDLDevice::Get(); + } + + BLIZZARD_ASSERT(device != nullptr); + + auto& bindings = this->GetBindings(); + uint32_t deviceID = device->GetID(); + + if (deviceID >= bindings.size()) { + bindings.resize(deviceID + 1); + } + + bindings[deviceID].device = device; + + uint32_t currentActiveTexture = device->m_States.binding.currentActiveTexture; + + if (bindings[deviceID].boundStages[currentActiveTexture]) { + return; + } + + if (force) { + bindings[deviceID].boundStages[currentActiveTexture] = 1; + device->BindTexture(this->m_TextureType, this); + return; + } + + for (int32_t i = 0; i < 16; i++) { + if (bindings[deviceID].boundStages[i]) { + device->SetActiveTexture(i); + return; + } + } + + bindings[deviceID].boundStages[currentActiveTexture] = 1; + device->BindTexture(this->m_TextureType, this); +} + +void GLTexture::FreeTexture() { + auto device = GLSDLDevice::Get(); + + int32_t numFace = this->m_TextureType == GL_TEXTURE_CUBE_MAP ? 6 : 1; + for (int32_t face = 0; face < numFace; face++) { + if (this->m_Mipmaps[face]) { + delete[] this->m_Mipmaps[face]; + } + } + + if (this->m_Mipmaps) { + delete[] this->m_Mipmaps; + } + + this->m_Mipmaps = nullptr; + this->m_Depth = 0; + + // TODO this->Sub690D0(); + + glDeleteTextures(1, &this->m_TextureID); + + this->m_GenerateMipmaps = 0; + this->m_MaxMipmapLevel = 1000; + this->m_BaseMipmapLevel = 0; + this->m_CompareMode = 0; + + this->m_Sampler.mipmapBias = 0.0f; + this->m_Sampler.borderColor = { 0.0f, 0.0f, 0.0f, 0.0f }; + this->m_Sampler.addressModeS = GL_REPEAT; + this->m_Sampler.addressModeT = GL_REPEAT; + this->m_Sampler.addressModeR = GL_REPEAT; + this->m_Sampler.magFilterMode = GL_LINEAR; + this->m_Sampler.minFilterMode = GL_NEAREST_MIPMAP_LINEAR; + this->m_Sampler.maxAnisotropy = 1.0f; + + Blizzard::Memory::Free(this->m_Data); + this->m_Data = nullptr; + + switch (this->m_TextureType) { + case GL_TEXTURE_3D: + // TODO GLPool::GLObjectPool::Push(GLPool::m_pool + 264, this); + break; + + case GL_TEXTURE_CUBE_MAP: + // TODO GLPool::GLObjectPool::Push(GLPool::m_pool + 520, this); + break; + + case GL_TEXTURE_2D: + // TODO GLPool::GLObjectPool::Push(GLPool::m_pool + 131080, this); + break; + } +} + +std::vector& GLTexture::GetBindings() { + uint32_t index = GLSDLTextureTypeToIndex(this->m_TextureType); + + uint32_t id; + + if (index == 0) { + id = this->m_TextureID - 33; + } else if (index == 1) { + id = this->m_TextureID - 32801; + } else if (index == 2) { + id = this->m_TextureID - 32865; + } else if (index == 3) { + id = this->m_TextureID - 1; + } + + auto target = static_cast>*>( + Blizzard::Thread::RegisterLocalStorage( + &GLTexture::m_Bindings[index], + GLTexture::CreateBindings, + nullptr, + GLTexture::DestroyBindings + ) + ); + + if (id >= target->size()) { + target->resize(id + 1); + } + + return (*target)[id]; +} + +GLTextureFormat GLTexture::GetFormat() { + return this->m_Format; +} + +TextureFormatInfo& GLTexture::GetFormatInfo() { + return k_TextureFormatInfo[this->m_Format]; +} + +GLMipmap* GLTexture::GetMipmap(uint32_t level, GLEnum face) { + BLIZZARD_ASSERT(face >= GL_TEXTURE_CUBE_MAP_POSITIVE_X && face <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z); + BLIZZARD_ASSERT(level < this->m_NumMipmap); + BLIZZARD_ASSERT(this->m_Mipmaps != nullptr); + BLIZZARD_ASSERT(this->m_Mipmaps[face - GL_TEXTURE_CUBE_MAP_POSITIVE_X] != nullptr); + + return &this->m_Mipmaps[face - GL_TEXTURE_CUBE_MAP_POSITIVE_X][level]; +} + +bool GLTexture::IsRenderTarget() { + return this->m_Flags & GLTFLAG_RENDERTARGET; +} + +bool GLTexture::IsSystemBuffer() { + return this->m_Flags & GLTFLAG_SYSTEM_BUFFER; +} + +bool GLTexture::IsValid() { + return this->m_Depth; +} + +void* GLTexture::Map(uint32_t level, const GLRect* a3, uint32_t& a4, GLEnum a5) { + BLIZZARD_ASSERT(this->m_TextureType != GL_TEXTURE_3D); + + auto mipmap = this->GetMipmap(level, GL_TEXTURE_CUBE_MAP_POSITIVE_X); + a4 = mipmap->GetPitch(); + return mipmap->Map(a5, a3); +} + +void GLTexture::RecreateGLTexture() { + if (this->m_TextureType == GL_TEXTURE_RECTANGLE) { + return; + } + + bool isCubeMap = this->m_TextureType == GL_TEXTURE_CUBE_MAP; + int32_t numFace = isCubeMap ? 6 : 1; + + for (int32_t face = 0; face < numFace; face++) { + for (int32_t level = 0; level < this->m_NumMipmap; level++) { + this->m_Mipmaps[face][level].Map(GL_WRITE_ONLY, static_cast(nullptr)); + this->m_Mipmaps[face][level].Unmap(); + } + } + + glTexParameterf(this->m_TextureType, GL_TEXTURE_LOD_BIAS, this->m_Sampler.mipmapBias); + glTexParameteri(this->m_TextureType, GL_TEXTURE_WRAP_S, this->m_Sampler.addressModeS); + glTexParameteri(this->m_TextureType, GL_TEXTURE_WRAP_T, this->m_Sampler.addressModeT); + glTexParameteri(this->m_TextureType, GL_TEXTURE_WRAP_R, this->m_Sampler.addressModeR); + glTexParameteri(this->m_TextureType, GL_TEXTURE_MIN_FILTER, this->m_Sampler.minFilterMode); + glTexParameteri(this->m_TextureType, GL_TEXTURE_MAG_FILTER, this->m_Sampler.magFilterMode); + glTexParameterf(this->m_TextureType, GL_TEXTURE_MAX_ANISOTROPY_EXT, this->m_Sampler.maxAnisotropy); + glTexParameterfv(this->m_TextureType, GL_TEXTURE_BORDER_COLOR, reinterpret_cast(&this->m_Sampler.borderColor)); + glTexParameteri(this->m_TextureType, GL_TEXTURE_MAX_LEVEL, this->m_MaxMipmapLevel); + glTexParameteri(this->m_TextureType, GL_TEXTURE_BASE_LEVEL, this->m_BaseMipmapLevel); + glTexParameteri(this->m_TextureType, GL_GENERATE_MIPMAP, this->m_GenerateMipmaps); +} + +void GLTexture::ResizeMipmaps() { + BLIZZARD_ASSERT(this->m_Mipmaps == nullptr); + + int32_t numFace = this->m_TextureType == GL_TEXTURE_CUBE_MAP ? 6 : 1; + + this->m_Mipmaps = new GLMipmap*[numFace]; + + for (int32_t face = 0; face < numFace; face++) { + this->m_Mipmaps[face] = new GLMipmap[this->m_NumMipmap]; + } +} + +void GLTexture::SetAddressModeR(GLEnum mode) { + // TODO +} + +void GLTexture::SetAddressModeS(GLEnum mode) { + if (this->m_Sampler.addressModeS == mode) { + return; + } + + if (mode == GL_CLAMP_TO_EDGE) { + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_WRAP_S, mode); + this->m_Sampler.addressModeS = mode; + } else { + // Workaround for buggy GPU (possibly ATI Radeon X1900) + if (GLSDLDevice::GetRendererInfo().renderer_id == 0x21900) { + if (this->m_Width & (this->m_Width - 1)) { + return; + } + + if (this->m_Height & (this->m_Height - 1)) { + return; + } + } + + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_WRAP_S, mode); + this->m_Sampler.addressModeS = mode; + } +} + +void GLTexture::SetAddressModeT(GLEnum mode) { + if (this->m_Sampler.addressModeT == mode) { + return; + } + + if (mode == GL_CLAMP_TO_EDGE) { + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_WRAP_T, mode); + this->m_Sampler.addressModeT = mode; + } else { + // Workaround for buggy GPU (possibly ATI Radeon X1900) + if (GLSDLDevice::GetRendererInfo().renderer_id == 0x21900) { + if (this->m_Width & (this->m_Width - 1)) { + return; + } + + if (this->m_Height & (this->m_Height - 1)) { + return; + } + } + + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_WRAP_T, mode); + this->m_Sampler.addressModeT = mode; + } +} + +void GLTexture::SetBorderColor(const GLColor4f& color) { + // TODO +} + +void GLTexture::SetCompareMode(GLEnum compareMode) { + BLIZZARD_ASSERT( + this->GetFormatInfo().m_DataFormat == GL_DEPTH_COMPONENT + || this->GetFormatInfo().m_DataFormat == GL_DEPTH_STENCIL_EXT + || compareMode == GL_NONE + ); + + if (this->m_CompareMode != compareMode) { + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_COMPARE_MODE, compareMode); + this->m_CompareMode = compareMode; + } +} + +void GLTexture::SetMagFilterMode(GLEnum mode) { + if (this->m_Sampler.magFilterMode == mode) { + return; + } + + if (GLSDLDevice::GetRendererInfo().vendor_id == 2 && this->IsRenderTarget() && mode != GL_LINEAR) { + return; + } + + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_MAG_FILTER, mode); + this->m_Sampler.magFilterMode = mode; +} + +void GLTexture::SetMaxAnisotropy(int32_t maxAnisotropy) { + if (this->m_Sampler.maxAnisotropy == maxAnisotropy) { + return; + } + + this->Bind(nullptr, 0); + glTexParameterf(this->m_TextureType, GL_TEXTURE_MAX_ANISOTROPY_EXT, maxAnisotropy); + this->m_Sampler.maxAnisotropy = maxAnisotropy; +} + +void GLTexture::SetMinFilterMode(GLEnum mode) { + if (this->m_Sampler.minFilterMode == mode) { + return; + } + + if (GLSDLDevice::GetRendererInfo().vendor_id == 2 && this->IsRenderTarget() && mode != GL_LINEAR) { + return; + } + + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_MIN_FILTER, mode); + this->m_Sampler.minFilterMode = mode; +} + +void GLTexture::SetupTexture() { + BLIZZARD_ASSERT(this->m_NumMipmap == 1 || (this->m_Flags & GLTFLAG_AUTOGEN_MIPMAP) == 0); + BLIZZARD_ASSERT(!this->IsRenderTarget() || this->m_NumMipmap == 1); + BLIZZARD_ASSERT(!this->IsRenderTarget() || (this->m_Flags & GLTFLAG_READ_ACCESS) == 0); + + GLSDLDevice* device = GLSDLDevice::Get(); + + if (this->GetFormatInfo().m_IsCompressed) { + int32_t smallestDim = std::min(this->m_Width, this->m_Height); + + BLIZZARD_ASSERT(smallestDim >= 4); + + if (smallestDim == 4) { + this->m_NumMipmap = 1; + } else if (smallestDim == 8) { + this->m_NumMipmap = 2; + } else if (smallestDim == 16) { + this->m_NumMipmap = 3; + } else if (smallestDim == 32) { + this->m_NumMipmap = 4; + } else if (smallestDim == 64) { + this->m_NumMipmap = 5; + } else if (smallestDim == 128) { + this->m_NumMipmap = 6; + } else if (smallestDim == 256) { + this->m_NumMipmap = 7; + } else if (smallestDim == 512) { + this->m_NumMipmap = 8; + } else if (smallestDim == 1024) { + this->m_NumMipmap = 9; + } else if (smallestDim == 2048) { + this->m_NumMipmap = 10; + } else if (smallestDim == 4096) { + this->m_NumMipmap = 11; + } else { + int32_t i = smallestDim >> 1; + int32_t n = 0; + + while (i) { + i >>= 1; + n++; + } + + this->m_NumMipmap = n - 1; + } + } else { + int32_t largestDim = std::max(this->m_Width, this->m_Height); + + if (largestDim == 1) { + this->m_NumMipmap = 1; + } else if (largestDim == 2) { + this->m_NumMipmap = 2; + } else if (largestDim == 4) { + this->m_NumMipmap = 3; + } else if (largestDim == 8) { + this->m_NumMipmap = 4; + } else if (largestDim == 16) { + this->m_NumMipmap = 5; + } else if (largestDim == 32) { + this->m_NumMipmap = 6; + } else if (largestDim == 64) { + this->m_NumMipmap = 7; + } else if (largestDim == 128) { + this->m_NumMipmap = 8; + } else if (largestDim == 256) { + this->m_NumMipmap = 9; + } else if (largestDim == 512) { + this->m_NumMipmap = 10; + } else if (largestDim == 1024) { + this->m_NumMipmap = 11; + } else if (largestDim == 2048) { + this->m_NumMipmap = 12; + } else if (largestDim == 4096) { + this->m_NumMipmap = 13; + } else { + int32_t i = largestDim >> 1; + int32_t n = 0; + + while (i) { + i >>= 1; + n++; + } + + this->m_NumMipmap = n + 1; + } + } + + if (!(this->m_Flags & GLTFLAG_SYSTEM_BUFFER)) { + BLIZZARD_ASSERT(this->m_RequestedNumMipmaps != 0); + + this->m_NumMipmap = std::min(this->m_NumMipmap, this->m_RequestedNumMipmaps); + } + + this->var12 = this->GetFormatInfo().m_BytePerPixel * this->m_Width; + if (this->GetFormatInfo().m_IsCompressed) { + this->var12 >>= 2; + } + + this->ResizeMipmaps(); + + bool isCubeMap = this->m_TextureType == GL_TEXTURE_CUBE_MAP; + + this->m_Size = 0; + + int32_t numFace = isCubeMap ? 6 : 1; + + for (int32_t face = 0; face < numFace; face++) { + for (int32_t level = 0; level < this->m_NumMipmap; level++) { + GLMipmap* mip = this->GetMipmap(level, GL_TEXTURE_CUBE_MAP_POSITIVE_X + face); + + mip->m_Level = level; + mip->m_Texture = this; + mip->ResetSize(this->m_Width >> level, this->m_Height >> level, this->m_Depth >> level); + + this->m_Size += mip->m_Size; + } + } + + this->var7 = GLSDLDevice::m_Devices[0]->m_TextureList.begin(); + + if (this->m_Flags & GLTFLAG_SYSTEM_BUFFER) { + return; + } + + BLIZZARD_ASSERT(this->m_Data == nullptr); + + if (!this->IsRenderTarget()) { + this->m_Data = static_cast(Blizzard::Memory::Allocate(this->m_Size)); + } + + this->Bind(nullptr, 0); + + if (this->IsRenderTarget()) { + this->SetAddressModeR(GL_CLAMP_TO_EDGE); + this->SetAddressModeS(GL_CLAMP_TO_EDGE); + this->SetAddressModeT(GL_CLAMP_TO_EDGE); + this->SetMinFilterMode(GL_LINEAR); + this->SetMagFilterMode(GL_LINEAR); + + // glTexParameteri(this->m_TextureType, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_CACHED_APPLE); + } else { + this->SetAddressModeR(GL_REPEAT); + this->SetAddressModeS(GL_REPEAT); + this->SetAddressModeT(GL_REPEAT); + this->SetMinFilterMode(GL_NEAREST_MIPMAP_NEAREST); + this->SetMagFilterMode(GL_NEAREST); + } + + if (this->GetFormatInfo().m_DataFormat == GL_DEPTH_COMPONENT || this->GetFormatInfo().m_DataFormat == GL_DEPTH_STENCIL) { + this->SetCompareMode(GLSDLDevice::m_ExtARBShadow >= 1 ? GL_COMPARE_R_TO_TEXTURE : 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_COMPARE_FUNC, GL_LEQUAL); + glTexParameteri(this->m_TextureType, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE); + } else { + this->SetCompareMode(0); + } + + this->SetMaxAnisotropy(1); + + this->SetBorderColor(GLColor4f::ZERO); + + int32_t autogenMipmap = this->m_Flags & GLTFLAG_AUTOGEN_MIPMAP; + if (autogenMipmap != this->m_GenerateMipmaps) { + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_GENERATE_MIPMAP, autogenMipmap); + this->m_GenerateMipmaps = autogenMipmap; + } + + int32_t maxMipmapLevel = this->m_NumMipmap - 1; + if (maxMipmapLevel != this->m_MaxMipmapLevel) { + this->Bind(nullptr, 0); + glTexParameteri(this->m_TextureType, GL_TEXTURE_MAX_LEVEL, maxMipmapLevel); + this->m_MaxMipmapLevel = maxMipmapLevel; + } + + if (this->m_TextureType == GL_TEXTURE_RECTANGLE) { + return; + } + + if (this->IsRenderTarget()) { + device->SetUnpackClientStorage(0); + } + + unsigned char* data = reinterpret_cast(this->m_Data); + + for (int32_t face = 0; face < numFace; face++) { + for (int32_t level = 0; level < this->m_NumMipmap; level++) { + GLMipmap* mip = this->GetMipmap(level, GL_TEXTURE_CUBE_MAP_POSITIVE_X + face); + + if (this->m_TextureType == GL_TEXTURE_CUBE_MAP) { + mip->ResetData(face, level, data); + } else { + mip->ResetData(this->m_TextureType, level, data); + } + + if (data) { + data += mip->m_Size; + } + } + } + + // TODO + // this->m_TimeStamp = Blizzard::Time::GetTimestamp(); + + if (this->IsRenderTarget()) { + device->SetUnpackClientStorage(1); + } +} + +void GLTexture::Unbind(GLSDLDevice* device, uint32_t stage) { + auto& bindings = this->GetBindings(); + + BLIZZARD_ASSERT(device->GetID() < bindings.size()); + BLIZZARD_ASSERT(bindings[device->GetID()].device == device); + BLIZZARD_ASSERT(bindings[device->GetID()].boundStages[stage]); + + bindings[device->GetID()].boundStages[stage] = 0; +} + +void GLTexture::Unmap(uint32_t level, GLEnum face) { + auto mipmap = this->GetMipmap(level, face); + mipmap->Unmap(); +} + +GLTexture2D* GLTexture2D::Create(uint32_t width, uint32_t height, uint32_t numMipMap, GLTextureFormat format, uint32_t flags) { + GLTexture2D* tex; + + // TODO + // tex = GLPool::GLObjectPool::Pop(GLPool::m_pool + 131080); + tex = nullptr; + + if (!tex) { + tex = new GLTexture2D(); + } + + // TODO + // Blizzard::Debug::Assert(tex->m_refCount == 0); + + tex->m_RefCount = 1; + + // TODO + // Blizzard::Debug::Assert(tex->m_TextureID >= PoolStats::NAME_POOL_FIRST_NAME); + + tex->m_TextureType = GL_TEXTURE_2D; + tex->m_Width = width; + tex->m_Depth = 1; + tex->m_Height = height; + tex->m_Format = format; + tex->m_NumMipmap = numMipMap; + tex->m_RequestedNumMipmaps = numMipMap; + tex->m_Flags = flags; + + tex->SetupTexture(); + + return tex; +} + +GLTexture2D::GLTexture2D() : GLTexture() { + this->m_TextureType = GL_TEXTURE_2D; + this->m_TextureID = GLPool::Get()->GetNextName(); + + // TODO + // Blizzard::Debug::Assert(this->m_TextureID >= PoolStats::NAME_POOL_FIRST_NAME); +} + +void GLTexture2D::ReleaseObject() { + BLIZZARD_ASSERT(this->m_TextureType == GL_TEXTURE_2D); + this->FreeTexture(); +} + +void GLSDLTexSetFlags(CGxTex* texId, GLTexture* a2) { + static GLEnum convertMagFilterToOgl[] = { + GL_NEAREST, + GL_LINEAR, + GL_NEAREST, + GL_LINEAR, + GL_LINEAR, + GL_LINEAR + }; + + static GLEnum convertMinFilterToOgl[] = { + GL_NEAREST, + GL_LINEAR, + GL_NEAREST_MIPMAP_NEAREST, + GL_LINEAR_MIPMAP_NEAREST, + GL_LINEAR_MIPMAP_LINEAR, + GL_LINEAR_MIPMAP_LINEAR + }; + + a2->SetMagFilterMode(convertMagFilterToOgl[texId->m_flags.m_filter]); + a2->SetMinFilterMode(convertMinFilterToOgl[texId->m_flags.m_filter]); + + a2->SetAddressModeS(texId->m_flags.m_wrapU ? GL_REPEAT : GL_CLAMP_TO_EDGE); + a2->SetAddressModeT(texId->m_flags.m_wrapV ? GL_REPEAT : GL_CLAMP_TO_EDGE); + + a2->SetMaxAnisotropy(texId->m_flags.m_maxAnisotropy); +} diff --git a/src/gx/glsdl/GLTexture.hpp b/src/gx/glsdl/GLTexture.hpp new file mode 100644 index 0000000..00832fb --- /dev/null +++ b/src/gx/glsdl/GLTexture.hpp @@ -0,0 +1,101 @@ +#ifndef GX_GL_SDL_GL_TEXTURE_HPP +#define GX_GL_SDL_GL_TEXTURE_HPP + +#include "gx/glsdl/GL.hpp" +#include "gx/glsdl/GLObject.hpp" +#include "gx/glsdl/GLTypes.hpp" +#include +#include +#include +#include + +#define GLTFLAG_RENDERTARGET 0x1 +#define GLTFLAG_DEPTH 0x2 +#define GLTFLAG_STENCIL 0x4 +#define GLTFLAG_AUTOGEN_MIPMAP 0x8 +#define GLTFLAG_READ_ACCESS 0x10 +#define GLTFLAG_SYSTEM_BUFFER 0x20 + +class CGxTex; +class GLMipmap; +class GLSDLDevice; + +class GLTexture : public GLObject { + public: + // Types + struct Binding { + uint8_t boundStages[16]; + GLSDLDevice* device; + }; + + // Static variables + static Blizzard::Thread::TLSSlot m_Bindings[4]; + + // Static functions + static void* CreateBindings(void*); + static void DestroyBindings(void*); + + // Member variables + uint32_t m_TextureID = 0; + GLEnum m_TextureType = 0; + GLMipmap** m_Mipmaps = nullptr; + std::list::iterator var7; + uint32_t m_LastFrameUsed; + uint32_t m_Width = 0; + uint32_t m_Height = 0; + uint32_t m_Depth = 0; + uint32_t var12 = 0; + uint32_t m_Size = 0; + GLTextureFormat m_Format = GLTF_INVALID; + uint32_t m_Flags = 0; + uint32_t m_NumMipmap = 0; + uint32_t m_RequestedNumMipmaps; + char* m_Data = nullptr; + std::atomic m_MappedMipmaps = { 0 }; + GLStates::Sampler m_Sampler; + bool m_GenerateMipmaps = 0; + int32_t m_MaxMipmapLevel = 1000; + int32_t m_BaseMipmapLevel = 0; + int32_t m_CompareMode = 0; + + // Member functions + void Bind(GLSDLDevice*, bool); + void FreeTexture(); + std::vector& GetBindings(void); // invented name + GLTextureFormat GetFormat(void); + TextureFormatInfo& GetFormatInfo(void); + GLMipmap* GetMipmap(uint32_t, GLEnum); + bool IsRenderTarget(void); + bool IsSystemBuffer(void); + bool IsValid(void); + void* Map(uint32_t, const GLRect*, uint32_t&, GLEnum); + void RecreateGLTexture(void); + void ResizeMipmaps(void); + void SetAddressModeR(GLEnum); + void SetAddressModeS(GLEnum); + void SetAddressModeT(GLEnum); + void SetBorderColor(const GLColor4f&); + void SetCompareMode(GLEnum); + void SetMagFilterMode(GLEnum); + void SetMaxAnisotropy(int32_t); + void SetMinFilterMode(GLEnum); + void SetupTexture(void); + void Unbind(GLSDLDevice*, uint32_t); // invented name + void Unmap(uint32_t level, GLEnum face); +}; + +class GLTexture2D : public GLTexture { + public: + // Static functions + static GLTexture2D* Create(uint32_t, uint32_t, uint32_t, GLTextureFormat, uint32_t); + + // Virtual member functions + virtual void ReleaseObject(); + + // Member functions + GLTexture2D(); +}; + +void GLSDLTexSetFlags(CGxTex*, GLTexture*); + +#endif diff --git a/src/gx/glsdl/GLTypes.cpp b/src/gx/glsdl/GLTypes.cpp new file mode 100644 index 0000000..82dd7d2 --- /dev/null +++ b/src/gx/glsdl/GLTypes.cpp @@ -0,0 +1,58 @@ +#include "gx/glsdl/GLTypes.hpp" +#include + +GLColor4f GLColor4f::ZERO = { 0.0, 0.0, 0.0, 0.0 }; +GLColor4f GLColor4f::WHITE = { 1.0, 1.0, 1.0, 1.0 }; +GLColor4f GLColor4f::BLACK = { 0.0, 0.0, 0.0, 1.0 }; + +bool GLTransform::operator==(const float m[16]) const { + return this->m[0] == m[0] + && this->m[1] == m[1] + && this->m[2] == m[2] + && this->m[3] == m[3] + && this->m[4] == m[4] + && this->m[5] == m[5] + && this->m[6] == m[6] + && this->m[7] == m[7] + && this->m[8] == m[8] + && this->m[9] == m[9] + && this->m[10] == m[10] + && this->m[11] == m[11] + && this->m[12] == m[12] + && this->m[13] == m[13] + && this->m[14] == m[14] + && this->m[15] == m[15]; +} + +bool GLTransform::operator!=(const float m[16]) const { + return !(*this == m); +} + +void GLTransform::Set(const float m[16]) { + memcpy(this->m, m, sizeof(this->m)); + this->isDirty = true; + this->isIdentity = this->a0 == 1.0f + && this->a1 == 0.0f + && this->a2 == 0.0f + && this->a3 == 0.0f + && this->b0 == 0.0f + && this->b1 == 1.0f + && this->b2 == 0.0f + && this->b3 == 0.0f + && this->c0 == 0.0f + && this->c1 == 0.0f + && this->c2 == 1.0f + && this->c3 == 0.0f + && this->d0 == 0.0f + && this->d1 == 0.0f + && this->d2 == 0.0f + && this->d3 == 1.0f; +} + +void GLTransform::SetIdentity() { + memset(this->m, 0, sizeof(this->m)); + this->a0 = 1.0f; + this->b1 = 1.0f; + this->c2 = 1.0f; + this->d3 = 1.0f; +} diff --git a/src/gx/glsdl/GLTypes.hpp b/src/gx/glsdl/GLTypes.hpp new file mode 100644 index 0000000..0df1480 --- /dev/null +++ b/src/gx/glsdl/GLTypes.hpp @@ -0,0 +1,376 @@ +#ifndef GX_GL_SDL_GL_TYPES_HPP +#define GX_GL_SDL_GL_TYPES_HPP + +#include + +#include + +class GLBuffer; +class GLFramebuffer; + +enum GLTextureFormat { + GLTF_INVALID = 0, + GLTF_ARGB8888 = 1, + GLTF_XRGB8888 = 2, + GLTF_RGBA8888 = 3, + GLTF_ABGR8888 = 4, + GLTF_ARGB0888 = 5, + GLTF_RGB888 = 6, + GLTF_BGR888 = 7, + GLTF_RGBA32F = 8, + GLTF_RGBA16F = 9, + GLTF_RG16F = 10, + GLTF_D32 = 11, + GLTF_D24 = 12, + GLTF_D16 = 13, + GLTF_DF = 14, + GLTF_D24S8 = 15, + GLTF_S8 = 16, + GLTF_ARGB4444 = 17, + GLTF_ARGB1555 = 18, + GLTF_ARGB0555 = 19, + GLTF_RGB565 = 20, + GLTF_A2RGB10 = 21, + GLTF_RGB16 = 22, + GLTF_L8 = 23, + GLTF_A8 = 24, + GLTF_A8L8 = 25, + GLTF_DXT1 = 26, + GLTF_DXT3 = 27, + GLTF_DXT5 = 28, + GLTF_NUM_TEXTURE_FORMATS = 29 +}; + +enum GLVertexType { + GLVT_INVALID = 0, + GLVT_FLOAT1 = 1, + GLVT_FLOAT2 = 2, + GLVT_FLOAT3 = 3, + GLVT_FLOAT4 = 4, + GLVT_UBYTE4 = 5, + GLVT_UBYTE4N = 6, + GLVT_SHORT = 7, + GLVT_SHORT2 = 8, + GLVT_SHORT4 = 9, + GLVT_SHORT2N = 10, + GLVT_SHORT4N = 11, + GLVT_USHORT2N = 12, + GLVT_USHORT4N = 13, + GLVT_NUM_VERTEX_TYPES = 14 +}; + +enum GLBufferType { + eGLBT_PIXEL_UNPACK = 3, +}; + +struct GLAttachPoint { + GLFramebuffer* framebuffer; + int32_t point; // TODO GLenum? + int32_t zOffset; // TODO check type +}; + +struct GLBox { + int32_t left; + int32_t top; + int32_t front; + int32_t width; + int32_t height; + int32_t depth; +}; + +struct GLColor4f { + float r; + float g; + float b; + float a; + + static GLColor4f ZERO; + static GLColor4f WHITE; + static GLColor4f BLACK; +}; + +struct GLDirtyRange { + uint16_t start; + uint16_t end; +}; + +struct GLfloat4 { + float x; + float y; + float z; + float w; +}; + +struct GLRect { + int32_t left; + int32_t top; + int32_t width; + int32_t height; +}; + +struct GLTransform { + bool isDirty; + + union { + struct { + float a0; + float a1; + float a2; + float a3; + float b0; + float b1; + float b2; + float b3; + float c0; + float c1; + float c2; + float c3; + float d0; + float d1; + float d2; + float d3; + }; + + struct { + float rows[4][4]; + }; + + float m[16]; + }; + + bool isIdentity; + + bool operator==(const float m[16]) const; + bool operator!=(const float m[16]) const; + void Set(const float m[16]); + void SetIdentity(); +}; + +struct GLStates { + struct Depth { + bool testEnable; + int32_t compareFunc; + bool writeMask; + }; + + struct Stencil { + struct StencilFace { + int32_t compareFunc; + int32_t opFail; + int32_t opZFail; + int32_t opZPass; + }; + + bool testEnable; + int32_t ref; + uint32_t mask; + uint32_t writeMask; + bool useTwoSidedStencil; + StencilFace front; + StencilFace back; + }; + + struct Rasterizer { + struct ClipPlane { + double plane[4]; + }; + + int32_t cullMode; + int32_t cullFaceMode; + int32_t fillMode; + float constantDepthBias; + float slopeScaledDepthBias; + GLRect viewport; + double zNear; + double zFar; + bool scissorEnable; + GLRect scissor; + uint32_t clipPlaneMask; + ClipPlane clipPlanes[6]; + }; + + struct Blend { + struct ColorMask { + bool red; + bool green; + bool blue; + bool alpha; + }; + + ColorMask colorMask[4]; + bool alphaBlend; + int32_t srcBlendFactor; + int32_t destBlendFactor; + int32_t blendOp; + GLColor4f blendColor; + }; + + struct Clear { + GLColor4f clearColor; + double clearDepth; + int32_t clearStencil; + }; + + struct FixedFunc { + struct TexOp { + int32_t texturing; + GLColor4f constant; + int32_t colorOp; + float colorScale; + int32_t colorArg0; + int32_t colorArg1; + int32_t colorArg2; + int32_t alphaOp; + float alphaScale; + int32_t alphaArg0; + int32_t alphaArg1; + int32_t alphaArg2; + }; + + struct Light { + bool enable; + GLfloat4 position; + GLTransform view; + float constantAttenuation; + float linearAttenuation; + float quadraticAttenuation; + GLColor4f ambient; + GLColor4f diffuse; + GLColor4f specular; + }; + + struct Material { + bool colorTracking; + int32_t materialSource; + GLColor4f ambient; + GLColor4f diffuse; + GLColor4f specular; + float shininess; + GLColor4f emission; + }; + + struct Lighting { + bool enable; + GLColor4f sceneAmbient; + Light lights[8]; + Material material; + }; + + struct Transforms { + int32_t matrixMode; + int32_t modelviewStatus; + GLTransform modelView; + GLTransform world; + GLTransform view; + GLTransform projection; + GLTransform texture[8]; + }; + + struct TexGen { + int32_t S; + int32_t T; + int32_t R; + int32_t Q; + }; + + struct PointSprite { + bool enable; + float size; + float attenuation[3]; + float min; + float max; + }; + + bool fogEnable; + GLColor4f fogColor; + int32_t fogMode; + float fogStart; + float fogEnd; + float fogDensity; + bool alphaTestEnable; + int32_t alphaTestFunc; + float alphaTestRef; + TexOp texOp[8]; + Lighting lighting; + Transforms transforms; + int32_t texCoordIndex[8]; + TexGen texGen[8]; + PointSprite pointSprite; + bool normalizeNormal; + }; + + struct Sampler { + float mipmapBias; + int32_t addressModeS; + int32_t addressModeT; + int32_t addressModeR; + int32_t magFilterMode; + int32_t minFilterMode; + float maxAnisotropy; + GLColor4f borderColor; + }; + + struct Shader { + bool vertexShaderEnable; + GLfloat4 vertexShaderConst[256]; + bool pixelShaderEnable; + GLfloat4 pixelShaderConst[64]; + }; + + struct Binding { + uint32_t currentActiveTexture; + uint32_t texture[4][16]; + uint32_t framebuffer; + uint32_t renderbuffer; + uint32_t vertexProgram; + uint32_t pixelProgram; + uint32_t glslProgram; + uint32_t vertexArrayObject; + }; + + struct Misc { + bool unpackClientStorage; + int32_t drawBuffers[4]; + int32_t readBuffer; + }; + + struct VertexArrayObject { + struct VertexAttrib { + bool enable = 0; + uint32_t size = 4; + int32_t type = GL_FLOAT; + bool normalized = 0; + uint32_t stride = 0; + void* offset = nullptr; + GLBuffer* buffer = nullptr; + }; + + uint32_t buffers[4] = {}; + VertexAttrib vertexAttribs[16]; + VertexAttrib position; + VertexAttrib normal; + VertexAttrib color0; + VertexAttrib color1; + VertexAttrib texCoord[8]; + }; + + Depth depth; + Stencil stencil; + Rasterizer rasterizer; + Blend blend; + Clear clear; + FixedFunc fixedFunc; + Sampler samplers[16]; + Shader shader; + Binding binding; + Misc misc; +}; + +struct GLVertexAttrib { + uint32_t stream; + int32_t slot; + int32_t type; + uint32_t offset; +}; + +#endif diff --git a/src/gx/glsdl/GLUtil.cpp b/src/gx/glsdl/GLUtil.cpp new file mode 100644 index 0000000..c57b3e4 --- /dev/null +++ b/src/gx/glsdl/GLUtil.cpp @@ -0,0 +1,22 @@ +#include "gx/glsdl/GLUtil.hpp" +#include + +uint32_t GLSDLTextureTypeToIndex(GLEnum textureType) { + uint32_t index; + + if (textureType == GL_TEXTURE_2D) { + index = 0; + } else if (textureType == GL_TEXTURE_3D) { + index = 1; + } else if (textureType == GL_TEXTURE_CUBE_MAP) { + index = 2; + } else if (textureType == GL_TEXTURE_RECTANGLE) { + index = 3; + } else { + index = 5; + + BLIZZARD_ASSERT(false); + } + + return index; +} diff --git a/src/gx/glsdl/GLUtil.hpp b/src/gx/glsdl/GLUtil.hpp new file mode 100644 index 0000000..425f75c --- /dev/null +++ b/src/gx/glsdl/GLUtil.hpp @@ -0,0 +1,9 @@ +#ifndef GX_GL_SDL_GL_UTIL_HPP +#define GX_GL_SDL_GL_UTIL_HPP + +#include "gx/glsdl/GL.hpp" +#include + +uint32_t GLSDLTextureTypeToIndex(GLEnum textureType); + +#endif diff --git a/src/gx/glsdl/GLVertexArray.cpp b/src/gx/glsdl/GLVertexArray.cpp new file mode 100644 index 0000000..d7841f8 --- /dev/null +++ b/src/gx/glsdl/GLVertexArray.cpp @@ -0,0 +1,316 @@ +#include "gx/glsdl/GLVertexArray.hpp" +#include "gx/glsdl/GLSDLDevice.hpp" +#include + +bool GLVertexArray::s_VertexArrayEnable = false; + +GLVertexArray::GLVertexArray(bool a2) { + // TODO +} + +void GLVertexArray::FindVertexArray(GLSDLDevice* a1, GLVertexArray& a2) { + if (GLVertexArray::s_VertexArrayEnable) { + // TODO + } + + a2.ApplyVertexFormat(a1); +} + +void GLVertexArray::ApplyGLStates(GLStates::VertexArrayObject& vao) { + GLSDLDevice* device = GLSDLDevice::Get(); + + device->BindVertexArray(this); + + for (int32_t i = 0; i < kMAX_VERTEX_ATTRIBS; i++) { + auto& attrib = vao.vertexAttribs[i]; + + if (attrib.enable) { + glBindBuffer(attrib.buffer->m_Type, attrib.buffer->m_BufferID); + + glVertexAttribPointerARB( + i, + attrib.size, + attrib.type, + attrib.normalized, + attrib.stride, + reinterpret_cast(attrib.offset) + ); + + glEnableVertexAttribArrayARB(i); + } else { + glDisableVertexAttribArrayARB(i); + } + } + + if (vao.position.enable) { + glBindBuffer(vao.position.buffer->m_Type, vao.position.buffer->m_BufferID); + glVertexPointer(vao.position.size, vao.position.type, vao.position.stride, vao.position.offset); + glEnableClientState(GL_VERTEX_ARRAY); + } else { + glDisableClientState(GL_VERTEX_ARRAY); + } + + if (vao.normal.enable) { + glBindBuffer(vao.normal.buffer->m_Type, vao.normal.buffer->m_BufferID); + glNormalPointer(vao.normal.type, vao.normal.stride, vao.normal.offset); + glEnableClientState(GL_NORMAL_ARRAY); + } else { + glDisableClientState(GL_NORMAL_ARRAY); + } + + if (vao.color0.enable) { + glBindBuffer(vao.color0.buffer->m_Type, vao.color0.buffer->m_BufferID); + glColorPointer(vao.color0.size, vao.color0.type, vao.color0.stride, vao.color0.offset); + glEnableClientState(GL_COLOR_ARRAY); + } else { + glDisableClientState(GL_COLOR_ARRAY); + } + + if (vao.color1.enable) { + glBindBuffer(vao.color1.buffer->m_Type, vao.color1.buffer->m_BufferID); + glColorPointer(vao.color1.size, vao.color1.type, vao.color1.stride, vao.color1.offset); + glEnableClientState(GL_SECONDARY_COLOR_ARRAY); + } else { + glDisableClientState(GL_SECONDARY_COLOR_ARRAY); + } + + for (int32_t i = 0; i < 8; i++) { + glClientActiveTextureARB(GL_TEXTURE0 + i); + + if (vao.texCoord[i].enable) { + glBindBuffer(vao.texCoord[i].buffer->m_Type, vao.texCoord[0].buffer->m_BufferID); + glTexCoordPointer(vao.texCoord[i].size, vao.texCoord[i].type, vao.texCoord[i].stride, vao.texCoord[i].offset); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + } else { + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + } + } + + glBindBuffer(GL_ARRAY_BUFFER, vao.buffers[0]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vao.buffers[1]); + glBindBuffer(GL_PIXEL_PACK_BUFFER, vao.buffers[2]); + glBindBuffer(GL_PIXEL_UNPACK_BUFFER, vao.buffers[3]); + + this->m_GLStates = vao; +} + +void GLVertexArray::ApplyVertexFormat(GLSDLDevice* device) { + if (GLVertexArray::s_VertexArrayEnable) { + device->BindVertexArray(this); + } + + auto indexBuffer = this->m_Properties.m_IndexBuffer; + uint32_t indexBufferID = indexBuffer ? indexBuffer->m_BufferID : 0; + + if (this->m_GLStates.buffers[1] != indexBufferID) { + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBufferID); + this->m_GLStates.buffers[1] = indexBufferID; + } + + BLIZZARD_ASSERT(this->GetProperties().m_VertexBufferFormat != nullptr); + + auto& properties = this->GetProperties(); + bool attribEnable[16] = {}; + + bool useVertexShader = device->GetShader(GLShader::eVertexShader) != nullptr; + + for (int32_t index = 0; index < this->GetProperties().m_VertexBufferFormat->m_Size; index++) { + BLIZZARD_ASSERT(index < kMAX_VERTEX_ATTRIBS); + + auto& attrib = this->GetProperties().m_VertexBufferFormat->m_Attribs[index]; + + BLIZZARD_ASSERT(attrib.type != GLVT_INVALID); + BLIZZARD_ASSERT(attrib.type < GLVT_NUM_VERTEX_TYPES); + + auto vertexBuffer = this->GetProperties().m_VertexBuffer[attrib.stream]; + + if (useVertexShader || static_cast(attrib.slot - 1) > 1) { + if (this->m_GLStates.buffers[0] != vertexBuffer->m_BufferID) { + glBindBuffer(vertexBuffer->m_Type, vertexBuffer->m_BufferID); + this->m_GLStates.buffers[0] = vertexBuffer->m_BufferID; + } + + attribEnable[attrib.slot] = 1; + + int32_t stride = properties.m_VertexBufferStride[attrib.stream]; + int32_t offset = attrib.offset + + properties.m_VertexBufferOffset[attrib.stream] + + properties.m_VertexBase * stride; + + if (useVertexShader) { + glVertexAttribPointerARB( + attrib.slot, + k_VertexTypeInfo[attrib.type].m_Size, + k_VertexTypeInfo[attrib.type].m_Type, + k_VertexTypeInfo[attrib.type].m_Normalized, + stride, + reinterpret_cast(offset) + ); + } else { + switch (attrib.slot) { + case 0: { + glVertexPointer( + k_VertexTypeInfo[attrib.type].m_Size, + k_VertexTypeInfo[attrib.type].m_Type, + stride, + reinterpret_cast(offset) + ); + + break; + } + + case 3: { + glNormalPointer( + k_VertexTypeInfo[attrib.type].m_Type, + stride, + reinterpret_cast(offset) + ); + + break; + } + + case 4: { + glColorPointer( + k_VertexTypeInfo[attrib.type].m_Size, + k_VertexTypeInfo[attrib.type].m_Type, + stride, + reinterpret_cast(offset) + ); + + break; + } + + case 5: { + glSecondaryColorPointer( + k_VertexTypeInfo[attrib.type].m_Size, + k_VertexTypeInfo[attrib.type].m_Type, + stride, + reinterpret_cast(offset) + ); + + break; + } + + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: { + auto tmu = attrib.slot - 6; + auto texCoordIndex = device->m_States.fixedFunc.texCoordIndex[tmu]; + glClientActiveTextureARB(GL_TEXTURE0 + texCoordIndex); + glTexCoordPointer( + k_VertexTypeInfo[attrib.type].m_Size, + k_VertexTypeInfo[attrib.type].m_Type, + stride, + reinterpret_cast(offset) + ); + + break; + } + } + } + } + } + + for (int32_t s = 0; s < 16; s++) { + // Shader + if (useVertexShader) { + auto prevAttribEnable = &this->m_GLStates.vertexAttribs[s].enable; + + if (*prevAttribEnable != attribEnable[s]) { + if (attribEnable[s]) { + glEnableVertexAttribArrayARB(s); + } else { + glDisableVertexAttribArrayARB(s); + } + } + + *prevAttribEnable = attribEnable[s]; + + // FFP + } else { + bool* prevAttribEnable = nullptr; + GLenum glArray = GL_NONE; + + switch (s) { + case 0: { + prevAttribEnable = &this->m_GLStates.position.enable; + glArray = GL_VERTEX_ARRAY; + + break; + } + + case 3: { + prevAttribEnable = &this->m_GLStates.normal.enable; + glArray = GL_NORMAL_ARRAY; + + break; + } + + case 4: { + prevAttribEnable = &this->m_GLStates.color0.enable; + glArray = GL_COLOR_ARRAY; + + break; + } + + case 5: { + prevAttribEnable = &this->m_GLStates.color1.enable; + glArray = GL_SECONDARY_COLOR_ARRAY; + + break; + } + + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: { + auto tmu = s - 6; + auto texCoordIndex = device->m_States.fixedFunc.texCoordIndex[tmu]; + + prevAttribEnable = &this->m_GLStates.texCoord[texCoordIndex].enable; + glArray = GL_TEXTURE_COORD_ARRAY; + + glClientActiveTextureARB(GL_TEXTURE0 + texCoordIndex); + + break; + } + + default: + break; + } + + if (prevAttribEnable) { + if (*prevAttribEnable != attribEnable[s]) { + if (attribEnable[s]) { + glEnableClientState(glArray); + } else { + glDisableClientState(glArray); + } + } + + *prevAttribEnable = attribEnable[s]; + } + } + } + + if (!useVertexShader) { + // TODO device->SetColorMaterial(this->m_GLStates.color0.enable); + } +} + +GLVertexArray::Properties& GLVertexArray::GetProperties() { + return this->m_Properties; +} + +void GLVertexArray::ReleaseObject() { + // TODO +} diff --git a/src/gx/glsdl/GLVertexArray.hpp b/src/gx/glsdl/GLVertexArray.hpp new file mode 100644 index 0000000..49eae5d --- /dev/null +++ b/src/gx/glsdl/GLVertexArray.hpp @@ -0,0 +1,46 @@ +#ifndef GX_GL_SDL_GL_VERTEX_ARRAY_HPP +#define GX_GL_SDL_GL_VERTEX_ARRAY_HPP + +#include "gx/glsdl/GLBuffer.hpp" +#include "gx/glsdl/GLObject.hpp" +#include "gx/glsdl/GLVertexFormat.hpp" +#include + +class GLSDLDevice; + +class GLVertexArray : public GLObject { + public: + // Types + struct Properties { + GLVertexFormat* m_VertexBufferFormat = nullptr; + GLBuffer* m_IndexBuffer = nullptr; + GLBuffer* m_PixelPackBuffer = nullptr; + GLBuffer* m_PixelUnpackBuffer = nullptr; + GLBuffer* m_VertexBuffer[4] = {}; + uint32_t m_VertexBase = 0; + uint32_t m_VertexBufferOffset[4] = {}; + uint32_t m_VertexBufferStride[4] = {}; + }; + + // Static variables + static bool s_VertexArrayEnable; + + // Static functions + static void FindVertexArray(GLSDLDevice*, GLVertexArray&); + + // Member variables + Properties m_Properties; + GLStates::VertexArrayObject m_GLStates; + uint32_t m_VertexArrayID = 0; + + // Virtual member functions + virtual void ReleaseObject(); + + // Member functions + GLVertexArray(bool); + void ApplyGLStates(GLStates::VertexArrayObject&); + void ApplyVertexFormat(GLSDLDevice*); + Properties& GetProperties(void); +}; + +#endif diff --git a/src/gx/glsdl/GLVertexFormat.hpp b/src/gx/glsdl/GLVertexFormat.hpp new file mode 100644 index 0000000..5c14b6e --- /dev/null +++ b/src/gx/glsdl/GLVertexFormat.hpp @@ -0,0 +1,13 @@ +#ifndef GX_GL_SDL_GL_VERTEX_FORMAT_HPP +#define GX_GL_SDL_GL_VERTEX_FORMAT_HPP + +#include "gx/glsdl/GLTypes.hpp" +#include + +class GLVertexFormat { + public: + uint32_t m_Size; + GLVertexAttrib m_Attribs[16]; +}; + +#endif diff --git a/src/gx/glsdl/GLVertexShader.cpp b/src/gx/glsdl/GLVertexShader.cpp new file mode 100644 index 0000000..89e0ebd --- /dev/null +++ b/src/gx/glsdl/GLVertexShader.cpp @@ -0,0 +1,17 @@ +#include "gx/glsdl/GLVertexShader.hpp" +#include "gx/glsdl/GL.hpp" + +GLVertexShader* GLVertexShader::Create() { + // TODO + // GLPool stuff + + GLVertexShader* shader = new GLVertexShader(); + + shader->m_ShaderID = 0; + shader->m_RefCount = 1; + shader->m_ShaderType = eVertexShader; + shader->m_UsingGLSL = 0; + shader->var5 = GL_VERTEX_PROGRAM_ARB; + + return shader; +} diff --git a/src/gx/glsdl/GLVertexShader.hpp b/src/gx/glsdl/GLVertexShader.hpp new file mode 100644 index 0000000..511abe3 --- /dev/null +++ b/src/gx/glsdl/GLVertexShader.hpp @@ -0,0 +1,12 @@ +#ifndef GX_GL_SDL_GL_VERTEX_SHADER_HPP +#define GX_GL_SDL_GL_VERTEX_SHADER_HPP + +#include "gx/glsdl/GLShader.hpp" + +class GLVertexShader : public GLShader { + public: + // Static functions + static GLVertexShader* Create(void); +}; + +#endif diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index a813247..904ca92 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -1,6 +1,16 @@ add_subdirectory(freetype-2.0.9) add_subdirectory(lua-5.1.3) +if (WHOA_SYSTEM_WIN OR WHOA_SYSTEM_LINUX) + set(SDL_SHARED OFF) + set(SDL_STATIC ON) + add_subdirectory(sdl-3.0.0) + + set(glew-cmake_BUILD_SHARED OFF) + set(glew-cmake_BUILD_STATIC ON) + add_subdirectory(glew-cmake-2.2.0) +endif() + # FMOD Ex set(FMODEX_DIR "./fmodex-4.32.09") add_library(fmodex SHARED IMPORTED) diff --git a/vendor/glew-cmake-2.2.0/.gitattributes b/vendor/glew-cmake-2.2.0/.gitattributes new file mode 100644 index 0000000..100a05f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/.gitattributes @@ -0,0 +1,6 @@ +* text eol=lf +*.png binary +*.pdf binary +build/*/* text eol=crlf +CMakeLists.txt text eol=lf +build/cmake/* text eol=lf diff --git a/vendor/glew-cmake-2.2.0/.github/workflows/cmake.yml b/vendor/glew-cmake-2.2.0/.github/workflows/cmake.yml new file mode 100644 index 0000000..5719ce4 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/.github/workflows/cmake.yml @@ -0,0 +1,217 @@ +name: CMake + +on: + pull_request: + branches: + - master + types: + - opened + - synchronize + - reopened + push: + branches: + - master + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + container: ubuntu:latest + + steps: + - uses: actions/checkout@v2 + + - name: Install dependencies + run: apt update && DEBIAN_FRONTEND=noninteractive apt install -y cmake gcc g++ libglu1-mesa-dev pkg-config libx11-dev libxext-dev + + - name: Create Build Environment + # Some projects don't allow in-source building, so create a separate build directory + # We'll use this as our working directory for all subsequent commands + run: | + mkdir build_test + mkdir from_installed + mkdir pkg-config + mkdir as_subdirectory + + - name: Configure CMake + # Use a bash shell so we can use the same syntax for environment variable + # access regardless of the host operating system + shell: bash + working-directory: build_test + # Note the current convention is to use the -S and -B options here to specify source + # and build directories, but this is only available with CMake 3.13 and higher. + # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE + + - name: Build test + working-directory: build_test + shell: bash + # Execute the build. You can specify a specific target with "--target " + run: cmake --build . --config $BUILD_TYPE + + - name: Install test + shell: bash + working-directory: from_installed + run: | + mkdir -p ext_project/build + cp $GITHUB_WORKSPACE/src/glewinfo.c ext_project/ + cmake $GITHUB_WORKSPACE -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/glew-root-cmake + cmake --build . --target install + + cd ext_project + cp $GITHUB_WORKSPACE/glew-cmake/cmake-install-test.cmake CMakeLists.txt + cmake -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/glew-root-cmake/ . + cmake --build . + + - name: Package config test + shell: bash + working-directory: pkg-config + run: | + mkdir -p ext_project + cp $GITHUB_WORKSPACE/src/glewinfo.c ext_project/ + cmake $GITHUB_WORKSPACE -DPKG_CONFIG_REPRESENTATIVE_TARGET=libglew_static -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/glew-root-pkg-config + cmake --build . --target install + + cd ext_project + gcc $GITHUB_WORKSPACE/src/glewinfo.c $(PKG_CONFIG_PATH=$GITHUB_WORKSPACE/glew-root-pkg-config/lib/pkgconfig pkg-config --libs --cflags glew) -o glewinfo + + - name: Subdirectory test + shell: bash + working-directory: as_subdirectory + run: | + cp $GITHUB_WORKSPACE/src/glewinfo.c ./ + cp $GITHUB_WORKSPACE/glew-cmake/sub-directory-test.cmake CMakeLists.txt + cmake . + cmake --build . + + build_2_8: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + container: ubuntu:14.04 + + steps: + - uses: actions/checkout@v2 + + - name: Install dependencies + run: apt update && apt install -y cmake gcc libgl1-mesa-dev libx11-dev libxext-dev + + - name: Configure CMake + shell: bash + run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE + + - name: Build test + shell: bash + run: cmake --build . + + - name: Check alias + shell: bash + run: test -e lib/libGLEW.a + + build_3_10: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + container: ubuntu:18.04 + + steps: + - uses: actions/checkout@v2 + + - name: Install dependencies + run: apt update && apt install -y cmake gcc libgl1-mesa-dev libx11-dev libxext-dev + + - name: Configure CMake + shell: bash + run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE + + - name: Build test + shell: bash + run: cmake --build . + + - name: Check alias + shell: bash + run: test -e lib/libGLEW.a + + build_latest: + runs-on: ubuntu-latest + container: ubuntu:latest + + steps: + - uses: actions/checkout@v2 + + - name: Install dependencies + run: apt update && apt install -y python3 python3-pip gcc libgl1-mesa-dev libx11-dev libxext-dev && pip install cmake + + - name: Configure CMake + shell: bash + run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE + + - name: Build test + shell: bash + run: cmake --build . + + - name: Check alias + shell: bash + run: test -e lib/libGLEW.a + + build_mingw: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + container: ubuntu:18.04 + + steps: + - uses: actions/checkout@v2 + + - name: Install dependencies + run: apt update && apt install -y cmake g++-mingw-w64-x86-64 make libgl1-mesa-dev libx11-dev libxext-dev + + - name: Configure CMake + shell: bash + run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE="$GITHUB_WORKSPACE/glew-cmake/mingw.cmake" + + - name: Build test + shell: bash + run: cmake --build . + + + build_mac: + runs-on: macos-latest + + steps: + - uses: actions/checkout@v2 + + - name: Configure CMake + shell: bash + run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE + + - name: Build test + shell: bash + run: cmake --build . + + build_windows: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + + - name: Configure CMake + shell: bash + run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE + + - name: Build test + shell: bash + run: cmake --build . diff --git a/vendor/glew-cmake-2.2.0/.gitignore b/vendor/glew-cmake-2.2.0/.gitignore new file mode 100644 index 0000000..95d86b1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/.gitignore @@ -0,0 +1,25 @@ +*.pc +/src/*.c +/include/GL/*.h +/build/vc6/*.rc +/build/*.rc +/build/*/*.sdf +/build/*/*.suo +/build/*/*.db +/build/*/*.vcxproj.user +/build/*/.vs/ +/build/*/tmp/ +/build/cmake/CMakeFiles/ +/build/cmake/CMakeCache.txt +/build/cmake/cmake_install.cmake +/build/cmake/Makefile +/auto/extensions +/auto/registry +/bin +/lib +/tmp +/out +.DS_Store* +auto/EGL-Registry +auto/OpenGL-Registry +auto/glfixes diff --git a/vendor/glew-cmake-2.2.0/.lgtm.yml b/vendor/glew-cmake-2.2.0/.lgtm.yml new file mode 100644 index 0000000..6bd850c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/.lgtm.yml @@ -0,0 +1,12 @@ +extraction: + cpp: + prepare: + packages: + - "build-essential" + - "libxmu-dev" + - "libxi-dev" + - "libgl-dev" + index: + build_command: + - "cd auto; make all -j8; cd .." + - "make all -j8" diff --git a/vendor/glew-cmake-2.2.0/.travis.yml b/vendor/glew-cmake-2.2.0/.travis.yml new file mode 100644 index 0000000..f2424a2 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/.travis.yml @@ -0,0 +1,27 @@ +language: cpp +dist: trusty +install: +script: +- make -C auto clobber +- make extensions +- make dist-src +- make clean && SYSTEM=linux make +- make clean && SYSTEM=linux-osmesa make +- make clean && SYSTEM=linux-egl make +- make clean && SYSTEM=linux-clang make +- make clean && SYSTEM=linux-clang-egl make +- pushd build/cmake && git clean -xdf . && cmake -G 'Unix Makefiles' . && make && popd +- pushd build/cmake && git clean -xdf . && cmake -G 'Unix Makefiles' -DGLEW_OSMESA=ON . && make && popd +- pushd build/cmake && git clean -xdf . && cmake -G 'Unix Makefiles' -DGLEW_EGL=ON -DGLEW_X11=OFF . && make && popd +addons: + apt: + packages: + - git + - cmake + - dos2unix + - libosmesa6-dev + - libegl1-mesa-dev + artifacts: + paths: + - $(ls *.zip *.tgz | tr "\n" ":") + - $(find doc -type f | tr "\n" ":") diff --git a/vendor/glew-cmake-2.2.0/CMakeLists.txt b/vendor/glew-cmake-2.2.0/CMakeLists.txt new file mode 100644 index 0000000..8e92afa --- /dev/null +++ b/vendor/glew-cmake-2.2.0/CMakeLists.txt @@ -0,0 +1,287 @@ +cmake_minimum_required(VERSION 2.8.12...3.5) + +file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/config/version _VERSION_MAJOR_STRING REGEX "GLEW_MAJOR[ ]*=[ ]*[0-9]+.*") +string(REGEX REPLACE "GLEW_MAJOR[ ]*=[ ]*([0-9]+)" "\\1" MAJOR_VERSION ${_VERSION_MAJOR_STRING}) +file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/config/version _VERSION_MINOR_STRING REGEX "GLEW_MINOR[ ]*=[ ]*[0-9]+.*") +string(REGEX REPLACE "GLEW_MINOR[ ]*=[ ]*([0-9]+)" "\\1" MINOR_VERSION ${_VERSION_MINOR_STRING}) +file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/config/version _VERSION_PATCH_STRING REGEX "GLEW_MICRO[ ]*=[ ]*[0-9]+.*") +string(REGEX REPLACE "GLEW_MICRO[ ]*=[ ]*([0-9]+)" "\\1" PATCH_VERSION ${_VERSION_PATCH_STRING}) +set(GLEW_VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}) + +if(NOT CMAKE_VERSION VERSION_LESS 3.0) + cmake_policy(SET CMP0048 NEW) + project("glew" VERSION ${GLEW_VERSION} LANGUAGES C) +else() + project("glew" C) + set(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION}) + set(CPACK_PACKAGE_VERSION_MINOR ${MAJOR_VERSION}) + set(CPACK_PACKAGE_VERSION_PATCH ${MAJOR_VERSION}) +endif() + +set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) +set(INCLUDE_DIR "$$") +set(RC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build) + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) + +include("GeneratePkgConfig.cmake") + +if (POLICY CMP0077) + cmake_policy(SET CMP0077 NEW) +endif() + +option(glew-cmake_BUILD_SHARED "Build the shared glew library" ON) +option(glew-cmake_BUILD_STATIC "Build the static glew library" ON) +option(USE_GLU "Use GLU" OFF) +option(GLEW_OSMESA "Off-screen Mesa mode" OFF) +option(PKG_CONFIG_REPRESENTATIVE_TARGET "Generate pc file for specified target as glew. libglew_static|libglew_shared" OFF) +option(ONLY_LIBS "Do not build executables" OFF) + +set(LIBGLEW_SRCS ${SRC_DIR}/glew.c) + +set(DEFINITIONS) +if(WIN32) + list(APPEND DEFINITIONS -DWIN32_MEAN_AND_LEAN -DVC_EXTRALEAN -D_CRT_SECURE_NO_WARNINGS) +endif() + +if(MSVC) + list(APPEND LIBGLEW_SRCS ${RC_DIR}/glew.rc) +endif() + +# Use namespaced libraries when supported +if(NOT CMAKE_VERSION VERSION_LESS 3.14) + set(USE_NAMESPACED_LIB YES) +else() + set(USE_NAMESPACED_LIB NO) +endif() + +if(POLICY CMP0028) + cmake_policy(SET CMP0028 NEW) +endif() + +if(POLICY CMP0042) + cmake_policy(SET CMP0042 NEW) +endif() + +if(POLICY CMP0072) + set(OpenGL_GL_PREFERENCE GLVND) +endif() + +if(NOT (WIN32 OR APPLE)) + message("Try to find OpenGL with GLVND") + find_package(OpenGL REQUIRED + COMPONENTS OpenGL GLX) +endif() + +if(OPENGL_FOUND AND OpenGL_GLX_FOUND AND TARGET OpenGL::OpenGL) + set(USE_GLVND YES) +else() + message("GLVND not supported. Try find OpenGL legacy") + find_package(OpenGL REQUIRED) + set(USE_GLVND NO) +endif() + +set(pc_requires) + +if(NOT USE_GLU) + list(APPEND DEFINITIONS -DGLEW_NO_GLU) +else() + if(NOT OPENGL_GLU_FOUND) + message(FATAL_ERROR "GLU is not found. but GLU option is enabled") + endif() + + list(APPEND pc_requires glu) + + if(USE_NAMESPACED_LIB) + list(APPEND LIBRARIES OpenGL::GLU) + else() + list(APPEND LIBRARIES ${OPENGL_glu_LIBRARY}) + endif() +endif() + +list(APPEND pc_requires gl) +if(USE_NAMESPACED_LIB) + if(USE_GLVND) + list(APPEND LIBRARIES OpenGL::OpenGL) + else() + list(APPEND LIBRARIES OpenGL::GL) + endif() +else() + if(USE_GLVND) + list(APPEND LIBRARIES ${OPENGL_opengl_LIBRARY}) + else() + list(APPEND LIBRARIES ${OPENGL_gl_LIBRARY}) + endif() +endif() + +# OS Specific dependencies +if(APPLE) + find_library(AGL_LIBRARY AGL REQUIRED) + list(APPEND LIBRARIES ${AGL_LIBRARY}) +elseif(NOT WIN32) + if(GLEW_OSMESA) + find_library(OSMESA_LIBRARY OSMesa REQUIRED) + list(APPEND LIBRARIES ${OSMESA_LIBRARY}) + list(APPEND DEFINITIONS -DGLEW_OSMESA) + list(APPEND pc_requires osmesa) + else() + if(USE_GLVND) + if(NOT OpenGL_GLX_FOUND) + message(FATAL_ERROR "GLX is not found. Try with PREFER_GLVND=NO") + endif() + + if(USE_NAMESPACED_LIB) + list(APPEND LIBRARIES OpenGL::GLX) + else() + list(APPEND LIBRARIES ${OPENGL_glx_LIBRARY}) + endif() + endif() + + find_package(X11 REQUIRED) + + list(APPEND pc_requires x11 xext) + if(USE_NAMESPACED_LIB) + list(APPEND LIBRARIES X11::X11 X11::Xext) + else() + list(APPEND LIBRARIES ${X11_X11_LIB} ${X11_Xext_LIB}) + endif() + endif() +endif() + +set(GLEW_TARGETS) + +if(NOT CMAKE_INSTALL_LIBDIR) + set(INSTALL_LIBDIR lib) +else() + set(INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}) +endif() + +execute_process( + COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_BINARY_DIR}/test_fs_support_case_sensitivity + COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_BINARY_DIR}/test_fs_support_CASE_sensitivity) +file(GLOB TEST_FILE_LIST ${CMAKE_BINARY_DIR}/test_fs_support_*_sensitivity) +list(LENGTH TEST_FILE_LIST TEST_FILE_COUNT) +if(TEST_FILE_COUNT EQUAL 2) + set(SUPPORT_CASE_SENSITIVE_FS YES) +else() + set(SUPPORT_CASE_SENSITIVE_FS NO) +endif() + +function(set_representative_target TARGET) + set_target_properties(${TARGET} PROPERTIES + OUTPUT_NAME "glew" + DEBUG_POSTFIX d) + + # Windows & macOS use case-insensetive FS. do not create symbolic link + if(SUPPORT_CASE_SENSITIVE_FS) + get_target_property(TARGET_TYPE ${TARGET} TYPE) + string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER) + if(CMAKE_BUILD_TYPE_LOWER STREQUAL "debug" AND NOT ANDROID) + set(GLEW_DEBUG_SUFFIX "d") + else() + set(GLEW_DEBUG_SUFFIX "") + endif() + if(TARGET_TYPE STREQUAL STATIC_LIBRARY) + set(EXT ".a") + get_target_property(OUT_DIR ${TARGET} ARCHIVE_OUTPUT_DIRECTORY) + else() + set(EXT ".so") + get_target_property(OUT_DIR ${TARGET} LIBRARY_OUTPUT_DIRECTORY) + endif() + if(NOT ${CMAKE_VERSION} VERSION_LESS 3.0) + add_custom_command(TARGET ${TARGET} POST_BUILD + COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink libglew${GLEW_DEBUG_SUFFIX}${EXT} libGLEW${GLEW_DEBUG_SUFFIX}${EXT} + WORKING_DIRECTORY ${OUT_DIR} + BYPRODUCTS ${OUT_DIR}/libGLEW${GLEW_DEBUG_SUFFIX}${EXT} + COMMENT "create libGLEW${GLEW_DEBUG_SUFFIX} symbolic link") + else() + add_custom_command(TARGET ${TARGET} POST_BUILD + COMMAND bash ARGS -c "( test ! -e ${OUT_DIR}/libGLEW${GLEW_DEBUG_SUFFIX}${EXT} && cd ${OUT_DIR} && ${CMAKE_COMMAND} -E create_symlink libglew${GLEW_DEBUG_SUFFIX}${EXT} libGLEW${GLEW_DEBUG_SUFFIX}${EXT} ) || true" + COMMENT "create libGLEW${GLEW_DEBUG_SUFFIX} symbolic link" + VERBATIM) + endif() + + if(NOT ${CMAKE_VERSION} VERSION_LESS 3.14) + install(FILES ${OUT_DIR}/libGLEW${GLEW_DEBUG_SUFFIX}${EXT} TYPE LIB) + else() + install(FILES ${OUT_DIR}/libGLEW${GLEW_DEBUG_SUFFIX}${EXT} DESTINATION ${INSTALL_LIBDIR}) + endif() + endif() +endfunction() + +if(glew-cmake_BUILD_STATIC) + add_library(libglew_static STATIC ${LIBGLEW_SRCS}) + + set_representative_target(libglew_static) + + target_compile_definitions(libglew_static PUBLIC GLEW_STATIC) + list(APPEND GLEW_TARGETS libglew_static) +endif() + +if(glew-cmake_BUILD_SHARED) + add_library(libglew_shared SHARED ${LIBGLEW_SRCS}) + + if(glew-cmake_BUILD_STATIC) + set_target_properties(libglew_shared PROPERTIES + OUTPUT_NAME "glew-shared" + DEBUG_POSTFIX d) + else() + set_representative_target(libglew_shared) + endif() + + target_compile_definitions(libglew_shared PRIVATE GLEW_BUILD) + if(MINGW) + if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13) + target_link_options(libglew_shared PRIVATE -nostdlib) + else() + target_link_libraries(libglew_shared PRIVATE -nostdlib) + endif() + endif() + list(APPEND GLEW_TARGETS libglew_shared) +endif() + +foreach(GLEW_TARGET ${GLEW_TARGETS}) + target_compile_definitions(${GLEW_TARGET} PUBLIC ${DEFINITIONS}) + target_include_directories(${GLEW_TARGET} PUBLIC ${INCLUDE_DIR}) + target_link_libraries(${GLEW_TARGET} PUBLIC ${LIBRARIES}) + set_target_properties(${GLEW_TARGET} PROPERTIES VERSION ${GLEW_VERSION}) +endforeach() + +if(PKG_CONFIG_REPRESENTATIVE_TARGET) + GeneratePkgConfigFile(${PKG_CONFIG_REPRESENTATIVE_TARGET} "The OpenGL Extension Wrangler library" + NAME "glew" + LIBRARY_DIR ${INSTALL_LIBDIR} + REQUIRES ${pc_requires}) +endif() + +install(TARGETS ${GLEW_TARGETS} EXPORT glew-cmake + ARCHIVE DESTINATION ${INSTALL_LIBDIR} + LIBRARY DESTINATION ${INSTALL_LIBDIR}) +install(EXPORT glew-cmake DESTINATION ${INSTALL_LIBDIR}/cmake/glew FILE glewConfig.cmake) + +file(GLOB PUBLIC_HEADERS "include/GL/*.h") +install(FILES ${PUBLIC_HEADERS} DESTINATION include/GL/) + +if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR} AND NOT ONLY_LIBS) + set(GLEWINFO_SRCS ${SRC_DIR}/glewinfo.c) + set(VISUALINFO_SRCS ${SRC_DIR}/visualinfo.c) + if(MSVS) + list(APPEND GLEWINFO_SRCS ${RC_DIR}/glewinfo.rc) + list(APPEND VISUALINFO_SRCS ${RC_DIR}/visualinfo.rc) + endif() + + add_executable(glewinfo ${GLEWINFO_SRCS}) + add_executable(visualinfo ${VISUALINFO_SRCS}) + + if(glew-cmake_BUILD_STATIC) + target_link_libraries(glewinfo libglew_static) + target_link_libraries(visualinfo libglew_static) + else() + target_link_libraries(glewinfo libglew_shared) + target_link_libraries(visualinfo libglew_shared) + endif() + + install(TARGETS glewinfo visualinfo DESTINATION bin) +endif() diff --git a/vendor/glew-cmake-2.2.0/GeneratePkgConfig.cmake b/vendor/glew-cmake-2.2.0/GeneratePkgConfig.cmake new file mode 100644 index 0000000..e06f0ec --- /dev/null +++ b/vendor/glew-cmake-2.2.0/GeneratePkgConfig.cmake @@ -0,0 +1,62 @@ +function(GeneratePkgConfigFile target description) + cmake_parse_arguments(pc "" "NAME;LIBRARY_DIR" "REQUIRES" ${ARGV}) + if(NOT pc_LIBRARY_DIR) + set(pc_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}) + endif() + if(WIN32) + set(PKGCONFIG_INSTALL_DIR) + else() + set(PKGCONFIG_INSTALL_DIR ${pc_LIBRARY_DIR}/pkgconfig) + endif() + if(NOT pc_NAME) + set(pc_NAME ${target}) + endif() + + get_property(raw_definitions TARGET ${target} PROPERTY INTERFACE_COMPILE_DEFINITIONS) + set(definitions "") + foreach(def IN LISTS raw_definitions) + if(def MATCHES "-D") + list(APPEND definitions ${def}) + else() + list(APPEND definitions "-D${def}") + endif() + endforeach() + list(JOIN definitions " " definitions) + + get_property(target_output TARGET ${target} PROPERTY OUTPUT_NAME) + get_filename_component(target_output ${target_output} NAME) + set(links "-l${target_output}") + get_property(raw_links TARGET ${target} PROPERTY INTERFACE_LINK_LIBRARIES) + foreach(link IN LISTS raw_links) + if(link MATCHES "-l") + list(APPEND links ${link}) + elseif(TARGET ${link}) + get_property(is_imported TARGET ${link} PROPERTY IMPORTED) + if(NOT is_imported) + get_property(link_target TARGET ${link} PROPERTY OUTPUT_NAME) + list(APPEND links ${link_target}) + endif() + else() + list(APPEND links "-l${link}") + endif() + endforeach() + list(JOIN links " " links) + get_property(version TARGET ${target} PROPERTY VERSION) + + set(out_file "${CMAKE_CURRENT_BINARY_DIR}/${pc_NAME}.pc") + file(WRITE ${out_file} "prefix=${CMAKE_INSTALL_PREFIX}\n") + file(APPEND ${out_file} "exec_prefix=\${prefix}\n") + file(APPEND ${out_file} "libdir=\${prefix}/${pc_LIBRARY_DIR}\n") + file(APPEND ${out_file} "includedir=\${prefix}/include\n") + file(APPEND ${out_file} "\n") + file(APPEND ${out_file} "Name: ${pc_NAME}\n") + file(APPEND ${out_file} "Description: ${description}\n") + file(APPEND ${out_file} "Version: ${version}\n") + file(APPEND ${out_file} "Cflags: -I\${includedir} ${definitions}\n") + file(APPEND ${out_file} "Libs: -L\${libdir} ${links}\n") + if(pc_REQUIRES) + string(REPLACE ";" " " REQUIRES "${pc_REQUIRES}") + file(APPEND ${out_file} "Requires: ${REQUIRES}") + endif() + install(FILES ${out_file} DESTINATION "${PKGCONFIG_INSTALL_DIR}") +endfunction() diff --git a/vendor/glew-cmake-2.2.0/LICENSE.txt b/vendor/glew-cmake-2.2.0/LICENSE.txt new file mode 100644 index 0000000..f707804 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/LICENSE.txt @@ -0,0 +1,73 @@ +The OpenGL Extension Wrangler Library +Copyright (C) 2002-2007, Milan Ikits +Copyright (C) 2002-2007, 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. diff --git a/vendor/glew-cmake-2.2.0/Makefile b/vendor/glew-cmake-2.2.0/Makefile new file mode 100644 index 0000000..9a6b9ef --- /dev/null +++ b/vendor/glew-cmake-2.2.0/Makefile @@ -0,0 +1,357 @@ +#!gmake +## 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. + +include config/version + +SHELL = /bin/sh +SYSTEM ?= $(shell config/config.guess | cut -d - -f 3 | sed -e 's/[0-9\.]//g;') +SYSTEM.SUPPORTED = $(shell test -f config/Makefile.$(SYSTEM) && echo 1) + +ifeq ($(SYSTEM.SUPPORTED), 1) +include config/Makefile.$(SYSTEM) +else +$(error "Platform '$(SYSTEM)' not supported") +endif + +GLEW_PREFIX ?= /usr/local +GLEW_DEST ?= /usr/local +BINDIR ?= $(GLEW_DEST)/bin +LIBDIR ?= $(GLEW_DEST)/lib +INCDIR ?= $(GLEW_DEST)/include/GL +PKGDIR ?= $(GLEW_DEST)/lib/pkgconfig + +ifneq ($(GLEW_NO_GLU), -DGLEW_NO_GLU) +LIBGLU = glu +endif + +DIST_NAME ?= glew-$(GLEW_VERSION) +DIST_SRC_ZIP ?= $(shell pwd)/$(DIST_NAME).zip +DIST_SRC_TGZ ?= $(shell pwd)/$(DIST_NAME).tgz +DIST_WIN32 ?= $(shell pwd)/$(DIST_NAME)-win32.zip + +DIST_DIR := $(shell mktemp -d /tmp/glew.XXXXXX)/$(DIST_NAME) + +# To disable stripping of linked binaries either: +# - use STRIP= on gmake command-line +# - edit this makefile to set STRIP to the empty string +# +# To disable symlinks: +# - use LN= on gmake command-line + +AR ?= ar +ARFLAGS ?= cr +INSTALL ?= install +STRIP ?= strip +RM ?= rm -f +LN ?= ln -sf +UNIX2DOS ?= unix2dos -q +DOS2UNIX ?= dos2unix -q + +ifneq (,$(filter debug,$(MAKECMDGOALS))) +OPT = -g +STRIP := +else +OPT = $(POPT) +endif +INCLUDE = -Iinclude +CFLAGS = $(OPT) $(WARN) $(INCLUDE) $(CFLAGS.EXTRA) + +all debug: glew.lib glew.bin + +# GLEW shared and static libraries + +LIB.LDFLAGS := $(LDFLAGS.EXTRA) $(LDFLAGS.GL) +LIB.LIBS := $(GL_LDFLAGS) +LIB.SHARED.DIR ?= lib + +LIB.SRCS := src/glew.c +LIB.SRCS.NAMES := $(notdir $(LIB.SRCS)) + +LIB.OBJS := $(addprefix tmp/$(SYSTEM)/default/static/,$(LIB.SRCS.NAMES)) +LIB.OBJS := $(LIB.OBJS:.c=.o) +LIB.SOBJS := $(addprefix tmp/$(SYSTEM)/default/shared/,$(LIB.SRCS.NAMES)) +LIB.SOBJS := $(LIB.SOBJS:.c=.o) + +glew.lib: glew.lib.shared glew.lib.static + +glew.lib.shared: lib $(LIB.SHARED.DIR) $(LIB.SHARED.DIR)/$(LIB.SHARED) glew.pc +glew.lib.static: lib lib/$(LIB.STATIC) glew.pc + +.PHONY: glew.lib glew.lib.shared glew.lib.static + +lib: + mkdir lib + +lib/$(LIB.STATIC): $(LIB.OBJS) +ifneq ($(AR),) + $(AR) $(ARFLAGS) $@ $^ +else ifneq ($(LIBTOOL),) + $(LIBTOOL) $@ $^ +endif +ifneq ($(STRIP),) + $(STRIP) -x $@ +endif + +$(LIB.SHARED.DIR)/$(LIB.SHARED): $(LIB.SOBJS) + $(LD) $(LDFLAGS.SO) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS) +ifneq ($(LN),) + $(LN) $(LIB.SHARED) $(LIB.SHARED.DIR)/$(LIB.SONAME) + $(LN) $(LIB.SHARED) $(LIB.SHARED.DIR)/$(LIB.DEVLNK) +endif +ifneq ($(STRIP),) + $(STRIP) -x $@ +endif + +tmp/$(SYSTEM)/default/static/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + @mkdir -p $(dir $@) + $(CC) -DGLEW_NO_GLU -DGLEW_STATIC $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + +tmp/$(SYSTEM)/default/shared/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + @mkdir -p $(dir $@) + $(CC) -DGLEW_NO_GLU -DGLEW_BUILD $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + +# Force re-write of glew.pc, GLEW_DEST can vary + +.PHONY: glew.pc + +glew.pc: glew.pc.in + sed \ + -e "s|@prefix@|$(GLEW_PREFIX)|g" \ + -e "s|@libdir@|$(LIBDIR)|g" \ + -e "s|@exec_prefix@|$(BINDIR)|g" \ + -e "s|@includedir@|$(INCDIR)|g" \ + -e "s|@version@|$(GLEW_VERSION)|g" \ + -e "s|@cflags@||g" \ + -e "s|@libname@|$(NAME)|g" \ + -e "s|@libgl@|$(LDFLAGS.GL)|g" \ + -e "s|@requireslib@|$(LIBGLU)|g" \ + < $< > $@ + +# GLEW utility programs + +BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) + +GLEWINFO.BIN := glewinfo$(BIN.SUFFIX) +GLEWINFO.BIN.SRC := src/glewinfo.c +GLEWINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.SRC))) +GLEWINFO.BIN.OBJ := $(GLEWINFO.BIN.OBJ:.c=.o) + +VISUALINFO.BIN := visualinfo$(BIN.SUFFIX) +VISUALINFO.BIN.SRC := src/visualinfo.c +VISUALINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(VISUALINFO.BIN.SRC))) +VISUALINFO.BIN.OBJ := $(VISUALINFO.BIN.OBJ:.c=.o) + +# Don't build glewinfo or visualinfo for NaCL, yet. + +ifneq ($(filter nacl%,$(SYSTEM)),) +glew.bin: glew.lib +else +glew.bin: glew.lib bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) +endif + +bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) $(LIB.SHARED.DIR)/$(LIB.SHARED) + @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(BIN.LIBS) +ifneq ($(STRIP),) + $(STRIP) -x $@ +endif + +bin/$(VISUALINFO.BIN): $(VISUALINFO.BIN.OBJ) $(LIB.SHARED.DIR)/$(LIB.SHARED) + @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -o $@ $(VISUALINFO.BIN.OBJ) $(BIN.LIBS) +ifneq ($(STRIP),) + $(STRIP) -x $@ +endif + +$(GLEWINFO.BIN.OBJ): $(GLEWINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + @mkdir -p $(dir $@) + $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + +$(VISUALINFO.BIN.OBJ): $(VISUALINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + @mkdir -p $(dir $@) + $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + +# Install targets + +install.all: install install.bin + +install: install.include install.lib install.pkgconfig + +install.lib: glew.lib + $(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)" +# runtime +ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) + $(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)" + $(INSTALL) -m 0755 $(LIB.SHARED.DIR)/$(LIB.SHARED) "$(DESTDIR)$(BINDIR)/" +else + $(INSTALL) -m 0644 $(LIB.SHARED.DIR)/$(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/" +endif +ifneq ($(LN),) + $(LN) $(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME)" +endif + +# development files +ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) + $(INSTALL) -m 0644 lib/$(LIB.DEVLNK) "$(DESTDIR)$(LIBDIR)/" +endif +ifneq ($(LN),) + $(LN) $(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)" +endif + $(INSTALL) -m 0644 lib/$(LIB.STATIC) "$(DESTDIR)$(LIBDIR)/" + +install.bin: glew.bin + $(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)" + $(INSTALL) -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) "$(DESTDIR)$(BINDIR)/" + +install.include: + $(INSTALL) -d -m 0755 "$(DESTDIR)$(INCDIR)" + $(INSTALL) -m 0644 include/GL/wglew.h "$(DESTDIR)$(INCDIR)/" + $(INSTALL) -m 0644 include/GL/glew.h "$(DESTDIR)$(INCDIR)/" + $(INSTALL) -m 0644 include/GL/glxew.h "$(DESTDIR)$(INCDIR)/" + $(INSTALL) -m 0644 include/GL/eglew.h "$(DESTDIR)$(INCDIR)/" + +install.pkgconfig: glew.pc + $(INSTALL) -d -m 0755 "$(DESTDIR)$(PKGDIR)" + $(INSTALL) -d -m 0755 "$(DESTDIR)$(PKGDIR)" + $(INSTALL) -m 0644 glew.pc "$(DESTDIR)$(PKGDIR)/" + +uninstall: + $(RM) "$(DESTDIR)$(INCDIR)/wglew.h" + $(RM) "$(DESTDIR)$(INCDIR)/glew.h" + $(RM) "$(DESTDIR)$(INCDIR)/glxew.h" + $(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)" +ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) + $(RM) "$(DESTDIR)$(BINDIR)/$(LIB.SHARED)" +else + $(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME)" + $(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SHARED)" +endif + $(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.STATIC)" + $(RM) "$(DESTDIR)$(BINDIR)/$(GLEWINFO.BIN)" "$(DESTDIR)$(BINDIR)/$(VISUALINFO.BIN)" + +clean: + $(RM) -r tmp/ + $(RM) -r lib/ + $(RM) -r bin/ + $(RM) glew.pc + +distclean: clean + find . -name \*~ | xargs $(RM) + find . -name .\*.sw\? | xargs $(RM) + +# Distributions + +dist-win32: + $(RM) -r $(DIST_DIR) + mkdir -p $(DIST_DIR) + cp -a include $(DIST_DIR) + cp -a doc $(DIST_DIR) + cp -a *.txt $(DIST_DIR) + cp -a bin $(DIST_DIR) + cp -a lib $(DIST_DIR) + $(RM) -f $(DIST_DIR)/bin/*/*/*.pdb $(DIST_DIR)/bin/*/*/*.exp + $(RM) -f $(DIST_DIR)/bin/*/*/glewinfo-*.exe $(DIST_DIR)/bin/*/*/visualinfo-*.exe + $(RM) -f $(DIST_DIR)/lib/*/*/*.pdb $(DIST_DIR)/lib/*/*/*.exp + $(UNIX2DOS) $(DIST_DIR)/include/GL/*.h + $(UNIX2DOS) $(DIST_DIR)/doc/*.txt + $(UNIX2DOS) $(DIST_DIR)/doc/*.html + $(UNIX2DOS) $(DIST_DIR)/*.txt + rm -f $(DIST_WIN32) + cd $(DIST_DIR)/.. && zip -rq9 $(DIST_WIN32) $(DIST_NAME) + $(RM) -r $(DIST_DIR) + +dist-src: + $(RM) -r $(DIST_DIR) + mkdir -p $(DIST_DIR) + mkdir -p $(DIST_DIR)/bin + mkdir -p $(DIST_DIR)/lib + cp -a auto $(DIST_DIR) + $(RM) -Rf $(DIST_DIR)/auto/registry + $(RM) -Rf $(DIST_DIR)/auto/glfixes + $(RM) -Rf $(DIST_DIR)/auto/OpenGL-Registry + $(RM) -Rf $(DIST_DIR)/auto/EGL-Registry + cp -a build $(DIST_DIR) + cp -a config $(DIST_DIR) + cp -a src $(DIST_DIR) + cp -a doc $(DIST_DIR) + cp -a include $(DIST_DIR) + cp -a *.md $(DIST_DIR) + cp -a *.txt $(DIST_DIR) + cp -a Makefile $(DIST_DIR) + cp -a glew.pc.in $(DIST_DIR) + find $(DIST_DIR) -name '*.o' | xargs $(RM) -r + find $(DIST_DIR) -name '*~' | xargs $(RM) -r + find $(DIST_DIR) -name CVS -o -name .cvsignore | xargs $(RM) -r + find $(DIST_DIR) -name .svn | xargs $(RM) -r + find $(DIST_DIR) -name "*.patch" | xargs $(RM) -r + $(DOS2UNIX) $(DIST_DIR)/Makefile + $(DOS2UNIX) $(DIST_DIR)/auto/Makefile + $(DOS2UNIX) $(DIST_DIR)/config/* + $(UNIX2DOS) $(DIST_DIR)/auto/core/* + $(UNIX2DOS) $(DIST_DIR)/auto/extensions/* + find $(DIST_DIR) -name '*.h' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.c' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.md' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.txt' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.html' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.css' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.sh' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.pl' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name 'Makefile' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.in' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.pm' | xargs $(UNIX2DOS) + find $(DIST_DIR) -name '*.rc' | xargs $(UNIX2DOS) + rm -f $(DIST_SRC_ZIP) + cd $(DIST_DIR)/.. && zip -rq9 $(DIST_SRC_ZIP) $(DIST_NAME) + $(DOS2UNIX) $(DIST_DIR)/Makefile + $(DOS2UNIX) $(DIST_DIR)/auto/Makefile + $(DOS2UNIX) $(DIST_DIR)/config/* + $(DOS2UNIX) $(DIST_DIR)/auto/core/* + $(DOS2UNIX) $(DIST_DIR)/auto/extensions/* + find $(DIST_DIR) -name '*.h' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.c' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.md' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.txt' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.html' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.css' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.sh' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.pl' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name 'Makefile' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.in' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.pm' | xargs $(DOS2UNIX) + find $(DIST_DIR) -name '*.rc' | xargs $(DOS2UNIX) + rm -f $(DIST_SRC_TGZ) + cd $(DIST_DIR)/.. && env GZIP=-9 tar czf $(DIST_SRC_TGZ) $(DIST_NAME) + $(RM) -r $(DIST_DIR) + +extensions: + $(MAKE) -C auto + +.PHONY: clean distclean tardist dist-win32 dist-src diff --git a/vendor/glew-cmake-2.2.0/README.md b/vendor/glew-cmake-2.2.0/README.md new file mode 100644 index 0000000..838fd6f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/README.md @@ -0,0 +1,29 @@ +# GLEW-cmake - nightly pre-generated snapshot with old unofficial cmake support + +[GLEW](https://github.com/nigels-com/glew) is upstream of this project. +But *GLEW* repository does not contain generated sources. Only releases include generated sources. + +*GLEW-cmake* has generated sources based on the latest *GLEW*. Sources are generated nightly. +If you need only the latest snapshot of *GLEW*, try the build system of *GLEW*. It is placed under the `build` directory. Official `CMakeLists.txt` is placed in `build/cmake`. +Please check [README_glew.md](./README_glew.md) for using build system of *GLEW*. + +Also, *GLEW-cmake* has unofficial cmake support - It is created when the official CMake support of *GLEW* does not exist. +You can see some CMake script examples in [`glew-cmake`](./glew-cmake/) directory. But, I **strongly** recommend using official CMakeLists of *GLEW*. + +## Usage + +This project provide `libglew_static` and `libglew_shared` library targets and `glewinfo` and `visualinfo` executable targets. + +`libglew_static` provides a static library, and `libglew_shared` provides a shared library. +*glew-cmake* does not affected by [BUILD_SHARED_LIBS](https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html). + +You can disable each library target by setting `glew-cmake_BUILD_SHARED` or `glew-cmake_BUILD_STATIC` falsy value (ex. `NO`, `FALSE`). + +If you need only libraries, Please set `ONLY_LIBS` to `ON`. Otherwise, cmake generates executable targets also. + +You can get pkg-config fils by setting `PKG_CONFIG_REPRESENTATIVE_TARGET` to `libglew_static` or `libglew_shared`. + +Simply specify dependency of your target with `libglew_static` or `libglew_shared` by `target_link_libraries`. +It will set the additional include directory & the libraries to link to your target. + +If you are not familiar with cmake, Some `sub-directory-test.cmake`, `fetch-content.cmake` in [`glew-cmake`](./glew-cmake/) could be helpful. diff --git a/vendor/glew-cmake-2.2.0/README_glew.md b/vendor/glew-cmake-2.2.0/README_glew.md new file mode 100644 index 0000000..f0b2f68 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/README_glew.md @@ -0,0 +1,255 @@ +# GLEW - The OpenGL Extension Wrangler Library + +The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris. + +![](http://glew.sourceforge.net/glew.png) + +http://glew.sourceforge.net/ + +https://github.com/nigels-com/glew + +[![Gitter](https://badges.gitter.im/nigels-com/glew.svg)](https://gitter.im/nigels-com/glew?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Download](https://img.shields.io/sourceforge/dm/glew.svg)](https://sourceforge.net/projects/glew/files/latest/download) + +## Table of Contents + +* [Downloads](#downloads) + * [Recent snapshots](#recent-snapshots) +* [Build](#build) + * [Linux and Mac](#linux-and-mac) + * [Using GNU Make](#using-gnu-make) + * [Install build tools](#install-build-tools) + * [Build](#build-1) + * [Linux EGL](#linux-egl) + * [Linux OSMesa](#linux-osmesa) + * [Linux mingw-w64](#linux-mingw-w64) + * [Using cmake](#using-cmake) + * [Install build tools](#install-build-tools-1) + * [Build](#build-2) + * [Windows](#windows) + * [Visual Studio](#visual-studio) + * [MSYS/Mingw](#msysmingw) + * [MSYS2/Mingw-w64](#msys2mingw-w64) +* [glewinfo](#glewinfo) +* [Code Generation](#code-generation) +* [Authors](#authors) +* [Contributions](#contributions) +* [Copyright and Licensing](#copyright-and-licensing) + +## Downloads + +Current release is [2.2.0](https://github.com/nigels-com/glew/releases/tag/glew-2.2.0). +[(Change Log)](http://glew.sourceforge.net/log.html) + +Sources available as +[ZIP](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.zip) or +[TGZ](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.tgz). + +Windows binaries for [32-bit and 64-bit](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0-win32.zip). + +### Recent snapshots + +Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases. + +[glew-20220402.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20220402.tgz/download) *GLEW 2.2.0 - with fix for glCreateProgressFenceNVX* + +## Build + +It is highly recommended to build from a tgz or zip release snapshot. +The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac. +The code generation is known to work on Windows using [MSYS2](https://www.msys2.org/). +For most end-users of GLEW the official releases are the best choice, with first class support. + +### Linux and Mac + +#### Using GNU Make + +GNU make is the primary build system for GLEW, historically. +It includes targets for building the sources and headers, for maintenance purposes. + +##### Install build tools + +Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev` + +RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel` + +FreeBSD: `# pkg install xorg lang/gcc git cmake gmake bash python perl5` + +##### Build + + $ make + $ sudo make install + $ make clean + +Targets: `all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall` + +Variables: `SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=` + +_Note: you may need to call `make` in the **auto** folder first_ + +##### Linux EGL + + $ sudo apt install libegl1-mesa-dev + $ make SYSTEM=linux-egl + +##### Linux OSMesa + + $ sudo apt install libosmesa-dev + $ make SYSTEM=linux-osmesa + +##### Linux mingw-w64 + + $ sudo apt install mingw-w64 + $ make SYSTEM=linux-mingw32 + $ make SYSTEM=linux-mingw64 + +#### Using cmake + +The cmake build is mostly contributor maintained. +Due to the multitude of use cases this is maintained on a _best effort_ basis. +Pull requests are welcome. + +*CMake 3.16 or higher is required.* + +##### Install build tools + +Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev cmake git` + +RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake git` + +##### Build + + $ cd build + $ cmake ./cmake + $ make -j4 + +| Target | Description | +| ---------- | ----------- | +| glew | Build the glew shared library. | +| glew_s | Build the glew static library. | +| glewinfo | Build the `glewinfo` executable (requires `BUILD_UTILS` to be `ON`). | +| visualinfo | Build the `visualinfo` executable (requires `BUILD_UTILS` to be `ON`). | +| install | Install all enabled targets into `CMAKE_INSTALL_PREFIX`. | +| clean | Clean up build artifacts. | +| all | Build all enabled targets (default target). | + +| Variables | Description | +| --------------- | ----------- | +| BUILD_UTILS | Build the `glewinfo` and `visualinfo` executables. | +| GLEW_REGAL | Build in Regal mode. | +| GLEW_OSMESA | Build in off-screen Mesa mode. | +| BUILD_FRAMEWORK | Build as MacOSX Framework. Setting `CMAKE_INSTALL_PREFIX` to `/Library/Frameworks` is recommended. | + +### Windows + +#### Visual Studio + +Use the provided Visual Studio project file in build/vc15/ + +Projects for vc6, vc10, vc12 and vc14 are also provided + +#### MSYS/Mingw + +Available from [Mingw](http://www.mingw.org/) + +Requirements: bash, make, gcc + + $ mingw32-make + $ mingw32-make install + $ mingw32-make install.all + +Alternative toolchain: `SYSTEM=mingw-win32` + +#### MSYS2/Mingw-w64 + +Available from [Msys2](http://msys2.github.io/) and/or [Mingw-w64](http://mingw-w64.org/) + +Requirements: bash, make, gcc + + $ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc + $ make + $ make install + $ make install.all + +Alternative toolchain: `SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64` + +## glewinfo + +`glewinfo` is a command-line tool useful for inspecting the capabilities of an +OpenGL implementation and GLEW support for that. Please include `glewinfo.txt` +with bug reports, as appropriate. + + --------------------------- + GLEW Extension Info + --------------------------- + + GLEW version 2.0.0 + Reporting capabilities of pixelformat 3 + Running on a Intel(R) HD Graphics 3000 from Intel + OpenGL version 3.1.0 - Build 9.17.10.4229 is supported + + GL_VERSION_1_1: OK + --------------- + + GL_VERSION_1_2: OK + --------------- + glCopyTexSubImage3D: OK + glDrawRangeElements: OK + glTexImage3D: OK + glTexSubImage3D: OK + + ... + +## Code Generation + +A Unix or Mac environment is needed for building GLEW from scratch to +include new extensions, or customize the code generation. The extension +data is regenerated from the top level source directory with: + + make extensions + +An alternative to generating the GLEW sources from scratch is to +download a pre-generated (unsupported) snapshot: + +https://sourceforge.net/projects/glew/files/glew/snapshots/ + +## Authors + +GLEW is currently maintained by [Nigel Stewart](https://github.com/nigels-com) +with bug fixes, new OpenGL extension support and new releases. + +GLEW was developed by [Milan Ikits](http://www.cs.utah.edu/~ikits/) +and [Marcelo Magallon](http://wwwvis.informatik.uni-stuttgart.de/~magallon/). +Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also +assisted with the design and debugging process. + +The acronym GLEW originates from Aaron Lefohn. +Pasi Kärkkäinen identified and fixed several problems with +GLX and SDL. Nate Robins created the `wglinfo` utility, to +which modifications were made by Michael Wimmer. + +## Contributions + +GLEW welcomes community contributions. Typically these are co-ordinated +via [Issues](https://github.com/nigels-com/glew/issues) or +[Pull Requests](https://github.com/nigels-com/glew/pulls) in the +GitHub web interface. + +Be sure to mention platform and compiler toolchain details when filing +a bug report. The output of `glewinfo` can be quite useful for discussion +also. + +Generally GLEW is usually released once a year, around the time of the Siggraph +computer graphics conference. If you're not using the current release +version of GLEW, be sure to check if the issue or bug is fixed there. + +## Copyright and Licensing + +GLEW is originally derived from the EXTGL project by Lev Povalahev. +The source code is licensed under the +[Modified BSD License](http://glew.sourceforge.net/glew.txt), the +[Mesa 3-D License](http://glew.sourceforge.net/mesa.txt) (MIT) and the +[Khronos License](http://glew.sourceforge.net/khronos.txt) (MIT). + +The automatic code generation scripts are released under the +[GNU GPL](http://glew.sourceforge.net/gpl.txt). diff --git a/vendor/glew-cmake-2.2.0/auto/Makefile b/vendor/glew-cmake-2.2.0/auto/Makefile new file mode 100644 index 0000000..a92d442 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/Makefile @@ -0,0 +1,365 @@ +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +include ../config/version + +#GLEW_SPLIT_SOURCE = yes + +SHELL = bash +PYTHON ?= python + +EXT = extensions/gl +CORE = core/gl + +REPO_OPENGL ?= https://github.com/KhronosGroup/OpenGL-Registry.git +REPO_EGL ?= https://github.com/KhronosGroup/EGL-Registry.git +REPO_GLFIXES ?= https://github.com/nigels-com/glfixes + +BIN = bin +SRC = src +BLACKLIST = blacklist + +GL_CORE_SPEC := $(CORE)/GL_VERSION* +GLX_CORE_SPEC := $(CORE)/GLX_VERSION* +EGL_CORE_SPEC := $(CORE)/EGL_VERSION* +ifeq (custom,$(MAKECMDGOALS)) +#GL_CORE_SPEC := $(shell grep GL_VERSION custom.txt | perl -pi -e "s=^=$(CORE)/=g;") +GL_EXT_SPEC := $(shell grep "^[ \t]*GL_" custom.txt | grep -v GL_VERSION | perl -pi -e "s=^=$(EXT)/=g;") +WGL_EXT_SPEC := $(shell grep "^[ \t]*WGL_" custom.txt | perl -pi -e "s=^=$(EXT)/=g;") +#GLX_CORE_SPEC := $(shell grep GLX_VERSION custom.txt | perl -pi -e "s=^=$(CORE)/=g;") +GLX_EXT_SPEC := $(shell grep "^[ \t]*GLX_" custom.txt | grep -v GLX_VERSION | perl -pi -e "s=^=$(EXT)/=g;") +EGL_EXT_SPEC := $(shell grep "^[ \t]*EGL_" custom.txt | grep -v EGL_VERSION | perl -pi -e "s=^=$(EXT)/=g;") +else +GL_EXT_SPEC := $(EXT)/GL_* +WGL_EXT_SPEC := $(EXT)/WGL_* +GLX_EXT_SPEC := $(EXT)/GLX_* +EGL_EXT_SPEC := $(EXT)/EGL_* +endif + +PARSE_SPEC = parse_spec.pl +SYSTEM = $(strip $(shell uname -s)) + +TOP = .. +I.DEST = $(TOP)/include/GL +S.DEST = $(TOP)/src +D.DEST = $(TOP)/doc +B.DEST = $(TOP)/build + +I.TARGETS = \ + $(I.DEST)/glew.h \ + $(I.DEST)/wglew.h \ + $(I.DEST)/glxew.h \ + $(I.DEST)/eglew.h + +ifeq (yes,$(GLEW_SPLIT_SOURCE)) +S.TARGETS = \ + $(S.DEST)/glew_def.c \ + $(S.DEST)/glew_init.c \ + $(S.DEST)/glew_str.c \ + $(S.DEST)/glewinfo.c +else +S.TARGETS = \ + $(S.DEST)/glew.c \ + $(S.DEST)/glewinfo.c +endif + +D.TARGETS = \ + $(D.DEST)/index.html \ + $(D.DEST)/install.html \ + $(D.DEST)/basic.html \ + $(D.DEST)/advanced.html \ + $(D.DEST)/build.html \ + $(D.DEST)/credits.html \ + $(D.DEST)/log.html \ + $(D.DEST)/glew.html \ + $(D.DEST)/wglew.html \ + $(D.DEST)/glxew.html + +B.TARGETS = \ + $(B.DEST)/glew.rc \ + $(B.DEST)/glewinfo.rc \ + $(B.DEST)/visualinfo.rc + +all custom: $(I.TARGETS) $(S.TARGETS) $(D.TARGETS) $(B.TARGETS) + +ext: $(EXT)/.dummy + +OpenGL-Registry/.dummy: + @echo "--------------------------------------------------------------------" + @echo "Downloading OpenGL-Registry" + @echo "--------------------------------------------------------------------" + git clone --depth=1 $(REPO_OPENGL) OpenGL-Registry + git clone --depth=1 --branch glew $(REPO_GLFIXES) glfixes + touch $@ + +EGL-Registry/.dummy: + @echo "--------------------------------------------------------------------" + @echo "Downloading EGL-Registry" + @echo "--------------------------------------------------------------------" + git clone --depth=1 $(REPO_EGL) EGL-Registry + touch $@ + +$(EXT)/.dummy: OpenGL-Registry/.dummy EGL-Registry/.dummy + @echo "--------------------------------------------------------------------" + @echo "OpenGL descriptors" + @echo "--------------------------------------------------------------------" + rm -rf $(EXT) + cp -r glfixes/gl/specs/ANGLE OpenGL-Registry/extensions + cp -r glfixes/gl/specs/REGAL OpenGL-Registry/extensions + $(BIN)/update_ext.sh $(EXT) OpenGL-Registry/extensions $(BLACKLIST) + @echo "--------------------------------------------------------------------" + @echo "WGL descriptors" + @echo "--------------------------------------------------------------------" + rm -f $(EXT)/WGL_* + $(PYTHON) $(BIN)/parse_xml.py OpenGL-Registry/xml/wgl.xml --api wgl --extensions extensions/gl + @echo "--------------------------------------------------------------------" + @echo "GLX descriptors" + @echo "--------------------------------------------------------------------" + rm -f $(EXT)/GLX_* + $(PYTHON) $(BIN)/parse_xml.py OpenGL-Registry/xml/glx.xml --api glx --extensions extensions/gl + @echo "--------------------------------------------------------------------" + @echo "EGL descriptors" + @echo "--------------------------------------------------------------------" + $(PYTHON) $(BIN)/parse_xml.py EGL-Registry/api/egl.xml --api egl --extensions extensions/gl + @echo "--------------------------------------------------------------------" + @echo "filter descriptors" + @echo "--------------------------------------------------------------------" + $(BIN)/filter_gl_ext.sh $(EXT) +ifeq ($(patsubst Darwin%,Darwin,$(SYSTEM)), Darwin) + find $(CORE) -maxdepth 1 -type f | grep -v VERSION | grep -v "~" | \ + xargs -J % cp % $(EXT) +else + find $(CORE) -maxdepth 1 -type f | grep -v VERSION | grep -v "~" | \ + xargs -I % -n 1 cp % $(EXT) +endif + touch $@ + +$(I.DEST)/glew.h: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating glew.h" + @echo "--------------------------------------------------------------------" + test -d $(I.DEST) || mkdir -p $(I.DEST) + cp -f $(SRC)/glew_license.h $@ + cat $(SRC)/mesa_license.h >> $@ + cat $(SRC)/khronos_license.h >> $@ + cat $(SRC)/glew_head.h >> $@ + $(BIN)/make_header.pl GLAPIENTRY GL $(GL_CORE_SPEC) >> $@ + $(BIN)/make_header.pl GLAPIENTRY GL $(GL_EXT_SPEC) >> $@ + echo -e "/* ------------------------------------------------------------------------- */\n\n" >> $@ + $(BIN)/make_struct_fun.pl GLEW_FUN_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@ + $(BIN)/make_struct_var.pl GLEW_VAR_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@ + perl -e "s/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1;\nGLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/" -pi $@ + cat $(SRC)/glew_tail.h >> $@ + perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@ + perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@ + perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@ + perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@ + rm -f $@.bak + +$(I.DEST)/wglew.h: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating wglew.h" + @echo "--------------------------------------------------------------------" + cp -f $(SRC)/glew_license.h $@ + cat $(SRC)/khronos_license.h >> $@ + cat $(SRC)/wglew_head.h >> $@ + $(BIN)/make_header.pl WINAPI WGL $(WGL_EXT_SPEC) >> $@ + cat $(SRC)/wglew_mid.h >> $@ + $(BIN)/make_struct_fun.pl WGLEW_FUN_EXPORT $(WGL_EXT_SPEC) >> $@ + $(BIN)/make_struct_var.pl WGLEW_VAR_EXPORT $(WGL_EXT_SPEC) >> $@ + cat $(SRC)/wglew_tail.h >> $@ + +$(I.DEST)/glxew.h: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating glxew.h" + @echo "--------------------------------------------------------------------" + cp -f $(SRC)/glew_license.h $@ + cat $(SRC)/mesa_license.h >> $@ + cat $(SRC)/khronos_license.h >> $@ + cat $(SRC)/glxew_head.h >> $@ + $(BIN)/make_header.pl "" GLX $(GLX_CORE_SPEC) >> $@ + $(BIN)/make_header.pl "" GLX $(GLX_EXT_SPEC) >> $@ + cat $(SRC)/glxew_mid.h >> $@ + $(BIN)/make_struct_fun.pl GLXEW_FUN_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@ + $(BIN)/make_struct_var.pl GLXEW_VAR_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@ + perl -e "s/GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;/GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0;\nGLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1;\nGLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;/" -pi $@ + cat $(SRC)/glxew_tail.h >> $@ + +$(I.DEST)/eglew.h: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating eglew.h" + @echo "--------------------------------------------------------------------" + cp -f $(SRC)/glew_license.h $@ + cat $(SRC)/mesa_license.h >> $@ + cat $(SRC)/khronos_license.h >> $@ + cat $(SRC)/eglew_head.h >> $@ + $(BIN)/make_header.pl "" EGL $(EGL_CORE_SPEC) >> $@ + $(BIN)/make_header.pl "" EGL $(EGL_EXT_SPEC) >> $@ + cat $(SRC)/eglew_mid.h >> $@ + $(BIN)/make_struct_fun.pl EGLEW_FUN_EXPORT $(EGL_CORE_SPEC) $(EGL_EXT_SPEC) >> $@ + $(BIN)/make_struct_var.pl EGLEW_VAR_EXPORT $(EGL_CORE_SPEC) $(EGL_EXT_SPEC) >> $@ + cat $(SRC)/eglew_tail.h >> $@ + +$(S.DEST)/glew.c: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating glew.c" + @echo "--------------------------------------------------------------------" + cp -f $(SRC)/glew_license.h $@ + cat $(SRC)/glew_head.c >> $@ + $(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@ + $(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@ + echo -e "\nGLboolean __GLEW_VERSION_1_1 = GL_FALSE;" >> $@ + $(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@ + $(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@ + echo -e "\nstatic const char * _glewExtensionLookup[] = {" >> $@; + $(BIN)/make_index.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@ + echo -e " NULL\n};\n\n" >> $@; + $(BIN)/make_enable_index.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@ + $(BIN)/make_initd.pl GL $(GL_CORE_SPEC) >> $@ + $(BIN)/make_initd.pl GL $(GL_EXT_SPEC) >> $@ + echo -e "" >> $@; + $(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@ + $(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@ + cat $(SRC)/glew_init_gl.c >> $@ + $(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@ + $(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@ + $(BIN)/make_list2.pl $(GL_EXT_SPEC) >> $@ + echo -e "\n return GLEW_OK;\n}\n" >> $@ + echo -e "\n#if defined(GLEW_OSMESA)" >> $@ + echo -e "\n#elif defined(GLEW_EGL)" >> $@ + $(BIN)/make_def_fun.pl EGL $(EGL_CORE_SPEC) >> $@ + $(BIN)/make_def_fun.pl EGL $(EGL_EXT_SPEC) >> $@ + $(BIN)/make_def_var.pl EGL $(EGL_CORE_SPEC) >> $@ + $(BIN)/make_def_var.pl EGL $(EGL_EXT_SPEC) >> $@ + $(BIN)/make_init.pl EGL $(EGL_CORE_SPEC) >> $@ + $(BIN)/make_init.pl EGL $(EGL_EXT_SPEC) >> $@ + cat $(SRC)/glew_init_egl.c >> $@ + $(BIN)/make_list.pl $(EGL_CORE_SPEC) >> $@ + $(BIN)/make_list.pl $(EGL_EXT_SPEC) >> $@ + echo -e "\n return GLEW_OK;\n}" >> $@ + echo -e "\n#elif defined(_WIN32)" >> $@ + $(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@ + $(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@ + $(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@ + cat $(SRC)/glew_init_wgl.c >> $@ + $(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@ + echo -e "\n return GLEW_OK;\n}" >> $@; + echo -e "\n#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@ + $(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@ + $(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@ + echo -e "\nGLboolean __GLXEW_VERSION_1_0 = GL_FALSE;" >> $@ + echo -e "GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;" >> $@ + $(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@ + $(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@ + $(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@ + $(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@ + cat $(SRC)/glew_init_glx.c >> $@ + $(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@ + $(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@ + echo -e "\n return GLEW_OK;\n}" >> $@ + echo -e "\n#endif /* !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */\n" >> $@; + cat $(SRC)/glew_init_tail.c >> $@ + cat $(SRC)/glew_str_head.c >> $@ + $(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@ + cat $(SRC)/glew_str_wgl.c >> $@ + $(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@ + cat $(SRC)/glew_str_glx.c >> $@ + $(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@ + cat $(SRC)/glew_str_egl.c >> $@ + $(BIN)/make_str.pl $(EGL_CORE_SPEC) $(EGL_EXT_SPEC) >> $@ + cat $(SRC)/glew_str_tail.c >> $@ + perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@ + perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@ + perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@ + perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@ + perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(); _glewInit_GL_ARB_vertex_program(); }/g" -pi $@ + perl -e "s/\(\(glColorSubTable = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glColorSubTable = /g" -pi $@ + rm -f $@.bak + +$(S.DEST)/glewinfo.c: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating glewinfo.c" + @echo "--------------------------------------------------------------------" + cp -f $(SRC)/glew_license.h $@ + cat $(SRC)/glewinfo_head.c >> $@ + $(BIN)/make_info.pl $(GL_CORE_SPEC) >> $@ + $(BIN)/make_info.pl $(GL_EXT_SPEC) >> $@ + echo -e "#if defined(GLEW_EGL)\n" >> $@ + $(BIN)/make_info.pl $(EGL_CORE_SPEC) >> $@ + $(BIN)/make_info.pl $(EGL_EXT_SPEC) >> $@ + echo -e "#elif _WIN32\n" >> $@ + $(BIN)/make_info.pl $(WGL_EXT_SPEC) >> $@ + echo -e "#else /* _UNIX */\n" >> $@ + $(BIN)/make_info.pl $(GLX_CORE_SPEC) >> $@ + $(BIN)/make_info.pl $(GLX_EXT_SPEC) >> $@ + echo -e "#endif /* _WIN32 */\n" >> $@ + + cat $(SRC)/glewinfo_gl.c >> $@ + $(BIN)/make_info_list.pl $(GL_CORE_SPEC) >> $@ + $(BIN)/make_info_list.pl $(GL_EXT_SPEC) >> $@ + cat $(SRC)/glewinfo_wgl.c >> $@ + $(BIN)/make_info_list.pl $(WGL_EXT_SPEC) >> $@ + cat $(SRC)/glewinfo_glx.c >> $@ + $(BIN)/make_info_list.pl $(GLX_CORE_SPEC) >> $@ + $(BIN)/make_info_list.pl $(GLX_EXT_SPEC) >> $@ + cat $(SRC)/glewinfo_egl.c >> $@ + $(BIN)/make_info_list.pl $(EGL_CORE_SPEC) >> $@ + $(BIN)/make_info_list.pl $(EGL_EXT_SPEC) >> $@ + cat $(SRC)/glewinfo_tail.c >> $@ + perl -e 's/"glColorSubTable"/"glBlendEquation", glBlendEquation == NULL);\n glewInfoFunc(fi, "glColorSubTable"/g' -pi $@ + rm -f $@.bak + +# Update documentation + +$(D.DEST)/%.html: doc/%.html + @echo "--------------------------------------------------------------------" + @echo "Creating $(@F)" + @echo "--------------------------------------------------------------------" + cat $(SRC)/header.html $< $(SRC)/footer.html | \ + perl -pe 's#(.*)#\1#' > $@ + +$(D.DEST)/glew.html: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating glew.html" + @echo "--------------------------------------------------------------------" + cp -f $(SRC)/header.html $@ + echo -e "

Supported OpenGL Extensions

\n" >> $@ + $(BIN)/make_html.pl $(GL_EXT_SPEC) >> $@ + cat $(SRC)/footer.html >> $@ + perl -i -pe 's#(.*)#\1#' $@ + +$(D.DEST)/wglew.html: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating wglew.html" + @echo "--------------------------------------------------------------------" + cp -f $(SRC)/header.html $@ + echo -e "

Supported WGL Extensions

\n" >> $@ + $(BIN)/make_html.pl $(WGL_EXT_SPEC) >> $@ + cat $(SRC)/footer.html >> $@ + perl -i -pe 's#(.*)#\1#' $@ + +$(D.DEST)/glxew.html: $(EXT)/.dummy + @echo "--------------------------------------------------------------------" + @echo "Creating glxew.html" + @echo "--------------------------------------------------------------------" + cp -f $(SRC)/header.html $@ + echo -e "

Supported GLX Extensions

\n" >> $@ + $(BIN)/make_html.pl $(GLX_EXT_SPEC) >> $@ + cat $(SRC)/footer.html >> $@ + perl -i -pe 's#(.*)#\1#' $@ + +$(B.DEST)/%.rc: src/%.rc $(EXT)/.dummy + perl -e "s/GLEW_MAJOR/$(GLEW_MAJOR)/g;s/GLEW_MINOR/$(GLEW_MINOR)/g;s/GLEW_MICRO/$(GLEW_MICRO)/g;" -p $< > $@ + +clean: + rm -rf $(I.TARGETS) $(S.TARGETS) $(D.TARGETS) $(B.TARGETS) + +clobber: clean + rm -rf $(EXT) + +destroy: clobber + rm -rf registry diff --git a/vendor/glew-cmake-2.2.0/auto/bin/filter_gl_ext.sh b/vendor/glew-cmake-2.2.0/auto/bin/filter_gl_ext.sh new file mode 100644 index 0000000..e295f65 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/filter_gl_ext.sh @@ -0,0 +1,614 @@ +#!/usr/bin/env bash +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. +## +## Parameters: +## +## $1: Extensions directory + +set -e + +# fix GL_NV_texture_compression_vtc + grep -v EXT $1/GL_NV_texture_compression_vtc > tmp + mv tmp $1/GL_NV_texture_compression_vtc + +# remove duplicates from GL_ARB_vertex_program and GL_ARB_fragment_program + tail -n +5 $1/GL_ARB_vertex_program > patterns + grep -v -F -f patterns $1/GL_ARB_fragment_program > tmp + mv tmp $1/GL_ARB_fragment_program + +# remove duplicates from GLX_EXT_visual_rating and GLX_EXT_visual_info + tail -n +5 $1/GLX_EXT_visual_info > patterns + grep -v -F -f patterns $1/GLX_EXT_visual_rating > tmp + mv tmp $1/GLX_EXT_visual_rating + +# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetBooleanIndexedvEXT but with different parameter names + grep -v glGetBooleanIndexedvEXT $1/GL_EXT_transform_feedback > tmp + mv tmp $1/GL_EXT_transform_feedback + +# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetIntegerIndexedvEXT but with different parameter names + grep -v glGetIntegerIndexedvEXT $1/GL_EXT_transform_feedback > tmp + mv tmp $1/GL_EXT_transform_feedback + +# remove duplicates from GL_NV_video_capture and GLX_NV_video_capture + grep -v glX $1/GL_NV_video_capture > tmp + mv tmp $1/GL_NV_video_capture + +# add missing functions to GL_NV_video_capture + cat >> $1/GL_NV_video_capture <> $1/WGL_NV_video_capture <> $1/GLX_NV_video_capture < patterns + grep -v -F -f patterns $1/GL_NV_present_video > tmp + mv tmp $1/GL_NV_present_video + +# fix WGL_NV_present_video + cat >> $1/WGL_NV_present_video <> $1/WGL_NV_video_output < tmp + mv tmp $1/GL_NV_occlusion_query + +# add deprecated constants to GL_ATI_fragment_shader + cat >> $1/GL_ATI_fragment_shader <> $1/GL_NV_texture_shader <> $1/WGL_ATI_pixel_format_float <> $1/WGL_ARB_make_current_read <> $1/WGL_EXT_make_current_read <> $1/GL_ARB_vertex_buffer_object <> $1/GLX_EXT_import_context <> $1/GLX_OML_swap_method <> $1/GLX_SGIX_fbconfig <> $1/GLX_SGIX_pbuffer <> $1/GL_NV_half_float <> $1/WGL_ARB_pbuffer <> $1/WGL_EXT_pbuffer < patterns + grep -v -F -f patterns $1/GL_ARB_fragment_shader > tmp + mv tmp $1/GL_ARB_fragment_shader + grep -v -F -f patterns $1/GL_ARB_vertex_shader > tmp + mv tmp $1/GL_ARB_vertex_shader + +# remove duplicates in GL_ARB_vertex_program and GL_ARB_vertex_shader + tail -n +5 $1/GL_ARB_vertex_program > patterns + grep -v -F -f patterns $1/GL_ARB_vertex_shader > tmp + mv tmp $1/GL_ARB_vertex_shader + +# remove triplicates in GL_ARB_fragment_program, GL_ARB_fragment_shader, +# and GL_ARB_vertex_shader + tail -n +5 $1/GL_ARB_fragment_program > patterns + grep -v -F -f patterns $1/GL_ARB_fragment_shader > tmp + mv tmp $1/GL_ARB_fragment_shader + grep -v -F -f patterns $1/GL_ARB_vertex_shader > tmp + mv tmp $1/GL_ARB_vertex_shader + +# remove duplicates in GL_EXT_direct_state_access + grep -v "glGetBooleanIndexedvEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + grep -v "glGetIntegerIndexedvEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + grep -v "glDisableIndexedEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + grep -v "glEnableIndexedEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + grep -v "glIsEnabledIndexedEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + +# remove duplicates in GL_NV_explicit_multisample + grep -v "glGetBooleanIndexedvEXT" $1/GL_NV_explicit_multisample > tmp + mv tmp $1/GL_NV_explicit_multisample + grep -v "glGetIntegerIndexedvEXT" $1/GL_NV_explicit_multisample > tmp + mv tmp $1/GL_NV_explicit_multisample + +# fix bugs in GL_ARB_vertex_shader + grep -v "GL_FLOAT" $1/GL_ARB_vertex_shader > tmp + mv tmp $1/GL_ARB_vertex_shader + perl -e 's/handle /GLhandleARB /g' -pi $1/GL_ARB_vertex_shader + +# fix bugs in GL_ARB_shader_objects + grep -v "GL_FLOAT " $1/GL_ARB_shader_objects > tmp + mv tmp $1/GL_ARB_shader_objects + grep -v "GL_INT " $1/GL_ARB_shader_objects > tmp + mv tmp $1/GL_ARB_shader_objects + +# add typedefs to GL_ARB_shader_objects + cat >> $1/GL_ARB_shader_objects <> $1/GL_ARB_transpose_matrix <> $1/GL_EXT_framebuffer_multisample < tmp + mv tmp $1/GL_NV_gpu_program_fp64 + +# Filter glGetUniformui64vNV from GL_NV_shader_buffer_load + grep -v "glGetUniformui64vNV" $1/GL_NV_shader_buffer_load > tmp + mv tmp $1/GL_NV_shader_buffer_load + +# Filter out profile enumerations from GLX_ARB_create_context + grep -v "_PROFILE_" $1/GLX_ARB_create_context > tmp + mv tmp $1/GLX_ARB_create_context + +# Filter only profile related enumerations for GLX_ARB_create_context_profile + head -n4 $1/GLX_ARB_create_context_profile > tmp + grep "_PROFILE_" $1/GLX_ARB_create_context_profile >> tmp + mv tmp $1/GLX_ARB_create_context_profile + +# Filter out profile enumerations from WGL_ARB_create_context + grep -v "_PROFILE_" $1/WGL_ARB_create_context > tmp + mv tmp $1/WGL_ARB_create_context + +# Filter only profile related enumerations for WGL_ARB_create_context_profile + head -n4 $1/WGL_ARB_create_context_profile > tmp + grep "_PROFILE_" $1/WGL_ARB_create_context_profile >> tmp + mv tmp $1/WGL_ARB_create_context_profile + +# add missing function to GLX_NV_copy_image + cat >> $1/GLX_NV_copy_image <> $1/WGL_NV_copy_image < tmp + mv tmp $1/GL_EXT_separate_shader_objects + +# Filter out EXT functions from GL_ARB_viewport_array + grep -v "EXT" $1/GL_ARB_viewport_array > tmp + mv tmp $1/GL_ARB_viewport_array + +# Additional enumerations for GL_NV_vertex_buffer_unified_memory +# These are mentioned in GL_ARB_draw_indirect.txt + + cat >> $1/GL_NV_vertex_buffer_unified_memory < tmp + mv tmp $1/GL_ARB_debug_output + +# Filter glGetPointerv from GL_EXT_vertex_array +# It's part of OpenGL 1.1, after all + + grep -v "glGetPointerv" $1/GL_EXT_vertex_array > tmp + mv tmp $1/GL_EXT_vertex_array + +# add typedef to GL_AMD_debug_output +# parse_spec.pl can't parse typedefs from New Types section, but ought to + cat >> $1/GL_AMD_debug_output <> $1/GL_ARB_debug_output <> $1/GL_KHR_debug < tmp + mv tmp $1/GL_KHR_debug + +# add typedefs to GL_ARB_cl_event +# parse_spec.pl can't parse typedefs from New Types section, but ought to + cat >> $1/GL_ARB_cl_event < tmp + mv tmp $1/GL_ARB_gpu_shader_fp64 + +# add missing functions to GL_EXT_direct_state_access (GL_ARB_gpu_shader_fp64 related) + cat >> $1/GL_EXT_direct_state_access <> $1/GL_EXT_direct_state_access < tmp + mv tmp $1/GL_AMD_performance_monitor + grep -v 'GL_FLOAT ' $1/GL_AMD_performance_monitor > tmp + mv tmp $1/GL_AMD_performance_monitor + +# Filter out GL_STORAGE_CACHED_APPLE and GL_STORAGE_SHARED_APPLE from GL_APPLE_texture_range + grep -v 'GL_STORAGE_CACHED_APPLE ' $1/GL_APPLE_texture_range > tmp + mv tmp $1/GL_APPLE_texture_range + grep -v 'GL_STORAGE_SHARED_APPLE ' $1/GL_APPLE_texture_range > tmp + mv tmp $1/GL_APPLE_texture_range + +# Filter out GL_RED from GL_ARB_texture_rg + grep -v 'GL_RED ' $1/GL_ARB_texture_rg > tmp + mv tmp $1/GL_ARB_texture_rg + +# Filter out _EXT enums from GL_ARB_texture_storage + grep -v '_EXT ' $1/GL_ARB_texture_storage > tmp + mv tmp $1/GL_ARB_texture_storage + +# Filter out TEXTURE_3D enums from GL_EXT_paletted_texture + grep -v 'TEXTURE_3D' $1/GL_EXT_paletted_texture > tmp + mv tmp $1/GL_EXT_paletted_texture + +# Filter out GL_VERSION_1_1 enums from GL_AMD_stencil_operation_extended + grep -v '0x150' $1/GL_AMD_stencil_operation_extended > tmp + mv tmp $1/GL_AMD_stencil_operation_extended + +# Filter out from GL_APPLE_ycbcr_422 + grep -v 'GL_UNSIGNED_SHORT_8_8_APPLE' $1/GL_APPLE_ycbcr_422 > tmp + mv tmp $1/GL_APPLE_ycbcr_422 + grep -v 'GL_UNSIGNED_SHORT_8_8_REV_APPLE' $1/GL_APPLE_ycbcr_422 > tmp + mv tmp $1/GL_APPLE_ycbcr_422 + +# Filter out GL_FRAGMENT_DEPTH_EXT from GL_EXT_light_texture + grep -v 'GL_FRAGMENT_DEPTH_EXT' $1/GL_EXT_light_texture > tmp + mv tmp $1/GL_EXT_light_texture + +# Filter out GL_MULTISAMPLE_BIT_EXT from GL_SGIS_multisample + grep -v 'GL_MULTISAMPLE_BIT_EXT' $1/GL_SGIS_multisample > tmp + mv tmp $1/GL_SGIS_multisample + +# Filter out GL_COMPRESSED_RGB_S3TC_DXT1_EXT from GL_EXT_texture_compression_dxt1 + grep -v 'GL_COMPRESSED_RGB_S3TC_DXT1_EXT' $1/GL_EXT_texture_compression_dxt1 > tmp + mv tmp $1/GL_EXT_texture_compression_dxt1 + +# Filter out GL_COMPRESSED_RGBA_S3TC_DXT1_EXT from GL_EXT_texture_compression_dxt1 + grep -v 'GL_COMPRESSED_RGBA_S3TC_DXT1_EXT' $1/GL_EXT_texture_compression_dxt1 > tmp + mv tmp $1/GL_EXT_texture_compression_dxt1 + +# Append GLfixed to GL_ARB_ES2_compatibility +# Probably ought to be explicitly mentioned in the spec language + + cat >> $1/GL_ARB_ES2_compatibility <> $1/GL_REGAL_ES1_0_compatibility <> $1/GL_REGAL_log < GLLOGPROCREGAL + perl -e 's/LOGPROCREGAL/GLLOGPROCREGAL/g' -pi $1/GL_REGAL_log + +# Filter out GL_BYTE from GL_OES_byte_coordinates + grep -v 'GL_BYTE' $1/GL_OES_byte_coordinates > tmp + mv tmp $1/GL_OES_byte_coordinates + +# Filter out fp64 (not widely supported) from GL_EXT_direct_state_access + egrep -v 'glProgramUniform.*[1234]d[v]?EXT' $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + +# Filter out all enums from GL_ANGLE_depth_texture + grep -v '0x' $1/GL_ANGLE_depth_texture > tmp + mv tmp $1/GL_ANGLE_depth_texture + +# Filter out GL_NONE enum from GL_ANGLE_depth_texture + grep -v 'GL_NONE' $1/GL_ANGLE_texture_usage > tmp + mv tmp $1/GL_ANGLE_texture_usage + +# Fixup REGAL and ANGLE urls + + for i in $1/GL_REGAL_*; do perl -e 's#http://www.opengl.org/registry/specs/REGAL/.*#https://github.com/p3/regal/tree/master/doc/extensions#g' -pi $i; done + for i in $1/GL_ANGLE_*; do perl -e 's#http://www.opengl.org/registry/specs/ANGLE/.*#https://code.google.com/p/angleproject/source/browse/\#git%2Fextensions#g' -pi $i; done + +# Filter out GL_NV_blend_equation_advanced_coherent enums and functions + head -n4 $1/GL_NV_blend_equation_advanced_coherent > tmp + mv tmp $1/GL_NV_blend_equation_advanced_coherent + +# Filter out GL_AMD_gpu_shader_int64 enums and functions + head -n4 $1/GL_AMD_gpu_shader_int64 > tmp + mv tmp $1/GL_AMD_gpu_shader_int64 + +# Filter out GL_NO_ERROR enum and glGetGraphicsResetStatus from GL_KHR_robustness + grep -v 'GL_NO_ERROR' $1/GL_KHR_robustness | + grep -v 'glGetGraphicsResetStatus' > tmp + mv tmp $1/GL_KHR_robustness + +# Filter out all enums from GL_KHR_blend_equation_advanced_coherent + grep -v '0x' $1/GL_KHR_blend_equation_advanced_coherent > tmp + mv tmp $1/GL_KHR_blend_equation_advanced_coherent + +# Filter out glBlendBarrierKHR enum from GL_KHR_blend_equation_advanced_coherent + grep -v 'glBlendBarrierKHR' $1/GL_KHR_blend_equation_advanced_coherent > tmp + mv tmp $1/GL_KHR_blend_equation_advanced_coherent + +# Filter out GL_NONE enum from GL_KHR_context_flush_control + grep -v 'GL_NONE' $1/GL_KHR_context_flush_control > tmp + mv tmp $1/GL_KHR_context_flush_control + +# Filter out CoverageModulation from NV_framebuffer_mixed_samples +# Superset of EXT_raster_multisample + + grep -v "CoverageModulation" $1/GL_NV_framebuffer_mixed_samples > tmp + mv tmp $1/GL_NV_framebuffer_mixed_samples + +# Filter out glRasterSamplesEXT from NV_framebuffer_mixed_samples +# Superset of EXT_raster_multisample + + grep -v "RasterSamplesEXT" $1/GL_NV_framebuffer_mixed_samples > tmp + mv tmp $1/GL_NV_framebuffer_mixed_samples + +# Filter out glNamedBufferStorageEXT from GL_ARB_buffer_storage + + grep -v "glNamedBufferStorageEXT" $1/GL_ARB_buffer_storage > tmp + mv tmp $1/GL_ARB_buffer_storage + +# Filter out glFramebufferTextureEXT from GL_EXT_geometry_point_size +# and GL_EXT_geometry_shader + + grep -v "glFramebufferTextureEXT" $1/GL_EXT_geometry_point_size > tmp + mv tmp $1/GL_EXT_geometry_point_size + + grep -v "glFramebufferTextureEXT" $1/GL_EXT_geometry_shader > tmp + mv tmp $1/GL_EXT_geometry_shader + +# Filter out glBindFragDataLocationEXT from GL_EXT_blend_func_extended + + grep -v "glBindFragDataLocationEXT" $1/GL_EXT_blend_func_extended > tmp + mv tmp $1/GL_EXT_blend_func_extended + +# Filter out glDrawArraysInstancedEXT and glDrawElementsInstancedEXT from GL_EXT_blend_func_extended + + grep -v "glDrawArraysInstancedEXT" $1/GL_EXT_instanced_arrays > tmp + mv tmp $1/GL_EXT_instanced_arrays + + grep -v "glDrawElementsInstancedEXT" $1/GL_EXT_instanced_arrays > tmp + mv tmp $1/GL_EXT_instanced_arrays + +# Filter out glRenderbufferStorageMultisampleEXT from GL_EXT_multisampled_render_to_texture + + grep -v "glRenderbufferStorageMultisampleEXT" $1/GL_EXT_multisampled_render_to_texture > tmp + mv tmp $1/GL_EXT_multisampled_render_to_texture + +# Filter out glTexturePageCommitmentEXT from GL_ARB_sparse_texture + + grep -v "glTexturePageCommitmentEXT" $1/GL_ARB_sparse_texture > tmp + mv tmp $1/GL_ARB_sparse_texture + +# Filter out TextureStorage* from GL_ARB_texture_storage + + grep -v "TextureStorage" $1/GL_ARB_texture_storage > tmp + mv tmp $1/GL_ARB_texture_storage + +# Filter out functions from GL_EXT_occlusion_query_boolean + + grep -v "(" $1/GL_EXT_occlusion_query_boolean > tmp + mv tmp $1/GL_EXT_occlusion_query_boolean + +# Filter out duplicate enums from GL_EXT_protected_textures + + cat $1/GL_EXT_protected_textures | grep -v GL_TRUE | grep -v GL_FALSE > tmp + mv tmp $1/GL_EXT_protected_textures + +# Filter out duplicate enums from GL_EXT_robustness + + cat $1/GL_EXT_robustness | grep -v GL_NO_ERROR > tmp + mv tmp $1/GL_EXT_robustness + +# Filter GL_EXT_shader_framebuffer_fetch_non_coherent + + grep -v "FramebufferFetchBarrierEXT" $1/GL_EXT_shader_framebuffer_fetch_non_coherent > tmp + mv tmp $1/GL_EXT_shader_framebuffer_fetch_non_coherent + +# Filter GL_EXT_tessellation_shader + + grep -v "PatchParameteriEXT" $1/GL_EXT_tessellation_shader > tmp + mv tmp $1/GL_EXT_tessellation_shader + +# Filter GL_EXT_texture_buffer + + grep -v "TexBuffer" $1/GL_EXT_texture_buffer > tmp + mv tmp $1/GL_EXT_texture_buffer + +# Filter GL_EXT_texture_border_clamp + + grep -v "TexParameter" $1/GL_EXT_texture_border_clamp > tmp + mv tmp $1/GL_EXT_texture_border_clamp + +# Filter GL_EXT_disjoint_timer_query + + cat $1/GL_EXT_disjoint_timer_query | grep -v GetQueryObjecti64v | grep -v GetQueryObjectui64v > tmp + mv tmp $1/GL_EXT_disjoint_timer_query + +# Filter GL_NV_read_buffer_front + + grep -v "ReadBufferNV" $1/GL_NV_read_buffer_front > tmp + mv tmp $1/GL_NV_read_buffer_front + +# Append GLVULKANPROCNV to GL_NV_draw_vulkan_image +# Probably ought to be explicitly mentioned in the spec language + + cat >> $1/GL_NV_draw_vulkan_image < +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. +## +## Parameters: +## +## $1: Extensions directory +## $2: Registry directory +## $3: The black list + +set -e + +# clean up + rm -f $1/*.bak diff --git a/vendor/glew-cmake-2.2.0/auto/bin/filter_spec.py b/vendor/glew-cmake-2.2.0/auto/bin/filter_spec.py new file mode 100644 index 0000000..16c2fa9 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/filter_spec.py @@ -0,0 +1,38 @@ +#!/usr/bin/python + +import re + +section = re.compile('^(Name|Name Strings?|Contact|Notice|Number|Dependencies|Overview|Issues|IP Status|Status|Version|New Procedures and Functions|New Tokens|Additions to .*|Changes to .*|Modifications to .*|Add new Section .*)\s*$') +token = re.compile('^\s+(([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-F]+)([^\?]*))?\s*$') +match = [ 'Name', 'Name String', 'Contact', 'Notice', 'Name Strings', 'Version', 'Number', 'Dependencies', 'New Procedures and Functions', 'New Tokens'] + +if __name__ == '__main__': + + from optparse import OptionParser + import os + + parser = OptionParser('usage: %prog [options] [SOURCES...]') + (options, args) = parser.parse_args() + + for i in args: + lines = open(i).readlines() + f = open(i,'w') + + # Keep track of the current section as we iterate over the input + current = '' + for j in lines: + + # Detect the start of a new section + m = section.match(j) + if m: + current = m.group(1).strip() + if current in match: + print >>f, j, + continue + + if current=='New Tokens': + if token.match(j): + print >>f, j, + elif current in match: + print >>f, j, + diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make.pl b/vendor/glew-cmake-2.2.0/auto/bin/make.pl new file mode 100644 index 0000000..e0b32ef --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make.pl @@ -0,0 +1,224 @@ +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +my %regex = ( + extname => qr/^[A-Z][A-Za-z0-9_]+$/, + exturl => qr/^http.+$/, + function => qr/^(.+) ([a-z][a-z0-9_]*) \((.*)\)$/i, + token => qr/^([A-Z][A-Z0-9_x]*)\s+((?:0x)?[0-9A-Fa-f]+(u(ll)?)?|[A-Z][A-Z0-9_]*)$/, + type => qr/^typedef\s+(.+)$/, + exact => qr/.*;$/, +); + +# prefix function name with glew +sub prefixname($) +{ + my $name = $_[0]; + $name =~ s/^(.*?)gl/__$1glew/; + return $name; +} + +# prefix function name with glew +sub prefix_varname($) +{ + my $name = $_[0]; + $name =~ s/^(.*?)GL(X*?)EW/__$1GL$2EW/; + return $name; +} + +#--------------------------------------------------------------------------------------- + +sub make_exact($) +{ + my $exact = $_[0]; + $exact =~ s/(; |{)/$1\n/g; + return $exact; +} + +sub make_separator($) +{ + my $extname = $_[0]; + my $l = length $extname; + my $s = (71 - $l)/2; + print "/* "; + my $j = 3; + for (my $i = 0; $i < $s; $i++) + { + print "-"; + $j++; + } + print " $_[0] "; + $j += $l + 2; + while ($j < 76) + { + print "-"; + $j++; + } + print " */\n\n"; +} + +#--------------------------------------------------------------------------------------- + +sub parse_ext($) +{ + my $filename = shift; + my %functions = (); + my %tokens = (); + my @reuse = (); # Extensions to reuse + my @types = (); + my @exacts = (); + my $extname = ""; # Full extension name GL_FOO_extension + my $exturl = ""; # Info URL + my $extstring = ""; # Relevant extension string + + open EXT, "<$filename" or return; + + # As of GLEW 1.14.0 the first four lines _must_ be + # the extension name, the URL and the GL extension + # string (which might be different to the name), + # and the reused extensions + # + # For example GL_NV_geometry_program4 is available + # iff GL_NV_gpu_program4 appears in the extension + # string. + # + # For core OpenGL versions, the third line should + # be blank. + # + # If the URL is unknown, the second line should be + # blank. + + $extname = readline(*EXT); + $exturl = readline(*EXT); + $extstring = readline(*EXT); + @reuse = split(" ", readline(*EXT)); + + chomp($extname); + chomp($exturl); + chomp($extstring); + + while() + { + chomp; + if (s/^\s+//) + { + if (/$regex{exact}/) + { + push @exacts, $_; + } + elsif (/$regex{type}/) + { + push @types, $_; + } + elsif (/$regex{token}/) + { + my ($name, $value) = ($1, $2); + $tokens{$name} = $value; + } + elsif (/$regex{function}/) + { + my ($return, $name, $parms) = ($1, $2, $3); + $functions{$name} = { + rtype => $return, + parms => $parms, + }; + } else { + print STDERR "'$_' matched no regex.\n"; + } + } + } + + close EXT; + + return ($extname, $exturl, $extstring, \@reuse, \@types, \%tokens, \%functions, \@exacts); +} + +sub output_tokens($$) +{ + my ($tbl, $fnc) = @_; + if (keys %{$tbl}) + { + local $, = "\n"; + print "\n"; + print map { &{$fnc}($_, $tbl->{$_}) } sort { + if (${$tbl}{$a} eq ${$tbl}{$b}) { + $a cmp $b + } else { + if (${$tbl}{$a} =~ /_/) { + if (${$tbl}{$b} =~ /_/) { + $a cmp $b + } else { + -1 + } + } else { + if (${$tbl}{$b} =~ /_/) { + 1 + } else { + if (hex ${$tbl}{$a} eq hex ${$tbl}{$b}) { + $a cmp $b + } else { + hex ${$tbl}{$a} <=> hex ${$tbl}{$b} + } + } + } + } + } keys %{$tbl}; + print "\n"; + } else { + print STDERR "no keys in table!\n"; + } +} + +sub output_types($$) +{ + my ($tbl, $fnc) = @_; + if (scalar @{$tbl}) + { + local $, = "\n"; + print "\n"; + print map { &{$fnc}($_) } sort @{$tbl}; + print "\n"; + } +} + +sub output_decls($$) +{ + my ($tbl, $fnc) = @_; + if (keys %{$tbl}) + { + local $, = "\n"; + print "\n"; + print map { &{$fnc}($_, $tbl->{$_}) } sort keys %{$tbl}; + print "\n"; + } +} + +sub output_exacts($$) +{ + my ($tbl, $fnc) = @_; + if (scalar @{$tbl}) + { + local $, = "\n"; + print "\n"; + print map { &{$fnc}($_) } sort @{$tbl}; + print "\n"; + } +} + +sub output_reuse($$) +{ + my ($tbl, $fnc) = @_; + if (scalar @{$tbl}) + { + local $, = "\n"; + print "\n"; + print map { &{$fnc}($_) } sort @{$tbl}; + print "\n"; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_def_fun.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_def_fun.pl new file mode 100644 index 0000000..af74706 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_def_fun.pl @@ -0,0 +1,37 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +# function pointer declaration +sub make_pfn_decl($%) +{ + return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;"; +} + +my @extlist = (); +my %extensions = (); + +our $type = shift; + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + output_decls($functions, \&make_pfn_decl); + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_def_var.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_def_var.pl new file mode 100644 index 0000000..993a68c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_def_var.pl @@ -0,0 +1,33 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +my @extlist = (); +my %extensions = (); + +our $type = shift; + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + my $extvar = $extname; + $extvar =~ s/GL(X*)_/GL$1EW_/; + print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n"; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_enable_index.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_enable_index.pl new file mode 100644 index 0000000..bdbe7d1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_enable_index.pl @@ -0,0 +1,48 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; +use File::Basename; + +use lib '.'; +do 'bin/make.pl'; + +## +## Make Extension-enabled Index +## + +my @extlist = (); + +if (@ARGV) +{ + @extlist = @ARGV; + + print "/* Detected in the extension string or strings */\n"; + print "static GLboolean _glewExtensionString[" . scalar @extlist . "];\n"; + + print "/* Detected via extension string or experimental mode */\n"; + print "static GLboolean* _glewExtensionEnabled[] = {\n";; + + foreach my $ext (sort { basename($a) cmp basename($b) } @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = + parse_ext($ext); + + my $extvar = $extname; + $extvar =~ s/GL(X*)_/GL$1EW_/; + + print "#ifdef $extname\n"; + print " &__$extvar,\n"; + print "#endif\n"; + } + + print " NULL\n};\n\n"; +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_header.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_header.pl new file mode 100644 index 0000000..9917db1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_header.pl @@ -0,0 +1,73 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +# token +sub make_define($$) +{ + return "#define $_[0] $_[1]" +} + +# type declaration +sub make_type($$) +{ + return "@_;" +} + +# function pointer type declaration +sub make_pfn_type($%) +{ + our $api; + return join(' ', "typedef", $_[1]->{rtype}, + "($api * PFN" . (uc $_[0]) . "PROC)", + "(" . $_[1]->{parms} . ")") . ";"; +} + +# function name alias +sub make_pfn_alias($%) +{ + our $type; + return join(" ", "#define", $_[0], $type . "EW_GET_FUN(" . prefixname($_[0]) . ")") +} + +my @extlist = (); +my %extensions = (); + +our $api = shift; +our $type = shift; + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + + make_separator($extname); + print "#ifndef $extname\n#define $extname 1\n"; + output_tokens($tokens, \&make_define); + output_types($types, \&make_type); + output_exacts($exacts, \&make_exact); + output_decls($functions, \&make_pfn_type); + output_decls($functions, \&make_pfn_alias); + + my $extvar = $extname; + $extvar =~ s/GL(X*)_/GL$1EW_/; + + print "\n#define $extvar " . $type . "EW_GET_VAR(" . prefix_varname($extvar) . ")\n"; + print "\n#endif /* $extname */\n\n"; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_html.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_html.pl new file mode 100644 index 0000000..be97003 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_html.pl @@ -0,0 +1,57 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +#--------------------------------------------------------------------------------------- + +my @extlist = (); +my %extensions = (); +my $group = ""; +my $cur_group = ""; + +if (@ARGV) +{ + @extlist = @ARGV; + my $n = 1; + print "\n"; + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + $cur_group = $extname; + $cur_group =~ s/^(?:W?)GL(?:X?)_([A-Z0-9]+?)_.*$/$1/; + $extname =~ s/^(?:W?)GL(?:X?)_(.*)$/$1/; + if ($cur_group ne $group) + { + if ($group ne "") + { + print "\n"; + } + $group = $cur_group; + } + + { + if ($exturl) + { + print "\n"; + } + else + { + print "\n"; + } + $n++; + } + } + print "

$n $extname
$n $extname
\n" +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_index.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_index.pl new file mode 100644 index 0000000..cf247f8 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_index.pl @@ -0,0 +1,41 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; +use File::Basename; + +use lib '.'; +do 'bin/make.pl'; + +## +## Make Index +## +## Output sorted array of extension strings for indexing into extension +## enable/disable flags. This provides a way to convert an extension string +## into an integer index. +## + +my @extlist = (); + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort { basename($a) cmp basename($b) } @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = + parse_ext($ext); + + print "#ifdef $extname\n"; + print " \"$extname\",\n"; + print "#endif\n"; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_info.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_info.pl new file mode 100644 index 0000000..3dcece9 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_info.pl @@ -0,0 +1,71 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +#--------------------------------------------------------------------------------------- + +# function pointer definition +sub make_pfn_info($%) +{ + my $name = $_[0]; + return " glewInfoFunc(fi, \"$_[0]\", $name == NULL);"; +} + +#--------------------------------------------------------------------------------------- + +my @extlist = (); +my %extensions = (); + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + my $extvar = $extname; + $extvar =~ s/GL(X*)_/GL$1EW_/; + my $extpre = $extname; + $extpre =~ s/(GLX|GLW|GL).*/$1/; + $extpre = lc $extpre; + + #make_separator($extname); + print "#ifdef $extname\n\n"; + print "static void _glewInfo_$extname (void)\n{\n"; + + if (! %$functions) + { + print " "; + } + else + { + print " GLboolean fi = "; + } + + if ($extvar =~ /VERSION/) + { + print "glewPrintExt(\"$extname\", $extvar, $extvar, $extvar);\n"; + } + else + { + print "glewPrintExt(\"$extname\", $extvar, $extpre" . + "ewIsSupported(\"$extname\"), $extpre" . + "ewGetExtension(\"$extstring\"));\n"; + } + output_decls($functions, \&make_pfn_info); + print "}\n\n"; + print "#endif /* $extname */\n\n"; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_info_list.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_info_list.pl new file mode 100644 index 0000000..74dbb77 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_info_list.pl @@ -0,0 +1,49 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +#--------------------------------------------------------------------------------------- + +# function pointer definition +sub make_pfn_def($%) +{ + return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;"; +} + +# function pointer definition +sub make_init_call($%) +{ + my $name = prefixname($_[0]); + return " r = r || (" . $name . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress((const GLubyte*)\"" . $name . "\")) == NULL;"; +} + +#--------------------------------------------------------------------------------------- + +my @extlist = (); +my %extensions = (); + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + + print "#ifdef $extname\n"; + print " _glewInfo_$extname();\n"; + print "#endif /* $extname */\n"; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_init.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_init.pl new file mode 100644 index 0000000..37922ee --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_init.pl @@ -0,0 +1,61 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +#------------------------------------------------------------------------------- + +# function pointer definition +sub make_pfn_def_init($%) +{ + #my $name = prefixname($_[0]); + return " r = ((" . $_[0] . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress((const GLubyte*)\"" . $_[0] . "\")) == NULL) || r;"; +} + +sub make_reuse_call($%) +{ + return " r = _glewInit_" . $_[0] . "() || r;"; +} + +#------------------------------------------------------------------------------- + +my @extlist = (); +my %extensions = (); + +our $type = shift; + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = + parse_ext($ext); + + #make_separator($extname); + my $extvar = $extname; + my $extvardef = $extname; + $extvar =~ s/GL(X*)_/GL$1EW_/; + if (keys %$functions or keys @$reuse) + { + print "#ifdef $extname\n\n"; + print "static GLboolean _glewInit_$extname ()\n{\n GLboolean r = GL_FALSE;\n"; + output_reuse($reuse, \&make_reuse_call); + output_decls($functions, \&make_pfn_def_init); + print "\n return r;\n}\n\n"; + print "#endif /* $extname */\n\n"; + } + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_initd.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_initd.pl new file mode 100644 index 0000000..2f7e2e6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_initd.pl @@ -0,0 +1,45 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +## Output declarations for the _glewInit_[extension] functions defined +## by make_init.pl script. These are necessary for for initializers to +## call each other, such as a core GL 3 context that depends on certain +## extensions. + +#------------------------------------------------------------------------------- + +my @extlist = (); +my %extensions = (); + +our $type = shift; + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = + parse_ext($ext); + + #print "#ifdef $extname\n\n"; + if (keys %$functions) + { + print "static GLboolean _glewInit_$extname ();\n"; + } + #print "#endif /* $extname */\n\n"; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_list.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_list.pl new file mode 100644 index 0000000..38aebcd --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_list.pl @@ -0,0 +1,75 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +#--------------------------------------------------------------------------------------- + +# function pointer definition +sub make_init_call($%) +{ + my $name = prefixname($_[0]); + return " r = r || (" . $_[0] . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress(\"" . $name . "\")) == NULL;"; +} + +#--------------------------------------------------------------------------------------- + +my @extlist = (); +my %extensions = (); + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + + my $extvar = $extname; + $extvar =~ s/GL(X*)_/GL$1EW_/; + + my $extpre = $extname; + $extpre =~ s/^(W?E?)GL(X?).*$/\l$1gl\l$2ew/; + + #my $pextvar = prefix_varname($extvar); + + if (length($extstring) && $extstring !~ /^GL_/ || keys %$functions) + { + print "#ifdef $extname\n"; + } + + if (length($extstring) && $extstring !~ /^GL_/) + { + print " " . $extvar . " = _glewSearchExtension(\"$extstring\", extStart, extEnd);\n"; + } + + if (keys %$functions) + { + if ($extname =~ /WGL_.*/) + { + print " if (glewExperimental || " . $extvar . "|| crippled) " . $extvar . "= !_glewInit_$extname();\n"; + } + else + { + print " if (glewExperimental || " . $extvar . ") " . $extvar . " = !_glewInit_$extname();\n"; + } + } + + if (length($extstring) && $extstring !~ /^GL_/ || keys %$functions) + { + print "#endif /* $extname */\n"; + } + } + +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_list2.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_list2.pl new file mode 100644 index 0000000..3ded727 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_list2.pl @@ -0,0 +1,46 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +#--------------------------------------------------------------------------------------- +# Extensions that depend on others can be enabled once we know +# if the one it depends on, is enabled. + +my @extlist = (); +my %extensions = (); + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + + if ($extname ne $extstring && length($extstring)) + { + my $extvar = $extname; + $extvar =~ s/GL(X*)_/GL$1EW_/; + + my $parent = $extstring; + $parent =~ s/GL(X*)_/GL$1EW_/; + + print "#ifdef $extname\n"; + print " $extvar = $parent;\n"; + print "#endif /* $extname */\n"; + } + } + +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_str.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_str.pl new file mode 100644 index 0000000..a6d7709 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_str.pl @@ -0,0 +1,55 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +my @extlist = (); +my %extensions = (); + +if (@ARGV) +{ + @extlist = @ARGV; + + my $curexttype = ""; + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + my $exttype = $extname; + $exttype =~ s/(W?E?)GL(X?)_(.*?_)(.*)/$3/; + my $extrem = $extname; + $extrem =~ s/(W?E?)GL(X?)_(.*?_)(.*)/$4/; + my $extvar = $extname; + $extvar =~ s/(W?E?)GL(X?)_/$1GL$2EW_/; + if(!($exttype =~ $curexttype)) + { + if(length($curexttype) > 0) + { + print " }\n"; + } + print " if (_glewStrSame2(&pos, &len, (const GLubyte*)\"$exttype\", " . length($exttype) . "))\n"; + print " {\n"; + $curexttype = $exttype; + } + print "#ifdef $extname\n"; + print " if (_glewStrSame3(&pos, &len, (const GLubyte*)\"$extrem\", ". length($extrem) . "))\n"; + #print " return $extvar;\n"; + print " {\n"; + print " ret = $extvar;\n"; + print " continue;\n"; + print " }\n"; + print "#endif\n"; + } + + print " }\n"; +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_struct_fun.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_struct_fun.pl new file mode 100644 index 0000000..cc9eef5 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_struct_fun.pl @@ -0,0 +1,38 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +# function pointer declaration +sub make_pfn_decl($%) +{ + our $export; + return $export . " PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . ";"; +} + +my @extlist = (); +my %extensions = (); + +our $export = shift; + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + output_decls($functions, \&make_pfn_decl); + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/make_struct_var.pl b/vendor/glew-cmake-2.2.0/auto/bin/make_struct_var.pl new file mode 100644 index 0000000..ab8b8b5 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/make_struct_var.pl @@ -0,0 +1,33 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +use lib '.'; +do 'bin/make.pl'; + +my @extlist = (); +my %extensions = (); + +our $export = shift; + +if (@ARGV) +{ + @extlist = @ARGV; + + foreach my $ext (sort @extlist) + { + my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext); + my $extvar = $extname; + $extvar =~ s/GL(X*)_/GL$1EW_/; + print $export . " GLboolean " . prefix_varname($extvar) . ";\n"; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/parse_spec.pl b/vendor/glew-cmake-2.2.0/auto/bin/parse_spec.pl new file mode 100644 index 0000000..5e12f60 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/parse_spec.pl @@ -0,0 +1,410 @@ +#!/usr/bin/env perl +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. + +use strict; +use warnings; + +sub compile_regex +{ + my $regex = join('', @_); + return qr/$regex/ +} + +my @sections = ( + "Name", + "Name Strings?", + "New Procedures and Functions", + "New Tokens.*", # Optional (GL/WGL/GLX/...) suffix + "Additions to Chapter.*", +); + +my %typemap = ( + bitfield => "GLbitfield", + boolean => "GLboolean", + # fsck up in EXT_vertex_array + Boolean => "GLboolean", + byte => "GLbyte", + clampd => "GLclampd", + clampf => "GLclampf", + double => "GLdouble", + enum => "GLenum", + # Intel fsck up + Glenum => "GLenum", + float => "GLfloat", + half => "GLhalf", + int => "GLint", + short => "GLshort", + sizei => "GLsizei", + ubyte => "GLubyte", + uint => "GLuint", + ushort => "GLushort", + DMbuffer => "void *", + # Nvidia video output fsck up + int64EXT => "GLint64EXT", + uint64EXT=> "GLuint64EXT", + + # ARB VBO introduces these. + + sizeiptr => "GLsizeiptr", + intptr => "GLintptr", + sizeiptrARB => "GLsizeiptrARB", + intptrARB => "GLintptrARB", + + # ARB shader objects introduces these, charARB is at least 8 bits, + # handleARB is at least 32 bits + charARB => "GLcharARB", + handleARB => "GLhandleARB", + + char => "GLchar", + + # OpenGL 3.2 and GL_ARB_sync + + int64 => "GLint64", + uint64 => "GLuint64", + sync => "GLsync", + + # GL_EXT_EGL_image_storage + + eglImageOES => "GLeglImageOES", + + # AMD_debug_output + + DEBUGPROCAMD => "GLDEBUGPROCAMD", + + # ARB_debug_output + + DEBUGPROCARB => "GLDEBUGPROCARB", + + # KHR_debug + + DEBUGPROC => "GLDEBUGPROC", + + VULKANPROCNV => "GLVULKANPROCNV", + + vdpauSurfaceNV => "GLvdpauSurfaceNV", + + # GLX 1.3 defines new types which might not be available at compile time + + #GLXFBConfig => "void*", + #GLXFBConfigID => "XID", + #GLXContextID => "XID", + #GLXWindow => "XID", + #GLXPbuffer => "XID", + + # Weird stuff to some SGIX extension + + #GLXFBConfigSGIX => "void*", + #GLXFBConfigIDSGIX => "XID", + +); + +my %voidtypemap = ( + void => "GLvoid", +); + +my %taboo_tokens = ( + GL_ZERO => 1, +); + +# list of function definitions to be ignored, unless they are being defined in +# the given spec. This is an ugly hack around the fact that people writing +# spec files seem to shut down all brain activity while they are at this task. +# +# This will be moved to its own file eventually. +# +# (mem, 2003-03-19) + +my %fnc_ignore_list = ( + "BindProgramARB" => "ARB_vertex_program", + "ColorSubTableEXT" => "EXT_color_subtable", + "DeleteProgramsARB" => "ARB_vertex_program", + "GenProgramsARB" => "ARB_vertex_program", + "GetProgramEnvParameterdvARB" => "ARB_vertex_program", + "GetProgramEnvParameterfvARB" => "ARB_vertex_program", + "GetProgramLocalParameterdvARB" => "ARB_vertex_program", + "GetProgramLocalParameterfvARB" => "ARB_vertex_program", + "GetProgramStringARB" => "ARB_vertex_program", + "GetProgramivARB" => "ARB_vertex_program", + "IsProgramARB" => "ARB_vertex_program", + "ProgramEnvParameter4dARB" => "ARB_vertex_program", + "ProgramEnvParameter4dvARB" => "ARB_vertex_program", + "ProgramEnvParameter4fARB" => "ARB_vertex_program", + "ProgramEnvParameter4fvARB" => "ARB_vertex_program", + "ProgramLocalParameter4dARB" => "ARB_vertex_program", + "ProgramLocalParameter4dvARB" => "ARB_vertex_program", + "ProgramLocalParameter4fARB" => "ARB_vertex_program", + "ProgramLocalParameter4fvARB" => "ARB_vertex_program", + "ProgramStringARB" => "ARB_vertex_program", + "EGLImageTargetTexture2DOES" => "OES_EGL_image", + "FramebufferTextureOES" => "GL_OES_geometry_shader", + "PatchParameteriOES" => "GL_OES_tessellation_shader", + "PointSizePointerOES" => "GL_OES_point_size_array", + "LockArraysEXT" => "EXT_compiled_vertex_array", + "UnlockArraysEXT" => "EXT_compiled_vertex_array", + "CoverageMaskNV" => "NV_coverage_sample", + "CoverageOperationNV" => "NV_coverage_sample", + "glXCreateContextAttribsARB" => "ARB_create_context_profile", + "wglCreateContextAttribsARB" => "WGL_ARB_create_context_profile", +); + +my %regex = ( + eofnc => qr/(?:\);?$|^$)/, # )$ | );$ | ^$ + extname => qr/^[A-Z][A-Za-z0-9_]+$/, + none => qr/^\(none\)$/, + function => qr/^(.+) ([a-z][a-z0-9_]*) \((.*)\)$/i, + prefix => qr/^(?:[aw]?gl|glX|egl)/, # gl | agl | wgl | glX + tprefix => qr/^(?:[AW]?GL|GLX|EGL)_/, # GL_ | AGL_ | WGL_ | GLX_ + section => compile_regex('^(', join('|', @sections), ')$'), # sections in spec + token => qr/^([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-Fa-f]+(u(ll)?)?)(|\s[^\?]*)$/, # define tokens + types => compile_regex('\b(', join('|', keys %typemap), ')\b'), # var types + voidtype => compile_regex('\b(', keys %voidtypemap, ')\b '), # void type +); + +# reshapes the the function declaration from multiline to single line form +sub normalize_prototype +{ + local $_ = join(" ", @_); + s/\s+/ /g; # multiple whitespace -> single space + s/\<.*\>//g; # remove from direct state access extension + s/\<.*$//g; # remove incomplete from direct state access extension + s#/\*.*\*/##g; # remove /* ... */ comments + s/\s*\(\s*/ \(/; # exactly one space before ( and none after + s/\s*\)\s*/\)/; # no space before or after ) + s/\s*\*([a-zA-Z])/\* $1/; # "* identifier" + s/\*wgl/\* wgl/; # "* wgl" + s/\*glX/\* glX/; # "* glX" + s/\.\.\./void/; # ... -> void + s/;$//; # remove ; at the end of the line + return $_; +} + +# Ugly hack to work around the fact that functions are declared in more +# than one spec file. +sub ignore_function($$) +{ + return exists($fnc_ignore_list{$_[0]}) && $fnc_ignore_list{$_[0]} ne $_[1] +} + +sub parse_spec($) +{ + my $filename = shift; + my $extname = ""; + my $vendortag = ""; + my @extnames = (); + my %functions = (); + my %tokens = (); + + my $section = ""; + my @fnc = (); + + my %proc = ( + "Name" => sub { + if (/^([a-z0-9]+)_([a-z0-9_]+)/i) + { + $extname = "$1_$2"; + $vendortag = $1; + } + }, + + "Name Strings" => sub { + # Add extension name to extension list + + # Initially use $extname if (none) specified + if (/$regex{none}/) + { + $_ = $extname; + } + + if (/$regex{extname}/) + { + # prefix with "GL_" if prefix not present + s/^/GL_/ unless /$regex{tprefix}/o; + # Add extension name to extension list + push @extnames, $_; + } + }, + + "New Procedures and Functions" => sub { + # if line matches end of function + if (/$regex{eofnc}/) + { + # add line to function declaration + push @fnc, $_; + + # if normalized version of function looks like a function + if (normalize_prototype(@fnc) =~ /$regex{function}/) + { + # get return type, name, and arguments from regex + my ($return, $name, $parms) = ($1, $2, $3); + if (!ignore_function($name, $extname)) + { + # prefix with "gl" if prefix not present + $name =~ s/^/gl/ unless $name =~ /$regex{prefix}/; + # is this a pure GL function? + if ($name =~ /^gl/ && $name !~ /^glX/) + { + # apply typemaps + $return =~ s/$regex{types}/$typemap{$1}/og; + $return =~ s/GLvoid/void/og; + $return =~ s/void\*/void */og; + $parms =~ s/$regex{types}/$typemap{$1}/og; + $parms =~ s/$regex{voidtype}/$voidtypemap{$1}/og; + $parms =~ s/GLvoid/void/og; + $parms =~ s/ void\* / void */og; + if ($parms eq "") + { + $parms = "void"; # NVX_progress_fence and others + } + } + # add to functions hash + $functions{$name} = { + rtype => $return, + parms => $parms, + }; + } + } + # reset function declaration + @fnc = (); + } elsif ($_ ne "" and $_ ne "None") { + # if not eof, add line to function declaration + push @fnc, $_ + } + }, + + "New Tokens" => sub { + if (/$regex{token}/) + { + my ($name, $value) = ($1, $2); + # prefix with "GL_" if prefix not present + $name =~ s/^/GL_/ unless $name =~ /$regex{tprefix}/; + # Add (name, value) pair to tokens hash, unless it's taboo + $tokens{$name} = $value unless exists $taboo_tokens{$name}; + } + }, + ); + + # Some people can't read, the template clearly says "Name String_s_" + $proc{"Name String"} = $proc{"Name Strings"}; + + # Open spec file + open SPEC, "<$filename" or return; + + # For each line of SPEC + while() + { + # Delete trailing newline character + chomp; + # Remove trailing white spaces + s/\s+$//; + # If starts with a capital letter, it must be a new section + if (/^[A-Z]/) + { + # Match section name with one of the predefined names + $section = /$regex{section}/o ? $1 : "default"; + } else { + # Line is internal to a section + # Remove leading whitespace + s/^\s+//; + # Call appropriate section processing function if it exists + &{$proc{$section}} if exists $proc{$section}; + } + } + + close SPEC; + + return ($extname, \@extnames, \%tokens, \%functions); +} + +#---------------------------------------------------------------------------------------- + +my @speclist = (); +my %extensions = (); + +my $ext_dir = shift; +my $reg_http = "https://www.khronos.org/registry/OpenGL/extensions/"; + +# Take command line arguments or read list from file +if (@ARGV) +{ + @speclist = @ARGV; +} else { + local $/; #??? + @speclist = split "\n", (<>); +} + +foreach my $spec (sort @speclist) +{ + my ($extname, $extnames, $tokens, $functions) = parse_spec($spec); + + foreach my $ext (@{$extnames}) + { + my $info = "$ext_dir/" . $ext; + open EXT, ">$info"; + print EXT $ext . "\n"; # Extension name + my $specname = $spec; + $specname =~ s/OpenGL-Registry\/extensions\///; + print EXT $reg_http . $specname . "\n"; # Extension info URL + print EXT $ext . "\n"; # Extension string + print EXT "\n"; # Resuses nothing by default + + my $prefix = $ext; + $prefix =~ s/^(.+?)(_.+)$/$1/; + foreach my $token (sort { + if (${$tokens}{$a} eq ${$tokens}{$b}) { + $a cmp $b + } else { + if (${$tokens}{$a} =~ /_/) { + if (${$tokens}{$b} =~ /_/) { + $a cmp $b + } else { + -1 + } + } else { + if (${$tokens}{$b} =~ /_/) { + 1 + } else { + if (${$tokens}{$a} =~ /u(ll)?$/) { + if (${$tokens}{$b} =~ /u(ll)?$/) { + $a cmp $b + } else { + -1 + } + } else { + if (${$tokens}{$b} =~ /u(ll)?$/) { + 1 + } else { + if (hex ${$tokens}{$a} eq hex ${$tokens}{$b}) + { + $a cmp $b + } else { + hex ${$tokens}{$a} <=> hex ${$tokens}{$b} + } + } + } + } + } + } + } keys %{$tokens}) + { + if ($token =~ /^$prefix\_.*/i) + { + print EXT "\t" . $token . " " . ${\%{$tokens}}{$token} . "\n"; + } + } + foreach my $function (sort keys %{$functions}) + { + if ($function =~ /^$prefix.*/i) + { + print EXT "\t" . ${$functions}{$function}{rtype} . " " . $function . " (" . ${$functions}{$function}{parms} . ")" . "\n"; + } + } + close EXT; + } +} diff --git a/vendor/glew-cmake-2.2.0/auto/bin/parse_xml.py b/vendor/glew-cmake-2.2.0/auto/bin/parse_xml.py new file mode 100644 index 0000000..28ecb9f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/parse_xml.py @@ -0,0 +1,145 @@ +#!/usr/bin/env python + +import re +import sys +from xml.dom.minidom import parse, Node + +# +# DOM traversal utility functions +# + +def findChildren(node, path): + result = [] + if len(path)==1: + for i in node.childNodes: + if i.nodeType==Node.ELEMENT_NODE: + if i.tagName==path[0]: + result.append(i) + else: + for i in node.childNodes: + if i.nodeType==Node.ELEMENT_NODE: + if i.tagName==path[0]: + result.extend(findChildren(i, path[1:])) + return result + +def findData(node, path): + return [ i.firstChild.data for i in findChildren(node, path) ] + +isPointer = re.compile('(.*)([ ]+)([*]+)') + +def findParams(node): + n = findData(node, ['name'])[0] + t = '' + for i in node.childNodes: + if i.nodeType==Node.TEXT_NODE: + t += i.data + if i.nodeType==Node.ELEMENT_NODE and i.tagName=='ptype': + t += i.firstChild.data + + t.strip() + m = isPointer.match(t) + if m: + t = ('%s%s'%(m.group(1), m.group(3))).strip() + return ( t, n.strip()) + +def findEnums(dom): + return {i.getAttribute('name'): i.getAttribute('value') for i in findChildren(dom, [ 'registry', 'enums', 'enum' ])} + +def findCommands(dom): + ret = {} + for i in findChildren(dom, [ 'registry', 'commands', 'command' ]): + r,n = findParams(findChildren(i, ['proto'])[0]) + p = [ findParams(j) for j in findChildren(i, ['param'])] + ret[n] = (r, p) + return ret + +def findFeatures(dom): + ret = {} + for i in findChildren(dom, [ 'registry', 'feature' ]): + n = i.getAttribute('name') + e = [j.getAttribute("name") for j in findChildren(i, [ 'require', 'enum' ])] + c = [j.getAttribute("name") for j in findChildren(i, [ 'require', 'command' ])] + ret[n] = (e,c) + return ret + +def findExtensions(dom): + ret = {} + for i in findChildren(dom, [ 'registry', 'extensions', 'extension' ]): + n = i.getAttribute('name') + e = [j.getAttribute("name") for j in findChildren(i, [ 'require', 'enum' ])] + c = [j.getAttribute("name") for j in findChildren(i, [ 'require', 'command' ])] + ret[n] = (e,c) + return ret + +def findApi(dom, name): + enums = findEnums(dom) + commands = findCommands(dom) + features = findFeatures(dom) + extensions = findExtensions(dom) + return (enums, commands, features, extensions) + +# +# +# + +isWGL = re.compile('WGL_([A-Z0-9]+)_.*') + +def writeExtension(f, name, extension, enums, commands): + f.write(('%s\n'%name).encode()) + + url = 'https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf' + + m = isWGL.match(name) + if m: + url = 'https://www.khronos.org/registry/OpenGL/extensions/%s/%s.txt'%(m.group(1), name) + + f.write(('%s\n'%(url)).encode()) + + if name.find('_VERSION_')==-1: + f.write(('%s\n'%name).encode()) + else: + f.write('\n'.encode()) + f.write('\n'.encode()) + + enums = [ (j, enums[j]) for j in extension[0] ] + for e in sorted(enums, key=lambda i: i[1]): + f.write(('\t%s %s\n'%(e[0], e[1])).encode()) + + commands = [ (j, commands[j]) for j in extension[1] ] + for c in sorted(commands): + params = ', '.join( [ '%s %s'%(j[0].strip(), j[1].strip()) for j in c[1][1] ] ) + if len(params)==0: + params = 'void' + f.write(('\t%s %s (%s)\n'%(c[1][0].strip(), c[0].strip(), params)).encode()) + +if __name__ == '__main__': + + from argparse import ArgumentParser + import os + + parser = ArgumentParser(description='usage: %prog [options] [XML specs...]') + parser.add_argument("--core", dest="core", help="location for core outputs", default='') + parser.add_argument("--api", dest="name", help="API name: egl, wgl, glx, etc", default='') + parser.add_argument("--extensions", dest="extensions", help="location for extensions outputs", default='') + + (options, args) = parser.parse_known_args() + options = vars(options) + + for i in args: + + dom = parse(i) + api = findApi(dom, options['name']) + + print('Found {} enums, {} commands, {} features and {} extensions.'.format( + len(api[0]), len(api[1]), len(api[2]), len(api[3]))) + + if len(options['core']): + for i in api[2].keys(): + with open(os.path.join(options['core'], i), 'wb') as f: + writeExtension(f, i, api[2][i], api[0], api[1]) + + if len(options['extensions']): + for i in api[3].keys(): + with open(os.path.join(options['extensions'], i), 'wb') as f: + writeExtension(f, i, api[3][i], api[0], api[1]) + diff --git a/vendor/glew-cmake-2.2.0/auto/bin/update_ext.sh b/vendor/glew-cmake-2.2.0/auto/bin/update_ext.sh new file mode 100644 index 0000000..0ee3af1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/bin/update_ext.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +## +## Copyright (C) 2008-2019, Nigel Stewart +## Copyright (C) 2002-2008, Marcelo E. Magallon +## Copyright (C) 2002-2008, Milan Ikits +## +## This program is distributed under the terms and conditions of the GNU +## General Public License Version 2 as published by the Free Software +## Foundation or, at your option, any later version. +## +## Parameters: +## +## $1: Extensions directory +## $2: Registry directory +## $3: The black list + +set -e + +if [ ! -d $1 ] ; then + mkdir -p $1 + +# Parse each of the extensions in the registry + find $2 -name doc -type d -prune -o -name "*.txt" -print | \ + grep -v -f $3 | sort | bin/parse_spec.pl $1 + +fi diff --git a/vendor/glew-cmake-2.2.0/auto/blacklist b/vendor/glew-cmake-2.2.0/auto/blacklist new file mode 100644 index 0000000..6e57351 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/blacklist @@ -0,0 +1,27 @@ +EXT/draw_range_elements.txt +EXT/static_vertex_array.txt +EXT/vertex_array_set.alt.txt +EXT/vertex_array_set.txt +EXT/nurbs_tessellator.txt +EXT/object_space_tess.txt +SGI/filter4_parameters.txt +SGIS/SGIS_texture_color_mask.txt +SGIX/SGIX_dmbuffer.txt +SGIX/SGIX_instruments.txt +SGIX/SGIX_video_source.txt +SGIX/SGIX_hyperpipe_group.txt +OES/OES_fixed_point.txt +OES/OES_query_matrix.txt +IMG/IMG_user_clip_plane.txt +NV/NV_query_resource.txt +NV/EGL_NV_coverage_sample.txt +OES/OES_draw_elements_base_vertex.txt +OES/OES_viewport_array.txt +OES/EGL_KHR_fence_sync.txt +EXT/EXT_texenv_op.txt +EXT/EXT_transform_feedback2.txt +EXT/EXT_vertex_array_set.txt +EXT/EXT_separate_shader_objects.gles.txt +IGLOO/IGLOO_swap_triangle_strip_vertex_pointerXXX.txt +IGLOO/IGLOO_viewport_offsetXXX.txt +IGLOO/IGLOO_toggle_color_and_lightXXX.txt diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_EXT_device_base b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_EXT_device_base new file mode 100644 index 0000000..fa1d2e1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_EXT_device_base @@ -0,0 +1,7 @@ +EGL_EXT_device_base +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf +EGL_EXT_device_base + + EGL_BAD_DEVICE_EXT 0x322B + EGL_DEVICE_EXT 0x322C + EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_fence_sync b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_fence_sync new file mode 100644 index 0000000..398b292 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_fence_sync @@ -0,0 +1,7 @@ +EGL_KHR_fence_sync +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf +EGL_KHR_fence_sync + + EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 + EGL_SYNC_CONDITION_KHR 0x30F8 + EGL_SYNC_FENCE_KHR 0x30F9 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_image_base b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_image_base new file mode 100644 index 0000000..dd38a6c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_image_base @@ -0,0 +1,6 @@ +EGL_KHR_image_base +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf +EGL_KHR_image_base + + EGL_IMAGE_PRESERVED_KHR 0x30D2 + EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_lock_surface3 b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_lock_surface3 new file mode 100644 index 0000000..4c0e13a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_KHR_lock_surface3 @@ -0,0 +1,27 @@ +EGL_KHR_lock_surface3 +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf +EGL_KHR_lock_surface3 + + EGL_READ_SURFACE_BIT_KHR 0x0001 + EGL_WRITE_SURFACE_BIT_KHR 0x0002 + EGL_LOCK_SURFACE_BIT_KHR 0x0080 + EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 + EGL_MATCH_FORMAT_KHR 0x3043 + EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 + EGL_FORMAT_RGB_565_KHR 0x30C1 + EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 + EGL_FORMAT_RGBA_8888_KHR 0x30C3 + EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 + EGL_LOCK_USAGE_HINT_KHR 0x30C5 + EGL_BITMAP_POINTER_KHR 0x30C6 + EGL_BITMAP_PITCH_KHR 0x30C7 + EGL_BITMAP_ORIGIN_KHR 0x30C8 + EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 + EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA + EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB + EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC + EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD + EGL_LOWER_LEFT_KHR 0x30CE + EGL_UPPER_LEFT_KHR 0x30CF + EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 + EGLBoolean eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_0 b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_0 new file mode 100644 index 0000000..ef48e74 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_0 @@ -0,0 +1,86 @@ +EGL_VERSION_1_0 +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf + + + EGL_FALSE 0 + EGL_PBUFFER_BIT 0x0001 + EGL_PIXMAP_BIT 0x0002 + EGL_WINDOW_BIT 0x0004 + EGL_SUCCESS 0x3000 + EGL_NOT_INITIALIZED 0x3001 + EGL_BAD_ACCESS 0x3002 + EGL_BAD_ALLOC 0x3003 + EGL_BAD_ATTRIBUTE 0x3004 + EGL_BAD_CONFIG 0x3005 + EGL_BAD_CONTEXT 0x3006 + EGL_BAD_CURRENT_SURFACE 0x3007 + EGL_BAD_DISPLAY 0x3008 + EGL_BAD_MATCH 0x3009 + EGL_BAD_NATIVE_PIXMAP 0x300A + EGL_BAD_NATIVE_WINDOW 0x300B + EGL_BAD_PARAMETER 0x300C + EGL_BAD_SURFACE 0x300D + EGL_BUFFER_SIZE 0x3020 + EGL_ALPHA_SIZE 0x3021 + EGL_BLUE_SIZE 0x3022 + EGL_GREEN_SIZE 0x3023 + EGL_RED_SIZE 0x3024 + EGL_DEPTH_SIZE 0x3025 + EGL_STENCIL_SIZE 0x3026 + EGL_CONFIG_CAVEAT 0x3027 + EGL_CONFIG_ID 0x3028 + EGL_LEVEL 0x3029 + EGL_MAX_PBUFFER_HEIGHT 0x302A + EGL_MAX_PBUFFER_PIXELS 0x302B + EGL_MAX_PBUFFER_WIDTH 0x302C + EGL_NATIVE_RENDERABLE 0x302D + EGL_NATIVE_VISUAL_ID 0x302E + EGL_NATIVE_VISUAL_TYPE 0x302F + EGL_SAMPLES 0x3031 + EGL_SAMPLE_BUFFERS 0x3032 + EGL_SURFACE_TYPE 0x3033 + EGL_TRANSPARENT_TYPE 0x3034 + EGL_TRANSPARENT_BLUE_VALUE 0x3035 + EGL_TRANSPARENT_GREEN_VALUE 0x3036 + EGL_TRANSPARENT_RED_VALUE 0x3037 + EGL_NONE 0x3038 + EGL_SLOW_CONFIG 0x3050 + EGL_NON_CONFORMANT_CONFIG 0x3051 + EGL_TRANSPARENT_RGB 0x3052 + EGL_VENDOR 0x3053 + EGL_VERSION 0x3054 + EGL_EXTENSIONS 0x3055 + EGL_HEIGHT 0x3056 + EGL_WIDTH 0x3057 + EGL_LARGEST_PBUFFER 0x3058 + EGL_DRAW 0x3059 + EGL_READ 0x305A + EGL_CORE_NATIVE_ENGINE 0x305B + EGL_TRUE 1 + EGL_NO_CONTEXT EGL_CAST(EGLContext,0) + EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0) + EGL_NO_SURFACE EGL_CAST(EGLSurface,0) + EGL_DONT_CARE EGL_CAST(EGLint,-1) + EGLBoolean eglChooseConfig (EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config) + EGLBoolean eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target) + EGLContext eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list) + EGLSurface eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list) + EGLSurface eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list) + EGLSurface eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list) + EGLBoolean eglDestroyContext (EGLDisplay dpy, EGLContext ctx) + EGLBoolean eglDestroySurface (EGLDisplay dpy, EGLSurface surface) + EGLBoolean eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value) + EGLBoolean eglGetConfigs (EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config) + EGLDisplay eglGetCurrentDisplay ( void ) + EGLSurface eglGetCurrentSurface (EGLint readdraw) + EGLDisplay eglGetDisplay (EGLNativeDisplayType display_id) + EGLint eglGetError ( void ) + EGLBoolean eglInitialize (EGLDisplay dpy, EGLint * major, EGLint * minor) + EGLBoolean eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) + EGLBoolean eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value) + const char * eglQueryString (EGLDisplay dpy, EGLint name) + EGLBoolean eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value) + EGLBoolean eglSwapBuffers (EGLDisplay dpy, EGLSurface surface) + EGLBoolean eglTerminate (EGLDisplay dpy) + EGLBoolean eglWaitGL ( void ) + EGLBoolean eglWaitNative (EGLint engine) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_1 b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_1 new file mode 100644 index 0000000..550dc24 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_1 @@ -0,0 +1,22 @@ +EGL_VERSION_1_1 +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf + + + EGL_CONTEXT_LOST 0x300E + EGL_BIND_TO_TEXTURE_RGB 0x3039 + EGL_BIND_TO_TEXTURE_RGBA 0x303A + EGL_MIN_SWAP_INTERVAL 0x303B + EGL_MAX_SWAP_INTERVAL 0x303C + EGL_NO_TEXTURE 0x305C + EGL_TEXTURE_RGB 0x305D + EGL_TEXTURE_RGBA 0x305E + EGL_TEXTURE_2D 0x305F + EGL_TEXTURE_FORMAT 0x3080 + EGL_TEXTURE_TARGET 0x3081 + EGL_MIPMAP_TEXTURE 0x3082 + EGL_MIPMAP_LEVEL 0x3083 + EGL_BACK_BUFFER 0x3084 + EGLBoolean eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer) + EGLBoolean eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer) + EGLBoolean eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value) + EGLBoolean eglSwapInterval (EGLDisplay dpy, EGLint interval) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_2 b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_2 new file mode 100644 index 0000000..e5a3a38 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_2 @@ -0,0 +1,38 @@ +EGL_VERSION_1_2 +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf + + + EGL_OPENGL_ES_BIT 0x0001 + EGL_OPENVG_BIT 0x0002 + EGL_LUMINANCE_SIZE 0x303D + EGL_ALPHA_MASK_SIZE 0x303E + EGL_COLOR_BUFFER_TYPE 0x303F + EGL_RENDERABLE_TYPE 0x3040 + EGL_SINGLE_BUFFER 0x3085 + EGL_RENDER_BUFFER 0x3086 + EGL_COLORSPACE 0x3087 + EGL_ALPHA_FORMAT 0x3088 + EGL_COLORSPACE_sRGB 0x3089 + EGL_COLORSPACE_LINEAR 0x308A + EGL_ALPHA_FORMAT_NONPRE 0x308B + EGL_ALPHA_FORMAT_PRE 0x308C + EGL_CLIENT_APIS 0x308D + EGL_RGB_BUFFER 0x308E + EGL_LUMINANCE_BUFFER 0x308F + EGL_HORIZONTAL_RESOLUTION 0x3090 + EGL_VERTICAL_RESOLUTION 0x3091 + EGL_PIXEL_ASPECT_RATIO 0x3092 + EGL_SWAP_BEHAVIOR 0x3093 + EGL_BUFFER_PRESERVED 0x3094 + EGL_BUFFER_DESTROYED 0x3095 + EGL_OPENVG_IMAGE 0x3096 + EGL_CONTEXT_CLIENT_TYPE 0x3097 + EGL_OPENGL_ES_API 0x30A0 + EGL_OPENVG_API 0x30A1 + EGL_DISPLAY_SCALING 10000 + EGL_UNKNOWN EGL_CAST(EGLint,-1) + EGLBoolean eglBindAPI (EGLenum api) + EGLSurface eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list) + EGLenum eglQueryAPI ( void ) + EGLBoolean eglReleaseThread ( void ) + EGLBoolean eglWaitClient ( void ) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_3 b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_3 new file mode 100644 index 0000000..de1d34d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_3 @@ -0,0 +1,16 @@ +EGL_VERSION_1_3 +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf + + + EGL_OPENGL_ES2_BIT 0x0004 + EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 + EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 + EGL_MATCH_NATIVE_PIXMAP 0x3041 + EGL_CONFORMANT 0x3042 + EGL_VG_COLORSPACE 0x3087 + EGL_VG_ALPHA_FORMAT 0x3088 + EGL_VG_COLORSPACE_sRGB 0x3089 + EGL_VG_COLORSPACE_LINEAR 0x308A + EGL_VG_ALPHA_FORMAT_NONPRE 0x308B + EGL_VG_ALPHA_FORMAT_PRE 0x308C + EGL_CONTEXT_CLIENT_VERSION 0x3098 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_4 b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_4 new file mode 100644 index 0000000..d8c71d3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_4 @@ -0,0 +1,13 @@ +EGL_VERSION_1_4 +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf + + + EGL_OPENGL_BIT 0x0008 + EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 + EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 + EGL_MULTISAMPLE_RESOLVE 0x3099 + EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A + EGL_MULTISAMPLE_RESOLVE_BOX 0x309B + EGL_OPENGL_API 0x30A2 + EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0) + EGLContext eglGetCurrentContext ( void ) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_5 b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_5 new file mode 100644 index 0000000..b436fdf --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/EGL_VERSION_1_5 @@ -0,0 +1,59 @@ +EGL_VERSION_1_5 +https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf + + + EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 + EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 + EGL_OPENGL_ES3_BIT 0x00000040 + EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 + EGL_GL_COLORSPACE_SRGB 0x3089 + EGL_GL_COLORSPACE_LINEAR 0x308A + EGL_CONTEXT_MAJOR_VERSION 0x3098 + EGL_CL_EVENT_HANDLE 0x309C + EGL_GL_COLORSPACE 0x309D + EGL_GL_TEXTURE_2D 0x30B1 + EGL_GL_TEXTURE_3D 0x30B2 + EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 + EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 + EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 + EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 + EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 + EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 + EGL_GL_RENDERBUFFER 0x30B9 + EGL_GL_TEXTURE_LEVEL 0x30BC + EGL_GL_TEXTURE_ZOFFSET 0x30BD + EGL_IMAGE_PRESERVED 0x30D2 + EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 + EGL_SYNC_STATUS 0x30F1 + EGL_SIGNALED 0x30F2 + EGL_UNSIGNALED 0x30F3 + EGL_TIMEOUT_EXPIRED 0x30F5 + EGL_CONDITION_SATISFIED 0x30F6 + EGL_SYNC_TYPE 0x30F7 + EGL_SYNC_CONDITION 0x30F8 + EGL_SYNC_FENCE 0x30F9 + EGL_CONTEXT_MINOR_VERSION 0x30FB + EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD + EGL_SYNC_CL_EVENT 0x30FE + EGL_SYNC_CL_EVENT_COMPLETE 0x30FF + EGL_CONTEXT_OPENGL_DEBUG 0x31B0 + EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 + EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 + EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 + EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD + EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD + EGL_NO_RESET_NOTIFICATION 0x31BE + EGL_LOSE_CONTEXT_ON_RESET 0x31BF + EGL_FOREVER 0xFFFFFFFFFFFFFFFF + EGL_NO_IMAGE EGL_CAST(EGLImage,0) + EGL_NO_SYNC EGL_CAST(EGLSync,0) + EGLint eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout) + EGLImage eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list) + EGLSurface eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list) + EGLSurface eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list) + EGLSync eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list) + EGLBoolean eglDestroyImage (EGLDisplay dpy, EGLImage image) + EGLBoolean eglDestroySync (EGLDisplay dpy, EGLSync sync) + EGLDisplay eglGetPlatformDisplay (EGLenum platform, void * native_display, const EGLAttrib * attrib_list) + EGLBoolean eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value) + EGLBoolean eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ARB_get_proc_address b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ARB_get_proc_address new file mode 100644 index 0000000..e2cb2c5 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ARB_get_proc_address @@ -0,0 +1,5 @@ +GLX_ARB_get_proc_address +http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.txt +GLX_ARB_get_proc_address + + extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ATI_pixel_format_float b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ATI_pixel_format_float new file mode 100644 index 0000000..5336da4 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ATI_pixel_format_float @@ -0,0 +1,5 @@ +GLX_ATI_pixel_format_float + +GLX_ATI_pixel_format_float + + GLX_RGBA_FLOAT_ATI_BIT 0x00000100 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ATI_render_texture b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ATI_render_texture new file mode 100644 index 0000000..6b35814 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_ATI_render_texture @@ -0,0 +1,42 @@ +GLX_ATI_render_texture + +GLX_ATI_render_texture + + GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 + GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 + GLX_TEXTURE_FORMAT_ATI 0x9802 + GLX_TEXTURE_TARGET_ATI 0x9803 + GLX_MIPMAP_TEXTURE_ATI 0x9804 + GLX_TEXTURE_RGB_ATI 0x9805 + GLX_TEXTURE_RGBA_ATI 0x9806 + GLX_NO_TEXTURE_ATI 0x9807 + GLX_TEXTURE_CUBE_MAP_ATI 0x9808 + GLX_TEXTURE_1D_ATI 0x9809 + GLX_TEXTURE_2D_ATI 0x980A + GLX_MIPMAP_LEVEL_ATI 0x980B + GLX_CUBE_MAP_FACE_ATI 0x980C + GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D + GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E + GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F + GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 + GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 + GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 + GLX_FRONT_LEFT_ATI 0x9813 + GLX_FRONT_RIGHT_ATI 0x9814 + GLX_BACK_LEFT_ATI 0x9815 + GLX_BACK_RIGHT_ATI 0x9816 + GLX_AUX0_ATI 0x9817 + GLX_AUX1_ATI 0x9818 + GLX_AUX2_ATI 0x9819 + GLX_AUX3_ATI 0x981A + GLX_AUX4_ATI 0x981B + GLX_AUX5_ATI 0x981C + GLX_AUX6_ATI 0x981D + GLX_AUX7_ATI 0x981E + GLX_AUX8_ATI 0x981F + GLX_AUX9_ATI 0x9820 + GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 + GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 + void glXBindTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer) + void glXReleaseTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer) + void glXDrawableAttribATI (Display *dpy, GLXDrawable draw, const int *attrib_list) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_EXT_scene_marker b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_EXT_scene_marker new file mode 100644 index 0000000..064caac --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_EXT_scene_marker @@ -0,0 +1,4 @@ +GLX_EXT_scene_marker +https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_scene_marker.txt +GLX_EXT_scene_marker + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_NV_vertex_array_range b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_NV_vertex_array_range new file mode 100644 index 0000000..9250ec2 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_NV_vertex_array_range @@ -0,0 +1,6 @@ +GLX_NV_vertex_array_range +http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt +GLX_NV_vertex_array_range + + void * glXAllocateMemoryNV (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority) + void glXFreeMemoryNV (void *pointer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SGIS_color_range b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SGIS_color_range new file mode 100644 index 0000000..9286cff --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SGIS_color_range @@ -0,0 +1,4 @@ +GLX_SGIS_color_range +https://www.khronos.org/registry/OpenGL/extensions/SGIS/GLX_SGIS_color_range.txt +GLX_SGIS_color_range + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SGIX_hyperpipe b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SGIX_hyperpipe new file mode 100644 index 0000000..80fd7d6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SGIX_hyperpipe @@ -0,0 +1,26 @@ +GLX_SGIX_hyperpipe +http://oss.sgi.com/projects/ogl-sample/registry/SGIX/hyperpipe_group.txt +GLX_SGIX_hyperpipe + + GLX_HYPERPIPE_ID_SGIX 0x8030 + GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 + GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 + GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 + GLX_PIPE_RECT_SGIX 0x00000001 + GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 + GLX_HYPERPIPE_STEREO_SGIX 0x00000003 + GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 + GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 + GLX_BAD_HYPERPIPE_SGIX 92 + typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int networkId; } GLXHyperpipeNetworkSGIX; + typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int channel; unsigned int participationType; int timeSlice; } GLXHyperpipeConfigSGIX; + typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int srcXOrigin; int srcYOrigin; int srcWidth; int srcHeight; int destXOrigin; int destYOrigin; int destWidth; int destHeight; } GLXPipeRect; + typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int XOrigin; int YOrigin; int maxHeight; int maxWidth; } GLXPipeRectLimits; + GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes) + int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId) + GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes) + int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId) + int glXBindHyperpipeSGIX (Display *dpy, int hpId) + int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList) + int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList) + int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SUN_video_resize b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SUN_video_resize new file mode 100644 index 0000000..3a5a176 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_SUN_video_resize @@ -0,0 +1,8 @@ +GLX_SUN_video_resize +http://wwws.sun.com/software/graphics/opengl/extensions/glx_sun_video_resize.txt +GLX_SUN_video_resize + + GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD + GLX_VIDEO_RESIZE_SUN 0x8171 + int glXVideoResizeSUN (Display* display, GLXDrawable window, float factor) + int glXGetVideoResizeSUN (Display* display, GLXDrawable window, float* factor) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_2 b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_2 new file mode 100644 index 0000000..8a12e84 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_2 @@ -0,0 +1,5 @@ +GLX_VERSION_1_2 +http://www.opengl.org/documentation/specs/glx/glx1.2.ps +GLX_VERSION_1_2 + + Display* glXGetCurrentDisplay (void) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_3 b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_3 new file mode 100644 index 0000000..1cf24be --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_3 @@ -0,0 +1,83 @@ +GLX_VERSION_1_3 +http://www.opengl.org/documentation/specs/glx/glx1.3.pdf +GLX_VERSION_1_3 + + GLX_WINDOW_BIT 0x00000001 + GLX_PIXMAP_BIT 0x00000002 + GLX_PBUFFER_BIT 0x00000004 + GLX_RGBA_BIT 0x00000001 + GLX_COLOR_INDEX_BIT 0x00000002 + GLX_PBUFFER_CLOBBER_MASK 0x08000000 + GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 + GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 + GLX_BACK_LEFT_BUFFER_BIT 0x00000004 + GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 + GLX_AUX_BUFFERS_BIT 0x00000010 + GLX_DEPTH_BUFFER_BIT 0x00000020 + GLX_STENCIL_BUFFER_BIT 0x00000040 + GLX_ACCUM_BUFFER_BIT 0x00000080 + GLX_CONFIG_CAVEAT 0x20 + GLX_X_VISUAL_TYPE 0x22 + GLX_TRANSPARENT_TYPE 0x23 + GLX_TRANSPARENT_INDEX_VALUE 0x24 + GLX_TRANSPARENT_RED_VALUE 0x25 + GLX_TRANSPARENT_GREEN_VALUE 0x26 + GLX_TRANSPARENT_BLUE_VALUE 0x27 + GLX_TRANSPARENT_ALPHA_VALUE 0x28 + GLX_DONT_CARE 0xFFFFFFFF + GLX_NONE 0x8000 + GLX_SLOW_CONFIG 0x8001 + GLX_TRUE_COLOR 0x8002 + GLX_DIRECT_COLOR 0x8003 + GLX_PSEUDO_COLOR 0x8004 + GLX_STATIC_COLOR 0x8005 + GLX_GRAY_SCALE 0x8006 + GLX_STATIC_GRAY 0x8007 + GLX_TRANSPARENT_RGB 0x8008 + GLX_TRANSPARENT_INDEX 0x8009 + GLX_VISUAL_ID 0x800B + GLX_SCREEN 0x800C + GLX_NON_CONFORMANT_CONFIG 0x800D + GLX_DRAWABLE_TYPE 0x8010 + GLX_RENDER_TYPE 0x8011 + GLX_X_RENDERABLE 0x8012 + GLX_FBCONFIG_ID 0x8013 + GLX_RGBA_TYPE 0x8014 + GLX_COLOR_INDEX_TYPE 0x8015 + GLX_MAX_PBUFFER_WIDTH 0x8016 + GLX_MAX_PBUFFER_HEIGHT 0x8017 + GLX_MAX_PBUFFER_PIXELS 0x8018 + GLX_PRESERVED_CONTENTS 0x801B + GLX_LARGEST_PBUFFER 0x801C + GLX_WIDTH 0x801D + GLX_HEIGHT 0x801E + GLX_EVENT_MASK 0x801F + GLX_DAMAGED 0x8020 + GLX_SAVED 0x8021 + GLX_WINDOW 0x8022 + GLX_PBUFFER 0x8023 + GLX_PBUFFER_HEIGHT 0x8040 + GLX_PBUFFER_WIDTH 0x8041 + GLXFBConfig* glXChooseFBConfig (Display *dpy, int screen, const int *attrib_list, int *nelements) + GLXFBConfig* glXGetFBConfigs (Display *dpy, int screen, int *nelements) + XVisualInfo* glXGetVisualFromFBConfig (Display *dpy, GLXFBConfig config) + int glXGetFBConfigAttrib (Display *dpy, GLXFBConfig config, int attribute, int *value) + GLXWindow glXCreateWindow (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list) + void glXDestroyWindow (Display *dpy, GLXWindow win) + GLXPixmap glXCreatePixmap (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list) + void glXDestroyPixmap (Display *dpy, GLXPixmap pixmap) + GLXPbuffer glXCreatePbuffer (Display *dpy, GLXFBConfig config, const int *attrib_list) + void glXDestroyPbuffer (Display *dpy, GLXPbuffer pbuf) + void glXQueryDrawable (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value) + GLXContext glXCreateNewContext (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct) + Bool glXMakeContextCurrent (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx) + GLXDrawable glXGetCurrentReadDrawable (void) + int glXQueryContext (Display *dpy, GLXContext ctx, int attribute, int *value) + void glXSelectEvent (Display *dpy, GLXDrawable draw, unsigned long event_mask) + void glXGetSelectedEvent (Display *dpy, GLXDrawable draw, unsigned long *event_mask) + typedef XID GLXWindow + typedef XID GLXPbuffer + typedef XID GLXFBConfigID + typedef struct __GLXFBConfigRec *GLXFBConfig + typedef struct { int event_type; int draw_type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; unsigned int buffer_mask; unsigned int aux_buffer; int x, y; int width, height; int count; } GLXPbufferClobberEvent; + typedef union __GLXEvent { GLXPbufferClobberEvent glxpbufferclobber; long pad[24]; } GLXEvent; diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_4 new file mode 100644 index 0000000..9b9de3e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GLX_VERSION_1_4 @@ -0,0 +1,7 @@ +GLX_VERSION_1_4 +http://www.opengl.org/documentation/specs/glx/glx1.4.pdf +GLX_VERSION_1_4 + + GLX_SAMPLE_BUFFERS 100000 + GLX_SAMPLES 100001 + extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_float_pixels b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_float_pixels new file mode 100644 index 0000000..3eacd42 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_float_pixels @@ -0,0 +1,18 @@ +GL_APPLE_float_pixels +http://www.opengl.org/registry/specs/APPLE/float_pixels.txt +GL_APPLE_float_pixels + + GL_HALF_APPLE 0x140B + GL_COLOR_FLOAT_APPLE 0x8A0F + GL_RGBA_FLOAT32_APPLE 0x8814 + GL_RGB_FLOAT32_APPLE 0x8815 + GL_ALPHA_FLOAT32_APPLE 0x8816 + GL_INTENSITY_FLOAT32_APPLE 0x8817 + GL_LUMINANCE_FLOAT32_APPLE 0x8818 + GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 + GL_RGBA_FLOAT16_APPLE 0x881A + GL_RGB_FLOAT16_APPLE 0x881B + GL_ALPHA_FLOAT16_APPLE 0x881C + GL_INTENSITY_FLOAT16_APPLE 0x881D + GL_LUMINANCE_FLOAT16_APPLE 0x881E + GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_pixel_buffer b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_pixel_buffer new file mode 100644 index 0000000..1a8ad97 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_pixel_buffer @@ -0,0 +1,5 @@ +GL_APPLE_pixel_buffer + +GL_APPLE_pixel_buffer + + GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_texture_range b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_texture_range new file mode 100644 index 0000000..e2bf85c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_APPLE_texture_range @@ -0,0 +1,13 @@ +GL_APPLE_texture_range +http://www.opengl.org/registry/specs/APPLE/texture_range.txt +GL_APPLE_texture_range + + GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC + GL_STORAGE_PRIVATE_APPLE 0x85BD + GL_STORAGE_CACHED_APPLE 0x85BE + GL_STORAGE_SHARED_APPLE 0x85BF + GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 + GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 + void glTextureRangeAPPLE (GLenum target, GLsizei length, void *pointer) + void glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params) + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_draw_instanced b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_draw_instanced new file mode 100644 index 0000000..a730952 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_draw_instanced @@ -0,0 +1,4 @@ +GL_ARB_draw_instanced +http://www.opengl.org/registry/specs/ARB/draw_instanced.txt +GL_ARB_draw_instanced + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_imaging b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_imaging new file mode 100644 index 0000000..727adf0 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_imaging @@ -0,0 +1,113 @@ +GL_ARB_imaging + +GL_ARB_imaging + + GL_CONSTANT_COLOR 0x8001 + GL_ONE_MINUS_CONSTANT_COLOR 0x8002 + GL_CONSTANT_ALPHA 0x8003 + GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 + GL_BLEND_COLOR 0x8005 + GL_FUNC_ADD 0x8006 + GL_MIN 0x8007 + GL_MAX 0x8008 + GL_BLEND_EQUATION 0x8009 + GL_FUNC_SUBTRACT 0x800A + GL_FUNC_REVERSE_SUBTRACT 0x800B + GL_CONVOLUTION_1D 0x8010 + GL_CONVOLUTION_2D 0x8011 + GL_SEPARABLE_2D 0x8012 + GL_CONVOLUTION_BORDER_MODE 0x8013 + GL_CONVOLUTION_FILTER_SCALE 0x8014 + GL_CONVOLUTION_FILTER_BIAS 0x8015 + GL_REDUCE 0x8016 + GL_CONVOLUTION_FORMAT 0x8017 + GL_CONVOLUTION_WIDTH 0x8018 + GL_CONVOLUTION_HEIGHT 0x8019 + GL_MAX_CONVOLUTION_WIDTH 0x801A + GL_MAX_CONVOLUTION_HEIGHT 0x801B + GL_POST_CONVOLUTION_RED_SCALE 0x801C + GL_POST_CONVOLUTION_GREEN_SCALE 0x801D + GL_POST_CONVOLUTION_BLUE_SCALE 0x801E + GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F + GL_POST_CONVOLUTION_RED_BIAS 0x8020 + GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 + GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 + GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 + GL_HISTOGRAM 0x8024 + GL_PROXY_HISTOGRAM 0x8025 + GL_HISTOGRAM_WIDTH 0x8026 + GL_HISTOGRAM_FORMAT 0x8027 + GL_HISTOGRAM_RED_SIZE 0x8028 + GL_HISTOGRAM_GREEN_SIZE 0x8029 + GL_HISTOGRAM_BLUE_SIZE 0x802A + GL_HISTOGRAM_ALPHA_SIZE 0x802B + GL_HISTOGRAM_LUMINANCE_SIZE 0x802C + GL_HISTOGRAM_SINK 0x802D + GL_MINMAX 0x802E + GL_MINMAX_FORMAT 0x802F + GL_MINMAX_SINK 0x8030 + GL_TABLE_TOO_LARGE 0x8031 + GL_COLOR_MATRIX 0x80B1 + GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 + GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 + GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 + GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 + GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 + GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 + GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 + GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 + GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA + GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB + GL_COLOR_TABLE 0x80D0 + GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 + GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 + GL_PROXY_COLOR_TABLE 0x80D3 + GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 + GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 + GL_COLOR_TABLE_SCALE 0x80D6 + GL_COLOR_TABLE_BIAS 0x80D7 + GL_COLOR_TABLE_FORMAT 0x80D8 + GL_COLOR_TABLE_WIDTH 0x80D9 + GL_COLOR_TABLE_RED_SIZE 0x80DA + GL_COLOR_TABLE_GREEN_SIZE 0x80DB + GL_COLOR_TABLE_BLUE_SIZE 0x80DC + GL_COLOR_TABLE_ALPHA_SIZE 0x80DD + GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE + GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF + GL_IGNORE_BORDER 0x8150 + GL_CONSTANT_BORDER 0x8151 + GL_WRAP_BORDER 0x8152 + GL_REPLICATE_BORDER 0x8153 + GL_CONVOLUTION_BORDER_COLOR 0x8154 + void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table) + void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data) + void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params) + void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params) + void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width) + void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) + void glGetColorTable (GLenum target, GLenum format, GLenum type, void *table) + void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params) + void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params) + void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink) + void glResetHistogram (GLenum target) + void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values) + void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params) + void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params) + void glMinmax (GLenum target, GLenum internalformat, GLboolean sink) + void glResetMinmax (GLenum target) + void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params) + void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params) + void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image) + void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image) + void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params) + void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params) + void glConvolutionParameteri (GLenum target, GLenum pname, GLint params) + void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params) + void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) + void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height) + void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image) + void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params) + void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params) + void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column) + void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span) + void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum types, void *values) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_instanced_arrays b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_instanced_arrays new file mode 100644 index 0000000..1487d39 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_instanced_arrays @@ -0,0 +1,8 @@ +GL_ARB_instanced_arrays +http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt +GL_ARB_instanced_arrays + + GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE + void glVertexAttribDivisorARB (GLuint index, GLuint divisor) + void glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount) + void glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_internalformat_query2 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_internalformat_query2 new file mode 100644 index 0000000..7af5091 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_internalformat_query2 @@ -0,0 +1,104 @@ +GL_ARB_internalformat_query2 +http://www.opengl.org/registry/specs/ARB/internalformat_query2.txt +GL_ARB_internalformat_query2 + + GL_INTERNALFORMAT_SUPPORTED 0x826F + GL_INTERNALFORMAT_PREFERRED 0x8270 + GL_INTERNALFORMAT_RED_SIZE 0x8271 + GL_INTERNALFORMAT_GREEN_SIZE 0x8272 + GL_INTERNALFORMAT_BLUE_SIZE 0x8273 + GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 + GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 + GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 + GL_INTERNALFORMAT_SHARED_SIZE 0x8277 + GL_INTERNALFORMAT_RED_TYPE 0x8278 + GL_INTERNALFORMAT_GREEN_TYPE 0x8279 + GL_INTERNALFORMAT_BLUE_TYPE 0x827A + GL_INTERNALFORMAT_ALPHA_TYPE 0x827B + GL_INTERNALFORMAT_DEPTH_TYPE 0x827C + GL_INTERNALFORMAT_STENCIL_TYPE 0x827D + GL_MAX_WIDTH 0x827E + GL_MAX_HEIGHT 0x827F + GL_MAX_DEPTH 0x8280 + GL_MAX_LAYERS 0x8281 + GL_MAX_COMBINED_DIMENSIONS 0x8282 + GL_COLOR_COMPONENTS 0x8283 + GL_DEPTH_COMPONENTS 0x8284 + GL_STENCIL_COMPONENTS 0x8285 + GL_COLOR_RENDERABLE 0x8286 + GL_DEPTH_RENDERABLE 0x8287 + GL_STENCIL_RENDERABLE 0x8288 + GL_FRAMEBUFFER_RENDERABLE 0x8289 + GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A + GL_FRAMEBUFFER_BLEND 0x828B + GL_READ_PIXELS 0x828C + GL_READ_PIXELS_FORMAT 0x828D + GL_READ_PIXELS_TYPE 0x828E + GL_TEXTURE_IMAGE_FORMAT 0x828F + GL_TEXTURE_IMAGE_TYPE 0x8290 + GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 + GL_GET_TEXTURE_IMAGE_TYPE 0x8292 + GL_MIPMAP 0x8293 + GL_MANUAL_GENERATE_MIPMAP 0x8294 + GL_AUTO_GENERATE_MIPMAP 0x8295 + GL_COLOR_ENCODING 0x8296 + GL_SRGB_READ 0x8297 + GL_SRGB_WRITE 0x8298 + GL_SRGB_DECODE_ARB 0x8299 + GL_FILTER 0x829A + GL_VERTEX_TEXTURE 0x829B + GL_TESS_CONTROL_TEXTURE 0x829C + GL_TESS_EVALUATION_TEXTURE 0x829D + GL_GEOMETRY_TEXTURE 0x829E + GL_FRAGMENT_TEXTURE 0x829F + GL_COMPUTE_TEXTURE 0x82A0 + GL_TEXTURE_SHADOW 0x82A1 + GL_TEXTURE_GATHER 0x82A2 + GL_TEXTURE_GATHER_SHADOW 0x82A3 + GL_SHADER_IMAGE_LOAD 0x82A4 + GL_SHADER_IMAGE_STORE 0x82A5 + GL_SHADER_IMAGE_ATOMIC 0x82A6 + GL_IMAGE_TEXEL_SIZE 0x82A7 + GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 + GL_IMAGE_PIXEL_FORMAT 0x82A9 + GL_IMAGE_PIXEL_TYPE 0x82AA + GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC + GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD + GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE + GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF + GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 + GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 + GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 + GL_CLEAR_BUFFER 0x82B4 + GL_TEXTURE_VIEW 0x82B5 + GL_VIEW_COMPATIBILITY_CLASS 0x82B6 + GL_FULL_SUPPORT 0x82B7 + GL_CAVEAT_SUPPORT 0x82B8 + GL_IMAGE_CLASS_4_X_32 0x82B9 + GL_IMAGE_CLASS_2_X_32 0x82BA + GL_IMAGE_CLASS_1_X_32 0x82BB + GL_IMAGE_CLASS_4_X_16 0x82BC + GL_IMAGE_CLASS_2_X_16 0x82BD + GL_IMAGE_CLASS_1_X_16 0x82BE + GL_IMAGE_CLASS_4_X_8 0x82BF + GL_IMAGE_CLASS_2_X_8 0x82C0 + GL_IMAGE_CLASS_1_X_8 0x82C1 + GL_IMAGE_CLASS_11_11_10 0x82C2 + GL_IMAGE_CLASS_10_10_10_2 0x82C3 + GL_VIEW_CLASS_128_BITS 0x82C4 + GL_VIEW_CLASS_96_BITS 0x82C5 + GL_VIEW_CLASS_64_BITS 0x82C6 + GL_VIEW_CLASS_48_BITS 0x82C7 + GL_VIEW_CLASS_32_BITS 0x82C8 + GL_VIEW_CLASS_24_BITS 0x82C9 + GL_VIEW_CLASS_16_BITS 0x82CA + GL_VIEW_CLASS_8_BITS 0x82CB + GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC + GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD + GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE + GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF + GL_VIEW_CLASS_RGTC1_RED 0x82D0 + GL_VIEW_CLASS_RGTC2_RG 0x82D1 + GL_VIEW_CLASS_BPTC_UNORM 0x82D2 + GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 + void glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_matrix_palette b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_matrix_palette new file mode 100644 index 0000000..98b0d0b --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_matrix_palette @@ -0,0 +1,19 @@ +GL_ARB_matrix_palette +http://oss.sgi.com/projects/ogl-sample/registry/ARB/matrix_palette.txt +GL_ARB_matrix_palette + + GL_MATRIX_PALETTE_ARB 0x8840 + GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 + GL_MAX_PALETTE_MATRICES_ARB 0x8842 + GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 + GL_MATRIX_INDEX_ARRAY_ARB 0x8844 + GL_CURRENT_MATRIX_INDEX_ARB 0x8845 + GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 + GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 + GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 + GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 + void glCurrentPaletteMatrixARB (GLint index) + void glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, void *pointer) + void glMatrixIndexubvARB (GLint size, GLubyte *indices) + void glMatrixIndexusvARB (GLint size, GLushort *indices) + void glMatrixIndexuivARB (GLint size, GLuint *indices) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_multitexture b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_multitexture new file mode 100644 index 0000000..46a9546 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_multitexture @@ -0,0 +1,73 @@ +GL_ARB_multitexture +http://oss.sgi.com/projects/ogl-sample/registry/ARB/multitexture.txt +GL_ARB_multitexture + + GL_TEXTURE0_ARB 0x84C0 + GL_TEXTURE1_ARB 0x84C1 + GL_TEXTURE2_ARB 0x84C2 + GL_TEXTURE3_ARB 0x84C3 + GL_TEXTURE4_ARB 0x84C4 + GL_TEXTURE5_ARB 0x84C5 + GL_TEXTURE6_ARB 0x84C6 + GL_TEXTURE7_ARB 0x84C7 + GL_TEXTURE8_ARB 0x84C8 + GL_TEXTURE9_ARB 0x84C9 + GL_TEXTURE10_ARB 0x84CA + GL_TEXTURE11_ARB 0x84CB + GL_TEXTURE12_ARB 0x84CC + GL_TEXTURE13_ARB 0x84CD + GL_TEXTURE14_ARB 0x84CE + GL_TEXTURE15_ARB 0x84CF + GL_TEXTURE16_ARB 0x84D0 + GL_TEXTURE17_ARB 0x84D1 + GL_TEXTURE18_ARB 0x84D2 + GL_TEXTURE19_ARB 0x84D3 + GL_TEXTURE20_ARB 0x84D4 + GL_TEXTURE21_ARB 0x84D5 + GL_TEXTURE22_ARB 0x84D6 + GL_TEXTURE23_ARB 0x84D7 + GL_TEXTURE24_ARB 0x84D8 + GL_TEXTURE25_ARB 0x84D9 + GL_TEXTURE26_ARB 0x84DA + GL_TEXTURE27_ARB 0x84DB + GL_TEXTURE28_ARB 0x84DC + GL_TEXTURE29_ARB 0x84DD + GL_TEXTURE30_ARB 0x84DE + GL_TEXTURE31_ARB 0x84DF + GL_ACTIVE_TEXTURE_ARB 0x84E0 + GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 + GL_MAX_TEXTURE_UNITS_ARB 0x84E2 + void glActiveTextureARB (GLenum texture) + void glClientActiveTextureARB (GLenum texture) + void glMultiTexCoord1dARB (GLenum target, GLdouble s) + void glMultiTexCoord1dvARB (GLenum target, const GLdouble *v) + void glMultiTexCoord1fARB (GLenum target, GLfloat s) + void glMultiTexCoord1fvARB (GLenum target, const GLfloat *v) + void glMultiTexCoord1iARB (GLenum target, GLint s) + void glMultiTexCoord1ivARB (GLenum target, const GLint *v) + void glMultiTexCoord1sARB (GLenum target, GLshort s) + void glMultiTexCoord1svARB (GLenum target, const GLshort *v) + void glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t) + void glMultiTexCoord2dvARB (GLenum target, const GLdouble *v) + void glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t) + void glMultiTexCoord2fvARB (GLenum target, const GLfloat *v) + void glMultiTexCoord2iARB (GLenum target, GLint s, GLint t) + void glMultiTexCoord2ivARB (GLenum target, const GLint *v) + void glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t) + void glMultiTexCoord2svARB (GLenum target, const GLshort *v) + void glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r) + void glMultiTexCoord3dvARB (GLenum target, const GLdouble *v) + void glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r) + void glMultiTexCoord3fvARB (GLenum target, const GLfloat *v) + void glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r) + void glMultiTexCoord3ivARB (GLenum target, const GLint *v) + void glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r) + void glMultiTexCoord3svARB (GLenum target, const GLshort *v) + void glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) + void glMultiTexCoord4dvARB (GLenum target, const GLdouble *v) + void glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) + void glMultiTexCoord4fvARB (GLenum target, const GLfloat *v) + void glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q) + void glMultiTexCoord4ivARB (GLenum target, const GLint *v) + void glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) + void glMultiTexCoord4svARB (GLenum target, const GLshort *v) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_robustness b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_robustness new file mode 100644 index 0000000..82d48d8 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_robustness @@ -0,0 +1,31 @@ +GL_ARB_robustness +http://www.opengl.org/registry/specs/ARB/robustness.txt +GL_ARB_robustness + + GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 + GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 + GL_GUILTY_CONTEXT_RESET_ARB 0x8253 + GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 + GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 + GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 + GL_NO_RESET_NOTIFICATION_ARB 0x8261 + GLenum glGetGraphicsResetStatusARB (void) + void glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table) + void glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void* img) + void glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image) + void glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values) + void glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v) + void glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v) + void glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint* v) + void glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values) + void glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat* values) + void glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint* values) + void glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort* values) + void glGetnPolygonStippleARB (GLsizei bufSize, GLubyte* pattern) + void glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, void*column, void*span) + void glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img) + void glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble* params) + void glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat* params) + void glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint* params) + void glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint* params) + void glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_separate_shader_objects b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_separate_shader_objects new file mode 100644 index 0000000..3d3d869 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_separate_shader_objects @@ -0,0 +1,73 @@ +GL_ARB_separate_shader_objects +http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt +GL_ARB_separate_shader_objects + + GL_VERTEX_SHADER_BIT 0x00000001 + GL_FRAGMENT_SHADER_BIT 0x00000002 + GL_GEOMETRY_SHADER_BIT 0x00000004 + GL_TESS_CONTROL_SHADER_BIT 0x00000008 + GL_TESS_EVALUATION_SHADER_BIT 0x00000010 + GL_PROGRAM_SEPARABLE 0x8258 + GL_ACTIVE_PROGRAM 0x8259 + GL_PROGRAM_PIPELINE_BINDING 0x825A + GL_ALL_SHADER_BITS 0xFFFFFFFF + void glActiveShaderProgram (GLuint pipeline, GLuint program) + void glBindProgramPipeline (GLuint pipeline) + GLuint glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar * const * strings) + void glDeleteProgramPipelines (GLsizei n, const GLuint* pipelines) + void glGenProgramPipelines (GLsizei n, GLuint* pipelines) + void glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog) + void glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint* params) + GLboolean glIsProgramPipeline (GLuint pipeline) + void glProgramUniform1d (GLuint program, GLint location, GLdouble x) + void glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble* value) + void glProgramUniform1f (GLuint program, GLint location, GLfloat x) + void glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat* value) + void glProgramUniform1i (GLuint program, GLint location, GLint x) + void glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint* value) + void glProgramUniform1ui (GLuint program, GLint location, GLuint x) + void glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint* value) + void glProgramUniform2d (GLuint program, GLint location, GLdouble x, GLdouble y) + void glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble* value) + void glProgramUniform2f (GLuint program, GLint location, GLfloat x, GLfloat y) + void glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat* value) + void glProgramUniform2i (GLuint program, GLint location, GLint x, GLint y) + void glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint* value) + void glProgramUniform2ui (GLuint program, GLint location, GLuint x, GLuint y) + void glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint* value) + void glProgramUniform3d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z) + void glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble* value) + void glProgramUniform3f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z) + void glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat* value) + void glProgramUniform3i (GLuint program, GLint location, GLint x, GLint y, GLint z) + void glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint* value) + void glProgramUniform3ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z) + void glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint* value) + void glProgramUniform4d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) + void glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble* value) + void glProgramUniform4f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) + void glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat* value) + void glProgramUniform4i (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w) + void glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint* value) + void glProgramUniform4ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w) + void glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint* value) + void glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value) + void glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program) + void glValidateProgramPipeline (GLuint pipeline) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_vertex_attrib_64bit b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_vertex_attrib_64bit new file mode 100644 index 0000000..68117c5 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_vertex_attrib_64bit @@ -0,0 +1,14 @@ +GL_ARB_vertex_attrib_64bit +http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt +GL_ARB_vertex_attrib_64bit + + void glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble* params) + void glVertexAttribL1d (GLuint index, GLdouble x) + void glVertexAttribL1dv (GLuint index, const GLdouble* v) + void glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y) + void glVertexAttribL2dv (GLuint index, const GLdouble* v) + void glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z) + void glVertexAttribL3dv (GLuint index, const GLdouble* v) + void glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) + void glVertexAttribL4dv (GLuint index, const GLdouble* v) + void glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_vertex_blend b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_vertex_blend new file mode 100644 index 0000000..f4b3f58 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ARB_vertex_blend @@ -0,0 +1,56 @@ +GL_ARB_vertex_blend +http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt +GL_ARB_vertex_blend + + GL_MAX_VERTEX_UNITS_ARB 0x86A4 + GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 + GL_WEIGHT_SUM_UNITY_ARB 0x86A6 + GL_VERTEX_BLEND_ARB 0x86A7 + GL_CURRENT_WEIGHT_ARB 0x86A8 + GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 + GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA + GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB + GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC + GL_WEIGHT_ARRAY_ARB 0x86AD + GL_MODELVIEW0_ARB 0x1700 + GL_MODELVIEW1_ARB 0x850A + GL_MODELVIEW2_ARB 0x8722 + GL_MODELVIEW3_ARB 0x8723 + GL_MODELVIEW4_ARB 0x8724 + GL_MODELVIEW5_ARB 0x8725 + GL_MODELVIEW6_ARB 0x8726 + GL_MODELVIEW7_ARB 0x8727 + GL_MODELVIEW8_ARB 0x8728 + GL_MODELVIEW9_ARB 0x8729 + GL_MODELVIEW10_ARB 0x872A + GL_MODELVIEW11_ARB 0x872B + GL_MODELVIEW12_ARB 0x872C + GL_MODELVIEW13_ARB 0x872D + GL_MODELVIEW14_ARB 0x872E + GL_MODELVIEW15_ARB 0x872F + GL_MODELVIEW16_ARB 0x8730 + GL_MODELVIEW17_ARB 0x8731 + GL_MODELVIEW18_ARB 0x8732 + GL_MODELVIEW19_ARB 0x8733 + GL_MODELVIEW20_ARB 0x8734 + GL_MODELVIEW21_ARB 0x8735 + GL_MODELVIEW22_ARB 0x8736 + GL_MODELVIEW23_ARB 0x8737 + GL_MODELVIEW24_ARB 0x8738 + GL_MODELVIEW25_ARB 0x8739 + GL_MODELVIEW26_ARB 0x873A + GL_MODELVIEW27_ARB 0x873B + GL_MODELVIEW28_ARB 0x873C + GL_MODELVIEW29_ARB 0x873D + GL_MODELVIEW30_ARB 0x873E + GL_MODELVIEW31_ARB 0x873F + void glWeightbvARB (GLint size, GLbyte *weights) + void glWeightsvARB (GLint size, GLshort *weights) + void glWeightivARB (GLint size, GLint *weights) + void glWeightfvARB (GLint size, GLfloat *weights) + void glWeightdvARB (GLint size, GLdouble *weights) + void glWeightubvARB (GLint size, GLubyte *weights) + void glWeightusvARB (GLint size, GLushort *weights) + void glWeightuivARB (GLint size, GLuint *weights) + void glWeightPointerARB (GLint size, GLenum type, GLsizei stride, void *pointer) + void glVertexBlendARB (GLint count) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_point_sprites b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_point_sprites new file mode 100644 index 0000000..d2434e7 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_point_sprites @@ -0,0 +1,10 @@ +GL_ATIX_point_sprites +http://www.ati.com/developer/atiopengl.pdf +GL_ATIX_point_sprites + + GL_TEXTURE_POINT_MODE_ATIX 0x60B0 + GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1 + GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2 + GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3 + GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4 + GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_texture_env_combine3 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_texture_env_combine3 new file mode 100644 index 0000000..77f425d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_texture_env_combine3 @@ -0,0 +1,7 @@ +GL_ATIX_texture_env_combine3 +http://www.ati.com/developer/atiopengl.pdf +GL_ATIX_texture_env_combine3 + + GL_MODULATE_ADD_ATIX 0x8744 + GL_MODULATE_SIGNED_ADD_ATIX 0x8745 + GL_MODULATE_SUBTRACT_ATIX 0x8746 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_texture_env_route b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_texture_env_route new file mode 100644 index 0000000..d972fd1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_texture_env_route @@ -0,0 +1,7 @@ +GL_ATIX_texture_env_route +http://www.ati.com/developer/sdk/RadeonSDK/Html/Info/ATIX_texture_env_route.txt +GL_ATIX_texture_env_route + + GL_SECONDARY_COLOR_ATIX 0x8747 + GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 + GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_vertex_shader_output_point_size b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_vertex_shader_output_point_size new file mode 100644 index 0000000..85a6d58 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATIX_vertex_shader_output_point_size @@ -0,0 +1,5 @@ +GL_ATIX_vertex_shader_output_point_size +http://www.ati.com/developer/atiopengl.pdf +GL_ATIX_vertex_shader_output_point_size + + GL_OUTPUT_POINT_SIZE_ATIX 0x610E diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_envmap_bumpmap b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_envmap_bumpmap new file mode 100644 index 0000000..09a4112 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_envmap_bumpmap @@ -0,0 +1,16 @@ +GL_ATI_envmap_bumpmap +http://oss.sgi.com/projects/ogl-sample/registry/ATI/envmap_bumpmap.txt +GL_ATI_envmap_bumpmap + + GL_BUMP_ROT_MATRIX_ATI 0x8775 + GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 + GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 + GL_BUMP_TEX_UNITS_ATI 0x8778 + GL_DUDV_ATI 0x8779 + GL_DU8DV8_ATI 0x877A + GL_BUMP_ENVMAP_ATI 0x877B + GL_BUMP_TARGET_ATI 0x877C + void glTexBumpParameterivATI (GLenum pname, GLint *param) + void glTexBumpParameterfvATI (GLenum pname, GLfloat *param) + void glGetTexBumpParameterivATI (GLenum pname, GLint *param) + void glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_map_object_buffer b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_map_object_buffer new file mode 100644 index 0000000..6a683d0 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_map_object_buffer @@ -0,0 +1,6 @@ +GL_ATI_map_object_buffer +http://www.opengl.org/registry/specs/ATI/map_object_buffer.txt +GL_ATI_map_object_buffer + + void * glMapObjectBufferATI (GLuint buffer) + void glUnmapObjectBufferATI (GLuint buffer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_pn_triangles b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_pn_triangles new file mode 100644 index 0000000..ca3923d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_pn_triangles @@ -0,0 +1,15 @@ +GL_ATI_pn_triangles +http://www.opengl.org/registry/specs/ATI/pn_triangles.txt +GL_ATI_pn_triangles + + GL_PN_TRIANGLES_ATI 0x87F0 + GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 + GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 + GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 + GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 + GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 + GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 + GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 + GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 + void glPNTrianglesiATI (GLenum pname, GLint param) + void glPNTrianglesfATI (GLenum pname, GLfloat param) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_separate_stencil b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_separate_stencil new file mode 100644 index 0000000..b7237e5 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_separate_stencil @@ -0,0 +1,10 @@ +GL_ATI_separate_stencil +http://www.opengl.org/registry/specs/ATI/separate_stencil.txt +GL_ATI_separate_stencil + + GL_STENCIL_BACK_FUNC_ATI 0x8800 + GL_STENCIL_BACK_FAIL_ATI 0x8801 + GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 + GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 + void glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) + void glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_shader_texture_lod b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_shader_texture_lod new file mode 100644 index 0000000..e6e6c04 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_shader_texture_lod @@ -0,0 +1,4 @@ +GL_ATI_shader_texture_lod + +GL_ATI_shader_texture_lod + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_texture_compression_3dc b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_texture_compression_3dc new file mode 100644 index 0000000..fc3ee44 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_texture_compression_3dc @@ -0,0 +1,5 @@ +GL_ATI_texture_compression_3dc + +GL_ATI_texture_compression_3dc + + GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_vertex_streams b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_vertex_streams new file mode 100644 index 0000000..f6e64fd --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_ATI_vertex_streams @@ -0,0 +1,59 @@ +GL_ATI_vertex_streams +http://www.opengl.org/registry/specs/ATI/vertex_streams.txt +GL_ATI_vertex_streams + + GL_MAX_VERTEX_STREAMS_ATI 0x876B + GL_VERTEX_SOURCE_ATI 0x876C + GL_VERTEX_STREAM0_ATI 0x876D + GL_VERTEX_STREAM1_ATI 0x876E + GL_VERTEX_STREAM2_ATI 0x876F + GL_VERTEX_STREAM3_ATI 0x8770 + GL_VERTEX_STREAM4_ATI 0x8771 + GL_VERTEX_STREAM5_ATI 0x8772 + GL_VERTEX_STREAM6_ATI 0x8773 + GL_VERTEX_STREAM7_ATI 0x8774 + void glClientActiveVertexStreamATI (GLenum stream) + void glVertexBlendEnviATI (GLenum pname, GLint param) + void glVertexBlendEnvfATI (GLenum pname, GLfloat param) + void glVertexStream1sATI (GLenum stream, GLshort x) + void glVertexStream1svATI (GLenum stream, const GLshort *coords) + void glVertexStream1iATI (GLenum stream, GLint x) + void glVertexStream1ivATI (GLenum stream, const GLint *coords) + void glVertexStream1fATI (GLenum stream, GLfloat x) + void glVertexStream1fvATI (GLenum stream, const GLfloat *coords) + void glVertexStream1dATI (GLenum stream, GLdouble x) + void glVertexStream1dvATI (GLenum stream, const GLdouble *coords) + void glVertexStream2sATI (GLenum stream, GLshort x, GLshort y) + void glVertexStream2svATI (GLenum stream, const GLshort *coords) + void glVertexStream2iATI (GLenum stream, GLint x, GLint y) + void glVertexStream2ivATI (GLenum stream, const GLint *coords) + void glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y) + void glVertexStream2fvATI (GLenum stream, const GLfloat *coords) + void glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y) + void glVertexStream2dvATI (GLenum stream, const GLdouble *coords) + void glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z) + void glVertexStream3svATI (GLenum stream, const GLshort *coords) + void glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z) + void glVertexStream3ivATI (GLenum stream, const GLint *coords) + void glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z) + void glVertexStream3fvATI (GLenum stream, const GLfloat *coords) + void glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z) + void glVertexStream3dvATI (GLenum stream, const GLdouble *coords) + void glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w) + void glVertexStream4svATI (GLenum stream, const GLshort *coords) + void glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w) + void glVertexStream4ivATI (GLenum stream, const GLint *coords) + void glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w) + void glVertexStream4fvATI (GLenum stream, const GLfloat *coords) + void glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w) + void glVertexStream4dvATI (GLenum stream, const GLdouble *coords) + void glNormalStream3bATI (GLenum stream, GLbyte x, GLbyte y, GLbyte z) + void glNormalStream3bvATI (GLenum stream, const GLbyte *coords) + void glNormalStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z) + void glNormalStream3svATI (GLenum stream, const GLshort *coords) + void glNormalStream3iATI (GLenum stream, GLint x, GLint y, GLint z) + void glNormalStream3ivATI (GLenum stream, const GLint *coords) + void glNormalStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z) + void glNormalStream3fvATI (GLenum stream, const GLfloat *coords) + void glNormalStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z) + void glNormalStream3dvATI (GLenum stream, const GLdouble *coords) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_Cg_shader b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_Cg_shader new file mode 100644 index 0000000..b2df900 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_Cg_shader @@ -0,0 +1,6 @@ +GL_EXT_Cg_shader +http://download.nvidia.com/developer/GLSL/GLSL%20Release%20Notes%20for%20Release%2060.pdf +GL_EXT_Cg_shader + + GL_CG_VERTEX_SHADER_EXT 0x890E + GL_CG_FRAGMENT_SHADER_EXT 0x890F diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_bindable_uniform b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_bindable_uniform new file mode 100644 index 0000000..00ec270 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_bindable_uniform @@ -0,0 +1,13 @@ +GL_EXT_bindable_uniform +http://developer.download.nvidia.com/opengl/specs/GL_EXT_bindable_uniform.txt +GL_EXT_bindable_uniform + + GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 + GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 + GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 + GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED + GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF + GL_UNIFORM_BUFFER_EXT 0x8DEE + void glUniformBufferEXT (GLuint program, GLint location, GLuint buffer) + GLint glGetUniformBufferSizeEXT (GLuint program, GLint location) + GLintptr glGetUniformOffsetEXT (GLuint program, GLint location) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_debug_marker b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_debug_marker new file mode 100644 index 0000000..ce9ffe4 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_debug_marker @@ -0,0 +1,7 @@ +GL_EXT_debug_marker +http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt +GL_EXT_debug_marker + + void glInsertEventMarkerEXT (GLsizei length, const GLchar* marker) + void glPushGroupMarkerEXT (GLsizei length, const GLchar* marker) + void glPopGroupMarkerEXT (void) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_depth_bounds_test b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_depth_bounds_test new file mode 100644 index 0000000..da2a453 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_depth_bounds_test @@ -0,0 +1,7 @@ +GL_EXT_depth_bounds_test +http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_depth_bounds_test.txt +GL_EXT_depth_bounds_test + + GL_DEPTH_BOUNDS_TEST_EXT 0x8890 + GL_DEPTH_BOUNDS_EXT 0x8891 + void glDepthBoundsEXT (GLclampd zmin, GLclampd zmax) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_draw_instanced b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_draw_instanced new file mode 100644 index 0000000..ca7f17e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_draw_instanced @@ -0,0 +1,6 @@ +GL_EXT_draw_instanced +http://developer.download.nvidia.com/opengl/specs/GL_EXT_draw_instanced.txt +GL_EXT_draw_instanced + + void glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount) + void glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_draw_range_elements b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_draw_range_elements new file mode 100644 index 0000000..f5346de --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_draw_range_elements @@ -0,0 +1,7 @@ +GL_EXT_draw_range_elements +http://oss.sgi.com/projects/ogl-sample/registry/EXT/draw_range_elements.txt +GL_EXT_draw_range_elements + + GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 + GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 + void glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_external_buffer b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_external_buffer new file mode 100644 index 0000000..25a3ca6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_external_buffer @@ -0,0 +1,7 @@ +GL_EXT_external_buffer +http://www.opengl.org/registry/specs/EXT/external_buffer.txt +GL_EXT_external_buffer + + void glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags) + void glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags) + typedef void* GLeglClientBufferEXT \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_fog_coord b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_fog_coord new file mode 100644 index 0000000..148866a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_fog_coord @@ -0,0 +1,17 @@ +GL_EXT_fog_coord +http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt +GL_EXT_fog_coord + + GL_FOG_COORDINATE_SOURCE_EXT 0x8450 + GL_FOG_COORDINATE_EXT 0x8451 + GL_FRAGMENT_DEPTH_EXT 0x8452 + GL_CURRENT_FOG_COORDINATE_EXT 0x8453 + GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 + GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 + GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 + GL_FOG_COORDINATE_ARRAY_EXT 0x8457 + void glFogCoordfEXT (GLfloat coord) + void glFogCoordfvEXT (const GLfloat *coord) + void glFogCoorddEXT (GLdouble coord) + void glFogCoorddvEXT (const GLdouble *coord) + void glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_framebuffer_sRGB b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_framebuffer_sRGB new file mode 100644 index 0000000..2f4c6ff --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_framebuffer_sRGB @@ -0,0 +1,6 @@ +GL_EXT_framebuffer_sRGB +http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt +GL_EXT_framebuffer_sRGB + + GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 + GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_geometry_shader4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_geometry_shader4 new file mode 100644 index 0000000..a463c4c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_geometry_shader4 @@ -0,0 +1,27 @@ +GL_EXT_geometry_shader4 +http://developer.download.nvidia.com/opengl/specs/GL_EXT_geometry_shader4.txt +GL_EXT_geometry_shader4 + + GL_GEOMETRY_SHADER_EXT 0x8DD9 + GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD + GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE + GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF + GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 + GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA + GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB + GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 + GL_LINES_ADJACENCY_EXT 0xA + GL_LINE_STRIP_ADJACENCY_EXT 0xB + GL_TRIANGLES_ADJACENCY_EXT 0xC + GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD + GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 + GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 + GL_PROGRAM_POINT_SIZE_EXT 0x8642 + void glProgramParameteriEXT (GLuint program, GLenum pname, GLint value) + void glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level) + void glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_gpu_program_parameters b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_gpu_program_parameters new file mode 100644 index 0000000..298bc36 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_gpu_program_parameters @@ -0,0 +1,6 @@ +GL_EXT_gpu_program_parameters +http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_program_parameters.txt +GL_EXT_gpu_program_parameters + + void glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params) + void glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_gpu_shader4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_gpu_shader4 new file mode 100644 index 0000000..7e95dbc --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_gpu_shader4 @@ -0,0 +1,64 @@ +GL_EXT_gpu_shader4 +http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_shader4.txt +GL_EXT_gpu_shader4 + + GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 + GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 + GL_SAMPLER_BUFFER_EXT 0x8DC2 + GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 + GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 + GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 + GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 + GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 + GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 + GL_INT_SAMPLER_1D_EXT 0x8DC9 + GL_INT_SAMPLER_2D_EXT 0x8DCA + GL_INT_SAMPLER_3D_EXT 0x8DCB + GL_INT_SAMPLER_CUBE_EXT 0x8DCC + GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD + GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE + GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF + GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 + GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 + GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 + GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 + GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 + GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 + GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 + GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 + GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 + GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD + void glGetUniformuivEXT (GLuint program, GLint location, GLuint *params) + void glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name) + GLint glGetFragDataLocationEXT (GLuint program, const GLchar *name) + void glUniform1uiEXT (GLint location, GLuint v0) + void glUniform2uiEXT (GLint location, GLuint v0, GLuint v1) + void glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2) + void glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) + void glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value) + void glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value) + void glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value) + void glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value) + void glVertexAttribI1iEXT (GLuint index, GLint x) + void glVertexAttribI2iEXT (GLuint index, GLint x, GLint y) + void glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z) + void glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w) + void glVertexAttribI1uiEXT (GLuint index, GLuint x) + void glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y) + void glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z) + void glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) + void glVertexAttribI1ivEXT (GLuint index, const GLint *v) + void glVertexAttribI2ivEXT (GLuint index, const GLint *v) + void glVertexAttribI3ivEXT (GLuint index, const GLint *v) + void glVertexAttribI4ivEXT (GLuint index, const GLint *v) + void glVertexAttribI1uivEXT (GLuint index, const GLuint *v) + void glVertexAttribI2uivEXT (GLuint index, const GLuint *v) + void glVertexAttribI3uivEXT (GLuint index, const GLuint *v) + void glVertexAttribI4uivEXT (GLuint index, const GLuint *v) + void glVertexAttribI4bvEXT (GLuint index, const GLbyte *v) + void glVertexAttribI4svEXT (GLuint index, const GLshort *v) + void glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v) + void glVertexAttribI4usvEXT (GLuint index, const GLushort *v) + void glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer) + void glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params) + void glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object new file mode 100644 index 0000000..5520422 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object @@ -0,0 +1,34 @@ +GL_EXT_memory_object +http://www.opengl.org/registry/specs/EXT/external_objects.txt +GL_EXT_memory_object + + GL_UUID_SIZE_EXT 16 + GL_TEXTURE_TILING_EXT 0x9580 + GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 + GL_NUM_TILING_TYPES_EXT 0x9582 + GL_TILING_TYPES_EXT 0x9583 + GL_OPTIMAL_TILING_EXT 0x9584 + GL_LINEAR_TILING_EXT 0x9585 + GL_NUM_DEVICE_UUIDS_EXT 0x9596 + GL_DEVICE_UUID_EXT 0x9597 + GL_DRIVER_UUID_EXT 0x9598 + GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B + void glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset) + void glCreateMemoryObjectsEXT (GLsizei n, GLuint* memoryObjects) + void glDeleteMemoryObjectsEXT (GLsizei n, const GLuint* memoryObjects) + void glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint* params) + void glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte* data) + void glGetUnsignedBytevEXT (GLenum pname, GLubyte* data) + GLboolean glIsMemoryObjectEXT (GLuint memoryObject) + void glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint* params) + void glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset) + void glTexStorageMem1DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset) + void glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset) + void glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset) + void glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset) + void glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset) + void glTextureStorageMem1DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset) + void glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset) + void glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset) + void glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset) + void glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object_fd b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object_fd new file mode 100644 index 0000000..38536c0 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object_fd @@ -0,0 +1,6 @@ +GL_EXT_memory_object_fd +http://www.opengl.org/registry/specs/EXT/external_objects_fd.txt +GL_EXT_memory_object_fd + + GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 + void glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object_win32 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object_win32 new file mode 100644 index 0000000..6d36a69 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_memory_object_win32 @@ -0,0 +1,17 @@ +GL_EXT_memory_object_win32 +http://www.opengl.org/registry/specs/EXT/external_objects_win32.txt +GL_EXT_memory_object_win32 + + GL_LUID_SIZE_EXT 8 + GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 + GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 + GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 + GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A + GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B + GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C + GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 + GL_D3D12_FENCE_VALUE_EXT 0x9595 + GL_DEVICE_LUID_EXT 0x9599 + GL_DEVICE_NODE_MASK_EXT 0x959A + void glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle) + void glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_packed_float b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_packed_float new file mode 100644 index 0000000..15ac680 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_packed_float @@ -0,0 +1,7 @@ +GL_EXT_packed_float +http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt +GL_EXT_packed_float + + GL_R11F_G11F_B10F_EXT 0x8C3A + GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B + GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_pixel_buffer_object b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_pixel_buffer_object new file mode 100644 index 0000000..f685e4c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_pixel_buffer_object @@ -0,0 +1,8 @@ +GL_EXT_pixel_buffer_object +http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_pixel_buffer_object.txt +GL_EXT_pixel_buffer_object + + GL_PIXEL_PACK_BUFFER_EXT 0x88EB + GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC + GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED + GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_scene_marker b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_scene_marker new file mode 100644 index 0000000..504efcf --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_scene_marker @@ -0,0 +1,6 @@ +GL_EXT_scene_marker +https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_scene_marker.txt +GL_EXT_scene_marker + + void glBeginSceneEXT (void) + void glEndSceneEXT (void) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_secondary_color b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_secondary_color new file mode 100644 index 0000000..505761d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_secondary_color @@ -0,0 +1,28 @@ +GL_EXT_secondary_color +http://oss.sgi.com/projects/ogl-sample/registry/EXT/secondary_color.txt +GL_EXT_secondary_color + + GL_COLOR_SUM_EXT 0x8458 + GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 + GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A + GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B + GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C + GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D + GL_SECONDARY_COLOR_ARRAY_EXT 0x845E + void glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue) + void glSecondaryColor3bvEXT (const GLbyte *v) + void glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue) + void glSecondaryColor3dvEXT (const GLdouble *v) + void glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue) + void glSecondaryColor3fvEXT (const GLfloat *v) + void glSecondaryColor3iEXT (GLint red, GLint green, GLint blue) + void glSecondaryColor3ivEXT (const GLint *v) + void glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue) + void glSecondaryColor3svEXT (const GLshort *v) + void glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue) + void glSecondaryColor3ubvEXT (const GLubyte *v) + void glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue) + void glSecondaryColor3uivEXT (const GLuint *v) + void glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue) + void glSecondaryColor3usvEXT (const GLushort *v) + void glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore new file mode 100644 index 0000000..faf18b3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore @@ -0,0 +1,21 @@ +GL_EXT_semaphore +http://www.opengl.org/registry/specs/EXT/external_objects.txt +GL_EXT_semaphore + + GL_LAYOUT_GENERAL_EXT 0x958D + GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E + GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F + GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 + GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 + GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 + GL_LAYOUT_TRANSFER_DST_EXT 0x9593 + GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 + GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 + + void glDeleteSemaphoresEXT (GLsizei n, const GLuint* semaphores) + void glGenSemaphoresEXT (GLsizei n, GLuint* semaphores) + void glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64* params) + GLboolean glIsSemaphoreEXT (GLuint semaphore) + void glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64* params) + void glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts) + void glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore_fd b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore_fd new file mode 100644 index 0000000..e3b2985 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore_fd @@ -0,0 +1,5 @@ +GL_EXT_semaphore_fd +http://www.opengl.org/registry/specs/EXT/external_objects_fd.txt +GL_EXT_semaphore_fd + + void glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore_win32 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore_win32 new file mode 100644 index 0000000..4854f58 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_semaphore_win32 @@ -0,0 +1,6 @@ +GL_EXT_semaphore_win32 +http://www.opengl.org/registry/specs/EXT/external_objects_win32.txt +GL_EXT_semaphore_win32 + + void glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle) + void glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_array b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_array new file mode 100644 index 0000000..c5c2c9f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_array @@ -0,0 +1,13 @@ +GL_EXT_texture_array +http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_array.txt +GL_EXT_texture_array + + GL_TEXTURE_1D_ARRAY_EXT 0x8C18 + GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 + GL_TEXTURE_2D_ARRAY_EXT 0x8C1A + GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B + GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C + GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D + GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF + GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E + void glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_buffer_object b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_buffer_object new file mode 100644 index 0000000..81b5835 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_buffer_object @@ -0,0 +1,10 @@ +GL_EXT_texture_buffer_object +http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_buffer_object.txt +GL_EXT_texture_buffer_object + + GL_TEXTURE_BUFFER_EXT 0x8C2A + GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B + GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C + GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D + GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E + void glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_compression_latc b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_compression_latc new file mode 100644 index 0000000..e8fcacc --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_compression_latc @@ -0,0 +1,8 @@ +GL_EXT_texture_compression_latc +http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_latc.txt +GL_EXT_texture_compression_latc + + GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 + GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 + GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 + GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_compression_rgtc b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_compression_rgtc new file mode 100644 index 0000000..054b7f0 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_compression_rgtc @@ -0,0 +1,8 @@ +GL_EXT_texture_compression_rgtc +http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_rgtc.txt +GL_EXT_texture_compression_rgtc + + GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB + GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC + GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD + GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_cube_map b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_cube_map new file mode 100644 index 0000000..73a2c73 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_cube_map @@ -0,0 +1,16 @@ +GL_EXT_texture_cube_map +http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_texture_cube_map.txt +GL_EXT_texture_cube_map + + GL_NORMAL_MAP_EXT 0x8511 + GL_REFLECTION_MAP_EXT 0x8512 + GL_TEXTURE_CUBE_MAP_EXT 0x8513 + GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 + GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 + GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 + GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 + GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A + GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B + GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_edge_clamp b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_edge_clamp new file mode 100644 index 0000000..c0b3e2a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_edge_clamp @@ -0,0 +1,5 @@ +GL_EXT_texture_edge_clamp +http://www.opengl.org/developers/documentation/Version1.2/1.2specs/texture_edge_clamp.txt +GL_EXT_texture_edge_clamp + + GL_CLAMP_TO_EDGE_EXT 0x812F diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_integer b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_integer new file mode 100644 index 0000000..43219cf --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_integer @@ -0,0 +1,57 @@ +GL_EXT_texture_integer +http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_integer.txt +GL_EXT_texture_integer + + GL_RGBA32UI_EXT 0x8D70 + GL_RGB32UI_EXT 0x8D71 + GL_ALPHA32UI_EXT 0x8D72 + GL_INTENSITY32UI_EXT 0x8D73 + GL_LUMINANCE32UI_EXT 0x8D74 + GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 + GL_RGBA16UI_EXT 0x8D76 + GL_RGB16UI_EXT 0x8D77 + GL_ALPHA16UI_EXT 0x8D78 + GL_INTENSITY16UI_EXT 0x8D79 + GL_LUMINANCE16UI_EXT 0x8D7A + GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B + GL_RGBA8UI_EXT 0x8D7C + GL_RGB8UI_EXT 0x8D7D + GL_ALPHA8UI_EXT 0x8D7E + GL_INTENSITY8UI_EXT 0x8D7F + GL_LUMINANCE8UI_EXT 0x8D80 + GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 + GL_RGBA32I_EXT 0x8D82 + GL_RGB32I_EXT 0x8D83 + GL_ALPHA32I_EXT 0x8D84 + GL_INTENSITY32I_EXT 0x8D85 + GL_LUMINANCE32I_EXT 0x8D86 + GL_LUMINANCE_ALPHA32I_EXT 0x8D87 + GL_RGBA16I_EXT 0x8D88 + GL_RGB16I_EXT 0x8D89 + GL_ALPHA16I_EXT 0x8D8A + GL_INTENSITY16I_EXT 0x8D8B + GL_LUMINANCE16I_EXT 0x8D8C + GL_LUMINANCE_ALPHA16I_EXT 0x8D8D + GL_RGBA8I_EXT 0x8D8E + GL_RGB8I_EXT 0x8D8F + GL_ALPHA8I_EXT 0x8D90 + GL_INTENSITY8I_EXT 0x8D91 + GL_LUMINANCE8I_EXT 0x8D92 + GL_LUMINANCE_ALPHA8I_EXT 0x8D93 + GL_RED_INTEGER_EXT 0x8D94 + GL_GREEN_INTEGER_EXT 0x8D95 + GL_BLUE_INTEGER_EXT 0x8D96 + GL_ALPHA_INTEGER_EXT 0x8D97 + GL_RGB_INTEGER_EXT 0x8D98 + GL_RGBA_INTEGER_EXT 0x8D99 + GL_BGR_INTEGER_EXT 0x8D9A + GL_BGRA_INTEGER_EXT 0x8D9B + GL_LUMINANCE_INTEGER_EXT 0x8D9C + GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D + GL_RGBA_INTEGER_MODE_EXT 0x8D9E + void glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params) + void glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params) + void glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params) + void glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params) + void glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha) + void glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_rectangle b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_rectangle new file mode 100644 index 0000000..1394311 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_rectangle @@ -0,0 +1,8 @@ +GL_EXT_texture_rectangle +http://developer.apple.com/opengl/extensions/ext_texture_rectangle.html +GL_EXT_texture_rectangle + + GL_TEXTURE_RECTANGLE_EXT 0x84F5 + GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 + GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 + GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_shared_exponent b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_shared_exponent new file mode 100644 index 0000000..4c7d461 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_texture_shared_exponent @@ -0,0 +1,7 @@ +GL_EXT_texture_shared_exponent +http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_shared_exponent.txt +GL_EXT_texture_shared_exponent + + GL_RGB9_E5_EXT 0x8C3D + GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E + GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_timer_query b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_timer_query new file mode 100644 index 0000000..530ba35 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_timer_query @@ -0,0 +1,7 @@ +GL_EXT_timer_query +http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_timer_query.txt +GL_EXT_timer_query + + GL_TIME_ELAPSED_EXT 0x88BF + void glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64EXT *params) + void glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64EXT *params) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_vertex_shader b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_vertex_shader new file mode 100644 index 0000000..8d3314f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_EXT_vertex_shader @@ -0,0 +1,157 @@ +GL_EXT_vertex_shader +http://oss.sgi.com/projects/ogl-sample/registry/EXT/vertex_shader.txt +GL_EXT_vertex_shader + + GL_VERTEX_SHADER_EXT 0x8780 + GL_VERTEX_SHADER_BINDING_EXT 0x8781 + GL_OP_INDEX_EXT 0x8782 + GL_OP_NEGATE_EXT 0x8783 + GL_OP_DOT3_EXT 0x8784 + GL_OP_DOT4_EXT 0x8785 + GL_OP_MUL_EXT 0x8786 + GL_OP_ADD_EXT 0x8787 + GL_OP_MADD_EXT 0x8788 + GL_OP_FRAC_EXT 0x8789 + GL_OP_MAX_EXT 0x878A + GL_OP_MIN_EXT 0x878B + GL_OP_SET_GE_EXT 0x878C + GL_OP_SET_LT_EXT 0x878D + GL_OP_CLAMP_EXT 0x878E + GL_OP_FLOOR_EXT 0x878F + GL_OP_ROUND_EXT 0x8790 + GL_OP_EXP_BASE_2_EXT 0x8791 + GL_OP_LOG_BASE_2_EXT 0x8792 + GL_OP_POWER_EXT 0x8793 + GL_OP_RECIP_EXT 0x8794 + GL_OP_RECIP_SQRT_EXT 0x8795 + GL_OP_SUB_EXT 0x8796 + GL_OP_CROSS_PRODUCT_EXT 0x8797 + GL_OP_MULTIPLY_MATRIX_EXT 0x8798 + GL_OP_MOV_EXT 0x8799 + GL_OUTPUT_VERTEX_EXT 0x879A + GL_OUTPUT_COLOR0_EXT 0x879B + GL_OUTPUT_COLOR1_EXT 0x879C + GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D + GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E + GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F + GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 + GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 + GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 + GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 + GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 + GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 + GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 + GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 + GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 + GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 + GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA + GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB + GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC + GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD + GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE + GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF + GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 + GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 + GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 + GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 + GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 + GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 + GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 + GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 + GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 + GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 + GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA + GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB + GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC + GL_OUTPUT_FOG_EXT 0x87BD + GL_SCALAR_EXT 0x87BE + GL_VECTOR_EXT 0x87BF + GL_MATRIX_EXT 0x87C0 + GL_VARIANT_EXT 0x87C1 + GL_INVARIANT_EXT 0x87C2 + GL_LOCAL_CONSTANT_EXT 0x87C3 + GL_LOCAL_EXT 0x87C4 + GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 + GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 + GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 + GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 + GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 + GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA + GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB + GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC + GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD + GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE + GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF + GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 + GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 + GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 + GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 + GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 + GL_X_EXT 0x87D5 + GL_Y_EXT 0x87D6 + GL_Z_EXT 0x87D7 + GL_W_EXT 0x87D8 + GL_NEGATIVE_X_EXT 0x87D9 + GL_NEGATIVE_Y_EXT 0x87DA + GL_NEGATIVE_Z_EXT 0x87DB + GL_NEGATIVE_W_EXT 0x87DC + GL_ZERO_EXT 0x87DD + GL_ONE_EXT 0x87DE + GL_NEGATIVE_ONE_EXT 0x87DF + GL_NORMALIZED_RANGE_EXT 0x87E0 + GL_FULL_RANGE_EXT 0x87E1 + GL_CURRENT_VERTEX_EXT 0x87E2 + GL_MVP_MATRIX_EXT 0x87E3 + GL_VARIANT_VALUE_EXT 0x87E4 + GL_VARIANT_DATATYPE_EXT 0x87E5 + GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 + GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 + GL_VARIANT_ARRAY_EXT 0x87E8 + GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 + GL_INVARIANT_VALUE_EXT 0x87EA + GL_INVARIANT_DATATYPE_EXT 0x87EB + GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC + GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED + + void glBeginVertexShaderEXT (void) + void glEndVertexShaderEXT (void) + void glBindVertexShaderEXT (GLuint id) + GLuint glGenVertexShadersEXT (GLuint range) + void glDeleteVertexShaderEXT (GLuint id) + void glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1) + void glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2) + void glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3) + void glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW) + void glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW) + void glInsertComponentEXT (GLuint res, GLuint src, GLuint num) + void glExtractComponentEXT (GLuint res, GLuint src, GLuint num) + GLuint glGenSymbolsEXT (GLenum dataType, GLenum storageType, GLenum range, GLuint components) + void glSetInvariantEXT (GLuint id, GLenum type, void *addr) + void glSetLocalConstantEXT (GLuint id, GLenum type, void *addr) + void glVariantbvEXT (GLuint id, GLbyte *addr) + void glVariantsvEXT (GLuint id, GLshort *addr) + void glVariantivEXT (GLuint id, GLint *addr) + void glVariantfvEXT (GLuint id, GLfloat *addr) + void glVariantdvEXT (GLuint id, GLdouble *addr) + void glVariantubvEXT (GLuint id, GLubyte *addr) + void glVariantusvEXT (GLuint id, GLushort *addr) + void glVariantuivEXT (GLuint id, GLuint *addr) + void glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, void *addr) + void glEnableVariantClientStateEXT (GLuint id) + void glDisableVariantClientStateEXT (GLuint id) + GLuint glBindLightParameterEXT (GLenum light, GLenum value) + GLuint glBindMaterialParameterEXT (GLenum face, GLenum value) + GLuint glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value) + GLuint glBindTextureUnitParameterEXT (GLenum unit, GLenum value) + GLuint glBindParameterEXT (GLenum value) + GLboolean glIsVariantEnabledEXT (GLuint id, GLenum cap) + void glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data) + void glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data) + void glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data) + void glGetVariantPointervEXT (GLuint id, GLenum value, void **data) + void glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data) + void glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data) + void glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data) + void glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data) + void glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data) + void glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_KHR_context_flush_control b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_KHR_context_flush_control new file mode 100644 index 0000000..18de5aa --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_KHR_context_flush_control @@ -0,0 +1,7 @@ +GL_KHR_context_flush_control +https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_context_flush_control.txt +GL_KHR_context_flush_control + + GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB + GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_KTX_buffer_region b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_KTX_buffer_region new file mode 100644 index 0000000..ef281b1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_KTX_buffer_region @@ -0,0 +1,13 @@ +GL_KTX_buffer_region + +GL_KTX_buffer_region + + GL_KTX_FRONT_REGION 0x0 + GL_KTX_BACK_REGION 0x1 + GL_KTX_Z_REGION 0x2 + GL_KTX_STENCIL_REGION 0x3 + GLuint glBufferRegionEnabled (void) + GLuint glNewBufferRegion (GLenum region) + void glDeleteBufferRegion (GLenum region) + void glReadBufferRegion (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height) + void glDrawBufferRegion (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NVX_gpu_memory_info b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NVX_gpu_memory_info new file mode 100644 index 0000000..a8d97b9 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NVX_gpu_memory_info @@ -0,0 +1,9 @@ +GL_NVX_gpu_memory_info +http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt +GL_NVX_gpu_memory_info + + GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 + GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 + GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 + GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A + GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_depth_buffer_float b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_depth_buffer_float new file mode 100644 index 0000000..421d266 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_depth_buffer_float @@ -0,0 +1,11 @@ +GL_NV_depth_buffer_float +http://developer.download.nvidia.com/opengl/specs/GL_NV_depth_buffer_float.txt +GL_NV_depth_buffer_float + + GL_DEPTH_COMPONENT32F_NV 0x8DAB + GL_DEPTH32F_STENCIL8_NV 0x8DAC + GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD + GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF + void glDepthRangedNV (GLdouble zNear, GLdouble zFar) + void glClearDepthdNV (GLdouble depth) + void glDepthBoundsdNV (GLdouble zmin, GLdouble zmax) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_depth_range_unclamped b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_depth_range_unclamped new file mode 100644 index 0000000..b63a0ee --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_depth_range_unclamped @@ -0,0 +1,9 @@ +GL_NV_depth_range_unclamped + +GL_NV_depth_range_unclamped + + GL_SAMPLE_COUNT_BITS_NV 0x8864 + GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865 + GL_QUERY_RESULT_NV 0x8866 + GL_QUERY_RESULT_AVAILABLE_NV 0x8867 + GL_SAMPLE_COUNT_NV 0x8914 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program2 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program2 new file mode 100644 index 0000000..79d4b63 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program2 @@ -0,0 +1,9 @@ +GL_NV_fragment_program2 +http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program2.txt +GL_NV_fragment_program2 + + GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 + GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 + GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 + GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 + GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program4 new file mode 100644 index 0000000..edd4383 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program4 @@ -0,0 +1,4 @@ +GL_NV_fragment_program4 +http://developer.download.nvidia.com/opengl/specs/GL_NV_fragment_program4.txt +GL_NV_gpu_program4 + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program_option b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program_option new file mode 100644 index 0000000..01b8ed6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_fragment_program_option @@ -0,0 +1,4 @@ +GL_NV_fragment_program_option +http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program_option.txt +GL_NV_fragment_program_option + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_framebuffer_multisample_coverage b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_framebuffer_multisample_coverage new file mode 100644 index 0000000..526d0f0 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_framebuffer_multisample_coverage @@ -0,0 +1,9 @@ +GL_NV_framebuffer_multisample_coverage +http://developer.download.nvidia.com/opengl/specs/GL_NV_framebuffer_multisample_coverage.txt +GL_NV_framebuffer_multisample_coverage + + GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB + GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 + GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 + GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 + void glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_geometry_program4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_geometry_program4 new file mode 100644 index 0000000..a6cb164 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_geometry_program4 @@ -0,0 +1,8 @@ +GL_NV_geometry_program4 +http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_program4.txt +GL_NV_gpu_program4 + + GL_GEOMETRY_PROGRAM_NV 0x8C26 + GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 + GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 + void glProgramVertexLimitNV (GLenum target, GLint limit) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_geometry_shader4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_geometry_shader4 new file mode 100644 index 0000000..1b00429 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_geometry_shader4 @@ -0,0 +1,4 @@ +GL_NV_geometry_shader4 +http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_shader4.txt +GL_NV_geometry_shader4 + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_gpu_program4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_gpu_program4 new file mode 100644 index 0000000..19f7169 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_gpu_program4 @@ -0,0 +1,24 @@ +GL_NV_gpu_program4 +http://developer.download.nvidia.com/opengl/specs/GL_NV_gpu_program4.txt +GL_NV_gpu_program4 + + GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 + GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 + GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 + GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 + GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 + GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 + GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 + GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 + void glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w) + void glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params) + void glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params) + void glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) + void glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params) + void glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params) + void glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w) + void glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params) + void glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params) + void glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) + void glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params) + void glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_gpu_program5 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_gpu_program5 new file mode 100644 index 0000000..68079f3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_gpu_program5 @@ -0,0 +1,10 @@ +GL_NV_gpu_program5 +http://www.opengl.org/registry/specs/NV/gpu_program5.txt +GL_NV_gpu_program5 + + GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A + GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B + GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C + GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D + GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E + GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_parameter_buffer_object b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_parameter_buffer_object new file mode 100644 index 0000000..91494e3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_parameter_buffer_object @@ -0,0 +1,12 @@ +GL_NV_parameter_buffer_object +http://developer.download.nvidia.com/opengl/specs/GL_NV_parameter_buffer_object.txt +GL_NV_parameter_buffer_object + + GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 + GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 + GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 + GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 + GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 + void glProgramBufferParametersfvNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params) + void glProgramBufferParametersIivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params) + void glProgramBufferParametersIuivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_present_video b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_present_video new file mode 100644 index 0000000..1a5b8ce --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_present_video @@ -0,0 +1,16 @@ +GL_NV_present_video +http://www.opengl.org/registry/specs/NV/present_video.txt +GL_NV_present_video + + GL_FRAME_NV 0x8E26 + GL_FIELDS_NV 0x8E27 + GL_CURRENT_TIME_NV 0x8E28 + GL_NUM_FILL_STREAMS_NV 0x8E29 + GL_PRESENT_TIME_NV 0x8E2A + GL_PRESENT_DURATION_NV 0x8E2B + void glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT* params) + void glGetVideoivNV (GLuint video_slot, GLenum pname, GLint* params) + void glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT* params) + void glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint* params) + void glPresentFrameDualFillNV (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) + void glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_sample_locations b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_sample_locations new file mode 100644 index 0000000..f3dfc98 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_sample_locations @@ -0,0 +1,15 @@ +GL_NV_sample_locations +https://www.khronos.org/registry/OpenGL/extensions/NV/NV_sample_locations.txt +GL_NV_sample_locations + + GL_SAMPLE_LOCATION_NV 0x8E50 + GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D + GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E + GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F + GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 + GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 + GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 + GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 + void glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat* v) + void glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v) + void glResolveDepthValuesNV (void) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_tessellation_program5 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_tessellation_program5 new file mode 100644 index 0000000..75fd3c7 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_tessellation_program5 @@ -0,0 +1,9 @@ +GL_NV_tessellation_program5 +http://www.opengl.org/registry/specs/NV/tessellation_program5.txt +GL_NV_gpu_program5 + + GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 + GL_TESS_CONTROL_PROGRAM_NV 0x891E + GL_TESS_EVALUATION_PROGRAM_NV 0x891F + GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 + GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_transform_feedback b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_transform_feedback new file mode 100644 index 0000000..5f1816e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_transform_feedback @@ -0,0 +1,40 @@ +GL_NV_transform_feedback +http://developer.download.nvidia.com/opengl/specs/GL_NV_transform_feedback.txt +GL_NV_transform_feedback + + GL_BACK_PRIMARY_COLOR_NV 0x8C77 + GL_BACK_SECONDARY_COLOR_NV 0x8C78 + GL_TEXTURE_COORD_NV 0x8C79 + GL_CLIP_DISTANCE_NV 0x8C7A + GL_VERTEX_ID_NV 0x8C7B + GL_PRIMITIVE_ID_NV 0x8C7C + GL_GENERIC_ATTRIB_NV 0x8C7D + GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E + GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 + GL_ACTIVE_VARYINGS_NV 0x8C81 + GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 + GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 + GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 + GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 + GL_PRIMITIVES_GENERATED_NV 0x8C87 + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 + GL_RASTERIZER_DISCARD_NV 0x8C89 + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B + GL_INTERLEAVED_ATTRIBS_NV 0x8C8C + GL_SEPARATE_ATTRIBS_NV 0x8C8D + GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F + void glBeginTransformFeedbackNV (GLenum primitiveMode) + void glEndTransformFeedbackNV (void) + void glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode) + void glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) + void glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset) + void glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer) + void glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode) + void glActiveVaryingNV (GLuint program, const GLchar *name) + GLint glGetVaryingLocationNV (GLuint program, const GLchar *name) + void glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name) + void glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vdpau_interop b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vdpau_interop new file mode 100644 index 0000000..f52949c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vdpau_interop @@ -0,0 +1,19 @@ +GL_NV_vdpau_interop +http://www.opengl.org/registry/specs/NV/vdpau_interop.txt +GL_NV_vdpau_interop + + GL_SURFACE_STATE_NV 0x86EB + GL_SURFACE_REGISTERED_NV 0x86FD + GL_SURFACE_MAPPED_NV 0x8700 + GL_WRITE_DISCARD_NV 0x88BE + void glVDPAUFiniNV (void) + void glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values) + void glVDPAUInitNV (const void* vdpDevice, const void*getProcAddress) + void glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface) + void glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces) + GLvdpauSurfaceNV glVDPAURegisterOutputSurfaceNV (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames) + GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceNV (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames) + void glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access) + void glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces) + void glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface) + typedef GLintptr GLvdpauSurfaceNV diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program2_option b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program2_option new file mode 100644 index 0000000..3e3e0b7 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program2_option @@ -0,0 +1,6 @@ +GL_NV_vertex_program2_option +http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program2_option.txt +GL_NV_vertex_program2_option + + GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 + GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program3 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program3 new file mode 100644 index 0000000..fbd3899 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program3 @@ -0,0 +1,5 @@ +GL_NV_vertex_program3 +http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program3.txt +GL_NV_vertex_program3 + + MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program4 new file mode 100644 index 0000000..b1ff7f8 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_NV_vertex_program4 @@ -0,0 +1,5 @@ +GL_NV_vertex_program4 +http://developer.download.nvidia.com/opengl/specs/GL_NV_vertex_program4.txt +GL_NV_gpu_program4 + + GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_SGIX_shadow b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_SGIX_shadow new file mode 100644 index 0000000..3580721 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_SGIX_shadow @@ -0,0 +1,8 @@ +GL_SGIX_shadow +http://oss.sgi.com/projects/ogl-sample/registry/SGIX/shadow.txt +GL_SGIX_shadow + + GL_TEXTURE_COMPARE_SGIX 0x819A + GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B + GL_TEXTURE_LEQUAL_R_SGIX 0x819C + GL_TEXTURE_GEQUAL_R_SGIX 0x819D diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_SUN_read_video_pixels b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_SUN_read_video_pixels new file mode 100644 index 0000000..871e6f9 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_SUN_read_video_pixels @@ -0,0 +1,5 @@ +GL_SUN_read_video_pixels +http://wwws.sun.com/software/graphics/opengl/extensions/gl_sun_read_video_pixels.txt +GL_SUN_read_video_pixels + + void glReadVideoPixelsSUN (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_2 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_2 new file mode 100644 index 0000000..fe610b6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_2 @@ -0,0 +1,50 @@ +GL_VERSION_1_2 +http://www.opengl.org/documentation/specs/version1.2/opengl1.2.1.pdf + + + GL_UNSIGNED_BYTE_3_3_2 0x8032 + GL_UNSIGNED_SHORT_4_4_4_4 0x8033 + GL_UNSIGNED_SHORT_5_5_5_1 0x8034 + GL_UNSIGNED_INT_8_8_8_8 0x8035 + GL_UNSIGNED_INT_10_10_10_2 0x8036 + GL_RESCALE_NORMAL 0x803A + GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 + GL_UNSIGNED_SHORT_5_6_5 0x8363 + GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 + GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 + GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 + GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 + GL_BGR 0x80E0 + GL_BGRA 0x80E1 + GL_MAX_ELEMENTS_VERTICES 0x80E8 + GL_MAX_ELEMENTS_INDICES 0x80E9 + GL_CLAMP_TO_EDGE 0x812F + GL_TEXTURE_MIN_LOD 0x813A + GL_TEXTURE_MAX_LOD 0x813B + GL_TEXTURE_BASE_LEVEL 0x813C + GL_TEXTURE_MAX_LEVEL 0x813D + GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 + GL_SINGLE_COLOR 0x81F9 + GL_SEPARATE_SPECULAR_COLOR 0x81FA + GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 + GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 + GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 + GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 + GL_ALIASED_POINT_SIZE_RANGE 0x846D + GL_ALIASED_LINE_WIDTH_RANGE 0x846E + GL_PACK_SKIP_IMAGES 0x806B + GL_PACK_IMAGE_HEIGHT 0x806C + GL_UNPACK_SKIP_IMAGES 0x806D + GL_UNPACK_IMAGE_HEIGHT 0x806E + GL_TEXTURE_3D 0x806F + GL_PROXY_TEXTURE_3D 0x8070 + GL_TEXTURE_DEPTH 0x8071 + GL_TEXTURE_WRAP_R 0x8072 + GL_MAX_3D_TEXTURE_SIZE 0x8073 + GL_TEXTURE_BINDING_3D 0x806A + GL_MAX_ELEMENTS_VERTICES 0x80E8 + GL_MAX_ELEMENTS_INDICES 0x80E9 + void glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices) + void glTexImage3D (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels) + void glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels) + void glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_2_1 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_2_1 new file mode 100644 index 0000000..42634cb --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_2_1 @@ -0,0 +1,4 @@ +GL_VERSION_1_2_1 +http://www.opengl.org/documentation/specs/version1.2/opengl1.2.1.pdf + + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_3 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_3 new file mode 100644 index 0000000..d6342fa --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_3 @@ -0,0 +1,147 @@ +GL_VERSION_1_3 +http://www.opengl.org/documentation/specs/version1.3/glspec13.pdf + + + GL_TEXTURE0 0x84C0 + GL_TEXTURE1 0x84C1 + GL_TEXTURE2 0x84C2 + GL_TEXTURE3 0x84C3 + GL_TEXTURE4 0x84C4 + GL_TEXTURE5 0x84C5 + GL_TEXTURE6 0x84C6 + GL_TEXTURE7 0x84C7 + GL_TEXTURE8 0x84C8 + GL_TEXTURE9 0x84C9 + GL_TEXTURE10 0x84CA + GL_TEXTURE11 0x84CB + GL_TEXTURE12 0x84CC + GL_TEXTURE13 0x84CD + GL_TEXTURE14 0x84CE + GL_TEXTURE15 0x84CF + GL_TEXTURE16 0x84D0 + GL_TEXTURE17 0x84D1 + GL_TEXTURE18 0x84D2 + GL_TEXTURE19 0x84D3 + GL_TEXTURE20 0x84D4 + GL_TEXTURE21 0x84D5 + GL_TEXTURE22 0x84D6 + GL_TEXTURE23 0x84D7 + GL_TEXTURE24 0x84D8 + GL_TEXTURE25 0x84D9 + GL_TEXTURE26 0x84DA + GL_TEXTURE27 0x84DB + GL_TEXTURE28 0x84DC + GL_TEXTURE29 0x84DD + GL_TEXTURE30 0x84DE + GL_TEXTURE31 0x84DF + GL_ACTIVE_TEXTURE 0x84E0 + GL_CLIENT_ACTIVE_TEXTURE 0x84E1 + GL_MAX_TEXTURE_UNITS 0x84E2 + GL_NORMAL_MAP 0x8511 + GL_REFLECTION_MAP 0x8512 + GL_TEXTURE_CUBE_MAP 0x8513 + GL_TEXTURE_BINDING_CUBE_MAP 0x8514 + GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 + GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 + GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 + GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A + GL_PROXY_TEXTURE_CUBE_MAP 0x851B + GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C + GL_COMPRESSED_ALPHA 0x84E9 + GL_COMPRESSED_LUMINANCE 0x84EA + GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB + GL_COMPRESSED_INTENSITY 0x84EC + GL_COMPRESSED_RGB 0x84ED + GL_COMPRESSED_RGBA 0x84EE + GL_TEXTURE_COMPRESSION_HINT 0x84EF + GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 + GL_TEXTURE_COMPRESSED 0x86A1 + GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 + GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 + GL_MULTISAMPLE 0x809D + GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E + GL_SAMPLE_ALPHA_TO_ONE 0x809F + GL_SAMPLE_COVERAGE 0x80A0 + GL_SAMPLE_BUFFERS 0x80A8 + GL_SAMPLES 0x80A9 + GL_SAMPLE_COVERAGE_VALUE 0x80AA + GL_SAMPLE_COVERAGE_INVERT 0x80AB + GL_MULTISAMPLE_BIT 0x20000000 + GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 + GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 + GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 + GL_TRANSPOSE_COLOR_MATRIX 0x84E6 + GL_COMBINE 0x8570 + GL_COMBINE_RGB 0x8571 + GL_COMBINE_ALPHA 0x8572 + GL_SOURCE0_RGB 0x8580 + GL_SOURCE1_RGB 0x8581 + GL_SOURCE2_RGB 0x8582 + GL_SOURCE0_ALPHA 0x8588 + GL_SOURCE1_ALPHA 0x8589 + GL_SOURCE2_ALPHA 0x858A + GL_OPERAND0_RGB 0x8590 + GL_OPERAND1_RGB 0x8591 + GL_OPERAND2_RGB 0x8592 + GL_OPERAND0_ALPHA 0x8598 + GL_OPERAND1_ALPHA 0x8599 + GL_OPERAND2_ALPHA 0x859A + GL_RGB_SCALE 0x8573 + GL_ADD_SIGNED 0x8574 + GL_INTERPOLATE 0x8575 + GL_SUBTRACT 0x84E7 + GL_CONSTANT 0x8576 + GL_PRIMARY_COLOR 0x8577 + GL_PREVIOUS 0x8578 + GL_DOT3_RGB 0x86AE + GL_DOT3_RGBA 0x86AF + GL_CLAMP_TO_BORDER 0x812D + + void glActiveTexture (GLenum texture) + void glClientActiveTexture (GLenum texture) + void glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data) + void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data) + void glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data) + void glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data) + void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data) + void glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data) + void glGetCompressedTexImage (GLenum target, GLint lod, void *img) + void glLoadTransposeMatrixd (const GLdouble m[16]) + void glLoadTransposeMatrixf (const GLfloat m[16]) + void glMultTransposeMatrixd (const GLdouble m[16]) + void glMultTransposeMatrixf (const GLfloat m[16]) + void glMultiTexCoord1d (GLenum target, GLdouble s) + void glMultiTexCoord1dv (GLenum target, const GLdouble *v) + void glMultiTexCoord1f (GLenum target, GLfloat s) + void glMultiTexCoord1fv (GLenum target, const GLfloat *v) + void glMultiTexCoord1i (GLenum target, GLint s) + void glMultiTexCoord1iv (GLenum target, const GLint *v) + void glMultiTexCoord1s (GLenum target, GLshort s) + void glMultiTexCoord1sv (GLenum target, const GLshort *v) + void glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t) + void glMultiTexCoord2dv (GLenum target, const GLdouble *v) + void glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t) + void glMultiTexCoord2fv (GLenum target, const GLfloat *v) + void glMultiTexCoord2i (GLenum target, GLint s, GLint t) + void glMultiTexCoord2iv (GLenum target, const GLint *v) + void glMultiTexCoord2s (GLenum target, GLshort s, GLshort t) + void glMultiTexCoord2sv (GLenum target, const GLshort *v) + void glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r) + void glMultiTexCoord3dv (GLenum target, const GLdouble *v) + void glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r) + void glMultiTexCoord3fv (GLenum target, const GLfloat *v) + void glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r) + void glMultiTexCoord3iv (GLenum target, const GLint *v) + void glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r) + void glMultiTexCoord3sv (GLenum target, const GLshort *v) + void glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) + void glMultiTexCoord4dv (GLenum target, const GLdouble *v) + void glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) + void glMultiTexCoord4fv (GLenum target, const GLfloat *v) + void glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q) + void glMultiTexCoord4iv (GLenum target, const GLint *v) + void glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) + void glMultiTexCoord4sv (GLenum target, const GLshort *v) + void glSampleCoverage (GLclampf value, GLboolean invert) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_4 new file mode 100644 index 0000000..8d0724a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_4 @@ -0,0 +1,90 @@ +GL_VERSION_1_4 +http://www.opengl.org/documentation/specs/version1.4/glspec14.pdf + + + GL_GENERATE_MIPMAP 0x8191 + GL_GENERATE_MIPMAP_HINT 0x8192 + GL_DEPTH_COMPONENT16 0x81A5 + GL_DEPTH_COMPONENT24 0x81A6 + GL_DEPTH_COMPONENT32 0x81A7 + GL_TEXTURE_DEPTH_SIZE 0x884A + GL_DEPTH_TEXTURE_MODE 0x884B + GL_TEXTURE_COMPARE_MODE 0x884C + GL_TEXTURE_COMPARE_FUNC 0x884D + GL_COMPARE_R_TO_TEXTURE 0x884E + GL_FOG_COORDINATE_SOURCE 0x8450 + GL_FOG_COORDINATE 0x8451 + GL_FRAGMENT_DEPTH 0x8452 + GL_CURRENT_FOG_COORDINATE 0x8453 + GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 + GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 + GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 + GL_FOG_COORDINATE_ARRAY 0x8457 + GL_POINT_SIZE_MIN 0x8126 + GL_POINT_SIZE_MAX 0x8127 + GL_POINT_FADE_THRESHOLD_SIZE 0x8128 + GL_POINT_DISTANCE_ATTENUATION 0x8129 + GL_COLOR_SUM 0x8458 + GL_CURRENT_SECONDARY_COLOR 0x8459 + GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A + GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B + GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C + GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D + GL_SECONDARY_COLOR_ARRAY 0x845E + GL_BLEND_DST_RGB 0x80C8 + GL_BLEND_SRC_RGB 0x80C9 + GL_BLEND_DST_ALPHA 0x80CA + GL_BLEND_SRC_ALPHA 0x80CB + GL_INCR_WRAP 0x8507 + GL_DECR_WRAP 0x8508 + GL_TEXTURE_FILTER_CONTROL 0x8500 + GL_TEXTURE_LOD_BIAS 0x8501 + GL_MAX_TEXTURE_LOD_BIAS 0x84FD + GL_MIRRORED_REPEAT 0x8370 + void glBlendEquation (GLenum mode) + void glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) + void glFogCoordf (GLfloat coord) + void glFogCoordfv (const GLfloat *coord) + void glFogCoordd (GLdouble coord) + void glFogCoorddv (const GLdouble *coord) + void glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer) + void glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount) + void glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const* indices, GLsizei drawcount) + void glPointParameteri (GLenum pname, GLint param) + void glPointParameteriv (GLenum pname, const GLint *params) + void glPointParameterf (GLenum pname, GLfloat param) + void glPointParameterfv (GLenum pname, const GLfloat *params) + void glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue) + void glSecondaryColor3bv (const GLbyte *v) + void glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue) + void glSecondaryColor3dv (const GLdouble *v) + void glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue) + void glSecondaryColor3fv (const GLfloat *v) + void glSecondaryColor3i (GLint red, GLint green, GLint blue) + void glSecondaryColor3iv (const GLint *v) + void glSecondaryColor3s (GLshort red, GLshort green, GLshort blue) + void glSecondaryColor3sv (const GLshort *v) + void glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue) + void glSecondaryColor3ubv (const GLubyte *v) + void glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue) + void glSecondaryColor3uiv (const GLuint *v) + void glSecondaryColor3us (GLushort red, GLushort green, GLushort blue) + void glSecondaryColor3usv (const GLushort *v) + void glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer) + void glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) + void glWindowPos2d (GLdouble x, GLdouble y) + void glWindowPos2f (GLfloat x, GLfloat y) + void glWindowPos2i (GLint x, GLint y) + void glWindowPos2s (GLshort x, GLshort y) + void glWindowPos2dv (const GLdouble *p) + void glWindowPos2fv (const GLfloat *p) + void glWindowPos2iv (const GLint *p) + void glWindowPos2sv (const GLshort *p) + void glWindowPos3d (GLdouble x, GLdouble y, GLdouble z) + void glWindowPos3f (GLfloat x, GLfloat y, GLfloat z) + void glWindowPos3i (GLint x, GLint y, GLint z) + void glWindowPos3s (GLshort x, GLshort y, GLshort z) + void glWindowPos3dv (const GLdouble *p) + void glWindowPos3fv (const GLfloat *p) + void glWindowPos3iv (const GLint *p) + void glWindowPos3sv (const GLshort *p) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_5 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_5 new file mode 100644 index 0000000..439ecb6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_1_5 @@ -0,0 +1,75 @@ +GL_VERSION_1_5 +http://www.opengl.org/documentation/specs/version1.5/glspec15.pdf + + + GL_BUFFER_SIZE 0x8764 + GL_BUFFER_USAGE 0x8765 + GL_QUERY_COUNTER_BITS 0x8864 + GL_CURRENT_QUERY 0x8865 + GL_QUERY_RESULT 0x8866 + GL_QUERY_RESULT_AVAILABLE 0x8867 + GL_ARRAY_BUFFER 0x8892 + GL_ELEMENT_ARRAY_BUFFER 0x8893 + GL_ARRAY_BUFFER_BINDING 0x8894 + GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 + GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 + GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 + GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 + GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 + GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A + GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B + GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C + GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D + GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E + GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F + GL_READ_ONLY 0x88B8 + GL_WRITE_ONLY 0x88B9 + GL_READ_WRITE 0x88BA + GL_BUFFER_ACCESS 0x88BB + GL_BUFFER_MAPPED 0x88BC + GL_BUFFER_MAP_POINTER 0x88BD + GL_STREAM_DRAW 0x88E0 + GL_STREAM_READ 0x88E1 + GL_STREAM_COPY 0x88E2 + GL_STATIC_DRAW 0x88E4 + GL_STATIC_READ 0x88E5 + GL_STATIC_COPY 0x88E6 + GL_DYNAMIC_DRAW 0x88E8 + GL_DYNAMIC_READ 0x88E9 + GL_DYNAMIC_COPY 0x88EA + GL_SAMPLES_PASSED 0x8914 + GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE + GL_FOG_COORD GL_FOG_COORDINATE + GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE + GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE + GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE + GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER + GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY + GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING + GL_SRC0_RGB GL_SOURCE0_RGB + GL_SRC1_RGB GL_SOURCE1_RGB + GL_SRC2_RGB GL_SOURCE2_RGB + GL_SRC0_ALPHA GL_SOURCE0_ALPHA + GL_SRC1_ALPHA GL_SOURCE1_ALPHA + GL_SRC2_ALPHA GL_SOURCE2_ALPHA + void glGenQueries (GLsizei n, GLuint* ids) + void glDeleteQueries (GLsizei n, const GLuint* ids) + GLboolean glIsQuery (GLuint id) + void glBeginQuery (GLenum target, GLuint id) + void glEndQuery (GLenum target) + void glGetQueryiv (GLenum target, GLenum pname, GLint* params) + void glGetQueryObjectiv (GLuint id, GLenum pname, GLint* params) + void glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint* params) + void glBindBuffer (GLenum target, GLuint buffer) + void glDeleteBuffers (GLsizei n, const GLuint* buffers) + void glGenBuffers (GLsizei n, GLuint* buffers) + GLboolean glIsBuffer (GLuint buffer) + void glBufferData (GLenum target, GLsizeiptr size, const void* data, GLenum usage) + void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void* data) + void glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void* data) + void* glMapBuffer (GLenum target, GLenum access) + GLboolean glUnmapBuffer (GLenum target) + void glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params) + void glGetBufferPointerv (GLenum target, GLenum pname, void** params) + typedef ptrdiff_t GLsizeiptr + typedef ptrdiff_t GLintptr diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_2_0 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_2_0 new file mode 100644 index 0000000..e52d96c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_2_0 @@ -0,0 +1,181 @@ +GL_VERSION_2_0 +http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf + + + GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION + GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 + GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 + GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 + GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 + GL_CURRENT_VERTEX_ATTRIB 0x8626 + GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 + GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 + GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 + GL_STENCIL_BACK_FUNC 0x8800 + GL_STENCIL_BACK_FAIL 0x8801 + GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 + GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 + GL_MAX_DRAW_BUFFERS 0x8824 + GL_DRAW_BUFFER0 0x8825 + GL_DRAW_BUFFER1 0x8826 + GL_DRAW_BUFFER2 0x8827 + GL_DRAW_BUFFER3 0x8828 + GL_DRAW_BUFFER4 0x8829 + GL_DRAW_BUFFER5 0x882A + GL_DRAW_BUFFER6 0x882B + GL_DRAW_BUFFER7 0x882C + GL_DRAW_BUFFER8 0x882D + GL_DRAW_BUFFER9 0x882E + GL_DRAW_BUFFER10 0x882F + GL_DRAW_BUFFER11 0x8830 + GL_DRAW_BUFFER12 0x8831 + GL_DRAW_BUFFER13 0x8832 + GL_DRAW_BUFFER14 0x8833 + GL_DRAW_BUFFER15 0x8834 + GL_BLEND_EQUATION_ALPHA 0x883D + GL_POINT_SPRITE 0x8861 + GL_COORD_REPLACE 0x8862 + GL_MAX_VERTEX_ATTRIBS 0x8869 + GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A + GL_MAX_TEXTURE_COORDS 0x8871 + GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 + GL_FRAGMENT_SHADER 0x8B30 + GL_VERTEX_SHADER 0x8B31 + GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 + GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A + GL_MAX_VARYING_FLOATS 0x8B4B + GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C + GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D + GL_SHADER_TYPE 0x8B4F + GL_FLOAT_VEC2 0x8B50 + GL_FLOAT_VEC3 0x8B51 + GL_FLOAT_VEC4 0x8B52 + GL_INT_VEC2 0x8B53 + GL_INT_VEC3 0x8B54 + GL_INT_VEC4 0x8B55 + GL_BOOL 0x8B56 + GL_BOOL_VEC2 0x8B57 + GL_BOOL_VEC3 0x8B58 + GL_BOOL_VEC4 0x8B59 + GL_FLOAT_MAT2 0x8B5A + GL_FLOAT_MAT3 0x8B5B + GL_FLOAT_MAT4 0x8B5C + GL_SAMPLER_1D 0x8B5D + GL_SAMPLER_2D 0x8B5E + GL_SAMPLER_3D 0x8B5F + GL_SAMPLER_CUBE 0x8B60 + GL_SAMPLER_1D_SHADOW 0x8B61 + GL_SAMPLER_2D_SHADOW 0x8B62 + GL_DELETE_STATUS 0x8B80 + GL_COMPILE_STATUS 0x8B81 + GL_LINK_STATUS 0x8B82 + GL_VALIDATE_STATUS 0x8B83 + GL_INFO_LOG_LENGTH 0x8B84 + GL_ATTACHED_SHADERS 0x8B85 + GL_ACTIVE_UNIFORMS 0x8B86 + GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 + GL_SHADER_SOURCE_LENGTH 0x8B88 + GL_ACTIVE_ATTRIBUTES 0x8B89 + GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A + GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B + GL_SHADING_LANGUAGE_VERSION 0x8B8C + GL_CURRENT_PROGRAM 0x8B8D + GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 + GL_LOWER_LEFT 0x8CA1 + GL_UPPER_LEFT 0x8CA2 + GL_STENCIL_BACK_REF 0x8CA3 + GL_STENCIL_BACK_VALUE_MASK 0x8CA4 + GL_STENCIL_BACK_WRITEMASK 0x8CA5 + void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha) + void glDrawBuffers (GLsizei n, const GLenum* bufs) + void glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) + void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask) + void glStencilMaskSeparate (GLenum face, GLuint mask) + void glAttachShader (GLuint program, GLuint shader) + void glBindAttribLocation (GLuint program, GLuint index, const GLchar* name) + void glCompileShader (GLuint shader) + GLuint glCreateProgram (void) + GLuint glCreateShader (GLenum type) + void glDeleteProgram (GLuint program) + void glDeleteShader (GLuint shader) + void glDetachShader (GLuint program, GLuint shader) + void glDisableVertexAttribArray (GLuint index) + void glEnableVertexAttribArray (GLuint index) + void glGetActiveAttrib (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name) + void glGetActiveUniform (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name) + void glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders) + GLint glGetAttribLocation (GLuint program, const GLchar* name) + void glGetProgramiv (GLuint program, GLenum pname, GLint* param) + void glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog) + void glGetShaderiv (GLuint shader, GLenum pname, GLint* param) + void glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog) + void glShaderSource (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length) + GLint glGetUniformLocation (GLuint program, const GLchar* name) + void glGetUniformfv (GLuint program, GLint location, GLfloat* params) + void glGetUniformiv (GLuint program, GLint location, GLint* params) + void glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble* params) + void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params) + void glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params) + void glGetVertexAttribPointerv (GLuint index, GLenum pname, void** pointer) + GLboolean glIsProgram (GLuint program) + GLboolean glIsShader (GLuint shader) + void glLinkProgram (GLuint program) + void glGetShaderSource (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source) + void glUseProgram (GLuint program) + void glUniform1f (GLint location, GLfloat v0) + void glUniform1fv (GLint location, GLsizei count, const GLfloat* value) + void glUniform1i (GLint location, GLint v0) + void glUniform1iv (GLint location, GLsizei count, const GLint* value) + void glUniform2f (GLint location, GLfloat v0, GLfloat v1) + void glUniform2fv (GLint location, GLsizei count, const GLfloat* value) + void glUniform2i (GLint location, GLint v0, GLint v1) + void glUniform2iv (GLint location, GLsizei count, const GLint* value) + void glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2) + void glUniform3fv (GLint location, GLsizei count, const GLfloat* value) + void glUniform3i (GLint location, GLint v0, GLint v1, GLint v2) + void glUniform3iv (GLint location, GLsizei count, const GLint* value) + void glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) + void glUniform4fv (GLint location, GLsizei count, const GLfloat* value) + void glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3) + void glUniform4iv (GLint location, GLsizei count, const GLint* value) + void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) + void glValidateProgram (GLuint program) + void glVertexAttrib1d (GLuint index, GLdouble x) + void glVertexAttrib1dv (GLuint index, const GLdouble* v) + void glVertexAttrib1f (GLuint index, GLfloat x) + void glVertexAttrib1fv (GLuint index, const GLfloat* v) + void glVertexAttrib1s (GLuint index, GLshort x) + void glVertexAttrib1sv (GLuint index, const GLshort* v) + void glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y) + void glVertexAttrib2dv (GLuint index, const GLdouble* v) + void glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y) + void glVertexAttrib2fv (GLuint index, const GLfloat* v) + void glVertexAttrib2s (GLuint index, GLshort x, GLshort y) + void glVertexAttrib2sv (GLuint index, const GLshort* v) + void glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z) + void glVertexAttrib3dv (GLuint index, const GLdouble* v) + void glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z) + void glVertexAttrib3fv (GLuint index, const GLfloat* v) + void glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z) + void glVertexAttrib3sv (GLuint index, const GLshort* v) + void glVertexAttrib4Nbv (GLuint index, const GLbyte* v) + void glVertexAttrib4Niv (GLuint index, const GLint* v) + void glVertexAttrib4Nsv (GLuint index, const GLshort* v) + void glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) + void glVertexAttrib4Nubv (GLuint index, const GLubyte* v) + void glVertexAttrib4Nuiv (GLuint index, const GLuint* v) + void glVertexAttrib4Nusv (GLuint index, const GLushort* v) + void glVertexAttrib4bv (GLuint index, const GLbyte* v) + void glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) + void glVertexAttrib4dv (GLuint index, const GLdouble* v) + void glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) + void glVertexAttrib4fv (GLuint index, const GLfloat* v) + void glVertexAttrib4iv (GLuint index, const GLint* v) + void glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) + void glVertexAttrib4sv (GLuint index, const GLshort* v) + void glVertexAttrib4ubv (GLuint index, const GLubyte* v) + void glVertexAttrib4uiv (GLuint index, const GLuint* v) + void glVertexAttrib4usv (GLuint index, const GLushort* v) + void glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_2_1 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_2_1 new file mode 100644 index 0000000..88ecce8 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_2_1 @@ -0,0 +1,33 @@ +GL_VERSION_2_1 +http://www.opengl.org/documentation/specs/version2.1/glspec21.pdf + + + GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F + GL_PIXEL_PACK_BUFFER 0x88EB + GL_PIXEL_UNPACK_BUFFER 0x88EC + GL_PIXEL_PACK_BUFFER_BINDING 0x88ED + GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF + GL_FLOAT_MAT2x3 0x8B65 + GL_FLOAT_MAT2x4 0x8B66 + GL_FLOAT_MAT3x2 0x8B67 + GL_FLOAT_MAT3x4 0x8B68 + GL_FLOAT_MAT4x2 0x8B69 + GL_FLOAT_MAT4x3 0x8B6A + GL_SRGB 0x8C40 + GL_SRGB8 0x8C41 + GL_SRGB_ALPHA 0x8C42 + GL_SRGB8_ALPHA8 0x8C43 + GL_SLUMINANCE_ALPHA 0x8C44 + GL_SLUMINANCE8_ALPHA8 0x8C45 + GL_SLUMINANCE 0x8C46 + GL_SLUMINANCE8 0x8C47 + GL_COMPRESSED_SRGB 0x8C48 + GL_COMPRESSED_SRGB_ALPHA 0x8C49 + GL_COMPRESSED_SLUMINANCE 0x8C4A + GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B + void glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) + void glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) + void glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) + void glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) + void glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) + void glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_0 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_0 new file mode 100644 index 0000000..4be5db0 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_0 @@ -0,0 +1,164 @@ +GL_VERSION_3_0 +https://www.opengl.org/registry/doc/glspec30.20080923.pdf + +GL_ARB_framebuffer_object GL_ARB_map_buffer_range GL_ARB_uniform_buffer_object GL_ARB_vertex_array_object + GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB + GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 + GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 + GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 + GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 + GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 + GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 + GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES + GL_MAJOR_VERSION 0x821B + GL_MINOR_VERSION 0x821C + GL_NUM_EXTENSIONS 0x821D + GL_CONTEXT_FLAGS 0x821E + GL_DEPTH_BUFFER 0x8223 + GL_STENCIL_BUFFER 0x8224 + GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 + GL_RGBA32F 0x8814 + GL_RGB32F 0x8815 + GL_RGBA16F 0x881A + GL_RGB16F 0x881B + GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD + GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF + GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 + GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 + GL_CLAMP_VERTEX_COLOR 0x891A + GL_CLAMP_FRAGMENT_COLOR 0x891B + GL_CLAMP_READ_COLOR 0x891C + GL_FIXED_ONLY 0x891D + GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS + GL_TEXTURE_RED_TYPE 0x8C10 + GL_TEXTURE_GREEN_TYPE 0x8C11 + GL_TEXTURE_BLUE_TYPE 0x8C12 + GL_TEXTURE_ALPHA_TYPE 0x8C13 + GL_TEXTURE_LUMINANCE_TYPE 0x8C14 + GL_TEXTURE_INTENSITY_TYPE 0x8C15 + GL_TEXTURE_DEPTH_TYPE 0x8C16 + GL_TEXTURE_1D_ARRAY 0x8C18 + GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 + GL_TEXTURE_2D_ARRAY 0x8C1A + GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B + GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C + GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D + GL_R11F_G11F_B10F 0x8C3A + GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B + GL_RGB9_E5 0x8C3D + GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E + GL_TEXTURE_SHARED_SIZE 0x8C3F + GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 + GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 + GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 + GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 + GL_PRIMITIVES_GENERATED 0x8C87 + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 + GL_RASTERIZER_DISCARD 0x8C89 + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B + GL_INTERLEAVED_ATTRIBS 0x8C8C + GL_SEPARATE_ATTRIBS 0x8C8D + GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F + GL_RGBA32UI 0x8D70 + GL_RGB32UI 0x8D71 + GL_RGBA16UI 0x8D76 + GL_RGB16UI 0x8D77 + GL_RGBA8UI 0x8D7C + GL_RGB8UI 0x8D7D + GL_RGBA32I 0x8D82 + GL_RGB32I 0x8D83 + GL_RGBA16I 0x8D88 + GL_RGB16I 0x8D89 + GL_RGBA8I 0x8D8E + GL_RGB8I 0x8D8F + GL_RED_INTEGER 0x8D94 + GL_GREEN_INTEGER 0x8D95 + GL_BLUE_INTEGER 0x8D96 + GL_ALPHA_INTEGER 0x8D97 + GL_RGB_INTEGER 0x8D98 + GL_RGBA_INTEGER 0x8D99 + GL_BGR_INTEGER 0x8D9A + GL_BGRA_INTEGER 0x8D9B + GL_SAMPLER_1D_ARRAY 0x8DC0 + GL_SAMPLER_2D_ARRAY 0x8DC1 + GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 + GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 + GL_SAMPLER_CUBE_SHADOW 0x8DC5 + GL_UNSIGNED_INT_VEC2 0x8DC6 + GL_UNSIGNED_INT_VEC3 0x8DC7 + GL_UNSIGNED_INT_VEC4 0x8DC8 + GL_INT_SAMPLER_1D 0x8DC9 + GL_INT_SAMPLER_2D 0x8DCA + GL_INT_SAMPLER_3D 0x8DCB + GL_INT_SAMPLER_CUBE 0x8DCC + GL_INT_SAMPLER_1D_ARRAY 0x8DCE + GL_INT_SAMPLER_2D_ARRAY 0x8DCF + GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 + GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 + GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 + GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 + GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 + GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 + GL_QUERY_WAIT 0x8E13 + GL_QUERY_NO_WAIT 0x8E14 + GL_QUERY_BY_REGION_WAIT 0x8E15 + GL_QUERY_BY_REGION_NO_WAIT 0x8E16 + void glColorMaski (GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) + void glGetBooleani_v (GLenum pname, GLuint index, GLboolean* data) + void glEnablei (GLenum cap, GLuint index) + void glDisablei (GLenum cap, GLuint index) + GLboolean glIsEnabledi (GLenum cap, GLuint index) + void glBeginTransformFeedback (GLenum primitiveMode) + void glEndTransformFeedback (void) + void glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode) + void glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) + void glClampColor (GLenum target, GLenum clamp) + void glBeginConditionalRender (GLuint id, GLenum mode) + void glEndConditionalRender (void) + void glVertexAttribI1i (GLuint index, GLint v0) + void glVertexAttribI2i (GLuint index, GLint v0, GLint v1) + void glVertexAttribI3i (GLuint index, GLint v0, GLint v1, GLint v2) + void glVertexAttribI4i (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3) + void glVertexAttribI1ui (GLuint index, GLuint v0) + void glVertexAttribI2ui (GLuint index, GLuint v0, GLuint v1) + void glVertexAttribI3ui (GLuint index, GLuint v0, GLuint v1, GLuint v2) + void glVertexAttribI4ui (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3) + void glVertexAttribI1iv (GLuint index, const GLint* v0) + void glVertexAttribI2iv (GLuint index, const GLint* v0) + void glVertexAttribI3iv (GLuint index, const GLint* v0) + void glVertexAttribI4iv (GLuint index, const GLint* v0) + void glVertexAttribI1uiv (GLuint index, const GLuint* v0) + void glVertexAttribI2uiv (GLuint index, const GLuint* v0) + void glVertexAttribI3uiv (GLuint index, const GLuint* v0) + void glVertexAttribI4uiv (GLuint index, const GLuint* v0) + void glVertexAttribI4bv (GLuint index, const GLbyte* v0) + void glVertexAttribI4sv (GLuint index, const GLshort* v0) + void glVertexAttribI4ubv (GLuint index, const GLubyte* v0) + void glVertexAttribI4usv (GLuint index, const GLushort* v0) + void glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void*pointer) + void glGetVertexAttribIiv (GLuint index, GLenum pname, GLint* params) + void glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint* params) + void glGetUniformuiv (GLuint program, GLint location, GLuint* params) + void glBindFragDataLocation (GLuint program, GLuint colorNumber, const GLchar* name) + GLint glGetFragDataLocation (GLuint program, const GLchar* name) + void glUniform1ui (GLint location, GLuint v0) + void glUniform2ui (GLint location, GLuint v0, GLuint v1) + void glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2) + void glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) + void glUniform1uiv (GLint location, GLsizei count, const GLuint* value) + void glUniform2uiv (GLint location, GLsizei count, const GLuint* value) + void glUniform3uiv (GLint location, GLsizei count, const GLuint* value) + void glUniform4uiv (GLint location, GLsizei count, const GLuint* value) + void glTexParameterIiv (GLenum target, GLenum pname, const GLint* params) + void glTexParameterIuiv (GLenum target, GLenum pname, const GLuint* params) + void glGetTexParameterIiv (GLenum target, GLenum pname, GLint* params) + void glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint* params) + void glClearBufferiv (GLenum buffer, GLint drawBuffer, const GLint* value) + void glClearBufferuiv (GLenum buffer, GLint drawBuffer, const GLuint* value) + void glClearBufferfv (GLenum buffer, GLint drawBuffer, const GLfloat* value) + void glClearBufferfi (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil) + const GLubyte* glGetStringi (GLenum name, GLuint index) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_1 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_1 new file mode 100644 index 0000000..c546704 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_1 @@ -0,0 +1,42 @@ +GL_VERSION_3_1 +https://www.opengl.org/registry/doc/glspec31.20090528.pdf + +GL_ARB_copy_buffer + GL_SAMPLER_2D_RECT 0x8B63 + GL_SAMPLER_2D_RECT_SHADOW 0x8B64 + GL_SAMPLER_BUFFER 0x8DC2 + GL_INT_SAMPLER_2D_RECT 0x8DCD + GL_INT_SAMPLER_BUFFER 0x8DD0 + GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 + GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 + GL_TEXTURE_BUFFER 0x8C2A + GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B + GL_TEXTURE_BINDING_BUFFER 0x8C2C + GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D + GL_TEXTURE_BUFFER_FORMAT 0x8C2E + GL_TEXTURE_RECTANGLE 0x84F5 + GL_TEXTURE_BINDING_RECTANGLE 0x84F6 + GL_PROXY_TEXTURE_RECTANGLE 0x84F7 + GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 + GL_RED_SNORM 0x8F90 + GL_RG_SNORM 0x8F91 + GL_RGB_SNORM 0x8F92 + GL_RGBA_SNORM 0x8F93 + GL_R8_SNORM 0x8F94 + GL_RG8_SNORM 0x8F95 + GL_RGB8_SNORM 0x8F96 + GL_RGBA8_SNORM 0x8F97 + GL_R16_SNORM 0x8F98 + GL_RG16_SNORM 0x8F99 + GL_RGB16_SNORM 0x8F9A + GL_RGBA16_SNORM 0x8F9B + GL_SIGNED_NORMALIZED 0x8F9C + GL_PRIMITIVE_RESTART 0x8F9D + GL_PRIMITIVE_RESTART_INDEX 0x8F9E + GL_BUFFER_ACCESS_FLAGS 0x911F + GL_BUFFER_MAP_LENGTH 0x9120 + GL_BUFFER_MAP_OFFSET 0x9121 + void glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei primcount) + void glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount) + void glTexBuffer (GLenum target, GLenum internalFormat, GLuint buffer) + void glPrimitiveRestartIndex (GLuint buffer) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_2 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_2 new file mode 100644 index 0000000..a987541 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_2 @@ -0,0 +1,29 @@ +GL_VERSION_3_2 +https://www.opengl.org/registry/doc/glspec32.compatibility.20091207.pdf + +GL_ARB_draw_elements_base_vertex GL_ARB_provoking_vertex GL_ARB_sync GL_ARB_texture_multisample + GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 + GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 + GL_LINES_ADJACENCY 0x000A + GL_LINE_STRIP_ADJACENCY 0x000B + GL_TRIANGLES_ADJACENCY 0x000C + GL_TRIANGLE_STRIP_ADJACENCY 0x000D + GL_PROGRAM_POINT_SIZE 0x8642 + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 + GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 + GL_GEOMETRY_SHADER 0x8DD9 + GL_GEOMETRY_VERTICES_OUT 0x8916 + GL_GEOMETRY_INPUT_TYPE 0x8917 + GL_GEOMETRY_OUTPUT_TYPE 0x8918 + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF + GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 + GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 + GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 + GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 + GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 + GL_CONTEXT_PROFILE_MASK 0x9126 + void glGetInteger64i_v (GLenum pname, GLuint index, GLint64 * data) + void glGetBufferParameteri64v (GLenum target, GLenum value, GLint64 * data) + void glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_3 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_3 new file mode 100644 index 0000000..a80dbcc --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_3_3 @@ -0,0 +1,7 @@ +GL_VERSION_3_3 +https://www.opengl.org/registry/doc/glspec33.compatibility.20100311.pdf + + + GL_RGB10_A2UI 0x906F + GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE + void glVertexAttribDivisor (GLuint index, GLuint divisor) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_0 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_0 new file mode 100644 index 0000000..3715b40 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_0 @@ -0,0 +1,21 @@ +GL_VERSION_4_0 +https://www.opengl.org/registry/doc/glspec40.compatibility.20100311.pdf + + + GL_SAMPLE_SHADING 0x8C36 + GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 + GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E + GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F + GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F + GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 + GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A + GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B + GL_SAMPLER_CUBE_MAP_ARRAY 0x900C + GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D + GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E + GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F + void glMinSampleShading (GLclampf value) + void glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha) + void glBlendEquationi (GLuint buf, GLenum mode) + void glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) + void glBlendFunci (GLuint buf, GLenum src, GLenum dst) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_1 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_1 new file mode 100644 index 0000000..6153c27 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_1 @@ -0,0 +1,3 @@ +GL_VERSION_4_1 +https://www.opengl.org/registry/doc/glspec41.compatibility.20100725.pdf + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_2 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_2 new file mode 100644 index 0000000..ff12b4c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_2 @@ -0,0 +1,13 @@ +GL_VERSION_4_2 +https://www.opengl.org/registry/doc/glspec42.compatibility.20120427.pdf + + + GL_COPY_READ_BUFFER_BINDING 0x8F36 + GL_COPY_WRITE_BUFFER_BINDING 0x8F37 + GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 + GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 + GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C + GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D + GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E + GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_3 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_3 new file mode 100644 index 0000000..32fc35b --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_3 @@ -0,0 +1,6 @@ +GL_VERSION_4_3 +https://www.opengl.org/registry/doc/glspec43.compatibility.20130214.pdf + + + GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E + GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_4 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_4 new file mode 100644 index 0000000..cf6416e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_4 @@ -0,0 +1,8 @@ +GL_VERSION_4_4 +https://www.opengl.org/registry/doc/glspec44.compatibility.pdf + + + GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 + GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 + GL_TEXTURE_BUFFER_BINDING 0x8C2A + diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_5 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_5 new file mode 100644 index 0000000..1ecda61 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_5 @@ -0,0 +1,9 @@ +GL_VERSION_4_5 +https://www.opengl.org/registry/doc/glspec45.compatibility.pdf + + + GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 + GLenum glGetGraphicsResetStatus (void) + void glGetnTexImage (GLenum tex, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels) + void glGetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, GLvoid *pixels) + void glGetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble *params) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_6 b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_6 new file mode 100644 index 0000000..2efe918 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_VERSION_4_6 @@ -0,0 +1,29 @@ +GL_VERSION_4_6 +https://www.opengl.org/registry/doc/glspec46.compatibility.pdf + + + GL_PARAMETER_BUFFER 0x80EE + GL_PARAMETER_BUFFER_BINDING 0x80EF + GL_VERTICES_SUBMITTED 0x82EE + GL_PRIMITIVES_SUBMITTED 0x82EF + GL_VERTEX_SHADER_INVOCATIONS 0x82F0 + GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 + GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 + GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 + GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 + GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 + GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 + GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 + GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC + GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED + GL_POLYGON_OFFSET_CLAMP 0x8E1B + GL_TEXTURE_MAX_ANISOTROPY 0x84FE + GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF + GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 + GL_SPIR_V_BINARY 0x9552 + GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 + GL_SPIR_V_EXTENSIONS 0x9553 + GL_NUM_SPIR_V_EXTENSIONS 0x9554 + void glMultiDrawArraysIndirectCount (GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) + void glMultiDrawElementsIndirectCount (GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) + void glSpecializeShader (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/GL_WIN_swap_hint b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_WIN_swap_hint new file mode 100644 index 0000000..9bb490b --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/GL_WIN_swap_hint @@ -0,0 +1,5 @@ +GL_WIN_swap_hint +http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc01_16zy.asp +GL_WIN_swap_hint + + void glAddSwapHintRectWIN (GLint x, GLint y, GLsizei width, GLsizei height) diff --git a/vendor/glew-cmake-2.2.0/auto/core/gl/WGL_NV_gpu_affinity b/vendor/glew-cmake-2.2.0/auto/core/gl/WGL_NV_gpu_affinity new file mode 100644 index 0000000..61ed3f1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/core/gl/WGL_NV_gpu_affinity @@ -0,0 +1,13 @@ +WGL_NV_gpu_affinity +http://developer.download.nvidia.com/opengl/specs/WGL_nv_gpu_affinity.txt +WGL_NV_gpu_affinity + + WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 + WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 + BOOL wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu) + BOOL wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice) + HDC wglCreateAffinityDCNV (const HGPUNV *phGpuList) + BOOL wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu) + BOOL wglDeleteDCNV (HDC hdc) + DECLARE_HANDLE(HGPUNV); + typedef struct _GPU_DEVICE { DWORD cb; CHAR DeviceName[32]; CHAR DeviceString[128]; DWORD Flags; RECT rcVirtualScreen; } GPU_DEVICE, *PGPU_DEVICE; diff --git a/vendor/glew-cmake-2.2.0/auto/custom.txt b/vendor/glew-cmake-2.2.0/auto/custom.txt new file mode 100644 index 0000000..b797b95 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/custom.txt @@ -0,0 +1,7 @@ +WGL_ARB_extensions_string +WGL_EXT_extensions_string +WGL_ARB_pixel_format +WGL_ARB_pbuffer +WGL_NV_float_buffer +WGL_ATI_pixel_format_float +WGL_ARB_multisample diff --git a/vendor/glew-cmake-2.2.0/auto/doc/advanced.html b/vendor/glew-cmake-2.2.0/auto/doc/advanced.html new file mode 100644 index 0000000..3e0ad79 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/doc/advanced.html @@ -0,0 +1,130 @@ +

Automatic Code Generation

+ +

+Starting from release 1.1.0, the source code and parts of the +documentation are automatically generated from the extension +specifications in a two-step process. In the first step, +specification files from the OpenGL registry are downloaded and +parsed. Skeleton descriptors are created for each extension. These +descriptors contain all necessary information for creating the source +code and documentation in a simple and compact format, including the +name of the extension, url link to the specification, tokens, function +declarations, typedefs and struct definitions. In the second step, +the header files as well as the library and glewinfo source are +generated from the descriptor files. The code generation scripts are +located in the auto subdirectory. +

+ +

+The code generation scripts require GNU make, wget, and perl. On +Windows, the simplest way to get access to these tools is to install +Cygwin, but make sure that the +root directory is mounted in binary mode. The makefile in the +auto directory provides the following build targets: +

+ + + + + + + + + + + + +
makeCreate the source files from the descriptors.
If the +descriptors do not exist, create them from the spec files.
If the spec +files do not exist, download them from the OpenGL repository.
make cleanDelete the source files.
make clobberDelete the source files and the descriptors.
make destroyDelete the source files, the descriptors, and the spec files.
make customCreate the source files for the extensions +listed in auto/custom.txt.
See "Custom Code +Generation" below for more details.
+ +

Adding a New Extension

+ +

+To add a new extension, create a descriptor file for the extension in +auto/core and rerun the code generation scripts by typing +make clean; make in the auto directory. +

+ +

+The format of the descriptor file is given below. Items in +brackets are optional. +

+ +

+<Extension Name>
+[<URL of Specification File>]
+    [<Token Name> <Token Value>]
+    [<Token Name> <Token Value>]
+    ...
+    [<Typedef>]
+    [<Typedef>]
+    ...
+    [<Function Signature>]
+    [<Function Signature>]
+    ...
+ +

+ + + +

+Take a look at one of the files in auto/core for an +example. Note that typedefs and function signatures should not be +terminated with a semicolon. +

+ +

Custom Code Generation

+

+Starting from GLEW 1.3.0, it is possible to control which extensions +to include in the library by specifying a list in +auto/custom.txt. This is useful when you do not need all the +extensions and would like to reduce the size of the source files. +Type make clean; make custom in the auto directory +to rerun the scripts with the custom list of extensions. +

+ +

+For example, the following is the list of extensions needed to get GLEW and the +utilities to compile. +

+ +

+WGL_ARB_extensions_string
+WGL_ARB_multisample
+WGL_ARB_pixel_format
+WGL_ARB_pbuffer
+WGL_EXT_extensions_string
+WGL_ATI_pixel_format_float
+WGL_NV_float_buffer
+

+ +

Separate Namespace

+ +

+To avoid name clashes when linking with libraries that include the +same symbols, extension entry points are declared in a separate +namespace (release 1.1.0 and up). This is achieved by aliasing OpenGL +function names to their GLEW equivalents. For instance, +glFancyFunction is simply an alias to +glewFancyFunction. The separate namespace does not effect +token and function pointer definitions. +

+ +

Known Issues

+ +

+GLEW requires GLX 1.2 for compatibility with GLUT. +

+ diff --git a/vendor/glew-cmake-2.2.0/auto/doc/basic.html b/vendor/glew-cmake-2.2.0/auto/doc/basic.html new file mode 100644 index 0000000..693575b --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/doc/basic.html @@ -0,0 +1,180 @@ +

Initializing GLEW

+

+First you need to create a valid OpenGL rendering context and call +glewInit() to initialize the extension entry points. If +glewInit() returns GLEW_OK, the initialization +succeeded and you can use the available extensions as well as core +OpenGL functionality. For example: +

+ +

+#include <GL/glew.h>
+#include <GL/glut.h>
+...
+glutInit(&argc, argv);
+glutCreateWindow("GLEW Test");
+GLenum err = glewInit();
+if (GLEW_OK != err)
+{
+  /* Problem: glewInit failed, something is seriously wrong. */
+  fprintf(stderr, "Error: %s\n", glewGetErrorString(err));
+  ...
+}
+fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));
+

+ +

Checking for Extensions

+ +

+Starting from GLEW 1.1.0, you can find out if a particular extension +is available on your platform by querying globally defined variables +of the form GLEW_{extension_name}: +

+ +

+if (GLEW_ARB_vertex_program)
+{
+  /* It is safe to use the ARB_vertex_program extension here. */
+  glGenProgramsARB(...);
+}
+

+ +

+In GLEW 1.0.x, a global structure was used for this task. To ensure +binary compatibility between releases, the struct was replaced with a +set of variables. +

+ +

+You can also check for core OpenGL functionality. For example, to +see if OpenGL 1.3 is supported, do the following: +

+ +

+if (GLEW_VERSION_1_3)
+{
+  /* Yay! OpenGL 1.3 is supported! */
+}
+

+ +

+In general, you can check if GLEW_{extension_name} or +GLEW_VERSION_{version} is true or false. +

+ +

+It is also possible to perform extension checks from string +input. Starting from the 1.3.0 release, use glewIsSupported +to check if the required core or extension functionality is +available: +

+ +

+if (glewIsSupported("GL_VERSION_1_4  GL_ARB_point_sprite"))
+{
+  /* Great, we have OpenGL 1.4 + point sprites. */
+}
+

+ +

+For extensions only, glewGetExtension provides a slower alternative +(GLEW 1.0.x-1.2.x). Note that in the 1.3.0 release +glewGetExtension was replaced with +glewIsSupported. +

+ +

+if (glewGetExtension("GL_ARB_fragment_program"))
+{
+  /* Looks like ARB_fragment_program is supported. */
+}
+

+ +

Experimental Drivers

+ +

+GLEW obtains information on the supported extensions from the graphics +driver. Experimental or pre-release drivers, however, might not +report every available extension through the standard mechanism, in +which case GLEW will report it unsupported. To circumvent this +situation, the glewExperimental global switch can be turned +on by setting it to GL_TRUE before calling +glewInit(), which ensures that all extensions with valid +entry points will be exposed. +

+ +

Platform Specific Extensions

+ +

+Platform specific extensions are separated into two header files: +wglew.h and glxew.h, which define the available +WGL and GLX extensions. To determine if a certain +extension is supported, query WGLEW_{extension name} or +GLXEW_{extension_name}. For example: +

+ +

+#include <GL/wglew.h>
+
+if (WGLEW_ARB_pbuffer)
+{
+  /* OK, we can use pbuffers. */
+}
+else
+{
+  /* Sorry, pbuffers will not work on this platform. */
+}
+

+ +

+Alternatively, use wglewIsSupported or +glxewIsSupported to check for extensions from a string: +

+ +

+if (wglewIsSupported("WGL_ARB_pbuffer"))
+{
+  /* OK, we can use pbuffers. */
+}
+

+ +

Utilities

+ +

+GLEW provides two command-line utilities: one for creating a list of +available extensions and visuals; and another for verifying extension +entry points. +

+ +

visualinfo: extensions and visuals

+ +

+visualinfo is an extended version of glxinfo. The +Windows version creates a file called visualinfo.txt, which +contains a list of available OpenGL, WGL, and GLU extensions as well +as a table of visuals aka. pixel formats. Pbuffer and MRT capable +visuals are also included. For additional usage information, type +visualinfo -h. +

+ +

glewinfo: extension verification utility

+ +

+glewinfo allows you to verify the entry points for the +extensions supported on your platform. The Windows version +reports the results to a text file called glewinfo.txt. The +Unix version prints the results to stdout. +

+ +

Windows usage:

+
glewinfo [-pf <id>]
+ +

where <id> is the pixel format id for which the +capabilities are displayed.

+ +

Unix usage:

+
glewinfo [-display <dpy>] [-visual <id>]
+ +

where <dpy> is the X11 display and <id> is +the visual id for which the capabilities are displayed.

+ diff --git a/vendor/glew-cmake-2.2.0/auto/doc/build.html b/vendor/glew-cmake-2.2.0/auto/doc/build.html new file mode 100644 index 0000000..467a7f3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/doc/build.html @@ -0,0 +1,49 @@ +

Building GLEW

+ +

Windows

+ +

A MS Visual Studio project is provided in the build/vc6 directory.

+

Pre-built shared and static libraries are also available for download.

+ +

Makefile

+ +

For platforms other than MS Windows, the provided Makefile is used.

+ +

Command-line variables

+ + + + + + +
SYSTEMautoTarget system to build: darwin, linux, solaris, etc.
For a full list of supported targets: ls config/Makefile.*
+config.guess is used to auto detect, as necessary.
GLEW_DEST/usrBase directory for installation.
+ +

Make targets

+ + + + + + + + + + + + +
allBuild everything.
glew.libBuild static and dynamic GLEW libraries.
glew.lib.mxBuild static and dynamic GLEWmx libraries.
glew.binBuild glewinfo and visualinfo utilities.
cleanDelete temporary and built files.
install.allInstall everything.
installInstall GLEW libraries.
install.mxInstall GLEWmx libraries.
install.binInstall glewinfo and visualinfo utilities.
uninstallDelete installed files.
+ +

Requirements

+ +
    +
  • GNU make
  • +
  • perl
  • +
  • wget
  • +
  • GNU sed
  • +
  • gcc compiler
  • +
  • git
  • +
+ +Ubuntu:
sudo apt-get install libXmu-dev libXi-dev libgl-dev dos2unix git wget
+Fedora:
sudo yum install libXmu-devel libXi-devel libGL-devel dos2unix git wget
diff --git a/vendor/glew-cmake-2.2.0/auto/doc/credits.html b/vendor/glew-cmake-2.2.0/auto/doc/credits.html new file mode 100644 index 0000000..6c36de0 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/doc/credits.html @@ -0,0 +1,2 @@ +

+Author, copyright and licensing information on github.

diff --git a/vendor/glew-cmake-2.2.0/auto/doc/index.html b/vendor/glew-cmake-2.2.0/auto/doc/index.html new file mode 100644 index 0000000..e569e75 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/doc/index.html @@ -0,0 +1,113 @@ +

+The OpenGL Extension Wrangler Library (GLEW) is a cross-platform +open-source C/C++ extension loading library. GLEW provides efficient +run-time mechanisms for determining which OpenGL extensions are +supported on the target platform. OpenGL core and extension +functionality is exposed in a single header file. GLEW has been +tested on a variety of operating systems, including Windows, Linux, +Mac OS X, FreeBSD, Irix, and Solaris. +

+ +

Downloads

+

+GLEW is distributed +as source and precompiled binaries.
+The latest release is +2.2.0[03-15-20]: +

+

+

+

+ + + +
+ + + + + + + + + + + + + + + +
Source +ZIP |  +TGZ
Binaries +Windows 32-bit and 64-bit +
+
+ +

+

+An up-to-date copy is also available using git: +

+
    +
  • github
    +git clone https://github.com/nigels-com/glew.git glew
     
  • +
+ +

Supported Extensions

+

+The latest release contains support for OpenGL 4.6, compatibility and forward-compatible contexts and the following extensions: +

+ + +

News

+
    +
  • [03-15-20] GLEW 2.2.0 new extensions and minor bug fixes
  • +
  • [07-31-17] GLEW 2.1.0 adds support for OpenGL 4.6, new extensions and minor bug fixes
  • +
  • [07-24-16] GLEW 2.0.0 adds support for forward-compatible contexts, adds new extensions, OSMesa and EGL support, MX discontinued and minor bug fixes
  • +
  • [08-10-15] GLEW 1.13.0 adds support for new extensions, fixes minor bugs
  • +
  • [26-01-15] GLEW 1.12.0 fixes minor bugs and adds new extensions
  • +
  • [08-11-14] GLEW 1.11.0 adds support for OpenGL 4.5, new extensions
  • +
  • [07-22-13] GLEW 1.10.0 adds support for OpenGL 4.4, new extensions
  • +
  • [08-06-12] GLEW 1.9.0 adds support for OpenGL 4.3, new extensions
  • +
  • [07-17-12] GLEW 1.8.0 fixes minor bugs and adds new extensions
  • +
  • [08-26-11] GLEW 1.7.0 adds support for OpenGL 4.2, new extensions, fixes bugs
  • +
  • [04-27-11] GLEW 1.6.0 fixes minor bugs and adds eight new extensions
  • +
  • [01-31-11] GLEW 1.5.8 fixes minor bugs and adds two new extensions
  • +
  • [11-03-10] GLEW 1.5.7 fixes minor bugs and adds one new extension
  • +
  • [09-07-10] GLEW 1.5.6 adds support for OpenGL 4.1, fixes bugs
  • +
  • [07-13-10] GLEW 1.5.5 fixes minor bugs and adds new extensions
  • +
  • [04-21-10] GLEW 1.5.4 adds support for OpenGL 3.3, OpenGL 4.0 and new extensions, fixes bugs
  • +
  • [02-28-10] GLEW 1.5.3 fixes minor bugs and adds three new extensions
  • +
  • [12-31-09] GLEW 1.5.2 adds support for OpenGL 3.1, OpenGL 3.2 and new extensions
  • +
  • [11-03-08] GLEW 1.5.1 adds support for OpenGL 3.0 and 31 new extensions
  • +
  • [12-27-07] GLEW 1.5.0 is released under less restrictive licenses
  • +
  • [04-27-07] GLEW 1.4.0 is released
  • +
  • [03-08-07] GLEW is included in the NVIDIA OpenGL SDK
  • +
  • [03-04-07] GLEW 1.3.6 is released
  • +
  • [02-28-07] Repository is migrated to SVN
  • +
  • [02-25-07] GLEW is included in the OpenGL SDK
  • +
  • [11-21-06] GLEW 1.3.5 adds OpenGL 2.1 and NVIDIA G80 extensions
  • +
  • [03-04-06] GLEW 1.3.4 adds support for five new extensions
  • +
  • [05-16-05] GLEW 1.3.3 is released
  • +
  • [03-16-05] GLEW 1.3.2 adds support for GL_APPLE_pixel_buffer
  • +
  • [02-11-05] gljava and sdljava provide a Java binding to OpenGL via GLEW
  • +
  • [02-02-05] GLEW 1.3.1 adds support for GL_EXT_framebuffer_object
  • +
  • [01-04-05] GLEW 1.3.0 adds core OpenGL 2.0 support plus many enhancements
  • +
  • [12-22-04] GLEWpy Python wrapper announced
  • +
  • [12-12-04] Mailing lists created on sourceforge
  • +
  • [12-06-04] GLEW 1.2.5 adds new extensions and support for FreeBSD
  • +
+ +

Links

+ + diff --git a/vendor/glew-cmake-2.2.0/auto/doc/install.html b/vendor/glew-cmake-2.2.0/auto/doc/install.html new file mode 100644 index 0000000..448aafd --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/doc/install.html @@ -0,0 +1,126 @@ +

Installation

+ +

+To use the shared library version of GLEW, you need to copy the +headers and libraries into their destination directories. On Windows +this typically boils down to copying: +

+ + + + + + + + + + +
bin/glew32.dll    to    %SystemRoot%/system32
lib/glew32.lib    to    {VC Root}/Lib
include/GL/glew.h    to    {VC Root}/Include/GL
include/GL/wglew.h    to    {VC Root}/Include/GL
+

+

+ +

+where {VC Root} is the Visual C++ root directory, typically +C:/Program Files/Microsoft Visual Studio/VC98 for Visual +Studio 6.0 or C:/Program Files/Microsoft Visual +Studio .NET 2003/Vc7/PlatformSDK for Visual Studio .NET. +

+ +

+On Unix, typing make install will attempt to install GLEW +into /usr/include/GL and /usr/lib. You can +customize the installation target via the GLEW_DEST +environment variable if you do not have write access to these +directories. +

+ +

Building Your Project with GLEW

+

+There are two ways to build your project with GLEW. +

+

Including the source files / project file

+

+The simpler but less flexible way is to include glew.h and +glew.c into your project. On Windows, you also need to +define the GLEW_STATIC preprocessor token when building a +static library or executable, and the GLEW_BUILD preprocessor +token when building a dll. You also need to replace +<GL/gl.h> and <GL/glu.h> with +<glew.h> in your code and set the appropriate include +flag (-I) to tell the compiler where to look for it. For +example: +

+

+#include <glew.h>
+#include <GL/glut.h>
+<gl, glu, and glut functionality is available here>
+

+

+Depending on where you put glew.h you may also need to change +the include directives in glew.c. Note that if you are using +GLEW together with GLUT, you have to include glew.h first. +In addition, glew.h includes glu.h, so you do not +need to include it separately. +

+

+On Windows, you also have the option of adding the supplied project +file glew_static.dsp to your workspace (solution) and compile +it together with your other projects. In this case you also need to +change the GLEW_BUILD preprocessor constant to +GLEW_STATIC when building a static library or executable, +otherwise you get build errors. +

+

+Note that GLEW does not use the C +runtime library, so it does not matter which version (single-threaded, +multi-threaded or multi-threaded DLL) it is linked with (without +debugging information). It is, however, always a good idea to compile all +your projects including GLEW with the same C runtime settings. +

+ +

Using GLEW as a shared library

+ +

+Alternatively, you can use the provided project files / makefile to +build a separate shared library you can link your projects with later. +In this case the best practice is to install glew.h, +glew32.lib, and glew32.dll / libGLEW.so to +where the OpenGL equivalents gl.h, opengl32.lib, and +opengl32.dll / libGL.so are located. Note that you +need administrative privileges to do this. If you do not have +administrator access and your system administrator will not do it for +you, you can install GLEW into your own lib and include subdirectories +and tell the compiler where to find it. Then you can just replace +<GL/gl.h> with <GL/glew.h> in your +program: +

+ +

+#include <GL/glew.h>
+#include <GL/glut.h>
+<gl, glu, and glut functionality is available here>
+

+ +

+or: +

+ +

+#include <GL/glew.h>
+<gl and glu functionality is available here>
+

+ +

+Remember to link your project with glew32.lib, +glu32.lib, and opengl32.lib on Windows and +libGLEW.so, libGLU.so, and libGL.so on +Unix (-lGLEW -lGLU -lGL). +

+ +

+It is important to keep in mind that glew.h includes neither +windows.h nor gl.h. Also, GLEW will warn you by +issuing a preprocessor error in case you have included gl.h, +glext.h, or glATI.h before glew.h. +

+ diff --git a/vendor/glew-cmake-2.2.0/auto/doc/log.html b/vendor/glew-cmake-2.2.0/auto/doc/log.html new file mode 100644 index 0000000..531b3b2 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/doc/log.html @@ -0,0 +1,1319 @@ +

Change Log

+ +
+
    +
  • 2.2.0 [03-15-20] + +
      +
    • Bug fixes: +
        +
      • GL_EXT_semaphore constants +
      • Some const pointer fixups in OpenGL API +
      • Correction for GLEW_VERSION_4_5 +
      • Windows build updates and fixes +
      +
    + +
      +
    • New extensions: +
        +
      • GL_AMD_framebuffer_multisample_advanced +
      • GL_AMD_gpu_shader_half_float_fetch +
      • GL_AMD_shader_image_load_store_lod +
      • GL_ARM_texture_unnormalized_coordinates +
      • GL_DMP_program_binary +
      • GL_DMP_shader_binary +
      • GL_EXT_EGL_image_external_wrap_modes +
      • GL_EXT_EGL_image_storage +
      • GL_EXT_EGL_sync +
      • GL_EXT_clip_control +
      • GL_EXT_depth_clamp +
      • GL_EXT_disjoint_timer_query +
      • GL_EXT_draw_transform_feedback +
      • GL_EXT_multiview_tessellation_geometry_shader +
      • GL_EXT_multiview_texture_multisample +
      • GL_EXT_multiview_timer_query +
      • GL_EXT_occlusion_query_boolean +
      • GL_EXT_primitive_bounding_box +
      • GL_EXT_protected_textures +
      • GL_EXT_robustness +
      • GL_EXT_shader_framebuffer_fetch_non_coherent +
      • GL_EXT_static_vertex_array +
      • GL_EXT_tessellation_point_size +
      • GL_EXT_tessellation_shader +
      • GL_EXT_texture_border_clamp +
      • GL_EXT_texture_buffer +
      • GL_EXT_texture_compression_s3tc_srgb +
      • GL_EXT_texture_format_sRGB_override +
      • GL_EXT_texture_mirror_clamp_to_edge +
      • GL_EXT_texture_query_lod +
      • GL_EXT_texture_shadow_lod +
      • GL_FJ_shader_binary_GCCSO +
      • GL_IMG_bindless_texture +
      • GL_IMG_framebuffer_downsample +
      • GL_IMG_multisampled_render_to_texture +
      • GL_IMG_program_binary +
      • GL_IMG_read_format +
      • GL_IMG_shader_binary +
      • GL_IMG_texture_compression_pvrtc +
      • GL_IMG_texture_compression_pvrtc2 +
      • GL_IMG_texture_env_enhanced_fixed_function +
      • GL_IMG_texture_filter_cubic +
      • GL_INTEL_blackhole_render +
      • GL_INTEL_shader_integer_functions2 +
      • GL_KHR_shader_subgroup +
      • GL_MESA_framebuffer_flip_y +
      • GL_MESA_program_binary_formats +
      • GL_MESA_tile_raster_order +
      • GL_NVX_gpu_multicast2 +
      • GL_NVX_progress_fence +
      • GL_NV_compute_shader_derivatives +
      • GL_NV_conservative_raster_pre_snap +
      • GL_NV_conservative_raster_underestimation +
      • GL_NV_depth_nonlinear +
      • GL_NV_fragment_shader_barycentric +
      • GL_NV_memory_attachment +
      • GL_NV_mesh_shader +
      • GL_NV_query_resource_tag +
      • GL_NV_read_buffer +
      • GL_NV_read_buffer_front +
      • GL_NV_representative_fragment_test +
      • GL_NV_scissor_exclusive +
      • GL_NV_shader_subgroup_partitioned +
      • GL_NV_shader_texture_footprint +
      • GL_NV_shading_rate_image +
      • GL_NV_vdpau_interop2 +
      • GL_OES_EGL_image +
      • GL_OES_EGL_image_external +
      • GL_OES_EGL_image_external_essl3 +
      • GL_OES_blend_equation_separate +
      • GL_OES_blend_func_separate +
      • GL_OES_blend_subtract +
      • GL_OES_compressed_ETC1_RGB8_texture +
      • GL_OES_compressed_paletted_texture +
      • GL_OES_copy_image +
      • GL_OES_depth24 +
      • GL_OES_depth32 +
      • GL_OES_depth_texture +
      • GL_OES_depth_texture_cube_map +
      • GL_OES_draw_buffers_indexed +
      • GL_OES_draw_texture +
      • GL_OES_element_index_uint +
      • GL_OES_extended_matrix_palette +
      • GL_OES_fbo_render_mipmap +
      • GL_OES_fragment_precision_high +
      • GL_OES_framebuffer_object +
      • GL_OES_geometry_point_size +
      • GL_OES_geometry_shader +
      • GL_OES_get_program_binary +
      • GL_OES_gpu_shader5 +
      • GL_OES_mapbuffer +
      • GL_OES_matrix_get +
      • GL_OES_matrix_palette +
      • GL_OES_packed_depth_stencil +
      • GL_OES_point_size_array +
      • GL_OES_point_sprite +
      • GL_OES_read_format +
      • GL_OES_required_internalformat +
      • GL_OES_rgb8_rgba8 +
      • GL_OES_sample_shading +
      • GL_OES_sample_variables +
      • GL_OES_shader_image_atomic +
      • GL_OES_shader_io_blocks +
      • GL_OES_shader_multisample_interpolation +
      • GL_OES_single_precision +
      • GL_OES_standard_derivatives +
      • GL_OES_stencil1 +
      • GL_OES_stencil4 +
      • GL_OES_stencil8 +
      • GL_OES_surfaceless_context +
      • GL_OES_tessellation_point_size +
      • GL_OES_tessellation_shader +
      • GL_OES_texture_3D +
      • GL_OES_texture_border_clamp +
      • GL_OES_texture_buffer +
      • GL_OES_texture_compression_astc +
      • GL_OES_texture_cube_map +
      • GL_OES_texture_cube_map_array +
      • GL_OES_texture_env_crossbar +
      • GL_OES_texture_mirrored_repeat +
      • GL_OES_texture_npot +
      • GL_OES_texture_stencil8 +
      • GL_OES_texture_storage_multisample_2d_array +
      • GL_OES_texture_view +
      • GL_OES_vertex_array_object +
      • GL_OES_vertex_half_float +
      • GL_OES_vertex_type_10_10_10_2 +
      • GL_QCOM_YUV_texture_gather +
      • GL_QCOM_shader_framebuffer_fetch_rate +
      • GL_QCOM_texture_foveated +
      • GL_QCOM_texture_foveated_subsampled_layout +
      • GL_VIV_shader_binary +
      • EGL_ANDROID_GLES_layers +
      • EGL_ANDROID_get_frame_timestamps +
      • EGL_ANDROID_get_native_client_buffer +
      • EGL_ARM_image_format +
      • EGL_EXT_bind_to_front +
      • EGL_EXT_client_sync +
      • EGL_EXT_compositor +
      • EGL_EXT_gl_colorspace_display_p3 +
      • EGL_EXT_gl_colorspace_display_p3_linear +
      • EGL_EXT_gl_colorspace_display_p3_passthrough +
      • EGL_EXT_gl_colorspace_scrgb +
      • EGL_EXT_image_gl_colorspace +
      • EGL_EXT_image_implicit_sync_control +
      • EGL_EXT_surface_CTA861_3_metadata +
      • EGL_EXT_sync_reuse +
      • EGL_KHR_display_reference +
      • EGL_MESA_query_driver +
      • EGL_NV_context_priority_realtime +
      • EGL_NV_quadruple_buffer +
      • EGL_NV_stream_dma +
      • EGL_NV_stream_flush +
      • EGL_NV_stream_origin +
      • EGL_NV_triple_buffer +
      • EGL_WL_bind_wayland_display +
      • EGL_WL_create_wayland_buffer_from_image +
      • GLX_EXT_context_priority +
      • GLX_EXT_no_config_context +
      • GLX_NV_multigpu_context +
      • WGL_NV_multigpu_context +
      +
    + +
+ +
+
    +
  • 2.1.0 [07-31-17] +
      +
    • Enhancements: +
        +
      • OpenGL 4.6 support added +
      • Improved Mac OSX build support +
      • Improved cmake build support +
      +
    + +
      +
    • Bug fixes: +
        +
      • Resolved crash when glXGetCurrentDisplay() is NULL +
      • CMake: only install PDB files with MSVC +
      • wglGetProcAddress crash with NOGDI defined +
      • Mac: using -Os rather than -O2 +
      +
    + +
      +
    • New extensions: +
        +
      • GL_AMD_gpu_shader_half_float +
      • GL_AMD_shader_ballot +
      • GL_ARB_gl_spirv +
      • GL_EGL_KHR_context_flush_control +
      • GL_INTEL_conservative_rasterization +
      • GL_MESA_shader_integer_functions +
      • GL_NVX_blend_equation_advanced_multi_draw_buffers +
      • GL_NV_gpu_multicast +
      • EGL_ARM_implicit_external_sync +
      • EGL_EXT_gl_colorspace_bt2020_linear +
      • EGL_EXT_gl_colorspace_bt2020_pq +
      • EGL_EXT_gl_colorspace_scrgb_linear +
      • EGL_EXT_image_dma_buf_import_modifiers +
      • EGL_EXT_pixel_format_float +
      • EGL_EXT_surface_SMPTE2086_metadata +
      • EGL_KHR_context_flush_control +
      • EGL_KHR_no_config_context +
      • EGL_KHR_stream_attrib +
      • EGL_MESA_platform_surfaceless +
      • EGL_NV_stream_cross_display +
      • EGL_NV_stream_cross_object +
      • EGL_NV_stream_cross_partition +
      • EGL_NV_stream_cross_process +
      • EGL_NV_stream_cross_system +
      • EGL_NV_stream_fifo_next +
      • EGL_NV_stream_fifo_synchronous +
      • EGL_NV_stream_frame_limits +
      • EGL_NV_stream_remote +
      • EGL_NV_stream_reset +
      • EGL_NV_stream_socket +
      • EGL_NV_stream_socket_inet +
      • EGL_NV_stream_socket_unix +
      • WGL_EXT_colorspace +
      +
    + +
+ +
+
    +
  • 2.0.0 [07-24-16] +
      +
    • Enhancements: +
        +
      • Forward context support added +
      • OSMesa support added +
      • EGL support added +
      • MX support discontinued +
      • Improved cmake build support +
      +
    +
      +
    • New extensions: +
        +
      • GL_AMD_shader_explicit_vertex_parameter +
      • GL_ARB_gl_spirv +
      • GL_EGL_NV_robustness_video_memory_purge +
      • GL_EXT_window_rectangles +
      • GL_INTEL_conservative_rasterization +
      • GL_KHR_texture_compression_astc_sliced_3d +
      • GL_MESA_shader_integer_functions +
      • GL_NVX_blend_equation_advanced_multi_draw_buffers +
      • GL_NVX_linked_gpu_multicast +
      • GL_NV_clip_space_w_scaling +
      • GL_NV_command_list +
      • GL_NV_conservative_raster_pre_snap_triangles +
      • GL_NV_draw_vulkan_image +
      • GL_NV_gpu_multicast +
      • GL_NV_robustness_video_memory_purge +
      • GL_NV_shader_atomic_float64 +
      • GL_NV_stereo_view_rendering +
      • GL_NV_viewport_swizzle +
      • GLX_EXT_libglvnd +
      • GLX_NV_robustness_video_memory_purge +
      +
    +
+ +
+
    +
  • 1.13.0 [08-10-15] +
      +
    • Enhancements: +
        +
      • glxewInit, wglewInit +
      • glewinfo adds support for -version, -profile core|compatibility and -flag debug|forward parameters +
      • Improved cmake build support +
      +
    +
      +
    • New extensions: +
        +
      • GL_ARB_ES3_2_compatibility +
      • GL_ARB_fragment_shader_interlock +
      • GL_ARB_gpu_shader_int64 +
      • GL_ARB_parallel_shader_compile +
      • GL_ARB_post_depth_coverage +
      • GL_ARB_sample_locations +
      • GL_ARB_shader_atomic_counter_ops +
      • GL_ARB_shader_ballot +
      • GL_ARB_shader_clock +
      • GL_ARB_shader_viewport_layer_array +
      • GL_ARB_sparse_texture2 +
      • GL_ARB_sparse_texture_clamp +
      • GL_ARB_texture_filter_minmax +
      • GL_INTEL_framebuffer_CMAA +
      • GL_KHR_no_error +
      • GL_NV_conservative_raster_dilate +
      • GL_OVR_multiview +
      • GL_OVR_multiview2 +
      +
    • Bug fixes +
    +
+ +
+
    +
  • 1.12.0 [01-26-15] +
      +
    • New extensions: +
        +
      • GL_EXT_polygon_offset_clamp +
      • GL_EXT_post_depth_coverage +
      • GL_EXT_raster_multisample +
      • GL_EXT_sparse_texture2 +
      • GL_EXT_texture_filter_minmax +
      • GL_NV_conservative_raster +
      • GL_NV_fill_rectangle +
      • GL_NV_fragment_coverage_to_color +
      • GL_NV_fragment_shader_interlock +
      • GL_NV_framebuffer_mixed_samples +
      • GL_NV_geometry_shader_passthrough +
      • GL_NV_internalformat_sample_query +
      • GL_NV_sample_locations +
      • GL_NV_sample_mask_override_coverage +
      • GL_NV_shader_atomic_fp16_vector +
      • GL_NV_uniform_buffer_unified_memory +
      • GL_NV_viewport_array2 +
      +
    • Bug fixes +
    +
+ +
+
    +
  • 1.11.0 [08-11-14] +
      +
    • New features: +
        +
      • Support for OpenGL 4.5 +
      +
    • New extensions: +
        +
      • GL_AMD_gcn_shader +
      • GL_AMD_gpu_shader_int64 +
      • GL_AMD_occlusion_query_event +
      • GL_AMD_shader_atomic_counter_ops +
      • GL_AMD_shader_stencil_value_export +
      • GL_AMD_transform_feedback4 +
      • GL_ARB_ES3_1_compatibility +
      • GL_ARB_clip_control +
      • GL_ARB_conditional_render_inverted +
      • GL_ARB_cull_distance +
      • GL_ARB_derivative_control +
      • GL_ARB_direct_state_access +
      • GL_ARB_get_texture_sub_image +
      • GL_ARB_pipeline_statistics_query +
      • GL_ARB_shader_texture_image_samples +
      • GL_ARB_sparse_buffer +
      • GL_ARB_texture_barrier +
      • GL_ARB_transform_feedback_overflow_query +
      • GL_EXT_debug_label +
      • GL_EXT_shader_image_load_formatted +
      • GL_EXT_shader_integer_mix +
      • GL_INTEL_fragment_shader_ordering +
      • GL_INTEL_performance_query +
      • GL_KHR_blend_equation_advanced +
      • GL_KHR_blend_equation_advanced_coherent +
      • GL_KHR_context_flush_control +
      • GL_KHR_robust_buffer_access_behavior +
      • GL_KHR_robustness +
      • GL_KHR_texture_compression_astc_hdr +
      • GL_NV_bindless_multi_draw_indirect_count +
      • GL_NV_shader_atomic_int64 +
      • GL_NV_shader_thread_group +
      • GL_NV_shader_thread_shuffle +
      • GL_REGAL_proc_address +
      • GLX_ARB_context_flush_control +
      • GLX_EXT_stereo_tree +
      • GLX_MESA_query_renderer +
      • GLX_NV_copy_buffer +
      • GLX_NV_delay_before_swap +
      • WGL_ARB_context_flush_control +
      • WGL_NV_delay_before_swap +
      +
    • Bug fixes +
    +
+ +
+
    +
  • 1.10.0 [07-22-13] +
      +
    • New features: +
        +
      • Support for OpenGL 4.4 +
      +
    • New extensions: +
        +
      • GL_AMD_interleaved_elements +
      • GL_AMD_shader_trinary_minmax +
      • GL_AMD_sparse_texture +
      • GL_ANGLE_depth_texture +
      • GL_ANGLE_framebuffer_blit +
      • GL_ANGLE_framebuffer_multisample +
      • GL_ANGLE_instanced_arrays +
      • GL_ANGLE_pack_reverse_row_order +
      • GL_ANGLE_program_binary +
      • GL_ANGLE_texture_compression_dxt1 +
      • GL_ANGLE_texture_compression_dxt3 +
      • GL_ANGLE_texture_compression_dxt5 +
      • GL_ANGLE_texture_usage +
      • GL_ANGLE_timer_query +
      • GL_ANGLE_translated_shader_source +
      • GL_ARB_bindless_texture +
      • GL_ARB_buffer_storage +
      • GL_ARB_clear_texture +
      • GL_ARB_compute_variable_group_size +
      • GL_ARB_enhanced_layouts +
      • GL_ARB_indirect_parameters +
      • GL_ARB_multi_bind +
      • GL_ARB_query_buffer_object +
      • GL_ARB_seamless_cubemap_per_texture +
      • GL_ARB_shader_draw_parameters +
      • GL_ARB_shader_group_vote +
      • GL_ARB_sparse_texture +
      • GL_ARB_texture_mirror_clamp_to_edge +
      • GL_ARB_texture_stencil8 +
      • GL_ARB_vertex_type_10f_11f_11f_rev +
      • GL_INTEL_map_texture +
      • GL_NVX_conditional_render +
      • GL_NV_bindless_multi_draw_indirect +
      • GL_NV_blend_equation_advanced +
      • GL_NV_compute_program5 +
      • GL_NV_deep_texture3D +
      • GL_NV_draw_texture +
      • GL_NV_shader_atomic_counters +
      • GL_NV_shader_storage_buffer_object +
      • GL_REGAL_ES1_0_compatibility +
      • GL_REGAL_ES1_1_compatibility +
      • GL_REGAL_enable +
      • GLX_EXT_buffer_age +
      • WGL_ARB_robustness_application_isolation +
      • WGL_ARB_robustness_share_group_isolation +
      +
    • Bug fixes +
    +
+ +
+
    +
  • 1.9.0 [08-06-12] +
      +
    • New features: + +
    • New extensions: +
        +
      • GL_ARB_ES3_compatibility +
      • GL_ARB_clear_buffer_object +
      • GL_ARB_compute_shader +
      • GL_ARB_copy_image +
      • GL_ARB_explicit_uniform_location +
      • GL_ARB_fragment_layer_viewport +
      • GL_ARB_framebuffer_no_attachments +
      • GL_ARB_internalformat_query2 +
      • GL_ARB_multi_draw_indirect +
      • GL_ARB_program_interface_query +
      • GL_ARB_robust_buffer_access_behavior +
      • GL_ARB_robustness_application_isolation +
      • GL_ARB_robustness_share_group_isolation +
      • GL_ARB_shader_image_size +
      • GL_ARB_shader_storage_buffer_object +
      • GL_ARB_stencil_texturing +
      • GL_ARB_texture_buffer_range +
      • GL_ARB_texture_query_levels +
      • GL_ARB_texture_storage_multisample +
      • GL_ARB_texture_view +
      • GL_ARB_vertex_attrib_binding +
      • GL_EXT_debug_marker +
      • GL_KHR_debug +
      • GL_REGAL_error_string +
      • GL_REGAL_extension_query +
      • GL_REGAL_log +
      • GLX_ARB_robustness_application_isolation +
      • GLX_ARB_robustness_share_group_isolation +
      • GLX_EXT_create_context_es_profile +
      • WGL_EXT_create_context_es_profile +
      +
    • Bug fixes: +
        +
      • Not using GLU library for Makefile builds. +
      +
    +
+ +
+
    +
  • 1.8.0 [07-17-12] +
      +
    • New extensions: +
        +
      • GL_AMD_pinned_memory +
      • GL_AMD_query_buffer_object +
      • GL_AMD_stencil_operation_extended +
      • GL_AMD_vertex_shader_layer +
      • GL_AMD_vertex_shader_viewport_index +
      • GL_NV_bindless_texture +
      • GL_NV_shader_atomic_float +
      • GLX_EXT_swap_control_tear +
      • WGL_EXT_swap_control_tear +
      • WGL_NV_DX_interop2 +
      +
    • Bug fixes: +
        +
      • MS Visual Studio 2010 projects added +
      • GLX_NV_video_out replaces GLX_NV_video_output +
      • ANSI C prototype for glewInit +
      • Improved CentOS build support +
      • Improved GL_ARB_gpu_shader_fp64 support +
      • ARB_texture_compression_bptc and ARB_copy_buffer constants +
      • Linux needs to define GLEW_STATIC for static library builds +
      • Custom code generation problem resolved +
      • GLEWAPIENTRY added to glew.h for calling convention customization +
      • Correction for glPathStencilDepthOffsetNV +
      • Resolve OSX gcc warnings +
      • Added build support for NetBSD +
      +
    +
+ +
+
    +
  • 1.7.0 [08-26-11] +
      +
    • New features: +
        +
      • Support for OpenGL 4.2 +
      +
    • New extensions: +
        +
      • GL_AMD_multi_draw_indirect +
      • GL_ARB_base_instance +
      • GL_ARB_compressed_texture_pixel_storage +
      • GL_ARB_conservative_depth +
      • GL_ARB_internalformat_query +
      • GL_ARB_map_buffer_alignment +
      • GL_ARB_shader_atomic_counters +
      • GL_ARB_shader_image_load_store +
      • GL_ARB_shading_language_420pack +
      • GL_ARB_shading_language_packing +
      • GL_ARB_texture_storage +
      • GL_ARB_transform_feedback_instanced +
      • GL_EXT_framebuffer_multisample_blit_scaled +
      • GL_NV_path_rendering +
      • GL_NV_path_rendering +
      • GLX_MESA_swap_control +
      +
    • Bug fixes: +
        +
      • const qualifiers for GL 1.4 MultiDrawArrays, MultiDrawElements +
      • Add glGetGraphicsResetStatusARB to GL_ARB_robustness +
      • Remove EXT suffix from GL_KTX_buffer_region entry points +
      • Solaris needs inttypes.h +
      • Add ERROR_INVALID_VERSION_ARB and ERROR_INVALID_PROFILE_ARB to WGL_ARB_create_context +
      • Add GLX_MESA_swap_control +
      • Set -install_name for OSX +
      • Add 64-bit darwin build option (SYSTEM=darwin_x86-64) +
      • Add GL_NV_path_rendering +
      +
    +
+ +
+
    +
  • 1.6.0 [04-27-11] +
      +
    • New extensions: +
        +
      • GL_AMD_blend_minmax_factor +
      • GL_AMD_sample_positions +
      • GL_EXT_x11_sync_object +
      • GL_NV_texture_multisample +
      • GL_NV_video_capture +
      • GLX_NV_video_capture +
      • WGL_NV_DX_interop +
      • WGL_NV_video_capture +
      +
    • Bug fixes: +
        +
      • Define GLEW_NO_GLU for no glu dependency. +
      • mx suffix for GLEW MX libraries, build both libraries by default. +
      • Cygwin build improvements +
      • Soname of GLEWmx shared libraries +
      • Query GL extension string only once +
      • GLX_OML_sync_control no longer requires C99 +
      • glDraw*InstancedARB moved from GL_ARB_draw_instanced to GL_ARB_instanced_arrays +
      • glFramebufferTextureLayerEXT moved from GL_EXT_geometry_shader4 to GL_EXT_texture_array +
      • Fixes for BSD build +
      +
    +
+ +
+
    +
  • 1.5.8 [01-31-11] +
      +
    • New extensions: +
        +
      • GL_AMD_depth_clamp_separate +
      • GL_EXT_texture_sRGB_decode +
      +
    • Bug fixes: +
        +
      • Borland C++ fix for __int64 +
      • GL_DOUBLE_MATNxM enumerants for OpenGL 4.0 +
      • Correction to glGetTransformFeedbackVarying +
      • Correction to glSecondaryColorPointer +
      • Corrections to glGetVertexAttribPointerv and glGetShaderSource +
      • Switched code repository from svn to git +
      +
    +
+ +
+
    +
  • 1.5.7 [11-03-10] +
      +
    • New extension: +
        +
      • GL_NVX_gpu_memory_info +
      +
    • Bug fixes: +
        +
      • Improved mingw32 build support +
      • Improved cygwin build support +
      • glGetPointervEXT fix +
      • Add GLEW_VERSION_1_2_1 +
      +
    +
+ +
+
    +
  • 1.5.6 [09-07-10] +
      +
    • New features: +
        +
      • Support for OpenGL 4.1 +
      +
    • New extensions: +
        +
      • GL_ARB_ES2_compatibility +
      • GL_ARB_cl_event +
      • GL_ARB_debug_output +
      • GL_ARB_get_program_binary +
      • GL_ARB_robustness +
      • GL_ARB_separate_shader_objects +
      • GL_ARB_shader_precision +
      • GL_ARB_shader_stencil_export +
      • GL_ARB_vertex_attrib_64bit +
      • GL_ARB_viewport_array +
      • GLX_ARB_create_context_robustness +
      • GLX_EXT_create_context_es2_profile +
      • WGL_ARB_create_context_robustness +
      • WGL_EXT_create_context_es2_profile +
      +
    +
+ +
+
    +
  • 1.5.5 [07-13-10] +
      +
    • New extensions: +
        +
      • GL_AMD_debug_output +
      • GL_AMD_name_gen_delete +
      • GL_AMD_transform_feedback3_lines_triangles +
      • GL_NV_multisample_coverage +
      • GL_NV_vdpau_interop +
      • GLX_AMD_gpu_association +
      • GLX_NV_multisample_coverage +
      • WGL_NV_multisample_coverage +
      +
    • Bug fixes: +
        +
      • Compilation issue with GLX_SGI_video_sync +
      • OpenGL 4.0 double-precision uniform functions added +
      • Constness of glPointParameterfvARB and glPointParameterfvEXT +
      • Added glVertexAttribDivisor +
      • Compilation issue with Nvidia GLX headers +
      +
    +
+ +
+
    +
  • 1.5.4 [04-21-10] +
      +
    • New features: +
        +
      • Support for OpenGL 3.3 +
      • Support for OpenGL 4.0 +
      +
    • New extensions: +
        +
      • GL_AMD_conservative_depth +
      • GL_ARB_blend_func_extended +
      • GL_ARB_draw_indirect +
      • GL_ARB_explicit_attrib_location +
      • GL_ARB_gpu_shader5 +
      • GL_ARB_gpu_shader_fp64 +
      • GL_ARB_occlusion_query2 +
      • GL_ARB_sampler_objects +
      • GL_ARB_shader_bit_encoding +
      • GL_ARB_shader_subroutine +
      • GL_ARB_shading_language_include +
      • GL_ARB_tessellation_shader +
      • GL_ARB_texture_buffer_object_rgb32 +
      • GL_ARB_texture_compression_bptc +
      • GL_ARB_texture_rgb10_a2ui +
      • GL_ARB_texture_swizzle +
      • GL_ARB_timer_query +
      • GL_ARB_transform_feedback2 +
      • GL_ARB_transform_feedback3 +
      • GL_ARB_vertex_type_2_10_10_10_rev +
      • GL_EXT_shader_image_load_store +
      • GL_EXT_vertex_attrib_64bit +
      • GL_NV_gpu_program5 +
      • GL_NV_gpu_program_fp64 +
      • GL_NV_gpu_shader5 +
      • GL_NV_tessellation_program5 +
      • GL_NV_vertex_attrib_integer_64bit +
      • GLX_ARB_vertex_buffer_object +
      +
    • Bug fixes: +
        +
      • Parameter constness fix for glPointParameteriv and glPointParameterfv +
      +
    +
+ +
+
    +
  • 1.5.3 [02-28-10] +
      +
    • New extensions: +
        +
      • GLX_INTEL_swap_event +
      • GL_AMD_seamless_cubemap_per_texture +
      • GL_AMD_shader_stencil_export +
      +
    • Bug fixes: +
        +
      • Correct version detection for GL 3.1 and 3.2 +
      • Missing 3.1 enumerants +
      • Add glew.pc +
      +
    +
+ +
+
    +
  • 1.5.2 [12-31-09] +
      +
    • New features: +
        +
      • Support for OpenGL 3.1 +
      • Support for OpenGL 3.2 +
      +
    • New extensions: +
        +
      • GL_AMD_draw_buffers_blend +
      • GL_AMD_performance_monitor +
      • GL_AMD_texture_texture4 +
      • GL_AMD_vertex_shader_tessellator +
      • GL_APPLE_aux_depth_stencil +
      • GL_APPLE_object_purgeable +
      • GL_APPLE_rgb_422 +
      • GL_APPLE_row_bytes +
      • GL_APPLE_vertex_program_evaluators +
      • GL_ARB_compatibility +
      • GL_ARB_copy_buffer +
      • GL_ARB_depth_clamp +
      • GL_ARB_draw_buffers_blend +
      • GL_ARB_draw_elements_base_vertex +
      • GL_ARB_fragment_coord_conventions +
      • GL_ARB_provoking_vertex +
      • GL_ARB_sample_shading +
      • GL_ARB_seamless_cube_map +
      • GL_ARB_shader_texture_lod +
      • GL_ARB_sync +
      • GL_ARB_texture_cube_map_array +
      • GL_ARB_texture_gather +
      • GL_ARB_texture_multisample +
      • GL_ARB_texture_query_lod +
      • GL_ARB_uniform_buffer_object +
      • GL_ARB_vertex_array_bgra +
      • GL_ATI_meminfo +
      • GL_EXT_provoking_vertex +
      • GL_EXT_separate_shader_objects +
      • GL_EXT_texture_snorm +
      • GL_NV_copy_image +
      • GL_NV_parameter_buffer_object2 +
      • GL_NV_shader_buffer_load +
      • GL_NV_texture_barrier +
      • GL_NV_transform_feedback2 +
      • GL_NV_vertex_buffer_unified_memory +
      • WGL_AMD_gpu_association +
      • WGL_ARB_create_context_profile +
      • WGL_NV_copy_image +
      • GLX_ARB_create_context_profile +
      • GLX_EXT_swap_control +
      • GLX_NV_copy_image +
      +
    • Bug fixes: +
        +
      • DOS line endings for windows .zip archives only. +
      • glTransformFeedbackVaryings arguments. +
      • Resource leak in glewinfo and visualinfo tools. +
      • WIN32_LEAN_AND_MEAN preprocessor pollution. +
      • Fixed version detection for GLEW_VERSION_2_1 and GLEW_VERSION_3_0. +
      • MesaGLUT glut.h GLAPIENTRY dependency. +
      • glFramebufferTextureLayer correction. +
      • OSX compiler warnings resolved. +
      • Cygwin linking to opengl32 by default, rather than X11 OpenGL. +
      • SnowLeopard (OSX 10.6) gl.h detection. +
      • Use $(STRIP) consistently. +
      +
    +
+ +
+
    +
  • 1.5.1 [11-03-08] +
      +
    • New features: +
        +
      • Support for OpenGL 3.0 +
      +
    • New extensions: +
        +
      • GL_ARB_depth_buffer_float +
      • GL_ARB_draw_instance, +
      • GL_ARB_framebuffer_object +
      • GL_ARB_framebuffer_sRGB +
      • GL_ARB_geometry_shader4 +
      • GL_ARB_half_float_pixel +
      • GL_ARB_half_float_vertex +
      • GL_ARB_instanced_arrays +
      • GL_ARB_map_buffer_range +
      • GL_ARB_texture_buffer_object +
      • GL_ARB_texture_compression_rgtc +
      • GL_ARB_vertex_array_object +
      • GL_EXT_direct_state_access +
      • GL_EXT_texture_swizzle +
      • GL_EXT_transform_feedback +
      • GL_EXT_vertex_array_bgra +
      • GL_NV_conditional_render +
      • GL_NV_explicit_multisample +
      • GL_NV_present_video +
      • GL_SGIS_point_line_texgen +
      • GL_SGIX_convolution_accuracy +
      • WGL_ARB_create_context +
      • WGL_ARB_framebuffer_sRGB +
      • WGL_NV_present_video +
      • WGL_NV_swap_group +
      • WGL_NV_video_output +
      • GLX_ARB_create_context +
      • GLX_ARB_framebuffer_sRGB +
      • GLX_NV_present_video +
      • GLX_NV_swap_group +
      • GLX_NV_video_output +
      +
    • Bug fixes: +
        +
      • Licensing issues with documentation +
      • Problems with long long and _MSC_VER on MINGW +
      • Incorrect parameter for glGetUniformLocation +
      • glewGetExtension fails on last entry +
      • Incomplete GL_NV_texture_shader tokens +
      • Scripting problems on Cygwin +
      • Incorrect definition for GLint on OS X +
      +
    +
+ +
+
    +
  • 1.5.0 [12-27-07] +
      +
    • New features: +
        +
      • Licensing change (BSD, Mesa 3-D, Khronos) +
      • Switch to using registry on www.opengl.org +
      • Support for major and minor version strings +
      +
    • New extensions: +
        +
      • GL_APPLE_flush_buffer_range +
      • GL_GREMEDY_frame_terminator +
      • GLX_EXT_texture_from_pixmap +
      +
    • Bug fixes: +
        +
      • Incorrect 64-bit type definitions +
      • Do not strip static library on install +
      • Missing tokens in GL_ATI_fragment_shader and WGL_{ARB,EXT}_make_current_read +
      • Missing tokens in GL_VERSION_2_1 +
      • Missing functions in GL_VERSION_1_4 +
      • Incorrect parameter type for glXCopyContext +
      +
    +
+
+
    +
  • 1.4.0 [04-27-07] +
      +
    • New features: +
        +
      • Extension variables are declared const to avoid possible +corruption of their values +
      +
    • New extensions: +
        +
      • GL_NV_depth_range_unclamped +
      +
    • Bug fixes: +
        +
      • Incorrect tokens in GL_NV_transform_feedback and GL_NV_framebuffer_multisample_coverage +
      • Incorrect function names in GL_EXT_gpu_program_parameters +
      • Missing tokens in GL_EXT_framebuffer_multisample +
      • GLEW_MX initialization problem for WGL_{ARB,EXT}_extensions_string +
      +
    +
+
+
    +
  • 1.3.6 [03-04-07] +
      +
    • New extensions: +
        +
      • GL_ATI_shader_texture_lod +
      • GL_EXT_gpu_program_parameters +
      • GL_NV_geometry_shader4 +
      • WGL_NV_gpu_affinity +
      • GLX_SGIX_hyperpipe +
      +
    • Bug fixes: +
        +
      • Missing include guards in glxew.h +
      • Makefile and install problems for Cygwin builds +
      • Install problem for Linux AMD64 builds +
      • Incorrect token in GL_ATI_texture_compression_3dc +
      • Missing tokens from GL_ATIX_point_sprites +
      +
    +
+
+
    +
  • 1.3.5 [11-21-06] +
      +
    • New features: +
        +
      • Support for core OpenGL 2.1 +
      • Debug support for glewIsSupported +
      +
    • New extensions: +
        +
      • GL_EXT_bindable_uniform +
      • GL_EXT_draw_buffers2 +
      • GL_EXT_draw_instanced +
      • GL_EXT_framebuffer_sRGB +
      • GL_EXT_geometry_shader4 +
      • GL_EXT_gpu_shader4 +
      • GL_EXT_packed_float +
      • GL_EXT_texture_array +
      • GL_EXT_texture_buffer_object +
      • GL_EXT_texture_compression_latc +
      • GL_EXT_texture_compression_rgtc +
      • GL_EXT_texture_integer +
      • GL_EXT_texture_shared_exponent +
      • GL_EXT_timer_query +
      • GL_NV_depth_buffer_float +
      • GL_NV_fragment_program4 +
      • GL_NV_framebuffer_multisample_coverage +
      • GL_NV_geometry_program4 +
      • GL_NV_gpu_program4 +
      • GL_NV_parameter_buffer_object +
      • GL_NV_transform_feedback +
      • GL_NV_vertex_program4 +
      • GL_OES_byte_coordinates +
      • GL_OES_compressed_paletted_texture +
      • GL_OES_read_format +
      • GL_OES_single_precision +
      • WGL_EXT_pixel_format_packed_float +
      • WGL_EXT_framebuffer_sRGB +
      • GLX_EXT_fbconfig_packed_float +
      • GLX_EXT_framebuffer_sRGB +
      +
    • Bug fixes: +
        +
      • Wrong GLXContext definition on Solaris +
      • Makefile problem for parallel builds +
      +
    +
+
+
    +
  • 1.3.4 [03-04-06] +
      +
    • New extensions: +
        +
      • GL_EXT_framebuffer_blit +
      • GL_EXT_framebuffer_multisample +
      • GL_EXT_packed_depth_stencil +
      • GL_MESAX_texture_stack +
      • WGL_3DL_stereo_control +
      +
    +
      +
    • Bug fixes: +
        +
      • glBlendEquation missing from GL_ARB_imaging +
      • Wrong APIENTRY definition for Cygwin +
      • Incorrect OS X OpenGL types +
      • Unix 64-bit installation patch +
      +
    +
+
+
    +
  • 1.3.3 [05-16-05] +
      +
    • New feature: +
        +
      • Code generation option to split source into multiple files +
      +
    +
      +
    • Bug fixes: +
        +
      • OpenGL 2.0 core initialization problems +
      • Wrong value for token GL_SHADER_TYPE +
      • Missing tokens in GL_ATI_fragment_shader +
      • Missing entry points in GL_ARB_transpose_matrix +
      +
    +
+
+
    +
  • 1.3.2 [03-16-05] +
      +
    • New extension: +
        +
      • GL_APPLE_pixel_buffer +
      +
    • Bug fixes: +
        +
      • Missing OpenGL 2.0 entry points +
      • Missing tokens in GL_SGIX_shadow +
      • MinGW makefile problem +
      • Check for incorrect OpenGL version string on SiS hardware +
      • Documentation update to meet the HTML 4.01 Transitional specification +
      +
    +
+
+
    +
  • 1.3.1 [02-02-05] +
      +
    • New features: +
        +
      • Consistent Unix and Windows versioning +
      +
    • New extensions: +
        +
      • GL_EXT_framebuffer_object +
      • GL_ARB_pixel_buffer_object +
      +
    • Bug fixes: +
        +
      • Missing OpenGL 2.0 tokens +
      • Incorrect typedefs (GLhandleARB and GLhalf) +
      • Borland compiler problems +
      +
    +
+
+
    +
  • 1.3.0 [01-04-05] +
      +
    • New features: +
        +
      • Support for core OpenGL 2.0 +
      • glewIsSupported provides efficient string-based extension checks +
      • Custom code generation from a list of extensions +
      • Makefile changes +
      +
    • New extensions: +
        +
      • WGL_ATI_render_texture_rectangle +
      +
    • Bug fixes: +
        +
      • Incorrect function signature in OpenGL 1.5 core +
      +
    +
+
+
    +
  • 1.2.5 [12-06-04] +
      +
    • New extensions: +
        +
      • GL_ATI_texture_compression_3dc +
      • GL_EXT_Cg_shader +
      • GL_EXT_draw_range_elements +
      • GL_KTX_buffer_region +
      +
    • Bug fixes: +
        +
      • OpenGL version detection bug +
      • Problems with wxWindows and MinGW compilation +
      • visualinfo compilation problem with GLEW_MX specified +
      • Wrong token name in OpenGL 1.5 core +
      +
    • Support for FreeBSD +
    +
+
+
    +
  • 1.2.4 [09-06-04] +
      +
    • Added ARB_draw_buffers and ARB_texture_rectangle +
    • Fixed bug in ARB_shader_objects +
    • Replaced wglinfo with visualinfo +
    +
+
+
    +
  • 1.2.3 [06-10-04] +
      +
    • Added GL_NV_fragment_program2, GL_NV_fragment_program_option, GL_NV_vertex_program2_option, GL_NV_vertex_program3 +
    • Bug fix in GL_ARB_vertex_blend +
    +
+
+
    +
  • 1.2.2 [05-08-04] +
      +
    • Added GL_EXT_pixel_buffer_object, removed GL_NV_element_array +
    • Fixed GLEW_MX problems +
    • Bug fix in GL_EXT_texture_rectangle and wglinfo +
    +
+
+
    +
  • 1.2.1 [03-18-04] +
      +
    • Bug fix in OpenGL version query (early release of 1.2.0 contained this bug) +
    • Bug fix in GL_ARB_shader_objects and temporary bug fix in GL_ARB_vertex_shader +
    • Added flags on GDI support and multisampling to wglinfo +
    +
+
+
    +
  • 1.2.0 [02-19-04] +
      +
    • Added full OpenGL 1.5 support +
    • Added support for multiple rendering contexts with different capabilities +
    • Added command line flags to glewinfo for selecting displays and visuals +
    • Added GLX_SGIS_multisample, GLX_SUN_video_resize, and GL_SUN_read_video_pixels +
    • Added MinGW/MSYS support +
    • Bug fixes in GL_ARB_shader_objects and the OS X build +
    +
+
+
    +
  • 1.1.4 [12-15-03] +
      +
    • Added GL_APPLE_float_pixels, GL_APPLE_texture_range, +GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, +GLX_ATI_pixel_format_float, and GLX_ATI_render_texture +
    • Bug fixes in GL_ATI_map_object_buffer and GL_ATI_fragment_shader +
    +
+
+
    +
  • 1.1.3 [10-28-03] +
      +
    • Added Solaris and Darwin support +
    • Added GL_ARB_fragment_shader, GL_ARB_shader_objects, and GL_ARB_vertex_shader +
    • Fixed bug in GL_WIN_swap_hint +
    • Removed glewinfo's dependency on GLUT +
    +
+
+
    +
  • 1.1.2 [09-15-03] +
      +
    • Removed dependency on WGL_{ARB,EXT}_extensions_string to make GLEW run on Matrox cards +
    • Added glewGetString for querying the GLEW version string +
    +
+
+
    +
  • 1.1.1 [08-11-03] +
      +
    • Added GLX_NV_float_buffer, GL_ARB_shading_language_100, and GL_ARB_texture_non_power_of_two +
    • Fixed bug in GL_ARB_vertex_buffer_object +
    • Minor updates in documentation +
    +
+
+
    +
  • 1.1.0 [07-08-03] +
      +
    • Added automatic code generation +
    • Added almost every extension in the registry +
    • Added separate namespace +
    • Added Irix support +
    • Updated documentation +
    +
+
+
    +
  • 1.0.7 [06-29-03] +
      +
    • Added GL_EXT_depth_bounds_test +
    • Fixed typos +
    +
+
+
    +
  • 1.0.6 [05-05-03] +
      +
    • Added ARB_vertex_buffer_object and NV_half_float +
    • Updated wglinfo +
    • Temporary Linux bug fixes (problems with SDL and MESA) +
    +
+
+
    +
  • 1.0.5 [02-17-03] +
      +
    • Bug fixes +
    • Added wglinfo +
    • Updated documentation +
    +
+
+
    +
  • 1.0.4 [02-02-03] +
      +
    • Added NV_texture_expand_normal +
    • Added mingw support +
    • Updated documentation +
    +
+
+
    +
  • 1.0.3 [01-09-03] +
      +
    • Cleaned up ATI extensions +
    • Changed function prototypes to match glext.h +
    • Added EXT_texture3D +
    • Fixed typos in ATI_vertex_attrib_array_object and ATI_draw_buffers +
    +
+
+
    +
  • 1.0.2 [12-21-02] +
      +
    • Added list of supported extensions to documentation +
    • Added NV_half_float and NV_texgen_emboss +
    +
+
+
    +
  • 1.0.1 [12-17-02] +
      +
    • Bug fixes +
    • Added glewGetExtension +
    +
+
+
    +
  • 1.0.0 [12-12-02] +
      +
    • Initial release +
    +
+
+ diff --git a/vendor/glew-cmake-2.2.0/auto/src/eglew_head.h b/vendor/glew-cmake-2.2.0/auto/src/eglew_head.h new file mode 100644 index 0000000..121efaf --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/eglew_head.h @@ -0,0 +1,98 @@ +#ifndef __eglew_h__ +#define __eglew_h__ +#define __EGLEW_H__ + +#ifdef __eglext_h_ +#error eglext.h included before eglew.h +#endif + +#if defined(__egl_h_) +#error egl.h included before eglew.h +#endif + +#define __eglext_h_ + +#define __egl_h_ + +#ifndef EGLAPIENTRY +#define EGLAPIENTRY +#endif +#ifndef EGLAPI +#define EGLAPI extern +#endif + +/* EGL Types */ +#include + +#include +#include + +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef int32_t EGLint; + +typedef unsigned int EGLBoolean; +typedef void *EGLDisplay; +typedef void *EGLConfig; +typedef void *EGLSurface; +typedef void *EGLContext; +typedef void (*__eglMustCastToProperFunctionPointerType)(void); + +typedef unsigned int EGLenum; +typedef void *EGLClientBuffer; + +typedef void *EGLSync; +typedef intptr_t EGLAttrib; +typedef khronos_utime_nanoseconds_t EGLTime; +typedef void *EGLImage; + +typedef void *EGLSyncKHR; +typedef intptr_t EGLAttribKHR; +typedef void *EGLLabelKHR; +typedef void *EGLObjectKHR; +typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); +typedef khronos_utime_nanoseconds_t EGLTimeKHR; +typedef void *EGLImageKHR; +typedef void *EGLStreamKHR; +typedef khronos_uint64_t EGLuint64KHR; +typedef int EGLNativeFileDescriptorKHR; +typedef khronos_ssize_t EGLsizeiANDROID; +typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); +typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); +typedef void *EGLDeviceEXT; +typedef void *EGLOutputLayerEXT; +typedef void *EGLOutputPortEXT; +typedef void *EGLSyncNV; +typedef khronos_utime_nanoseconds_t EGLTimeNV; +typedef khronos_utime_nanoseconds_t EGLuint64NV; +typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; + +struct EGLClientPixmapHI; +struct AHardwareBuffer; + +/* Wayland types for WL_bind_wayland_display purposes */ +struct wl_buffer; +struct wl_display; +struct wl_resource; + +#define EGL_DONT_CARE ((EGLint)-1) + +#define EGL_NO_CONTEXT ((EGLContext)0) +#define EGL_NO_DISPLAY ((EGLDisplay)0) +#define EGL_NO_IMAGE ((EGLImage)0) +#define EGL_NO_SURFACE ((EGLSurface)0) +#define EGL_NO_SYNC ((EGLSync)0) + +#define EGL_UNKNOWN ((EGLint)-1) + +#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) + +EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); diff --git a/vendor/glew-cmake-2.2.0/auto/src/eglew_mid.h b/vendor/glew-cmake-2.2.0/auto/src/eglew_mid.h new file mode 100644 index 0000000..f94a149 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/eglew_mid.h @@ -0,0 +1,4 @@ +/* ------------------------------------------------------------------------- */ + +#define EGLEW_FUN_EXPORT GLEW_FUN_EXPORT +#define EGLEW_VAR_EXPORT GLEW_VAR_EXPORT diff --git a/vendor/glew-cmake-2.2.0/auto/src/eglew_tail.h b/vendor/glew-cmake-2.2.0/auto/src/eglew_tail.h new file mode 100644 index 0000000..a91a76e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/eglew_tail.h @@ -0,0 +1,15 @@ +/* ------------------------------------------------------------------------ */ + +GLEWAPI GLenum GLEWAPIENTRY eglewInit (EGLDisplay display); +GLEWAPI GLboolean GLEWAPIENTRY eglewIsSupported (const char *name); + +#define EGLEW_GET_VAR(x) (*(const GLboolean*)&x) +#define EGLEW_GET_FUN(x) x + +GLEWAPI GLboolean GLEWAPIENTRY eglewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#endif /* __eglew_h__ */ diff --git a/vendor/glew-cmake-2.2.0/auto/src/footer.html b/vendor/glew-cmake-2.2.0/auto/src/footer.html new file mode 100644 index 0000000..3adb9c1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/footer.html @@ -0,0 +1,4 @@ + + + + diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew.rc b/vendor/glew-cmake-2.2.0/auto/src/glew.rc new file mode 100644 index 0000000..71167fd --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew.rc @@ -0,0 +1,136 @@ + +#include + +#ifdef GLEW_STATIC +# ifdef _DEBUG +# define FILENAME "glew32sd.dll" +# else +# define FILENAME "glew32s.dll" +# endif +#else +# ifdef _DEBUG +# define FILENAME "glew32d.dll" +# else +# define FILENAME "glew32.dll" +# endif +#endif + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// +VS_VERSION_INFO VERSIONINFO +FILEVERSION GLEW_MAJOR, GLEW_MINOR, GLEW_MICRO, 0 +PRODUCTVERSION GLEW_MAJOR, GLEW_MINOR, GLEW_MICRO, 0 +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG +FILEFLAGS VS_FF_DEBUG +#else +FILEFLAGS 0x0L +#endif +FILEOS VOS__WINDOWS32 +#ifdef GLEW_STATIC +FILETYPE VFT_STATIC_LIB +#else +FILETYPE VFT_DLL +#endif +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", + "The OpenGL Extension Wrangler Library\r\n" + "Copyright (C) 2008-2019, Nigel Stewart \r\n" + "Copyright (C) 2002-2008, Milan Ikits \r\n" + "Copyright (C) 2002-2008, Marcelo E. Magallon \r\n" + "Copyright (C) 2002, Lev Povalahev\r\n" + "All rights reserved.\r\n" + "\r\n" + "Redistribution and use in source and binary forms, with or without \r\n" + "modification, are permitted provided that the following conditions are met:\r\n" + "\r\n" + "* Redistributions of source code must retain the above copyright notice, \r\n" + " this list of conditions and the following disclaimer.\r\n" + "* Redistributions in binary form must reproduce the above copyright notice, \r\n" + " this list of conditions and the following disclaimer in the documentation \r\n" + " and/or other materials provided with the distribution.\r\n" + "* The name of the author may be used to endorse or promote products \r\n" + " derived from this software without specific prior written permission.\r\n" + "\r\n" + "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' \r\n" + "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r\n" + "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n" + "ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE \r\n" + "LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR \r\n" + "CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF \r\n" + "SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n" + "INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n" + "CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n" + "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\n" + "THE POSSIBILITY OF SUCH DAMAGE.\r\n" + "\r\n" + "\r\n" + "Mesa 3-D graphics library\r\n" + "\r\n" + "Version: 7.0\r\n" + "\r\n" + "Copyright (C) 1999-2007 Brian Paul All Rights Reserved.\r\n" + "\r\n" + "Permission is hereby granted, free of charge, to any person obtaining a\r\n" + "copy of this software and associated documentation files (the ''Software''),\r\n" + "to deal in the Software without restriction, including without limitation\r\n" + "the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n" + "and/or sell copies of the Software, and to permit persons to whom the\r\n" + "Software is furnished to do so, subject to the following conditions:\r\n" + "\r\n" + "The above copyright notice and this permission notice shall be included\r\n" + "in all copies or substantial portions of the Software.\r\n" + "\r\n" + "THE SOFTWARE IS PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n" + "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n" + "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r\n" + "BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\r\n" + "AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n" + "CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n" + "\r\n" + "\r\n" + "Copyright (c) 2007 The Khronos Group Inc.\r\n" + "\r\n" + "Permission is hereby granted, free of charge, to any person obtaining a\r\n" + "copy of this software and/or associated documentation files (the\r\n" + "''Materials''), to deal in the Materials without restriction, including\r\n" + "without limitation the rights to use, copy, modify, merge, publish,\r\n" + "distribute, sublicense, and/or sell copies of the Materials, and to\r\n" + "permit persons to whom the Materials are furnished to do so, subject to\r\n" + "the following conditions:\r\n" + "\r\n" + "The above copyright notice and this permission notice shall be included\r\n" + "in all copies or substantial portions of the Materials.\r\n" + "\r\n" + "THE MATERIALS ARE PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND,\r\n" + "EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n" + "MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n" + "IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n" + "CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n" + "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n" + "MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\0" + VALUE "CompanyName", "\0" + VALUE "FileDescription", "The OpenGL Extension Wrangler Library\0" + VALUE "FileVersion", "GLEW_MAJOR,GLEW_MINOR,GLEW_MICRO,0\0" + VALUE "InternalName", "GLEW\0" + VALUE "LegalCopyright", "(C) 2002-2019 Nigel Stewart & Milan Ikits & Marcelo Magallon\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", FILENAME "\0" + VALUE "PrivateBuild", "\0" + VALUE "ProductName", "The OpenGL Extension Wrangler Library\0" + VALUE "ProductVersion", "GLEW_MAJOR,GLEW_MINOR,GLEW_MICRO,0\0" + VALUE "SpecialBuild", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_head.c b/vendor/glew-cmake-2.2.0/auto/src/glew_head.c new file mode 100644 index 0000000..9a3802f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_head.c @@ -0,0 +1,289 @@ +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif + +#if defined(GLEW_OSMESA) +# define GLAPI extern +# include +#elif defined(GLEW_EGL) +# include +#elif defined(_WIN32) +/* + * If NOGDI is defined, wingdi.h won't be included by windows.h, and thus + * wglGetProcAddress won't be declared. It will instead be implicitly declared, + * potentially incorrectly, which we don't want. + */ +# if defined(NOGDI) +# undef NOGDI +# endif +# include +#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) +# include +#endif + +#include /* For size_t */ + +#if defined(GLEW_EGL) +#elif defined(GLEW_REGAL) + +/* In GLEW_REGAL mode we call directly into the linked + libRegal.so glGetProcAddressREGAL for looking up + the GL function pointers. */ + +# undef glGetProcAddressREGAL +# ifdef WIN32 +extern void * __stdcall glGetProcAddressREGAL(const GLchar *name); +static void * (__stdcall * regalGetProcAddress) (const GLchar *) = glGetProcAddressREGAL; +# else +extern void * glGetProcAddressREGAL(const GLchar *name); +static void * (*regalGetProcAddress) (const GLchar *) = glGetProcAddressREGAL; +# endif +# define glGetProcAddressREGAL GLEW_GET_FUN(__glewGetProcAddressREGAL) + +#elif defined(__sgi) || defined (__sun) || defined(__HAIKU__) || defined(GLEW_APPLE_GLX) +#include +#include +#include + +void* dlGetProcAddress (const GLubyte* name) +{ + static void* h = NULL; + static void* gpa; + + if (h == NULL) + { + if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL; + gpa = dlsym(h, "glXGetProcAddress"); + } + + if (gpa != NULL) + return ((void*(*)(const GLubyte*))gpa)(name); + else + return dlsym(h, (const char*)name); +} +#endif /* __sgi || __sun || GLEW_APPLE_GLX */ + +#if defined(__APPLE__) +#include +#include +#include + +#if defined(MAC_OS_X_VERSION_10_3) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3 + +#include + +void* NSGLGetProcAddress (const GLubyte *name) +{ + static void* image = NULL; + void* addr; + if (NULL == image) + { + image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY); + } + if( !image ) return NULL; + addr = dlsym(image, (const char*)name); + if( addr ) return addr; +#ifdef GLEW_APPLE_GLX + return dlGetProcAddress( name ); // try next for glx symbols +#else + return NULL; +#endif +} +#else + +#include + +void* NSGLGetProcAddress (const GLubyte *name) +{ + static const struct mach_header* image = NULL; + NSSymbol symbol; + char* symbolName; + if (NULL == image) + { + image = NSAddImage("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", NSADDIMAGE_OPTION_RETURN_ON_ERROR); + } + /* prepend a '_' for the Unix C symbol mangling convention */ + symbolName = malloc(strlen((const char*)name) + 2); + strcpy(symbolName+1, (const char*)name); + symbolName[0] = '_'; + symbol = NULL; + /* if (NSIsSymbolNameDefined(symbolName)) + symbol = NSLookupAndBindSymbol(symbolName); */ + symbol = image ? NSLookupSymbolInImage(image, symbolName, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) : NULL; + free(symbolName); + if( symbol ) return NSAddressOfSymbol(symbol); +#ifdef GLEW_APPLE_GLX + return dlGetProcAddress( name ); // try next for glx symbols +#else + return NULL; +#endif +} +#endif /* defined(MAC_OS_X_VERSION_10_3) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3 */ +#endif /* __APPLE__ */ + +/* + * Define glewGetProcAddress. + */ +#if defined(GLEW_REGAL) +# define glewGetProcAddress(name) regalGetProcAddress((const GLchar *)name) +#elif defined(GLEW_OSMESA) +# define glewGetProcAddress(name) OSMesaGetProcAddress((const char *)name) +#elif defined(GLEW_EGL) +# define glewGetProcAddress(name) eglGetProcAddress((const char *)name) +#elif defined(_WIN32) +# define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name) +#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) +# define glewGetProcAddress(name) NSGLGetProcAddress(name) +#elif defined(__sgi) || defined(__sun) || defined(__HAIKU__) +# define glewGetProcAddress(name) dlGetProcAddress(name) +#elif defined(__ANDROID__) +# define glewGetProcAddress(name) NULL /* TODO */ +#elif defined(__native_client__) +# define glewGetProcAddress(name) NULL /* TODO */ +#else /* __linux */ +# define glewGetProcAddress(name) (*glXGetProcAddressARB)(name) +#endif + +/* + * Redefine GLEW_GET_VAR etc without const cast + */ + +#undef GLEW_GET_VAR +# define GLEW_GET_VAR(x) (x) + +#ifdef WGLEW_GET_VAR +# undef WGLEW_GET_VAR +# define WGLEW_GET_VAR(x) (x) +#endif /* WGLEW_GET_VAR */ + +#ifdef GLXEW_GET_VAR +# undef GLXEW_GET_VAR +# define GLXEW_GET_VAR(x) (x) +#endif /* GLXEW_GET_VAR */ + +#ifdef EGLEW_GET_VAR +# undef EGLEW_GET_VAR +# define EGLEW_GET_VAR(x) (x) +#endif /* EGLEW_GET_VAR */ + +/* + * GLEW, just like OpenGL or GLU, does not rely on the standard C library. + * These functions implement the functionality required in this file. + */ + +static GLuint _glewStrLen (const GLubyte* s) +{ + GLuint i=0; + if (s == NULL) return 0; + while (s[i] != '\0') i++; + return i; +} + +static GLuint _glewStrCLen (const GLubyte* s, GLubyte c) +{ + GLuint i=0; + if (s == NULL) return 0; + while (s[i] != '\0' && s[i] != c) i++; + return i; +} + +static GLuint _glewStrCopy(char *d, const char *s, char c) +{ + GLuint i=0; + if (s == NULL) return 0; + while (s[i] != '\0' && s[i] != c) { d[i] = s[i]; i++; } + d[i] = '\0'; + return i; +} + +#if !defined(GLEW_OSMESA) +#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX) +static GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n) +{ + GLuint i=0; + if(a == NULL || b == NULL) + return (a == NULL && b == NULL && n == 0) ? GL_TRUE : GL_FALSE; + while (i < n && a[i] != '\0' && b[i] != '\0' && a[i] == b[i]) i++; + return i == n ? GL_TRUE : GL_FALSE; +} +#endif +#endif + +static GLboolean _glewStrSame1 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) +{ + while (*na > 0 && (**a == ' ' || **a == '\n' || **a == '\r' || **a == '\t')) + { + (*a)++; + (*na)--; + } + if(*na >= nb) + { + GLuint i=0; + while (i < nb && (*a)[i] == b[i]) i++; + if(i == nb) + { + *a = *a + nb; + *na = *na - nb; + return GL_TRUE; + } + } + return GL_FALSE; +} + +static GLboolean _glewStrSame2 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) +{ + if(*na >= nb) + { + GLuint i=0; + while (i < nb && (*a)[i] == b[i]) i++; + if(i == nb) + { + *a = *a + nb; + *na = *na - nb; + return GL_TRUE; + } + } + return GL_FALSE; +} + +static GLboolean _glewStrSame3 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) +{ + if(*na >= nb) + { + GLuint i=0; + while (i < nb && (*a)[i] == b[i]) i++; + if (i == nb && (*na == nb || (*a)[i] == ' ' || (*a)[i] == '\n' || (*a)[i] == '\r' || (*a)[i] == '\t')) + { + *a = *a + nb; + *na = *na - nb; + return GL_TRUE; + } + } + return GL_FALSE; +} + +/* + * Search for name in the extensions string. Use of strstr() + * is not sufficient because extension names can be prefixes of + * other extension names. Could use strtok() but the constant + * string returned by glGetString might be in read-only memory. + */ +#if !defined(GLEW_OSMESA) +#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX) +static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, const GLubyte *end) +{ + const GLubyte* p; + GLuint len = _glewStrLen((const GLubyte*)name); + p = start; + while (p < end) + { + GLuint n = _glewStrCLen(p, ' '); + if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE; + p += n+1; + } + return GL_FALSE; +} +#endif +#endif diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_head.h b/vendor/glew-cmake-2.2.0/auto/src/glew_head.h new file mode 100644 index 0000000..9277d2a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_head.h @@ -0,0 +1,1139 @@ +#ifndef __glew_h__ +#define __glew_h__ +#define __GLEW_H__ + +#if defined(__gl_h_) || defined(__GL_H__) || defined(_GL_H) || defined(__gl_gl_h_) || defined(__X_GL_H) +#error gl.h included before glew.h +#endif +#if defined(__gl2_h_) +#error gl2.h included before glew.h +#endif +#if defined(__gltypes_h_) +#error gltypes.h included before glew.h +#endif +#if defined(__REGAL_H__) +#error Regal.h included before glew.h +#endif +#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_) +#error glext.h included before glew.h +#endif +#if defined(__gl_ATI_h_) +#error glATI.h included before glew.h +#endif + +#define __gl_h_ +#define __gl2_h_ +#define __GL_H__ +#define _GL_H +#define __gl_gl_h_ +#define __gltypes_h_ +#define __REGAL_H__ +#define __X_GL_H +#define __glext_h_ +#define __GLEXT_H_ +#define __gl_glext_h_ +#define __gl_ATI_h_ + +#if defined(_WIN32) + +/* + * GLEW does not include to avoid name space pollution. + * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t + * defined properly. + */ +/* and */ +#ifdef APIENTRY +# ifndef GLAPIENTRY +# define GLAPIENTRY APIENTRY +# endif +# ifndef GLEWAPIENTRY +# define GLEWAPIENTRY APIENTRY +# endif +#else +#define GLEW_APIENTRY_DEFINED +# if defined(__MINGW32__) || defined(__CYGWIN__) || (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) +# define APIENTRY __stdcall +# ifndef GLAPIENTRY +# define GLAPIENTRY __stdcall +# endif +# ifndef GLEWAPIENTRY +# define GLEWAPIENTRY __stdcall +# endif +# else +# define APIENTRY +# endif +#endif +/* */ +#ifndef CALLBACK +#define GLEW_CALLBACK_DEFINED +# if defined(__MINGW32__) || defined(__CYGWIN__) +# define CALLBACK __attribute__ ((__stdcall__)) +# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +#endif +/* and */ +#ifndef WINGDIAPI +#define GLEW_WINGDIAPI_DEFINED +#define WINGDIAPI __declspec(dllimport) +#endif +/* */ +#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED) +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +#endif +/* */ +#if !defined(_W64) +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif +#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) +# ifdef _WIN64 +typedef __int64 ptrdiff_t; +# else +typedef _W64 int ptrdiff_t; +# endif +# define _PTRDIFF_T_DEFINED +# define _PTRDIFF_T_ +#endif + +#ifndef GLAPI +# if defined(__MINGW32__) || defined(__CYGWIN__) +# define GLAPI extern +# else +# define GLAPI WINGDIAPI +# endif +#endif + +/* + * GLEW_STATIC is defined for static library. + * GLEW_BUILD is defined for building the DLL library. + */ + +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# ifdef GLEW_BUILD +# define GLEWAPI extern __declspec(dllexport) +# else +# define GLEWAPI extern __declspec(dllimport) +# endif +#endif + +#else /* _UNIX */ + +/* + * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO + * C. On my system, this amounts to _3 lines_ of included code, all of + * them pretty much harmless. If you know of a way of detecting 32 vs + * 64 _targets_ at compile time you are free to replace this with + * something that's portable. For now, _this_ is the portable solution. + * (mem, 2004-01-04) + */ + +#if defined(__APPLE__) || defined(__linux__) +# if defined(__cplusplus) +# include +# include +# else +# include +# include +# endif +#else + +# include + +/* SGI MIPSPro doesn't like stdint.h in C++ mode */ +/* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */ + +# if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) +# include +# else +# include +# endif +#endif + +#define GLEW_APIENTRY_DEFINED +#define APIENTRY + +/* + * GLEW_STATIC is defined for static library. + */ + +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# if defined(__GNUC__) && __GNUC__>=4 +# define GLEWAPI extern __attribute__ ((visibility("default"))) +# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) +# define GLEWAPI extern __global +# else +# define GLEWAPI extern +# endif +#endif + +/* */ +#ifndef GLAPI +#define GLAPI extern +#endif + +#endif /* _WIN32 */ + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifndef GLEWAPIENTRY +#define GLEWAPIENTRY +#endif + +#define GLEW_VAR_EXPORT GLEWAPI +#define GLEW_FUN_EXPORT GLEWAPI + +#ifdef __cplusplus +extern "C" { +#endif + +/* ----------------------------- GL_VERSION_1_1 ---------------------------- */ + +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_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; +#if defined(_MSC_VER) && _MSC_VER < 1400 +typedef __int64 GLint64EXT; +typedef unsigned __int64 GLuint64EXT; +#elif defined(_MSC_VER) || defined(__BORLANDC__) +typedef signed long long GLint64EXT; +typedef unsigned long long GLuint64EXT; +#else +# if defined(__MINGW32__) || defined(__CYGWIN__) +#include +# endif +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +typedef GLint64EXT GLint64; +typedef GLuint64EXT GLuint64; +typedef struct __GLsync *GLsync; + +typedef char GLchar; + +typedef void *GLeglImageOES; /* GL_EXT_EGL_image_storage */ + +#define GL_ZERO 0 +#define GL_FALSE 0 +#define GL_LOGIC_OP 0x0BF1 +#define GL_NONE 0 +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_NO_ERROR 0 +#define GL_POINTS 0x0000 +#define GL_CURRENT_BIT 0x00000001 +#define GL_TRUE 1 +#define GL_ONE 1 +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_POINT_BIT 0x00000002 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_LINE_STRIP 0x0003 +#define GL_LINE_BIT 0x00000004 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON 0x0009 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 +#define GL_NEVER 0x0200 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_EXP 0x0800 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_EXP2 0x0801 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_VIEWPORT 0x0BA2 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_COLOR_INDEX 0x1900 +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_BITMAP 0x1A00 +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +#define GL_S 0x2000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_ENV 0x2300 +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_CLAMP 0x2900 +#define GL_REPEAT 0x2901 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_R3_G3_B2 0x2A10 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 +#define GL_LIGHT0 0x4000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_HINT_BIT 0x00008000 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000fffff +#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff + +GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value); +GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref); +GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); +GLAPI void GLAPIENTRY glArrayElement (GLint i); +GLAPI void GLAPIENTRY glBegin (GLenum mode); +GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture); +GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GLAPI void GLAPIENTRY glCallList (GLuint list); +GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists); +GLAPI void GLAPIENTRY glClear (GLbitfield mask); +GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +GLAPI void GLAPIENTRY glClearDepth (GLclampd depth); +GLAPI void GLAPIENTRY glClearIndex (GLfloat c); +GLAPI void GLAPIENTRY glClearStencil (GLint s); +GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation); +GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); +GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v); +GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); +GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); +GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue); +GLAPI void GLAPIENTRY glColor3iv (const GLint *v); +GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); +GLAPI void GLAPIENTRY glColor3sv (const GLshort *v); +GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); +GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v); +GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); +GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v); +GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); +GLAPI void GLAPIENTRY glColor3usv (const GLushort *v); +GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v); +GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); +GLAPI void GLAPIENTRY glColor4iv (const GLint *v); +GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); +GLAPI void GLAPIENTRY glColor4sv (const GLshort *v); +GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v); +GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); +GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v); +GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); +GLAPI void GLAPIENTRY glColor4usv (const GLushort *v); +GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode); +GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glCullFace (GLenum mode); +GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range); +GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); +GLAPI void GLAPIENTRY glDepthFunc (GLenum func); +GLAPI void GLAPIENTRY glDepthMask (GLboolean flag); +GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); +GLAPI void GLAPIENTRY glDisable (GLenum cap); +GLAPI void GLAPIENTRY glDisableClientState (GLenum array); +GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode); +GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); +GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag); +GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag); +GLAPI void GLAPIENTRY glEnable (GLenum cap); +GLAPI void GLAPIENTRY glEnableClientState (GLenum array); +GLAPI void GLAPIENTRY glEnd (void); +GLAPI void GLAPIENTRY glEndList (void); +GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u); +GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u); +GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u); +GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u); +GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v); +GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u); +GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v); +GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u); +GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); +GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +GLAPI void GLAPIENTRY glEvalPoint1 (GLint i); +GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j); +GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); +GLAPI void GLAPIENTRY glFinish (void); +GLAPI void GLAPIENTRY glFlush (void); +GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glFrontFace (GLenum mode); +GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range); +GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures); +GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params); +GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); +GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params); +GLAPI GLenum GLAPIENTRY glGetError (void); +GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); +GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); +GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); +GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); +GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); +GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values); +GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params); +GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask); +GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name); +GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); +GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode); +GLAPI void GLAPIENTRY glIndexMask (GLuint mask); +GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glIndexd (GLdouble c); +GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c); +GLAPI void GLAPIENTRY glIndexf (GLfloat c); +GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c); +GLAPI void GLAPIENTRY glIndexi (GLint c); +GLAPI void GLAPIENTRY glIndexiv (const GLint *c); +GLAPI void GLAPIENTRY glIndexs (GLshort c); +GLAPI void GLAPIENTRY glIndexsv (const GLshort *c); +GLAPI void GLAPIENTRY glIndexub (GLubyte c); +GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c); +GLAPI void GLAPIENTRY glInitNames (void); +GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer); +GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap); +GLAPI GLboolean GLAPIENTRY glIsList (GLuint list); +GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture); +GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern); +GLAPI void GLAPIENTRY glLineWidth (GLfloat width); +GLAPI void GLAPIENTRY glListBase (GLuint base); +GLAPI void GLAPIENTRY glLoadIdentity (void); +GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m); +GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m); +GLAPI void GLAPIENTRY glLoadName (GLuint name); +GLAPI void GLAPIENTRY glLogicOp (GLenum opcode); +GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); +GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); +GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glMatrixMode (GLenum mode); +GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m); +GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m); +GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode); +GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); +GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v); +GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); +GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); +GLAPI void GLAPIENTRY glNormal3iv (const GLint *v); +GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); +GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v); +GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI void GLAPIENTRY glPassThrough (GLfloat token); +GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); +GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); +GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); +GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); +GLAPI void GLAPIENTRY glPointSize (GLfloat size); +GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode); +GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask); +GLAPI void GLAPIENTRY glPopAttrib (void); +GLAPI void GLAPIENTRY glPopClientAttrib (void); +GLAPI void GLAPIENTRY glPopMatrix (void); +GLAPI void GLAPIENTRY glPopName (void); +GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); +GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask); +GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask); +GLAPI void GLAPIENTRY glPushMatrix (void); +GLAPI void GLAPIENTRY glPushName (GLuint name); +GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y); +GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y); +GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y); +GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y); +GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v); +GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z); +GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); +GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v); +GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); +GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v); +GLAPI void GLAPIENTRY glReadBuffer (GLenum mode); +GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); +GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); +GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); +GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2); +GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2); +GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode); +GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); +GLAPI void GLAPIENTRY glShadeModel (GLenum mode); +GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GLAPI void GLAPIENTRY glStencilMask (GLuint mask); +GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s); +GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s); +GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord1i (GLint s); +GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord1s (GLshort s); +GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t); +GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t); +GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t); +GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t); +GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); +GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); +GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r); +GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); +GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); +GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); +GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); +GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y); +GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y); +GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y); +GLAPI void GLAPIENTRY glVertex2iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y); +GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z); +GLAPI void GLAPIENTRY glVertex3iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); +GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); +GLAPI void GLAPIENTRY glVertex4iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); + +#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1) + +#endif /* GL_VERSION_1_1 */ + +/* ---------------------------------- GLU ---------------------------------- */ + +#ifndef GLEW_NO_GLU +# ifdef __APPLE__ +# include +# if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) +# define GLEW_NO_GLU +# endif +# endif +#endif + +#ifndef GLEW_NO_GLU +/* this is where we can safely include GLU */ +# if defined(__APPLE__) && defined(__MACH__) +# include +# else +# include +# endif +#endif + diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_init_egl.c b/vendor/glew-cmake-2.2.0/auto/src/glew_init_egl.c new file mode 100644 index 0000000..1502ef6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_init_egl.c @@ -0,0 +1,45 @@ + /* ------------------------------------------------------------------------ */ + +GLboolean eglewGetExtension (const char* name) +{ + const GLubyte* start; + const GLubyte* end; + + start = (const GLubyte*) eglQueryString(eglGetCurrentDisplay(), EGL_EXTENSIONS); + if (0 == start) return GL_FALSE; + end = start + _glewStrLen(start); + return _glewSearchExtension(name, start, end); +} + +GLenum eglewInit (EGLDisplay display) +{ + EGLint major, minor; + const GLubyte* extStart; + const GLubyte* extEnd; + PFNEGLINITIALIZEPROC initialize = NULL; + PFNEGLQUERYSTRINGPROC queryString = NULL; + + /* Load necessary entry points */ + initialize = (PFNEGLINITIALIZEPROC) glewGetProcAddress("eglInitialize"); + queryString = (PFNEGLQUERYSTRINGPROC) glewGetProcAddress("eglQueryString"); + if (!initialize || !queryString) + return 1; + + /* query EGL version */ + if (initialize(display, &major, &minor) != EGL_TRUE) + return 1; + + EGLEW_VERSION_1_5 = ( major > 1 ) || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_4 = EGLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_3 = EGLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_2 = EGLEW_VERSION_1_3 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_1 = EGLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_0 = EGLEW_VERSION_1_1 == GL_TRUE || ( major == 1 && minor >= 0 ) ? GL_TRUE : GL_FALSE; + + /* query EGL extension string */ + extStart = (const GLubyte*) queryString(display, EGL_EXTENSIONS); + if (extStart == 0) + extStart = (const GLubyte *)""; + extEnd = extStart + _glewStrLen(extStart); + + /* initialize extensions */ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_init_gl.c b/vendor/glew-cmake-2.2.0/auto/src/glew_init_gl.c new file mode 100644 index 0000000..53a5885 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_init_gl.c @@ -0,0 +1,209 @@ +/* ------------------------------------------------------------------------- */ + +static int _glewExtensionCompare(const char *s1, const char *s2) +{ + /* http://www.chanduthedev.com/2012/07/strcmp-implementation-in-c.html */ + while (*s1 || *s2) + { + if (*s1 > *s2) + return 1; + if (*s1 < *s2) + return -1; + s1++; + s2++; + } + return 0; +} + +static ptrdiff_t _glewBsearchExtension(const char* name) +{ + ptrdiff_t lo = 0, hi = sizeof(_glewExtensionLookup) / sizeof(char*) - 2; + + while (lo <= hi) + { + ptrdiff_t mid = (lo + hi) / 2; + const int cmp = _glewExtensionCompare(name, _glewExtensionLookup[mid]); + if (cmp < 0) hi = mid - 1; + else if (cmp > 0) lo = mid + 1; + else return mid; + } + return -1; +} + +static GLboolean *_glewGetExtensionString(const char *name) +{ + ptrdiff_t n = _glewBsearchExtension(name); + if (n >= 0) return &_glewExtensionString[n]; + return NULL; +} + +static GLboolean *_glewGetExtensionEnable(const char *name) +{ + ptrdiff_t n = _glewBsearchExtension(name); + if (n >= 0) return _glewExtensionEnabled[n]; + return NULL; +} + +static const char *_glewNextSpace(const char *i) +{ + const char *j = i; + if (j) + while (*j!=' ' && *j) ++j; + return j; +} + +static const char *_glewNextNonSpace(const char *i) +{ + const char *j = i; + if (j) + while (*j==' ') ++j; + return j; +} + +GLboolean GLEWAPIENTRY glewGetExtension (const char* name) +{ + GLboolean *enable = _glewGetExtensionString(name); + if (enable) + return *enable; + return GL_FALSE; +} + +/* ------------------------------------------------------------------------- */ + +typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) (GLenum name); +typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); + +GLenum GLEWAPIENTRY glewContextInit (void) +{ + PFNGLGETSTRINGPROC getString; + const GLubyte* s; + GLuint dot; + GLint major, minor; + + #ifdef _WIN32 + getString = glGetString; + #else + getString = (PFNGLGETSTRINGPROC) glewGetProcAddress((const GLubyte*)"glGetString"); + if (!getString) + return GLEW_ERROR_NO_GL_VERSION; + #endif + + /* query opengl version */ + s = getString(GL_VERSION); + dot = _glewStrCLen(s, '.'); + if (dot == 0) + return GLEW_ERROR_NO_GL_VERSION; + + major = s[dot-1]-'0'; + minor = s[dot+1]-'0'; + + if (minor < 0 || minor > 9) + minor = 0; + if (major<0 || major>9) + return GLEW_ERROR_NO_GL_VERSION; + + if (major == 1 && minor == 0) + { + return GLEW_ERROR_GL_VERSION_10_ONLY; + } + else + { + GLEW_VERSION_4_6 = ( major > 4 ) || ( major == 4 && minor >= 6 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_5 = GLEW_VERSION_4_6 == GL_TRUE || ( major == 4 && minor >= 5 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_4 = GLEW_VERSION_4_5 == GL_TRUE || ( major == 4 && minor >= 4 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_3 = GLEW_VERSION_4_4 == GL_TRUE || ( major == 4 && minor >= 3 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_2 = GLEW_VERSION_4_3 == GL_TRUE || ( major == 4 && minor >= 2 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_1 = GLEW_VERSION_4_2 == GL_TRUE || ( major == 4 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_0 = GLEW_VERSION_4_1 == GL_TRUE || ( major == 4 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_3_3 = GLEW_VERSION_4_0 == GL_TRUE || ( major == 3 && minor >= 3 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_3_2 = GLEW_VERSION_3_3 == GL_TRUE || ( major == 3 && minor >= 2 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_3_1 = GLEW_VERSION_3_2 == GL_TRUE || ( major == 3 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_3_0 = GLEW_VERSION_3_1 == GL_TRUE || ( major == 3 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_2_1 = GLEW_VERSION_3_0 == GL_TRUE || ( major == 2 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_2_0 = GLEW_VERSION_2_1 == GL_TRUE || ( major == 2 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_1_5 = GLEW_VERSION_2_0 == GL_TRUE || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_1_4 = GLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_1_3 = GLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_1_2_1 = GLEW_VERSION_1_3 == GL_TRUE ? GL_TRUE : GL_FALSE; + GLEW_VERSION_1_2 = GLEW_VERSION_1_2_1 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_1_1 = GLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + } + + { + size_t i; + for (i = 0; i < sizeof(_glewExtensionString) / sizeof(_glewExtensionString[0]); ++i) + _glewExtensionString[i] = GL_FALSE; + } + + if (GLEW_VERSION_3_0) + { + GLint n = 0; + GLint i; + PFNGLGETINTEGERVPROC getIntegerv; + PFNGLGETSTRINGIPROC getStringi; + const char *ext; + GLboolean *enable; + + #ifdef _WIN32 + getIntegerv = glGetIntegerv; + #else + getIntegerv = (PFNGLGETINTEGERVPROC) glewGetProcAddress((const GLubyte*)"glGetIntegerv"); + #endif + + if (getIntegerv) + getIntegerv(GL_NUM_EXTENSIONS, &n); + + /* glGetStringi is OpenGL 3.0 */ + getStringi = (PFNGLGETSTRINGIPROC) glewGetProcAddress((const GLubyte*)"glGetStringi"); + if (getStringi) + for (i = 0; i= (ptrdiff_t) sizeof(ext)) + continue; + _glewStrCopy(ext, i, ' '); + + /* Based on extension string(s), glewGetExtension purposes */ + enable = _glewGetExtensionString(ext); + if (enable) + *enable = GL_TRUE; + + /* Based on extension string(s), experimental mode, glewIsSupported purposes */ + enable = _glewGetExtensionEnable(ext); + if (enable) + *enable = GL_TRUE; + } + } + } diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_init_glx.c b/vendor/glew-cmake-2.2.0/auto/src/glew_init_glx.c new file mode 100644 index 0000000..8397827 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_init_glx.c @@ -0,0 +1,57 @@ +/* ------------------------------------------------------------------------ */ + +GLboolean glxewGetExtension (const char* name) +{ + const GLubyte* start; + const GLubyte* end; + + if (glXGetCurrentDisplay == NULL) return GL_FALSE; + start = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); + if (0 == start) return GL_FALSE; + end = start + _glewStrLen(start); + return _glewSearchExtension(name, start, end); +} + +GLenum glxewInit () +{ + Display* display; + int major, minor; + const GLubyte* extStart; + const GLubyte* extEnd; + /* initialize core GLX 1.2 */ + if (_glewInit_GLX_VERSION_1_2()) return GLEW_ERROR_GLX_VERSION_11_ONLY; + /* check for a display */ + display = glXGetCurrentDisplay(); + if (display == NULL) return GLEW_ERROR_NO_GLX_DISPLAY; + /* initialize flags */ + GLXEW_VERSION_1_0 = GL_TRUE; + GLXEW_VERSION_1_1 = GL_TRUE; + GLXEW_VERSION_1_2 = GL_TRUE; + GLXEW_VERSION_1_3 = GL_TRUE; + GLXEW_VERSION_1_4 = GL_TRUE; + /* query GLX version */ + glXQueryVersion(display, &major, &minor); + if (major == 1 && minor <= 3) + { + switch (minor) + { + case 3: + GLXEW_VERSION_1_4 = GL_FALSE; + break; + case 2: + GLXEW_VERSION_1_4 = GL_FALSE; + GLXEW_VERSION_1_3 = GL_FALSE; + break; + default: + return GLEW_ERROR_GLX_VERSION_11_ONLY; + break; + } + } + /* query GLX extension string */ + extStart = 0; + if (glXGetCurrentDisplay != NULL) + extStart = (const GLubyte*)glXGetClientString(display, GLX_EXTENSIONS); + if (extStart == 0) + extStart = (const GLubyte *)""; + extEnd = extStart + _glewStrLen(extStart); + /* initialize extensions */ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_init_tail.c b/vendor/glew-cmake-2.2.0/auto/src/glew_init_tail.c new file mode 100644 index 0000000..94af367 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_init_tail.c @@ -0,0 +1,68 @@ +/* ------------------------------------------------------------------------ */ + +const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error) +{ + static const GLubyte* _glewErrorString[] = + { + (const GLubyte*)"No error", + (const GLubyte*)"Missing GL version", + (const GLubyte*)"GL 1.1 and up are not supported", + (const GLubyte*)"GLX 1.2 and up are not supported", + (const GLubyte*)"No GLX display", + (const GLubyte*)"Unknown error" + }; + const size_t max_error = sizeof(_glewErrorString)/sizeof(*_glewErrorString) - 1; + return _glewErrorString[(size_t)error > max_error ? max_error : (size_t)error]; +} + +const GLubyte * GLEWAPIENTRY glewGetString (GLenum name) +{ + static const GLubyte* _glewString[] = + { + (const GLubyte*)NULL, + (const GLubyte*)"GLEW_VERSION_STRING", + (const GLubyte*)"GLEW_VERSION_MAJOR_STRING", + (const GLubyte*)"GLEW_VERSION_MINOR_STRING", + (const GLubyte*)"GLEW_VERSION_MICRO_STRING" + }; + const size_t max_string = sizeof(_glewString)/sizeof(*_glewString) - 1; + return _glewString[(size_t)name > max_string ? 0 : (size_t)name]; +} + +/* ------------------------------------------------------------------------ */ + +GLboolean glewExperimental = GL_FALSE; + +GLenum GLEWAPIENTRY glewInit (void) +{ + GLenum r; +#if defined(GLEW_EGL) + PFNEGLGETCURRENTDISPLAYPROC getCurrentDisplay = NULL; +#endif + r = glewContextInit(); + if ( r != 0 ) return r; +#if defined(GLEW_EGL) + getCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) glewGetProcAddress("eglGetCurrentDisplay"); + return eglewInit(getCurrentDisplay()); +#elif defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__) + return r; +#elif defined(_WIN32) + return wglewInit(); +#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) /* _UNIX */ + return glxewInit(); +#else + return r; +#endif /* _WIN32 */ +} + +#if defined(_WIN32) && defined(GLEW_BUILD) && defined(__GNUC__) +/* GCC requires a DLL entry point even without any standard library included. */ +/* Types extracted from windows.h to avoid polluting the rest of the file. */ +int __stdcall DllMainCRTStartup(void* instance, unsigned reason, void* reserved) +{ + (void) instance; + (void) reason; + (void) reserved; + return 1; +} +#endif diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_init_wgl.c b/vendor/glew-cmake-2.2.0/auto/src/glew_init_wgl.c new file mode 100644 index 0000000..978cf3c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_init_wgl.c @@ -0,0 +1,41 @@ +/* ------------------------------------------------------------------------- */ + +static PFNWGLGETEXTENSIONSSTRINGARBPROC _wglewGetExtensionsStringARB = NULL; +static PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglewGetExtensionsStringEXT = NULL; + +GLboolean GLEWAPIENTRY wglewGetExtension (const char* name) +{ + const GLubyte* start; + const GLubyte* end; + if (_wglewGetExtensionsStringARB == NULL) + if (_wglewGetExtensionsStringEXT == NULL) + return GL_FALSE; + else + start = (const GLubyte*)_wglewGetExtensionsStringEXT(); + else + start = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); + if (start == 0) + return GL_FALSE; + end = start + _glewStrLen(start); + return _glewSearchExtension(name, start, end); +} + +GLenum GLEWAPIENTRY wglewInit () +{ + GLboolean crippled; + const GLubyte* extStart; + const GLubyte* extEnd; + /* find wgl extension string query functions */ + _wglewGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB"); + _wglewGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT"); + /* query wgl extension string */ + if (_wglewGetExtensionsStringARB == NULL) + if (_wglewGetExtensionsStringEXT == NULL) + extStart = (const GLubyte*)""; + else + extStart = (const GLubyte*)_wglewGetExtensionsStringEXT(); + else + extStart = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); + extEnd = extStart + _glewStrLen(extStart); + /* initialize extensions */ + crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL; diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_license.h b/vendor/glew-cmake-2.2.0/auto/src/glew_license.h new file mode 100644 index 0000000..353640e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_license.h @@ -0,0 +1,32 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2008-2019, Nigel Stewart +** 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. +*/ + diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_str_egl.c b/vendor/glew-cmake-2.2.0/auto/src/glew_str_egl.c new file mode 100644 index 0000000..f0c52f9 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_str_egl.c @@ -0,0 +1,17 @@ + } + ret = (len == 0); + } + return ret; +} + +#elif defined(GLEW_EGL) + +GLboolean eglewIsSupported (const char* name) +{ + const GLubyte* pos = (const GLubyte*)name; + GLuint len = _glewStrLen(pos); + GLboolean ret = GL_TRUE; + while (ret && len > 0) + { + if(_glewStrSame1(&pos, &len, (const GLubyte*)"EGL_", 4)) + { diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_str_glx.c b/vendor/glew-cmake-2.2.0/auto/src/glew_str_glx.c new file mode 100644 index 0000000..893d741 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_str_glx.c @@ -0,0 +1,17 @@ + } + ret = (len == 0); + } + return ret; +} + +#elif !defined(GLEW_OSMESA) && !defined(GLEW_EGL) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) + +GLboolean glxewIsSupported (const char* name) +{ + const GLubyte* pos = (const GLubyte*)name; + GLuint len = _glewStrLen(pos); + GLboolean ret = GL_TRUE; + while (ret && len > 0) + { + if(_glewStrSame1(&pos, &len, (const GLubyte*)"GLX_", 4)) + { diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_str_head.c b/vendor/glew-cmake-2.2.0/auto/src/glew_str_head.c new file mode 100644 index 0000000..fed3a0f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_str_head.c @@ -0,0 +1,9 @@ +GLboolean GLEWAPIENTRY glewIsSupported (const char* name) +{ + const GLubyte* pos = (const GLubyte*)name; + GLuint len = _glewStrLen(pos); + GLboolean ret = GL_TRUE; + while (ret && len > 0) + { + if (_glewStrSame1(&pos, &len, (const GLubyte*)"GL_", 3)) + { diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_str_tail.c b/vendor/glew-cmake-2.2.0/auto/src/glew_str_tail.c new file mode 100644 index 0000000..caa9572 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_str_tail.c @@ -0,0 +1,7 @@ + } + ret = (len == 0); + } + return ret; +} + +#endif /* _WIN32 */ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_str_wgl.c b/vendor/glew-cmake-2.2.0/auto/src/glew_str_wgl.c new file mode 100644 index 0000000..db67b51 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_str_wgl.c @@ -0,0 +1,17 @@ + } + ret = (len == 0); + } + return ret; +} + +#if defined(_WIN32) && !defined(GLEW_EGL) && !defined(GLEW_OSMESA) + +GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) +{ + const GLubyte* pos = (const GLubyte*)name; + GLuint len = _glewStrLen(pos); + GLboolean ret = GL_TRUE; + while (ret && len > 0) + { + if (_glewStrSame1(&pos, &len, (const GLubyte*)"WGL_", 4)) + { diff --git a/vendor/glew-cmake-2.2.0/auto/src/glew_tail.h b/vendor/glew-cmake-2.2.0/auto/src/glew_tail.h new file mode 100644 index 0000000..65c449a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glew_tail.h @@ -0,0 +1,69 @@ +/* ------------------------------------------------------------------------- */ + +/* error codes */ +#define GLEW_OK 0 +#define GLEW_NO_ERROR 0 +#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ +#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ +#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ +#define GLEW_ERROR_NO_GLX_DISPLAY 4 /* Need GLX display for GLX support */ + +/* string codes */ +#define GLEW_VERSION 1 +#define GLEW_VERSION_MAJOR 2 +#define GLEW_VERSION_MINOR 3 +#define GLEW_VERSION_MICRO 4 + +/* ------------------------------------------------------------------------- */ + +/* GLEW version info */ + +/* +VERSION GLEW_VERSION_STRING +VERSION_MAJOR GLEW_VERSION_MAJOR_STRING +VERSION_MINOR GLEW_VERSION_MINOR_STRING +VERSION_MICRO GLEW_VERSION_MICRO_STRING +*/ + +/* API */ +GLEWAPI GLenum GLEWAPIENTRY glewInit (void); +GLEWAPI GLenum GLEWAPIENTRY glewContextInit (void); +GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name); +#define glewIsExtensionSupported(x) glewIsSupported(x) + +#ifndef GLEW_GET_VAR +#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) +#endif + +#ifndef GLEW_GET_FUN +#define GLEW_GET_FUN(x) x +#endif + +GLEWAPI GLboolean glewExperimental; +GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name); +GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error); +GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString (GLenum name); + +#ifdef __cplusplus +} +#endif + +#ifdef GLEW_APIENTRY_DEFINED +#undef GLEW_APIENTRY_DEFINED +#undef APIENTRY +#endif + +#ifdef GLEW_CALLBACK_DEFINED +#undef GLEW_CALLBACK_DEFINED +#undef CALLBACK +#endif + +#ifdef GLEW_WINGDIAPI_DEFINED +#undef GLEW_WINGDIAPI_DEFINED +#undef WINGDIAPI +#endif + +#undef GLAPI +/* #undef GLEWAPI */ + +#endif /* __glew_h__ */ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glewinfo.rc b/vendor/glew-cmake-2.2.0/auto/src/glewinfo.rc new file mode 100644 index 0000000..88aa4a3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glewinfo.rc @@ -0,0 +1,124 @@ + +#include + +#ifdef _DEBUG +# define FILENAME "glewinfod.exe" +#else +# define FILENAME "glewinfo.exe" +#endif + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// +VS_VERSION_INFO VERSIONINFO +FILEVERSION GLEW_MAJOR, GLEW_MINOR, GLEW_MICRO, 0 +PRODUCTVERSION GLEW_MAJOR, GLEW_MINOR, GLEW_MICRO, 0 +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG +FILEFLAGS VS_FF_DEBUG +#else +FILEFLAGS 0x0L +#endif +FILEOS VOS__WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", + "The OpenGL Extension Wrangler Library\r\n" + "Copyright (C) 2008-2019, Nigel Stewart \r\n" + "Copyright (C) 2002-2008, Milan Ikits \r\n" + "Copyright (C) 2002-2008, Marcelo E. Magallon \r\n" + "Copyright (C) 2002, Lev Povalahev\r\n" + "All rights reserved.\r\n" + "\r\n" + "Redistribution and use in source and binary forms, with or without \r\n" + "modification, are permitted provided that the following conditions are met:\r\n" + "\r\n" + "* Redistributions of source code must retain the above copyright notice, \r\n" + " this list of conditions and the following disclaimer.\r\n" + "* Redistributions in binary form must reproduce the above copyright notice, \r\n" + " this list of conditions and the following disclaimer in the documentation \r\n" + " and/or other materials provided with the distribution.\r\n" + "* The name of the author may be used to endorse or promote products \r\n" + " derived from this software without specific prior written permission.\r\n" + "\r\n" + "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' \r\n" + "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r\n" + "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n" + "ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE \r\n" + "LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR \r\n" + "CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF \r\n" + "SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n" + "INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n" + "CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n" + "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\n" + "THE POSSIBILITY OF SUCH DAMAGE.\r\n" + "\r\n" + "\r\n" + "Mesa 3-D graphics library\r\n" + "\r\n" + "Version: 7.0\r\n" + "\r\n" + "Copyright (C) 1999-2007 Brian Paul All Rights Reserved.\r\n" + "\r\n" + "Permission is hereby granted, free of charge, to any person obtaining a\r\n" + "copy of this software and associated documentation files (the ''Software''),\r\n" + "to deal in the Software without restriction, including without limitation\r\n" + "the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n" + "and/or sell copies of the Software, and to permit persons to whom the\r\n" + "Software is furnished to do so, subject to the following conditions:\r\n" + "\r\n" + "The above copyright notice and this permission notice shall be included\r\n" + "in all copies or substantial portions of the Software.\r\n" + "\r\n" + "THE SOFTWARE IS PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n" + "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n" + "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r\n" + "BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\r\n" + "AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n" + "CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n" + "\r\n" + "\r\n" + "Copyright (c) 2007 The Khronos Group Inc.\r\n" + "\r\n" + "Permission is hereby granted, free of charge, to any person obtaining a\r\n" + "copy of this software and/or associated documentation files (the\r\n" + "''Materials''), to deal in the Materials without restriction, including\r\n" + "without limitation the rights to use, copy, modify, merge, publish,\r\n" + "distribute, sublicense, and/or sell copies of the Materials, and to\r\n" + "permit persons to whom the Materials are furnished to do so, subject to\r\n" + "the following conditions:\r\n" + "\r\n" + "The above copyright notice and this permission notice shall be included\r\n" + "in all copies or substantial portions of the Materials.\r\n" + "\r\n" + "THE MATERIALS ARE PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND,\r\n" + "EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n" + "MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n" + "IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n" + "CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n" + "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n" + "MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\0" + VALUE "CompanyName", "\0" + VALUE "FileDescription", "Utility for verifying extension entry points\0" + VALUE "FileVersion", "GLEW_MAJOR,GLEW_MINOR,GLEW_MICRO,0\0" + VALUE "InternalName", "glewinfo\0" + VALUE "LegalCopyright", "(C) 2002-2019 Nigel Stewart & Milan Ikits & Marcelo Magallon\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", FILENAME "\0" + VALUE "PrivateBuild", "\0" + VALUE "ProductName", "The OpenGL Extension Wrangler Library\0" + VALUE "ProductVersion", "GLEW_MAJOR,GLEW_MINOR,GLEW_MICRO,0\0" + VALUE "SpecialBuild", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/vendor/glew-cmake-2.2.0/auto/src/glewinfo_egl.c b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_egl.c new file mode 100644 index 0000000..877e722 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_egl.c @@ -0,0 +1,6 @@ +} + +#elif defined(GLEW_EGL) + +static void eglewInfo () +{ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glewinfo_gl.c b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_gl.c new file mode 100644 index 0000000..9d7835d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_gl.c @@ -0,0 +1,7 @@ +/* ------------------------------------------------------------------------ */ + +static void glewInfo (void) +{ +#ifdef GL_VERSION_1_1 + _glewInfo_GL_VERSION_1_1(); +#endif /* GL_VERSION_1_1 */ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glewinfo_glx.c b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_glx.c new file mode 100644 index 0000000..e60b549 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_glx.c @@ -0,0 +1,6 @@ +} + +#elif !defined(GLEW_EGL) && !defined(GLEW_OSMESA) /* _UNIX */ + +static void glxewInfo () +{ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glewinfo_head.c b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_head.c new file mode 100644 index 0000000..79ed785 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_head.c @@ -0,0 +1,96 @@ +#include +#include +#include +#include +#if defined(GLEW_EGL) +#include +#elif defined(GLEW_OSMESA) +#define GLAPI extern +#include +#elif defined(_WIN32) +#include +#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) +#include +#endif + +#if defined(__APPLE__) +#include +#endif + +#ifdef GLEW_REGAL +#include +#endif + +static FILE* f; + +/* Command-line parameters for GL context creation */ + +struct createParams +{ +#if defined(GLEW_OSMESA) +#elif defined(GLEW_EGL) +#elif defined(_WIN32) + int pixelformat; +#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) + const char* display; + int visual; +#endif + int major, minor; /* GL context version number */ + + /* https://www.opengl.org/registry/specs/ARB/glx_create_context.txt */ + int profile; /* core = 1, compatibility = 2 */ + int flags; /* debug = 1, forward compatible = 2 */ + + /* GLEW experimental mode */ + int experimental; +}; + +GLboolean glewCreateContext (struct createParams *params); + +GLboolean glewParseArgs (int argc, char** argv, struct createParams *); + +void glewDestroyContext (); + +/* ------------------------------------------------------------------------- */ + +static GLboolean glewPrintExt (const char* name, GLboolean def1, GLboolean def2, GLboolean def3) +{ + unsigned int i; + fprintf(f, "\n%s:", name); + for (i=0; i<62-strlen(name); i++) fprintf(f, " "); + fprintf(f, "%s ", def1 ? "OK" : "MISSING"); + if (def1 != def2) + fprintf(f, "[%s] ", def2 ? "OK" : "MISSING"); + if (def1 != def3) + fprintf(f, "[%s]\n", def3 ? "OK" : "MISSING"); + else + fprintf(f, "\n"); + for (i=0; i] " +#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) + "[-display ] " + "[-visual ] " +#endif + "[-version ] " + "[-profile core|compatibility] " + "[-flag debug|forward] " + "[-experimental]" + "\n"); + return 1; + } + + if (GL_TRUE == glewCreateContext(¶ms)) + { + fprintf(stderr, "Error: glewCreateContext failed\n"); + glewDestroyContext(); + return 1; + } + glewExperimental = params.experimental ? GL_TRUE : GL_FALSE; + err = glewInit(); + if (GLEW_OK != err) + { + fprintf(stderr, "Error [main]: glewInit failed: %s\n", glewGetErrorString(err)); + glewDestroyContext(); + return 1; + } + +#if defined(GLEW_EGL) + getString = (PFNGLGETSTRINGPROC) eglGetProcAddress("glGetString"); + if (!getString) + { + fprintf(stderr, "Error: eglGetProcAddress failed to fetch glGetString\n"); + glewDestroyContext(); + return 1; + } +#endif + +#if defined(_WIN32) +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + if (fopen_s(&f, "glewinfo.txt", "w") != 0) + f = stdout; +#else + f = fopen("glewinfo.txt", "w"); +#endif + if (f == NULL) f = stdout; +#else + f = stdout; +#endif + fprintf(f, "---------------------------\n"); + fprintf(f, " GLEW Extension Info\n"); + fprintf(f, "---------------------------\n\n"); + fprintf(f, "GLEW version %s\n", glewGetString(GLEW_VERSION)); +#if defined(GLEW_OSMESA) +#elif defined(GLEW_EGL) +#elif defined(_WIN32) + fprintf(f, "Reporting capabilities of pixelformat %d\n", params.pixelformat); +#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) + fprintf(f, "Reporting capabilities of display %s, visual 0x%x\n", + params.display == NULL ? getenv("DISPLAY") : params.display, params.visual); +#endif +#if defined(GLEW_EGL) + fprintf(f, "Running on a %s from %s\n", + getString(GL_RENDERER), getString(GL_VENDOR)); + fprintf(f, "OpenGL version %s is supported\n", getString(GL_VERSION)); +#else + fprintf(f, "Running on a %s from %s\n", + glGetString(GL_RENDERER), glGetString(GL_VENDOR)); + fprintf(f, "OpenGL version %s is supported\n", glGetString(GL_VERSION)); +#endif + glewInfo(); +#if defined(GLEW_OSMESA) +#elif defined(GLEW_EGL) + eglewInfo(); +#elif defined(_WIN32) + wglewInfo(); +#else + glxewInfo(); +#endif + if (f != stdout) fclose(f); + glewDestroyContext(); + return 0; +} + +/* ------------------------------------------------------------------------ */ + +GLboolean glewParseArgs (int argc, char** argv, struct createParams *params) +{ + int p = 0; + while (p < argc) + { + if (!strcmp(argv[p], "-version")) + { + if (++p >= argc) return GL_TRUE; +#if defined(__STDC_LIB_EXT1__) || (defined(_MSC_VER) && (_MSC_VER >= 1400)) + if (sscanf_s(argv[p++], "%d.%d", ¶ms->major, ¶ms->minor) != 2) return GL_TRUE; +#else + if (sscanf(argv[p++], "%d.%d", ¶ms->major, ¶ms->minor) != 2) return GL_TRUE; +#endif + } + else if (!strcmp(argv[p], "-profile")) + { + if (++p >= argc) return GL_TRUE; + if (strcmp("core", argv[p]) == 0) params->profile |= 1; + else if (strcmp("compatibility",argv[p]) == 0) params->profile |= 2; + else return GL_TRUE; + ++p; + } + else if (!strcmp(argv[p], "-flag")) + { + if (++p >= argc) return GL_TRUE; + if (strcmp("debug", argv[p]) == 0) params->flags |= 1; + else if (strcmp("forward",argv[p]) == 0) params->flags |= 2; + else return GL_TRUE; + ++p; + } +#if defined(GLEW_OSMESA) +#elif defined(GLEW_EGL) +#elif defined(_WIN32) + else if (!strcmp(argv[p], "-pf") || !strcmp(argv[p], "-pixelformat")) + { + if (++p >= argc) return GL_TRUE; + params->pixelformat = strtol(argv[p++], NULL, 0); + } +#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) + else if (!strcmp(argv[p], "-display")) + { + if (++p >= argc) return GL_TRUE; + params->display = argv[p++]; + } + else if (!strcmp(argv[p], "-visual")) + { + if (++p >= argc) return GL_TRUE; + params->visual = (int)strtol(argv[p++], NULL, 0); + } +#endif + else if (!strcmp(argv[p], "-experimental")) + { + params->experimental = 1; + ++p; + } + else + return GL_TRUE; + } + return GL_FALSE; +} + +/* ------------------------------------------------------------------------ */ + +#if defined(GLEW_EGL) +EGLDisplay display; +EGLContext ctx; + +/* See: http://stackoverflow.com/questions/12662227/opengl-es2-0-offscreen-context-for-fbo-rendering */ + +GLboolean glewCreateContext (struct createParams *params) +{ + EGLDeviceEXT devices[1]; + EGLint numDevices; + EGLSurface surface; + EGLint majorVersion, minorVersion; + EGLint configAttribs[] = { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE + }; + static const EGLint contextAttribs[] = { + EGL_CONTEXT_CLIENT_VERSION, 2, + EGL_NONE + }; + static const EGLint pBufferAttribs[] = { + EGL_WIDTH, 128, + EGL_HEIGHT, 128, + EGL_NONE + }; + EGLConfig config; + EGLint numConfig; + EGLBoolean pBuffer; + + PFNEGLQUERYDEVICESEXTPROC queryDevices = NULL; + PFNEGLGETPLATFORMDISPLAYEXTPROC getPlatformDisplay = NULL; + PFNEGLGETERRORPROC getError = NULL; + PFNEGLGETDISPLAYPROC getDisplay = NULL; + PFNEGLINITIALIZEPROC initialize = NULL; + PFNEGLBINDAPIPROC bindAPI = NULL; + PFNEGLCHOOSECONFIGPROC chooseConfig = NULL; + PFNEGLCREATEWINDOWSURFACEPROC createWindowSurface = NULL; + PFNEGLCREATECONTEXTPROC createContext = NULL; + PFNEGLMAKECURRENTPROC makeCurrent = NULL; + PFNEGLCREATEPBUFFERSURFACEPROC createPbufferSurface = NULL; + + /* Load necessary entry points */ + queryDevices = (PFNEGLQUERYDEVICESEXTPROC) eglGetProcAddress("eglQueryDevicesEXT"); + getPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYEXTPROC) eglGetProcAddress("eglGetPlatformDisplayEXT"); + getError = (PFNEGLGETERRORPROC) eglGetProcAddress("eglGetError"); + getDisplay = (PFNEGLGETDISPLAYPROC) eglGetProcAddress("eglGetDisplay"); + initialize = (PFNEGLINITIALIZEPROC) eglGetProcAddress("eglInitialize"); + bindAPI = (PFNEGLBINDAPIPROC) eglGetProcAddress("eglBindAPI"); + chooseConfig = (PFNEGLCHOOSECONFIGPROC) eglGetProcAddress("eglChooseConfig"); + createWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC) eglGetProcAddress("eglCreateWindowSurface"); + createPbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC) eglGetProcAddress("eglCreatePbufferSurface"); + createContext = (PFNEGLCREATECONTEXTPROC) eglGetProcAddress("eglCreateContext"); + makeCurrent = (PFNEGLMAKECURRENTPROC) eglGetProcAddress("eglMakeCurrent"); + if (!getError || !getDisplay || !initialize || !bindAPI || !chooseConfig || !createWindowSurface || !createContext || !makeCurrent) + return GL_TRUE; + + pBuffer = 0; + display = EGL_NO_DISPLAY; + if (queryDevices && getPlatformDisplay) + { + queryDevices(1, devices, &numDevices); + if (numDevices==1) + { + /* Nvidia EGL doesn't need X11 for p-buffer surface */ + display = getPlatformDisplay(EGL_PLATFORM_DEVICE_EXT, devices[0], 0); + configAttribs[1] = EGL_PBUFFER_BIT; + pBuffer = 1; + } + } + if (display==EGL_NO_DISPLAY) + { + /* Fall-back to X11 surface, works on Mesa */ + display = getDisplay(EGL_DEFAULT_DISPLAY); + } + if (display == EGL_NO_DISPLAY) + return GL_TRUE; + + eglewInit(display); + + if (bindAPI(EGL_OPENGL_API) != EGL_TRUE) + return GL_TRUE; + + if (chooseConfig(display, configAttribs, &config, 1, &numConfig) != EGL_TRUE || (numConfig != 1)) + return GL_TRUE; + + ctx = createContext(display, config, EGL_NO_CONTEXT, pBuffer ? contextAttribs : NULL); + if (NULL == ctx) + return GL_TRUE; + + surface = EGL_NO_SURFACE; + /* Create a p-buffer surface if possible */ + if (pBuffer && createPbufferSurface) + { + surface = createPbufferSurface(display, config, pBufferAttribs); + } + /* Create a generic surface without a native window, if necessary */ + if (surface==EGL_NO_SURFACE) + { + surface = createWindowSurface(display, config, (EGLNativeWindowType) NULL, NULL); + } +#if 0 + if (surface == EGL_NO_SURFACE) + return GL_TRUE; +#endif + + if (makeCurrent(display, surface, surface, ctx) != EGL_TRUE) + return GL_TRUE; + + return GL_FALSE; +} + +void glewDestroyContext () +{ + if (NULL != ctx) eglDestroyContext(display, ctx); +} + +#elif defined(GLEW_OSMESA) +OSMesaContext ctx; + +static const GLint osmFormat = GL_UNSIGNED_BYTE; +static const GLint osmWidth = 640; +static const GLint osmHeight = 480; +static GLubyte *osmPixels = NULL; + +GLboolean glewCreateContext (struct createParams *params) +{ + ctx = OSMesaCreateContext(OSMESA_RGBA, NULL); + if (NULL == ctx) return GL_TRUE; + if (NULL == osmPixels) + { + osmPixels = (GLubyte *) calloc(osmWidth*osmHeight*4, 1); + } + if (!OSMesaMakeCurrent(ctx, osmPixels, GL_UNSIGNED_BYTE, osmWidth, osmHeight)) + { + return GL_TRUE; + } + return GL_FALSE; +} + +void glewDestroyContext () +{ + if (NULL != ctx) OSMesaDestroyContext(ctx); +} + +#elif defined(_WIN32) + +HWND wnd = NULL; +HDC dc = NULL; +HGLRC rc = NULL; + +GLboolean glewCreateContext (struct createParams* params) +{ + WNDCLASS wc; + PIXELFORMATDESCRIPTOR pfd; + /* register window class */ + ZeroMemory(&wc, sizeof(WNDCLASS)); + wc.hInstance = GetModuleHandle(NULL); + wc.lpfnWndProc = DefWindowProc; + wc.lpszClassName = "GLEW"; + if (0 == RegisterClass(&wc)) return GL_TRUE; + /* create window */ + wnd = CreateWindow("GLEW", "GLEW", 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, + CW_USEDEFAULT, NULL, NULL, GetModuleHandle(NULL), NULL); + if (NULL == wnd) return GL_TRUE; + /* get the device context */ + dc = GetDC(wnd); + if (NULL == dc) return GL_TRUE; + /* find pixel format */ + ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR)); + if (params->pixelformat == -1) /* find default */ + { + pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR); + pfd.nVersion = 1; + pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL; + params->pixelformat = ChoosePixelFormat(dc, &pfd); + if (params->pixelformat == 0) return GL_TRUE; + } + /* set the pixel format for the dc */ + if (FALSE == SetPixelFormat(dc, params->pixelformat, &pfd)) return GL_TRUE; + /* create rendering context */ + rc = wglCreateContext(dc); + if (NULL == rc) return GL_TRUE; + if (FALSE == wglMakeCurrent(dc, rc)) return GL_TRUE; + if (params->major || params->profile || params->flags) + { + HGLRC oldRC = rc; + int contextAttrs[20]; + int i; + + wglewInit(); + + /* Intel HD 3000 has WGL_ARB_create_context, but not WGL_ARB_create_context_profile */ + if (!wglewGetExtension("WGL_ARB_create_context")) + return GL_TRUE; + + i = 0; + if (params->major) + { + contextAttrs[i++] = WGL_CONTEXT_MAJOR_VERSION_ARB; + contextAttrs[i++] = params->major; + contextAttrs[i++] = WGL_CONTEXT_MINOR_VERSION_ARB; + contextAttrs[i++] = params->minor; + } + if (params->profile) + { + contextAttrs[i++] = WGL_CONTEXT_PROFILE_MASK_ARB; + contextAttrs[i++] = params->profile; + } + if (params->flags) + { + contextAttrs[i++] = WGL_CONTEXT_FLAGS_ARB; + contextAttrs[i++] = params->flags; + } + contextAttrs[i++] = 0; + rc = wglCreateContextAttribsARB(dc, 0, contextAttrs); + + if (NULL == rc) return GL_TRUE; + if (!wglMakeCurrent(dc, rc)) return GL_TRUE; + + wglDeleteContext(oldRC); + } + return GL_FALSE; +} + +void glewDestroyContext () +{ + if (NULL != rc) wglMakeCurrent(NULL, NULL); + if (NULL != rc) wglDeleteContext(rc); + if (NULL != wnd && NULL != dc) ReleaseDC(wnd, dc); + if (NULL != wnd) DestroyWindow(wnd); + UnregisterClass("GLEW", GetModuleHandle(NULL)); +} + +/* ------------------------------------------------------------------------ */ + +#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) + +#include +#include + +CGLContextObj ctx, octx; + +GLboolean glewCreateContext (struct createParams *params) +{ + CGLPixelFormatAttribute contextAttrs[20]; + int i; + CGLPixelFormatObj pf; + GLint npix; + CGLError error; + + i = 0; + contextAttrs[i++] = kCGLPFAAccelerated; /* No software rendering */ + + /* MAC_OS_X_VERSION_10_7 == 1070 */ + #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 + if (params->profile & GL_CONTEXT_CORE_PROFILE_BIT) + { + if ((params->major==3 && params->minor>=2) || params->major>3) + { + contextAttrs[i++] = kCGLPFAOpenGLProfile; /* OSX 10.7 Lion onwards */ + contextAttrs[i++] = (CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core; /* 3.2 Core Context */ + } + } + #endif + + contextAttrs[i++] = 0; + + error = CGLChoosePixelFormat(contextAttrs, &pf, &npix); + if (error) return GL_TRUE; + error = CGLCreateContext(pf, NULL, &ctx); + if (error) return GL_TRUE; + CGLReleasePixelFormat(pf); + octx = CGLGetCurrentContext(); + error = CGLSetCurrentContext(ctx); + if (error) return GL_TRUE; + /* Needed for Regal on the Mac */ + #if defined(GLEW_REGAL) && defined(__APPLE__) + RegalMakeCurrent(ctx); + #endif + return GL_FALSE; +} + +void glewDestroyContext () +{ + CGLSetCurrentContext(octx); + CGLReleaseContext(ctx); +} + +/* ------------------------------------------------------------------------ */ + +#elif defined(__HAIKU__) + +GLboolean glewCreateContext (struct createParams *params) +{ + /* TODO: Haiku: We need to call C++ code here */ + return GL_FALSE; +} + +void glewDestroyContext () +{ + /* TODO: Haiku: We need to call C++ code here */ +} + +/* ------------------------------------------------------------------------ */ + +#else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ + +Display* dpy = NULL; +XVisualInfo* vi = NULL; +XVisualInfo* vis = NULL; +GLXContext ctx = NULL; +Window wnd = 0; +Colormap cmap = 0; + +GLboolean glewCreateContext (struct createParams *params) +{ + int attrib[] = { GLX_RGBA, GLX_DOUBLEBUFFER, None }; + int erb, evb; + XSetWindowAttributes swa; + /* open display */ + dpy = XOpenDisplay(params->display); + if (NULL == dpy) return GL_TRUE; + /* query for glx */ + if (!glXQueryExtension(dpy, &erb, &evb)) return GL_TRUE; + /* choose visual */ + if (params->visual == -1) + { + vi = glXChooseVisual(dpy, DefaultScreen(dpy), attrib); + if (NULL == vi) return GL_TRUE; + params->visual = (int)XVisualIDFromVisual(vi->visual); + } + else + { + int n_vis, i; + vis = XGetVisualInfo(dpy, 0, NULL, &n_vis); + for (i=0; ivisual) + vi = &vis[i]; + } + if (vi == NULL) return GL_TRUE; + } + /* create context */ + ctx = glXCreateContext(dpy, vi, None, True); + if (NULL == ctx) return GL_TRUE; + /* create window */ + /*wnd = XCreateSimpleWindow(dpy, RootWindow(dpy, vi->screen), 0, 0, 1, 1, 1, 0, 0);*/ + cmap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone); + swa.border_pixel = 0; + swa.colormap = cmap; + wnd = XCreateWindow(dpy, RootWindow(dpy, vi->screen), + 0, 0, 1, 1, 0, vi->depth, InputOutput, vi->visual, + CWBorderPixel | CWColormap, &swa); + /* make context current */ + if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE; + if (params->major || params->profile || params->flags) + { + GLXContext oldCtx = ctx; + GLXFBConfig *FBConfigs; + int FBConfigAttrs[] = { GLX_FBCONFIG_ID, 0, None }; + int contextAttrs[20]; + int nelems, i; + + glxewInit(); + + if (!glxewGetExtension("GLX_ARB_create_context")) + return GL_TRUE; + + if (glXQueryContext(dpy, oldCtx, GLX_FBCONFIG_ID, &FBConfigAttrs[1])) + return GL_TRUE; + FBConfigs = glXChooseFBConfig(dpy, vi->screen, FBConfigAttrs, &nelems); + + if (nelems < 1) + return GL_TRUE; + + i = 0; + if (params->major) + { + contextAttrs[i++] = GLX_CONTEXT_MAJOR_VERSION_ARB; + contextAttrs[i++] = params->major; + contextAttrs[i++] = GLX_CONTEXT_MINOR_VERSION_ARB; + contextAttrs[i++] = params->minor; + } + if (params->profile) + { + contextAttrs[i++] = GLX_CONTEXT_PROFILE_MASK_ARB; + contextAttrs[i++] = params->profile; + } + if (params->flags) + { + contextAttrs[i++] = GLX_CONTEXT_FLAGS_ARB; + contextAttrs[i++] = params->flags; + } + contextAttrs[i++] = None; + ctx = glXCreateContextAttribsARB(dpy, *FBConfigs, NULL, True, contextAttrs); + + if (NULL == ctx) return GL_TRUE; + if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE; + + glXDestroyContext(dpy, oldCtx); + + XFree(FBConfigs); + } + return GL_FALSE; +} + +void glewDestroyContext () +{ + if (NULL != dpy && NULL != ctx) glXDestroyContext(dpy, ctx); + if (NULL != dpy && 0 != wnd) XDestroyWindow(dpy, wnd); + if (NULL != dpy && 0 != cmap) XFreeColormap(dpy, cmap); + if (NULL != vis) + XFree(vis); + else if (NULL != vi) + XFree(vi); + if (NULL != dpy) XCloseDisplay(dpy); +} + +#endif /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glewinfo_wgl.c b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_wgl.c new file mode 100644 index 0000000..9405667 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glewinfo_wgl.c @@ -0,0 +1,8 @@ +} + +/* ------------------------------------------------------------------------ */ + +#if defined(_WIN32) && !defined(GLEW_EGL) && !defined(GLEW_OSMESA) + +static void wglewInfo () +{ diff --git a/vendor/glew-cmake-2.2.0/auto/src/glxew_head.h b/vendor/glew-cmake-2.2.0/auto/src/glxew_head.h new file mode 100644 index 0000000..414dc1b --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glxew_head.h @@ -0,0 +1,111 @@ +#ifndef __glxew_h__ +#define __glxew_h__ +#define __GLXEW_H__ + +#ifdef __glxext_h_ +#error glxext.h included before glxew.h +#endif + +#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) +#error glx.h included before glxew.h +#endif + +#define __glxext_h_ + +#define GLX_H +#define __GLX_glx_h__ +#define __glx_h__ + +#include +#include +#include + +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* ---------------------------- GLX_VERSION_1_0 --------------------------- */ + +#ifndef GLX_VERSION_1_0 +#define GLX_VERSION_1_0 1 + +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 +#define GLX_BAD_SCREEN 1 +#define GLX_BAD_ATTRIBUTE 2 +#define GLX_NO_EXTENSION 3 +#define GLX_BAD_VISUAL 4 +#define GLX_BAD_CONTEXT 5 +#define GLX_BAD_VALUE 6 +#define GLX_BAD_ENUM 7 + +typedef XID GLXDrawable; +typedef XID GLXPixmap; +#ifdef __sun +typedef struct __glXContextRec *GLXContext; +#else +typedef struct __GLXcontextRec *GLXContext; +#endif + +typedef unsigned int GLXVideoDeviceNV; + +extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); +extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); +extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); +extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList); +extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap); +extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); +extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); +extern void glXDestroyContext (Display *dpy, GLXContext ctx); +extern Bool glXIsDirect (Display *dpy, GLXContext ctx); +extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); +extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); +extern GLXContext glXGetCurrentContext (void); +extern GLXDrawable glXGetCurrentDrawable (void); +extern void glXWaitGL (void); +extern void glXWaitX (void); +extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable); +extern void glXUseXFont (Font font, int first, int count, int listBase); + +#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) + +#endif /* GLX_VERSION_1_0 */ + +/* ---------------------------- GLX_VERSION_1_1 --------------------------- */ + +#ifndef GLX_VERSION_1_1 +#define GLX_VERSION_1_1 + +#define GLX_VENDOR 0x1 +#define GLX_VERSION 0x2 +#define GLX_EXTENSIONS 0x3 + +extern const char* glXQueryExtensionsString (Display *dpy, int screen); +extern const char* glXGetClientString (Display *dpy, int name); +extern const char* glXQueryServerString (Display *dpy, int screen, int name); + +#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) + +#endif /* GLX_VERSION_1_1 */ + diff --git a/vendor/glew-cmake-2.2.0/auto/src/glxew_mid.h b/vendor/glew-cmake-2.2.0/auto/src/glxew_mid.h new file mode 100644 index 0000000..7fcf5d6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glxew_mid.h @@ -0,0 +1,4 @@ +/* ------------------------------------------------------------------------- */ + +#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT +#define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT diff --git a/vendor/glew-cmake-2.2.0/auto/src/glxew_tail.h b/vendor/glew-cmake-2.2.0/auto/src/glxew_tail.h new file mode 100644 index 0000000..05ff1b1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/glxew_tail.h @@ -0,0 +1,20 @@ +/* ------------------------------------------------------------------------ */ + +GLEWAPI GLenum GLEWAPIENTRY glxewInit (); +GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); + +#ifndef GLXEW_GET_VAR +#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) +#endif + +#ifndef GLXEW_GET_FUN +#define GLXEW_GET_FUN(x) x +#endif + +GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#endif /* __glxew_h__ */ diff --git a/vendor/glew-cmake-2.2.0/auto/src/header.html b/vendor/glew-cmake-2.2.0/auto/src/header.html new file mode 100644 index 0000000..3af7255 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/header.html @@ -0,0 +1,96 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + diff --git a/vendor/glew-cmake-2.2.0/auto/src/khronos_license.h b/vendor/glew-cmake-2.2.0/auto/src/khronos_license.h new file mode 100644 index 0000000..420cd72 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/khronos_license.h @@ -0,0 +1,23 @@ +/* +** 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. +*/ + diff --git a/vendor/glew-cmake-2.2.0/auto/src/mesa_license.h b/vendor/glew-cmake-2.2.0/auto/src/mesa_license.h new file mode 100644 index 0000000..3350cca --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/mesa_license.h @@ -0,0 +1,24 @@ +/* + * 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. + */ + diff --git a/vendor/glew-cmake-2.2.0/auto/src/visualinfo.rc b/vendor/glew-cmake-2.2.0/auto/src/visualinfo.rc new file mode 100644 index 0000000..aefb05f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/visualinfo.rc @@ -0,0 +1,124 @@ + +#include + +#ifdef _DEBUG +# define FILENAME "visualinfod.exe" +#else +# define FILENAME "visualinfo.exe" +#endif + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// +VS_VERSION_INFO VERSIONINFO +FILEVERSION GLEW_MAJOR, GLEW_MINOR, GLEW_MICRO, 0 +PRODUCTVERSION GLEW_MAJOR, GLEW_MINOR, GLEW_MICRO, 0 +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG +FILEFLAGS VS_FF_DEBUG +#else +FILEFLAGS 0x0L +#endif +FILEOS VOS__WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", + "The OpenGL Extension Wrangler Library\r\n" + "Copyright (C) 2008-2019, Nigel Stewart \r\n" + "Copyright (C) 2002-2008, Milan Ikits \r\n" + "Copyright (C) 2002-2008, Marcelo E. Magallon \r\n" + "Copyright (C) 2002, Lev Povalahev\r\n" + "All rights reserved.\r\n" + "\r\n" + "Redistribution and use in source and binary forms, with or without \r\n" + "modification, are permitted provided that the following conditions are met:\r\n" + "\r\n" + "* Redistributions of source code must retain the above copyright notice, \r\n" + " this list of conditions and the following disclaimer.\r\n" + "* Redistributions in binary form must reproduce the above copyright notice, \r\n" + " this list of conditions and the following disclaimer in the documentation \r\n" + " and/or other materials provided with the distribution.\r\n" + "* The name of the author may be used to endorse or promote products \r\n" + " derived from this software without specific prior written permission.\r\n" + "\r\n" + "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' \r\n" + "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r\n" + "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n" + "ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE \r\n" + "LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR \r\n" + "CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF \r\n" + "SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n" + "INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n" + "CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n" + "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\n" + "THE POSSIBILITY OF SUCH DAMAGE.\r\n" + "\r\n" + "\r\n" + "Mesa 3-D graphics library\r\n" + "\r\n" + "Version: 7.0\r\n" + "\r\n" + "Copyright (C) 1999-2007 Brian Paul All Rights Reserved.\r\n" + "\r\n" + "Permission is hereby granted, free of charge, to any person obtaining a\r\n" + "copy of this software and associated documentation files (the ''Software''),\r\n" + "to deal in the Software without restriction, including without limitation\r\n" + "the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n" + "and/or sell copies of the Software, and to permit persons to whom the\r\n" + "Software is furnished to do so, subject to the following conditions:\r\n" + "\r\n" + "The above copyright notice and this permission notice shall be included\r\n" + "in all copies or substantial portions of the Software.\r\n" + "\r\n" + "THE SOFTWARE IS PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n" + "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n" + "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r\n" + "BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\r\n" + "AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n" + "CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n" + "\r\n" + "\r\n" + "Copyright (c) 2007 The Khronos Group Inc.\r\n" + "\r\n" + "Permission is hereby granted, free of charge, to any person obtaining a\r\n" + "copy of this software and/or associated documentation files (the\r\n" + "''Materials''), to deal in the Materials without restriction, including\r\n" + "without limitation the rights to use, copy, modify, merge, publish,\r\n" + "distribute, sublicense, and/or sell copies of the Materials, and to\r\n" + "permit persons to whom the Materials are furnished to do so, subject to\r\n" + "the following conditions:\r\n" + "\r\n" + "The above copyright notice and this permission notice shall be included\r\n" + "in all copies or substantial portions of the Materials.\r\n" + "\r\n" + "THE MATERIALS ARE PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND,\r\n" + "EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n" + "MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n" + "IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n" + "CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n" + "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n" + "MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\0" + VALUE "CompanyName", "\0" + VALUE "FileDescription", "Utility for listing pixelformat capabilities\0" + VALUE "FileVersion", "GLEW_MAJOR,GLEW_MINOR,GLEW_MICRO,0\0" + VALUE "InternalName", "visualinfo\0" + VALUE "LegalCopyright", "(C) 2002-2019 Nigel Stewart & Milan Ikits & Marcelo Magallon\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", FILENAME "\0" + VALUE "PrivateBuild", "\0" + VALUE "ProductName", "The OpenGL Extension Wrangler Library\0" + VALUE "ProductVersion", "GLEW_MAJOR,GLEW_MINOR,GLEW_MICRO,0\0" + VALUE "SpecialBuild", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/vendor/glew-cmake-2.2.0/auto/src/wglew_head.h b/vendor/glew-cmake-2.2.0/auto/src/wglew_head.h new file mode 100644 index 0000000..df88503 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/wglew_head.h @@ -0,0 +1,36 @@ +#ifndef __wglew_h__ +#define __wglew_h__ +#define __WGLEW_H__ + +#ifdef __wglext_h_ +#error wglext.h included before wglew.h +#endif + +#define __wglext_h_ + +#if !defined(WINAPI) +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN 1 +# endif +#include +# undef WIN32_LEAN_AND_MEAN +#endif + +/* + * GLEW_STATIC needs to be set when using the static version. + * GLEW_BUILD is set when building the DLL version. + */ +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# ifdef GLEW_BUILD +# define GLEWAPI extern __declspec(dllexport) +# else +# define GLEWAPI extern __declspec(dllimport) +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + diff --git a/vendor/glew-cmake-2.2.0/auto/src/wglew_mid.h b/vendor/glew-cmake-2.2.0/auto/src/wglew_mid.h new file mode 100644 index 0000000..25b1037 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/wglew_mid.h @@ -0,0 +1,4 @@ +/* ------------------------------------------------------------------------- */ + +#define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT +#define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT diff --git a/vendor/glew-cmake-2.2.0/auto/src/wglew_tail.h b/vendor/glew-cmake-2.2.0/auto/src/wglew_tail.h new file mode 100644 index 0000000..8971158 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/auto/src/wglew_tail.h @@ -0,0 +1,22 @@ +/* ------------------------------------------------------------------------- */ + +GLEWAPI GLenum GLEWAPIENTRY wglewInit (); +GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); + +#ifndef WGLEW_GET_VAR +#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) +#endif + +#ifndef WGLEW_GET_FUN +#define WGLEW_GET_FUN(x) x +#endif + +GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#undef GLEWAPI + +#endif /* __wglew_h__ */ diff --git a/vendor/glew-cmake-2.2.0/azure-pipelines.yml b/vendor/glew-cmake-2.2.0/azure-pipelines.yml new file mode 100644 index 0000000..ce740ca --- /dev/null +++ b/vendor/glew-cmake-2.2.0/azure-pipelines.yml @@ -0,0 +1,22 @@ +schedules: + - cron: "0 0 * * *" + displayName: Daily midnight build + branches: + include: + - master + always: true + +jobs: +- job: NightlyUpdate + pool: + vmImage: 'ubuntu-latest' + container: perlmint/glew-cmake:20190922 + steps: + - checkout: self + persistCredentials: true + - bash: | + export TEST_MODE=false + git config --global user.email $GIT_USEREMAIL && + git config --global user.name $GIT_USERNAME && + unset SYSTEM # remove SYSTEM variable set by azure pipeline + ./glew-cmake/maintain.sh \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/cmake/CMakeLists.txt b/vendor/glew-cmake-2.2.0/build/cmake/CMakeLists.txt new file mode 100644 index 0000000..5649972 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/cmake/CMakeLists.txt @@ -0,0 +1,267 @@ +cmake_minimum_required(VERSION 3.16) +project(glew LANGUAGES C) + +if ( NOT DEFINED CMAKE_BUILD_TYPE ) + set( CMAKE_BUILD_TYPE Release CACHE STRING "Build type" ) +endif () + +include(GNUInstallDirs) + +set(CMAKE_DEBUG_POSTFIX d) + +option (BUILD_UTILS "utilities" ON) +option (GLEW_REGAL "Regal mode" OFF) +option (GLEW_OSMESA "OSMesa mode" OFF) +if (APPLE) + option (BUILD_FRAMEWORK "Build Framework bundle for OSX" OFF) +endif () +option (GLEW_X11 "X11 mode" ON) +option (GLEW_EGL "EGL mode" OFF) +option (BUILD_SHARED_LIBS "install/link shared instead of static libs" ON) + +set (GLEW_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../..) + +# get version from config/version +file (STRINGS ${GLEW_DIR}/config/version _VERSION_MAJOR_STRING REGEX "GLEW_MAJOR[ ]*=[ ]*[0-9]+.*") +string (REGEX REPLACE "GLEW_MAJOR[ ]*=[ ]*([0-9]+)" "\\1" CPACK_PACKAGE_VERSION_MAJOR ${_VERSION_MAJOR_STRING}) +file (STRINGS ${GLEW_DIR}/config/version _VERSION_MINOR_STRING REGEX "GLEW_MINOR[ ]*=[ ]*[0-9]+.*") +string (REGEX REPLACE "GLEW_MINOR[ ]*=[ ]*([0-9]+)" "\\1" CPACK_PACKAGE_VERSION_MINOR ${_VERSION_MINOR_STRING}) +file (STRINGS ${GLEW_DIR}/config/version _VERSION_PATCH_STRING REGEX "GLEW_MICRO[ ]*=[ ]*[0-9]+.*") +string (REGEX REPLACE "GLEW_MICRO[ ]*=[ ]*([0-9]+)" "\\1" CPACK_PACKAGE_VERSION_PATCH ${_VERSION_PATCH_STRING}) +set (GLEW_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) + +if (NOT GLEW_CUSTOM_OUTPUT_DIRS) + set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +endif() + +find_package (OpenGL REQUIRED) + +# prefer GLVND +if (OPENGL_opengl_LIBRARY) + set (GLEW_LIBRARIES ${OPENGL_opengl_LIBRARY}) +else () + set (GLEW_LIBRARIES ${OPENGL_gl_LIBRARY}) +endif () + +# X11 required except for Windows and Apple OSX platforms +if (GLEW_X11 AND NOT WIN32 AND NOT APPLE) + find_package (X11) + list (APPEND GLEW_LIBRARIES ${OPENGL_glx_LIBRARY} ${X11_LIBRARIES}) +endif() + +if (WIN32) + set (GLEW_LIB_NAME glew32) +else () + set (GLEW_LIB_NAME GLEW) + set (DLL_PREFIX lib) +endif () + +add_definitions (-DGLEW_NO_GLU) + +#### Regal mode #### + +if (GLEW_REGAL) + if (WIN32) + set (REGAL_LIB_NAME regal32) + else () + set (REGAL_LIB_NAME Regal) + endif () + add_definitions (-DGLEW_REGAL) + set (GLEW_LIBRARIES ${REGAL_LIB_NAME}) +endif () + +#### OSMesa mode #### + +if (GLEW_OSMESA) + if (WIN32) + set (OSMESA_LIB_NAME osmesa) + else () + set (OSMESA_LIB_NAME OSMesa) + endif () + add_definitions (-DGLEW_OSMESA) + list (APPEND GLEW_LIBRARIES ${OSMESA_LIB_NAME}) + set (X11_LIBRARIES) +endif () + +#### EGL #### + +if (GLEW_EGL AND UNIX) + add_definitions (-DGLEW_EGL) + if (NOT OpenGL_EGL_FOUND) + message (FATAL_ERROR "EGL library set but not found.") + endif () + list (APPEND GLEW_LIBRARIES ${OPENGL_egl_LIBRARY}) +endif () + +#### GLEW #### + +include_directories (${GLEW_DIR}/include ${X11_INCLUDE_DIR}) + +set (GLEW_PUBLIC_HEADERS_FILES + ${GLEW_DIR}/include/GL/wglew.h + ${GLEW_DIR}/include/GL/glew.h + ${GLEW_DIR}/include/GL/glxew.h + ${GLEW_DIR}/include/GL/eglew.h +) +set (GLEW_SRC_FILES ${GLEW_DIR}/src/glew.c) + +if (WIN32) + list (APPEND GLEW_SRC_FILES ${GLEW_DIR}/build/glew.rc) +endif () + +add_library (glew SHARED ${GLEW_PUBLIC_HEADERS_FILES} ${GLEW_SRC_FILES}) +set_target_properties (glew PROPERTIES COMPILE_DEFINITIONS "GLEW_BUILD" OUTPUT_NAME "${GLEW_LIB_NAME}" PREFIX "${DLL_PREFIX}" + VERSION ${GLEW_VERSION} + SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}) +add_library (glew_s STATIC ${GLEW_PUBLIC_HEADERS_FILES} ${GLEW_SRC_FILES}) +set_target_properties (glew_s PROPERTIES COMPILE_DEFINITIONS "GLEW_STATIC" OUTPUT_NAME "${GLEW_LIB_NAME}" PREFIX lib) + +if (MSVC) + # add options from visual studio project + target_compile_definitions (glew PRIVATE "GLEW_BUILD;VC_EXTRALEAN") + target_compile_definitions (glew_s PRIVATE "GLEW_STATIC;VC_EXTRALEAN") + if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i?86|x86|x86_32)$") + target_link_libraries (glew LINK_PRIVATE -BASE:0x62AA0000) + endif() + # kill security checks which are dependent on stdlib + target_compile_options (glew PRIVATE -GS-) + target_compile_options (glew_s PRIVATE -GS-) + # remove stdlib dependency + target_link_libraries (glew LINK_PRIVATE -nodefaultlib -noentry) + target_link_libraries (glew LINK_PRIVATE libvcruntime.lib) + target_link_libraries (glew LINK_PRIVATE msvcrt.lib ) + string(REGEX REPLACE "/RTC(su|[1su])" "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) +elseif (WIN32 AND ((CMAKE_C_COMPILER_ID MATCHES "GNU") OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))) + # remove stdlib dependency on windows with GCC and Clang (for similar reasons + # as to MSVC - to allow it to be used with any Windows compiler) + target_compile_options (glew PRIVATE -fno-builtin -fno-stack-protector) + target_compile_options (glew_s PRIVATE -fno-builtin -fno-stack-protector) + target_link_libraries (glew LINK_PRIVATE -nostdlib) +endif () + +if (BUILD_FRAMEWORK) + set_target_properties(glew PROPERTIES + FRAMEWORK TRUE + FRAMEWORK_VERSION ${GLEW_VERSION} + MACOSX_FRAMEWORK_IDENTIFIER net.sourceforge.glew + MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${GLEW_VERSION} + MACOSX_FRAMEWORK_BUNDLE_VERSION ${GLEW_VERSION} + XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" + PUBLIC_HEADER "${GLEW_PUBLIC_HEADERS_FILES}" + OUTPUT_NAME GLEW + ) +endif() + +target_link_libraries (glew LINK_PUBLIC ${GLEW_LIBRARIES}) +target_link_libraries (glew_s ${GLEW_LIBRARIES}) + +target_compile_definitions(glew_s INTERFACE "GLEW_STATIC") +foreach(t glew glew_s) + target_include_directories(${t} PUBLIC $) +endforeach() + +set(targets_to_install "") +if(BUILD_SHARED_LIBS) + list(APPEND targets_to_install glew) +else () + list(APPEND targets_to_install glew_s) +endif() + +install ( TARGETS ${targets_to_install} + EXPORT glew-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Runtime + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development + FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT Runtime +) + +if (BUILD_UTILS) + set (GLEWINFO_SRC_FILES ${GLEW_DIR}/src/glewinfo.c) + if (WIN32) + list (APPEND GLEWINFO_SRC_FILES ${GLEW_DIR}/build/glewinfo.rc) + endif () + add_executable (glewinfo ${GLEWINFO_SRC_FILES}) + if(BUILD_SHARED_LIBS) + target_link_libraries (glewinfo glew) + else() + target_link_libraries (glewinfo glew_s) + endif() + if (NOT WIN32) + target_link_libraries(glewinfo ${X11_LIBRARIES}) + endif () + + set (VISUALINFO_SRC_FILES ${GLEW_DIR}/src/visualinfo.c) + if (WIN32) + list (APPEND VISUALINFO_SRC_FILES ${GLEW_DIR}/build/visualinfo.rc) + endif () + add_executable (visualinfo ${VISUALINFO_SRC_FILES}) + if(BUILD_SHARED_LIBS) + target_link_libraries (visualinfo glew) + else() + target_link_libraries (visualinfo glew_s) + endif() + if (NOT WIN32) + target_link_libraries(visualinfo ${X11_LIBRARIES}) + endif () + + install ( TARGETS glewinfo visualinfo + DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT Runtime) +endif () + +set (prefix ${CMAKE_INSTALL_PREFIX}) +set (exec_prefix ${CMAKE_INSTALL_PREFIX}) +set (libdir ${CMAKE_INSTALL_FULL_LIBDIR}) +set (includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR}) +set (version ${GLEW_VERSION}) +set (libname ${GLEW_LIB_NAME}) +set (cflags) +set (requireslib glu) + +# Mac OSX has no glu.pc unless optional X11/GLX is installed +if (APPLE) + set (requireslib) +endif () + +configure_file (${GLEW_DIR}/glew.pc.in ${CMAKE_CURRENT_BINARY_DIR}/glew.pc @ONLY) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glew.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Development +) + +if(WIN32 AND MSVC AND (NOT MSVC_VERSION LESS 1600)) + install( + FILES $ + DESTINATION ${CMAKE_INSTALL_LIBDIR} + CONFIGURATIONS Debug RelWithDebInfo + COMPONENT Runtime + ) +endif() + +install ( + FILES ${GLEW_PUBLIC_HEADERS_FILES} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/GL + COMPONENT Development) + +install(EXPORT glew-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glew + COMPONENT Development + NAMESPACE GLEW::) +install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/glew-config.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/CopyImportedTargetProperties.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glew + COMPONENT Development) + +if(NOT TARGET uninstall) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake + IMMEDIATE @ONLY) + + add_custom_target(uninstall + COMMAND ${CMAKE_COMMAND} -P + ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) +endif() diff --git a/vendor/glew-cmake-2.2.0/build/cmake/CopyImportedTargetProperties.cmake b/vendor/glew-cmake-2.2.0/build/cmake/CopyImportedTargetProperties.cmake new file mode 100644 index 0000000..a7ade98 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/cmake/CopyImportedTargetProperties.cmake @@ -0,0 +1,88 @@ +#.rst: +# CopyImportedTargetProperties +# -------------------------- +# +# Copies the `INTERFACE*` and `IMPORTED*` properties from a target +# to another one. +# This function can be used to duplicate an `IMPORTED` or an `ALIAS` library +# with a different name since ``add_library(... ALIAS ...)`` does not work +# for those targets. +# +# :: +# +# copy_imported_target_properties( ) +# +# The function copies all the `INTERFACE*` and `IMPORTED*` target +# properties from `` to ``. +# +# The function uses the `IMPORTED_CONFIGURATIONS` property to determine +# which configuration-dependent properties should be copied +# (`IMPORTED_LOCATION_`, etc...) +# +# Example: +# +# Internally the CMake project of ZLIB builds the ``zlib`` and +# ``zlibstatic`` targets which can be exported in the ``ZLIB::`` namespace +# with the ``install(EXPORT ...)`` command. +# +# The config-module will then create the import libraries ``ZLIB::zlib`` and +# ``ZLIB::zlibstatic``. To use ``ZLIB::zlibstatic`` under the standard +# ``ZLIB::ZLIB`` name we need to create the ``ZLIB::ZLIB`` imported library +# and copy the appropriate properties: +# +# add_library(ZLIB::ZLIB STATIC IMPORTED) +# copy_imported_target_properties(ZLIB::zlibstatic ZLIB::ZLIB) +# + +function(copy_imported_target_properties src_target dest_target) + + set(config_dependent_props + IMPORTED_IMPLIB + IMPORTED_LINK_DEPENDENT_LIBRARIES + IMPORTED_LINK_INTERFACE_LANGUAGES + IMPORTED_LINK_INTERFACE_LIBRARIES + IMPORTED_LINK_INTERFACE_MULTIPLICITY + IMPORTED_LOCATION + IMPORTED_NO_SONAME + IMPORTED_SONAME + ) + + # copy configuration-independent properties + foreach(prop + ${config_dependent_props} + IMPORTED_CONFIGURATIONS + INTERFACE_AUTOUIC_OPTIONS + INTERFACE_COMPILE_DEFINITIONS + INTERFACE_COMPILE_FEATURES + INTERFACE_COMPILE_OPTIONS + INTERFACE_INCLUDE_DIRECTORIES + INTERFACE_LINK_LIBRARIES + INTERFACE_POSITION_INDEPENDENT_CODE + INTERFACE_SOURCES + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES + ) + get_property(is_set TARGET ${src_target} PROPERTY ${prop} SET) + if(is_set) + get_target_property(v ${src_target} ${prop}) + set_target_properties(${dest_target} PROPERTIES ${prop} "${v}") + # message(STATUS "set_target_properties(${dest_target} PROPERTIES ${prop} ${v})") + endif() + endforeach() + + # copy configuration-dependent properties + get_target_property(imported_configs ${src_target} + IMPORTED_CONFIGURATIONS) + + foreach(config ${imported_configs}) + foreach(prop_prefix ${config_dependent_props}) + set(prop ${prop_prefix}_${config}) + get_property(is_set TARGET ${src_target} PROPERTY ${prop} SET) + if(is_set) + get_target_property(v ${src_target} ${prop}) + set_target_properties(${dest_target} + PROPERTIES ${prop} "${v}") + # message(STATUS "set_target_properties(${dest_target} PROPERTIES ${prop} ${v})") + endif() + endforeach() + endforeach() +endfunction() diff --git a/vendor/glew-cmake-2.2.0/build/cmake/cmake_uninstall.cmake.in b/vendor/glew-cmake-2.2.0/build/cmake/cmake_uninstall.cmake.in new file mode 100644 index 0000000..2517e99 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/cmake/cmake_uninstall.cmake.in @@ -0,0 +1,26 @@ +if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") + message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") +endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") + +if (NOT DEFINED CMAKE_INSTALL_PREFIX) + set (CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@") +endif () + message(${CMAKE_INSTALL_PREFIX}) + +file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) +string(REGEX REPLACE "\n" ";" files "${files}") +foreach(file ${files}) + message(STATUS "Uninstalling $ENV{DESTDIR}${file}") + if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") + exec_program( + "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + if(NOT "${rm_retval}" STREQUAL 0) + message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") + endif(NOT "${rm_retval}" STREQUAL 0) + else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") + message(STATUS "File $ENV{DESTDIR}${file} does not exist.") + endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") +endforeach(file) diff --git a/vendor/glew-cmake-2.2.0/build/cmake/glew-config.cmake b/vendor/glew-cmake-2.2.0/build/cmake/glew-config.cmake new file mode 100644 index 0000000..0b79c0b --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/cmake/glew-config.cmake @@ -0,0 +1,60 @@ +# This config-module creates the following import libraries: +# +# - GLEW::glew shared lib +# - GLEW::glew_s static lib +# +# Additionally GLEW::GLEW will be created as an +# copy of either the shared (default) or the static libs. +# +# Dependending on the setting of BUILD_SHARED_LIBS at GLEW build time +# either the static or shared versions may not be available. +# +# Set GLEW_USE_STATIC_LIBS to OFF or ON to force using the shared +# or static lib for GLEW::GLEW +# + +include(${CMAKE_CURRENT_LIST_DIR}/glew-targets.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CopyImportedTargetProperties.cmake) + +# decide which import library (glew/glew_s) +# needs to be copied to GLEW::GLEW +set(_glew_target_postfix "") +set(_glew_target_type SHARED) +if(DEFINED GLEW_USE_STATIC_LIBS) + # if defined, use only static or shared + if(GLEW_USE_STATIC_LIBS) + set(_glew_target_postfix "_s") + endif() + # else use static only if no shared +elseif(NOT TARGET GLEW::glew AND TARGET GLEW::glew_s) + set(_glew_target_postfix "_s") +endif() +if(_glew_target_postfix STREQUAL "") + set(_glew_target_type SHARED) +else() + set(_glew_target_type STATIC) +endif() + +# CMake doesn't allow creating ALIAS lib for an IMPORTED lib +# so create imported ones and copy the properties +foreach(_glew_target glew) + set(_glew_src_target "GLEW::${_glew_target}${_glew_target_postfix}") + string(TOUPPER "GLEW::${_glew_target}" _glew_dest_target) + if(TARGET ${_glew_dest_target}) + get_target_property(_glew_previous_src_target ${_glew_dest_target} + _GLEW_SRC_TARGET) + if(NOT _glew_previous_src_target STREQUAL _glew_src_target) + message(FATAL_ERROR "find_package(GLEW) was called the second time with " + "different GLEW_USE_STATIC_LIBS setting. Previously, " + "`glew-config.cmake` created ${_glew_dest_target} as a copy of " + "${_glew_previous_src_target}. Now it attempted to copy it from " + "${_glew_src_target}. ") + endif() + else() + add_library(${_glew_dest_target} ${_glew_target_type} IMPORTED) + # message(STATUS "add_library(${_glew_dest_target} ${_glew_target_type} IMPORTED)") + copy_imported_target_properties(${_glew_src_target} ${_glew_dest_target}) + set_target_properties(${_glew_dest_target} PROPERTIES + _GLEW_SRC_TARGET ${_glew_src_target}) + endif() +endforeach() diff --git a/vendor/glew-cmake-2.2.0/build/cmake/testbuild/CMakeLists.txt b/vendor/glew-cmake-2.2.0/build/cmake/testbuild/CMakeLists.txt new file mode 100644 index 0000000..1243478 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/cmake/testbuild/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.16) +project(glew-cmake-test LANGUAGES C) + +find_package(GLEW REQUIRED CONFIG) +find_package(GLEW REQUIRED CONFIG) # call twice to test multiple call +find_package(OpenGL REQUIRED) + +add_executable(cmake-test main.c) +set_target_properties(cmake-test PROPERTIES DEBUG_POSTFIX _d) +target_link_libraries(cmake-test PRIVATE GLEW::GLEW ${OPENGL_LIBRARIES}) +target_include_directories(cmake-test PRIVATE ${OPENGL_INCLUDE_DIR}) + +target_compile_definitions(cmake-test PRIVATE + -DGLEW_CMAKE_TEST_CONFIG=$ + -DGLEW_CMAKE_TEST_TARGET_FILE_NAME=$ + -DGLEW_CMAKE_TEST_TARGET_TYPE=$ + ) + +install(TARGETS cmake-test DESTINATION bin COMPONENT Runtime) diff --git a/vendor/glew-cmake-2.2.0/build/cmake/testbuild/main.c b/vendor/glew-cmake-2.2.0/build/cmake/testbuild/main.c new file mode 100644 index 0000000..5975817 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/cmake/testbuild/main.c @@ -0,0 +1,23 @@ +#include + +#include +#include + +#define S(x) SS(x) +#define SS(x) #x + +int main(int argc, char* argv[]) { + printf("GLEW CMake test, %s build\n", + S(GLEW_CMAKE_TEST_CONFIG)); + printf("-- linked to %s which is %s\n", + S(GLEW_CMAKE_TEST_TARGET_FILE_NAME), + S(GLEW_CMAKE_TEST_TARGET_TYPE)); + const GLubyte* v = glewGetString(GLEW_VERSION); + if(v) { + printf("-- glewGetString(GLEW_VERSION) returns %s\n-- test passed.\n", v); + return EXIT_SUCCESS; + } else { + printf("-- glewGetString(GLEW_VERSION) returns NULL\n-- test failed.\n"); + return EXIT_FAILURE; + } +} diff --git a/vendor/glew-cmake-2.2.0/build/vc10/common.props b/vendor/glew-cmake-2.2.0/build/vc10/common.props new file mode 100644 index 0000000..83ef102 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc10/common.props @@ -0,0 +1,29 @@ + + + + + ../../include + ../../lib + ../../bin + + + + + $(INCLUDE_DIR) + + + + + $(INCLUDE_DIR) + true + + + $(LIB_DIR) + true + + + $(BIN_DIR) + true + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc10/glew.sln b/vendor/glew-cmake-2.2.0/build/vc10/glew.sln new file mode 100644 index 0000000..a3d671e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc10/glew.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_shared", "glew_shared.vcxproj", "{55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_static", "glew_static.vcxproj", "{664E6F0D-6784-4760-9565-D54F8EB1EDF4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glewinfo", "glewinfo.vcxproj", "{8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visualinfo", "visualinfo.vcxproj", "{79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|Win32.ActiveCfg = Debug|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|Win32.Build.0 = Debug|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|x64.ActiveCfg = Debug|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|x64.Build.0 = Debug|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|Win32.ActiveCfg = Release|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|Win32.Build.0 = Release|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|x64.ActiveCfg = Release|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|x64.Build.0 = Release|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|Win32.ActiveCfg = Debug|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|Win32.Build.0 = Debug|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|x64.ActiveCfg = Debug|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|x64.Build.0 = Debug|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.ActiveCfg = Release|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.Build.0 = Release|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.ActiveCfg = Release|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.Build.0 = Release|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|Win32.Build.0 = Debug|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|x64.ActiveCfg = Debug|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|x64.Build.0 = Debug|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|Win32.ActiveCfg = Release|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|Win32.Build.0 = Release|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|x64.ActiveCfg = Release|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|x64.Build.0 = Release|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|Win32.ActiveCfg = Debug|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|Win32.Build.0 = Debug|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|x64.ActiveCfg = Debug|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|x64.Build.0 = Debug|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|Win32.ActiveCfg = Release|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|Win32.Build.0 = Release|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|x64.ActiveCfg = Release|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vendor/glew-cmake-2.2.0/build/vc10/glew_shared.vcxproj b/vendor/glew-cmake-2.2.0/build/vc10/glew_shared.vcxproj new file mode 100644 index 0000000..e1149d9 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc10/glew_shared.vcxproj @@ -0,0 +1,254 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D} + + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32 + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32 + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32d + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32d + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + $(INCLUDE_DIR) + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + false + + + true + NDEBUG;%(PreprocessorDefinitions) + true + Win32 + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + /ignore:4089 + + + true + true + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + $(INCLUDE_DIR) + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + false + + + true + NDEBUG;%(PreprocessorDefinitions) + true + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + /ignore:4089 + + + true + true + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + WIN32;WIN32_MEAN_AND_LEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + EnableFastChecks + Level3 + $(INCLUDE_DIR) + false + + + true + _DEBUG;%(PreprocessorDefinitions) + true + Win32 + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + + + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + WIN32;WIN32_LEAN_AND_MEAN;GLEW_BUILD;%(PreprocessorDefinitions) + EnableFastChecks + Level3 + $(INCLUDE_DIR) + false + + + true + _DEBUG;%(PreprocessorDefinitions) + true + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + diff --git a/vendor/glew-cmake-2.2.0/build/vc10/glew_static.vcxproj b/vendor/glew-cmake-2.2.0/build/vc10/glew_static.vcxproj new file mode 100644 index 0000000..949db96 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc10/glew_static.vcxproj @@ -0,0 +1,228 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {664E6F0D-6784-4760-9565-D54F8EB1EDF4} + + + + Application + + + Application + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32s + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32s + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32sd + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32sd + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ../../include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + false + + + 0x0409 + NDEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX86 + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ../../include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + false + + + 0x0409 + NDEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX64 + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;_DEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + EnableFastChecks + false + + + 0x0409 + _DEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX86 + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;_DEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + EnableFastChecks + false + + + 0x0409 + _DEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX64 + + + + + ../../include;%(AdditionalIncludeDirectories) + + + + + ../../include;%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + diff --git a/vendor/glew-cmake-2.2.0/build/vc10/glewinfo.vcxproj b/vendor/glew-cmake-2.2.0/build/vc10/glewinfo.vcxproj new file mode 100644 index 0000000..5361664 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc10/glewinfo.vcxproj @@ -0,0 +1,252 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA} + + + + Application + + + Application + + + Application + false + + + Application + false + + + Application + false + + + Application + false + + + + + + + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + glewinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + glewinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + + + + {664e6f0d-6784-4760-9565-d54f8eb1edf4} + + + + + + diff --git a/vendor/glew-cmake-2.2.0/build/vc10/visualinfo.vcxproj b/vendor/glew-cmake-2.2.0/build/vc10/visualinfo.vcxproj new file mode 100644 index 0000000..f684265 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc10/visualinfo.vcxproj @@ -0,0 +1,251 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E} + + + + Application + + + Application + + + Application + false + + + Application + false + + + Application + false + + + Application + false + + + + + + + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + visualinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + ..\..\bin/ + visualinfo + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + {664e6f0d-6784-4760-9565-d54f8eb1edf4} + + + + + + diff --git a/vendor/glew-cmake-2.2.0/build/vc12/common.props b/vendor/glew-cmake-2.2.0/build/vc12/common.props new file mode 100644 index 0000000..8d53675 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc12/common.props @@ -0,0 +1,29 @@ + + + + + ..\..\include + ..\..\lib + ..\..\bin + + + + + $(INCLUDE_DIR) + + + + + $(INCLUDE_DIR) + true + + + $(LIB_DIR) + true + + + $(BIN_DIR) + true + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc12/glew.sln b/vendor/glew-cmake-2.2.0/build/vc12/glew.sln new file mode 100644 index 0000000..a3d671e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc12/glew.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_shared", "glew_shared.vcxproj", "{55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_static", "glew_static.vcxproj", "{664E6F0D-6784-4760-9565-D54F8EB1EDF4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glewinfo", "glewinfo.vcxproj", "{8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visualinfo", "visualinfo.vcxproj", "{79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|Win32.ActiveCfg = Debug|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|Win32.Build.0 = Debug|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|x64.ActiveCfg = Debug|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|x64.Build.0 = Debug|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|Win32.ActiveCfg = Release|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|Win32.Build.0 = Release|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|x64.ActiveCfg = Release|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|x64.Build.0 = Release|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|Win32.ActiveCfg = Debug|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|Win32.Build.0 = Debug|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|x64.ActiveCfg = Debug|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|x64.Build.0 = Debug|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.ActiveCfg = Release|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.Build.0 = Release|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.ActiveCfg = Release|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.Build.0 = Release|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|Win32.Build.0 = Debug|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|x64.ActiveCfg = Debug|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|x64.Build.0 = Debug|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|Win32.ActiveCfg = Release|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|Win32.Build.0 = Release|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|x64.ActiveCfg = Release|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|x64.Build.0 = Release|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|Win32.ActiveCfg = Debug|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|Win32.Build.0 = Debug|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|x64.ActiveCfg = Debug|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|x64.Build.0 = Debug|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|Win32.ActiveCfg = Release|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|Win32.Build.0 = Release|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|x64.ActiveCfg = Release|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vendor/glew-cmake-2.2.0/build/vc12/glew_shared.vcxproj b/vendor/glew-cmake-2.2.0/build/vc12/glew_shared.vcxproj new file mode 100644 index 0000000..b52bcc4 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc12/glew_shared.vcxproj @@ -0,0 +1,258 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D} + + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32 + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32 + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32d + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32d + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + $(INCLUDE_DIR) + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + false + + + true + NDEBUG;%(PreprocessorDefinitions) + true + Win32 + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + /ignore:4089 + + + true + true + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + $(INCLUDE_DIR) + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + false + + + true + NDEBUG;%(PreprocessorDefinitions) + true + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + /ignore:4089 + + + true + true + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + WIN32;WIN32_MEAN_AND_LEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + EnableFastChecks + Level3 + $(INCLUDE_DIR) + false + + + true + _DEBUG;%(PreprocessorDefinitions) + true + Win32 + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + + + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + WIN32;WIN32_LEAN_AND_MEAN;GLEW_BUILD;%(PreprocessorDefinitions) + EnableFastChecks + Level3 + $(INCLUDE_DIR) + false + + + true + _DEBUG;%(PreprocessorDefinitions) + true + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + diff --git a/vendor/glew-cmake-2.2.0/build/vc12/glew_static.vcxproj b/vendor/glew-cmake-2.2.0/build/vc12/glew_static.vcxproj new file mode 100644 index 0000000..61adc41 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc12/glew_static.vcxproj @@ -0,0 +1,232 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {664E6F0D-6784-4760-9565-D54F8EB1EDF4} + + + + Application + + + Application + + + StaticLibrary + false + MultiByte + v120 + + + StaticLibrary + false + MultiByte + v120 + + + StaticLibrary + false + MultiByte + v120 + + + StaticLibrary + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32s + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32s + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32sd + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32sd + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ../../include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + false + + + 0x0409 + NDEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX86 + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ../../include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + false + + + 0x0409 + NDEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX64 + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;_DEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + EnableFastChecks + false + + + 0x0409 + _DEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX86 + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;_DEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + EnableFastChecks + false + + + 0x0409 + _DEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX64 + + + + + ../../include;%(AdditionalIncludeDirectories) + + + + + ../../include;%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc12/glewinfo.vcxproj b/vendor/glew-cmake-2.2.0/build/vc12/glewinfo.vcxproj new file mode 100644 index 0000000..8b38665 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc12/glewinfo.vcxproj @@ -0,0 +1,259 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA} + + + + Application + + + Application + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + glewinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + glewinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + + + + {664e6f0d-6784-4760-9565-d54f8eb1edf4} + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc12/visualinfo.vcxproj b/vendor/glew-cmake-2.2.0/build/vc12/visualinfo.vcxproj new file mode 100644 index 0000000..20b9e6a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc12/visualinfo.vcxproj @@ -0,0 +1,258 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E} + + + + Application + + + Application + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + visualinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + ..\..\bin/ + visualinfo + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + {664e6f0d-6784-4760-9565-d54f8eb1edf4} + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc14/common.props b/vendor/glew-cmake-2.2.0/build/vc14/common.props new file mode 100644 index 0000000..8d53675 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc14/common.props @@ -0,0 +1,29 @@ + + + + + ..\..\include + ..\..\lib + ..\..\bin + + + + + $(INCLUDE_DIR) + + + + + $(INCLUDE_DIR) + true + + + $(LIB_DIR) + true + + + $(BIN_DIR) + true + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc14/glew.sln b/vendor/glew-cmake-2.2.0/build/vc14/glew.sln new file mode 100644 index 0000000..5ac822d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc14/glew.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_shared", "glew_shared.vcxproj", "{55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_static", "glew_static.vcxproj", "{664E6F0D-6784-4760-9565-D54F8EB1EDF4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glewinfo", "glewinfo.vcxproj", "{8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visualinfo", "visualinfo.vcxproj", "{79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|Win32.ActiveCfg = Debug|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|Win32.Build.0 = Debug|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|x64.ActiveCfg = Debug|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|x64.Build.0 = Debug|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|Win32.ActiveCfg = Release|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|Win32.Build.0 = Release|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|x64.ActiveCfg = Release|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|x64.Build.0 = Release|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|Win32.ActiveCfg = Debug|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|Win32.Build.0 = Debug|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|x64.ActiveCfg = Debug|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|x64.Build.0 = Debug|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.ActiveCfg = Release|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.Build.0 = Release|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.ActiveCfg = Release|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.Build.0 = Release|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|Win32.Build.0 = Debug|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|x64.ActiveCfg = Debug|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|x64.Build.0 = Debug|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|Win32.ActiveCfg = Release|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|Win32.Build.0 = Release|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|x64.ActiveCfg = Release|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|x64.Build.0 = Release|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|Win32.ActiveCfg = Debug|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|Win32.Build.0 = Debug|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|x64.ActiveCfg = Debug|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|x64.Build.0 = Debug|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|Win32.ActiveCfg = Release|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|Win32.Build.0 = Release|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|x64.ActiveCfg = Release|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vendor/glew-cmake-2.2.0/build/vc14/glew_shared.vcxproj b/vendor/glew-cmake-2.2.0/build/vc14/glew_shared.vcxproj new file mode 100644 index 0000000..6015ff3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc14/glew_shared.vcxproj @@ -0,0 +1,258 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D} + + + + DynamicLibrary + false + v140 + + + DynamicLibrary + false + v140 + + + DynamicLibrary + false + v140 + + + DynamicLibrary + false + v140 + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32 + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32 + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32d + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32d + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + $(INCLUDE_DIR) + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + false + + + true + NDEBUG;%(PreprocessorDefinitions) + true + Win32 + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + /ignore:4089 + + + true + true + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + $(INCLUDE_DIR) + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + false + + + true + NDEBUG;%(PreprocessorDefinitions) + true + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + /ignore:4089 + + + true + true + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + WIN32;WIN32_MEAN_AND_LEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + EnableFastChecks + Level3 + $(INCLUDE_DIR) + false + + + true + _DEBUG;%(PreprocessorDefinitions) + true + Win32 + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + + + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + WIN32;WIN32_LEAN_AND_MEAN;GLEW_BUILD;%(PreprocessorDefinitions) + EnableFastChecks + Level3 + $(INCLUDE_DIR) + false + + + true + _DEBUG;%(PreprocessorDefinitions) + true + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc14/glew_static.vcxproj b/vendor/glew-cmake-2.2.0/build/vc14/glew_static.vcxproj new file mode 100644 index 0000000..87be4c2 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc14/glew_static.vcxproj @@ -0,0 +1,232 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {664E6F0D-6784-4760-9565-D54F8EB1EDF4} + + + + Application + + + Application + + + StaticLibrary + false + MultiByte + v140 + + + StaticLibrary + false + MultiByte + v140 + + + StaticLibrary + false + MultiByte + v140 + + + StaticLibrary + false + MultiByte + v140 + + + + + + + + + + + + + + + + + + + + + + + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32s + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32s + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32sd + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32sd + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ../../include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + false + + + 0x0409 + NDEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX86 + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ../../include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + false + + + 0x0409 + NDEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX64 + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;_DEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + EnableFastChecks + false + + + 0x0409 + _DEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX86 + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;_DEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + EnableFastChecks + false + + + 0x0409 + _DEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX64 + + + + + ../../include;%(AdditionalIncludeDirectories) + + + + + ../../include;%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc14/glewinfo.vcxproj b/vendor/glew-cmake-2.2.0/build/vc14/glewinfo.vcxproj new file mode 100644 index 0000000..ec051d9 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc14/glewinfo.vcxproj @@ -0,0 +1,259 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA} + + + + Application + + + Application + + + Application + false + v140 + + + Application + false + v140 + + + Application + false + v140 + + + Application + false + v140 + + + + + + + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + glewinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + glewinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + + + + {664e6f0d-6784-4760-9565-d54f8eb1edf4} + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc14/visualinfo.vcxproj b/vendor/glew-cmake-2.2.0/build/vc14/visualinfo.vcxproj new file mode 100644 index 0000000..80b8d9d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc14/visualinfo.vcxproj @@ -0,0 +1,258 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E} + + + + Application + + + Application + + + Application + false + v140 + + + Application + false + v140 + + + Application + false + v140 + + + Application + false + v140 + + + + + + + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + visualinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + ..\..\bin/ + visualinfo + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + {664e6f0d-6784-4760-9565-d54f8eb1edf4} + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc15/common.props b/vendor/glew-cmake-2.2.0/build/vc15/common.props new file mode 100644 index 0000000..8d53675 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc15/common.props @@ -0,0 +1,29 @@ + + + + + ..\..\include + ..\..\lib + ..\..\bin + + + + + $(INCLUDE_DIR) + + + + + $(INCLUDE_DIR) + true + + + $(LIB_DIR) + true + + + $(BIN_DIR) + true + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc15/glew.sln b/vendor/glew-cmake-2.2.0/build/vc15/glew.sln new file mode 100644 index 0000000..fddec56 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc15/glew.sln @@ -0,0 +1,59 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_shared", "glew_shared.vcxproj", "{55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glew_static", "glew_static.vcxproj", "{664E6F0D-6784-4760-9565-D54F8EB1EDF4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glewinfo", "glewinfo.vcxproj", "{8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visualinfo", "visualinfo.vcxproj", "{79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|Win32.ActiveCfg = Debug|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|Win32.Build.0 = Debug|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|x64.ActiveCfg = Debug|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Debug|x64.Build.0 = Debug|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|Win32.ActiveCfg = Release|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|Win32.Build.0 = Release|Win32 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|x64.ActiveCfg = Release|x64 + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D}.Release|x64.Build.0 = Release|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|Win32.ActiveCfg = Debug|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|Win32.Build.0 = Debug|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|x64.ActiveCfg = Debug|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Debug|x64.Build.0 = Debug|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.ActiveCfg = Release|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|Win32.Build.0 = Release|Win32 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.ActiveCfg = Release|x64 + {664E6F0D-6784-4760-9565-D54F8EB1EDF4}.Release|x64.Build.0 = Release|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|Win32.Build.0 = Debug|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|x64.ActiveCfg = Debug|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Debug|x64.Build.0 = Debug|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|Win32.ActiveCfg = Release|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|Win32.Build.0 = Release|Win32 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|x64.ActiveCfg = Release|x64 + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA}.Release|x64.Build.0 = Release|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|Win32.ActiveCfg = Debug|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|Win32.Build.0 = Debug|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|x64.ActiveCfg = Debug|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Debug|x64.Build.0 = Debug|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|Win32.ActiveCfg = Release|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|Win32.Build.0 = Release|Win32 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|x64.ActiveCfg = Release|x64 + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9A5903BA-2749-477B-A225-BC8AB668C316} + EndGlobalSection +EndGlobal diff --git a/vendor/glew-cmake-2.2.0/build/vc15/glew_shared.vcxproj b/vendor/glew-cmake-2.2.0/build/vc15/glew_shared.vcxproj new file mode 100644 index 0000000..59f3089 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc15/glew_shared.vcxproj @@ -0,0 +1,258 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {55AE3D72-7DE6-F19F-AEF2-9AE8CA26CF3D} + + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + DynamicLibrary + false + v141 + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32 + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32 + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32d + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glew32d + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + $(INCLUDE_DIR) + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + false + + + true + NDEBUG;%(PreprocessorDefinitions) + true + Win32 + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;libvcruntime.lib;msvcrt.lib;%(AdditionalDependencies) + /ignore:4089 + + + true + true + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + $(INCLUDE_DIR) + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + false + + + true + NDEBUG;%(PreprocessorDefinitions) + true + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;libvcruntime.lib;msvcrt.lib;%(AdditionalDependencies) + /ignore:4089 + + + true + true + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + WIN32;WIN32_MEAN_AND_LEAN;VC_EXTRALEAN;GLEW_BUILD;%(PreprocessorDefinitions) + EnableFastChecks + Level3 + $(INCLUDE_DIR) + false + + + true + _DEBUG;%(PreprocessorDefinitions) + true + Win32 + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + + + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + WIN32;WIN32_LEAN_AND_MEAN;GLEW_BUILD;%(PreprocessorDefinitions) + EnableFastChecks + Level3 + $(INCLUDE_DIR) + false + + + true + _DEBUG;%(PreprocessorDefinitions) + true + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\$(TargetName).lib + 0x62AA0000 + opengl32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc15/glew_static.vcxproj b/vendor/glew-cmake-2.2.0/build/vc15/glew_static.vcxproj new file mode 100644 index 0000000..787fa4a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc15/glew_static.vcxproj @@ -0,0 +1,232 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {664E6F0D-6784-4760-9565-D54F8EB1EDF4} + + + + Application + + + Application + + + StaticLibrary + false + MultiByte + v141 + + + StaticLibrary + false + MultiByte + v141 + + + StaticLibrary + false + MultiByte + v141 + + + StaticLibrary + false + MultiByte + v141 + + + + + + + + + + + + + + + + + + + + + + + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32s + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32s + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32sd + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + glew32sd + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ../../include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + false + + + 0x0409 + NDEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX86 + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ../../include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + false + + + 0x0409 + NDEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX64 + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;_DEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + EnableFastChecks + false + + + 0x0409 + _DEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX86 + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;_DEBUG;_LIB;WIN32_LEAN_AND_MEAN;GLEW_STATIC;%(PreprocessorDefinitions) + EnableFastChecks + false + + + 0x0409 + _DEBUG;GLEW_STATIC;%(PreprocessorDefinitions) + + + true + + + true + $(OutDir)$(TargetName)$(TargetExt) + MachineX64 + + + + + ../../include;%(AdditionalIncludeDirectories) + + + + + ../../include;%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc15/glewinfo.vcxproj b/vendor/glew-cmake-2.2.0/build/vc15/glewinfo.vcxproj new file mode 100644 index 0000000..3ee607c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc15/glewinfo.vcxproj @@ -0,0 +1,261 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {8EFB5DCB-C0C4-1670-5938-A0E0F1A1C5EA} + + + + Application + + + Application + + + Application + false + v141 + + + Application + false + v141 + + + Application + false + v141 + + + Application + false + v141 + + + + + + + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + glewinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + glewinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + glewinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;opengl32.lib;libvcruntime.lib;msvcrt.lib;%(AdditionalDependencies) + libcmt + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\glewinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;opengl32.lib;libvcruntime.lib;msvcrt.lib;%(AdditionalDependencies) + libcmt + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + + + + {664e6f0d-6784-4760-9565-d54f8eb1edf4} + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc15/visualinfo.vcxproj b/vendor/glew-cmake-2.2.0/build/vc15/visualinfo.vcxproj new file mode 100644 index 0000000..e53e338 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc15/visualinfo.vcxproj @@ -0,0 +1,260 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {79AA8443-86F4-649A-0BEB-0CB5E51B7D7E} + + + + Application + + + Application + + + Application + false + v141 + + + Application + false + v141 + + + Application + false + v141 + + + Application + false + v141 + + + + + + + + + + + + + + + + + + + + + + + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfod + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + false + visualinfo + + + $(BIN_DIR)\$(Configuration)\$(PlatformName)\ + visualinfo + tmp\$(TargetName)\$(Configuration)\$(PlatformName)\ + + + ..\..\bin/ + visualinfo + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + + + true + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;glu32.lib;opengl32.lib;libvcruntime.lib;msvcrt.lib;%(AdditionalDependencies) + libcmt + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + MultiThreaded + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + WIN32;WIN32_LEAN_AND_MEAN;GLEW_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + .\..\..\bin\visualinfo.tlb + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + + + true + Console + $(OutDir)$(TargetName)$(TargetExt) + glew32s.lib;glu32.lib;opengl32.lib;libvcruntime.lib;msvcrt.lib;%(AdditionalDependencies) + libcmt + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + + + + + + + $(OutDir)$(TargetName)$(TargetExt) + glew32sd.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies) + $(LIB_DIR)\$(Configuration)\$(PlatformName)\ + + + + + + + + {664e6f0d-6784-4760-9565-d54f8eb1edf4} + + + + + + + + + \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/build/vc6/Makefile b/vendor/glew-cmake-2.2.0/build/vc6/Makefile new file mode 100644 index 0000000..5a4f5d6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc6/Makefile @@ -0,0 +1,21 @@ +MSDEV := msdev +RM := rm -rf + +default: + $(MSDEV) glew.dsw /make \ + "glew_static - Win32 Release" \ + "glew_shared - Win32 Release" \ + "glewinfo - Win32 Release" \ + "visualinfo - Win32 Release" /build + +debug: + $(MSDEV) glew.dsw /make \ + "glew_static - Win32 Debug" \ + "glew_shared - Win32 Debug" \ + "glewinfo - Win32 Debug" \ + "visualinfo - Win32 Debug" /build + + +clean: + $(MSDEV) glew.dsw /make all /clean + $(RM) static shared *.plg *.ncb *.opt diff --git a/vendor/glew-cmake-2.2.0/build/vc6/glew.dsw b/vendor/glew-cmake-2.2.0/build/vc6/glew.dsw new file mode 100644 index 0000000..c201779 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc6/glew.dsw @@ -0,0 +1,71 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "glew_shared"=.\glew_shared.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "glew_static"=.\glew_static.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "glewinfo"=.\glewinfo.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name glew_static + End Project Dependency +}}} + +############################################################################### + +Project: "visualinfo"=.\visualinfo.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name glew_static + End Project Dependency +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/vendor/glew-cmake-2.2.0/build/vc6/glew_shared.dsp b/vendor/glew-cmake-2.2.0/build/vc6/glew_shared.dsp new file mode 100644 index 0000000..8b576b8 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc6/glew_shared.dsp @@ -0,0 +1,122 @@ +# Microsoft Developer Studio Project File - Name="glew_shared" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=glew_shared - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "glew_shared.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "glew_shared.mak" CFG="glew_shared - Win32 Debug MX" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "glew_shared - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "glew_shared - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "glew_shared - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../lib" +# PROP Intermediate_Dir "shared/release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GLEW_EXPORTS" /YX /FD /c /GS- +# ADD CPP /nologo /W3 /O2 /I "../../include" /D "WIN32" /D "WIN32_LEAN_AND_MEAN" /D "VC_EXTRALEAN" /D "GLEW_BUILD" /YX /FD /c /GS- +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 opengl32.lib /nologo /dll /pdb:none /machine:I386 /out:"../../bin/glew32.dll" /ignore:4089 +# ADD LINK32 /base:0x62AA0000 /nodefaultlib /noentry + +!ELSEIF "$(CFG)" == "glew_shared - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../lib" +# PROP Intermediate_Dir "shared/debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GLEW_EXPORTS" /YX /FD /GZ /c /GS- +# ADD CPP /nologo /MDd /W3 /Zi /Od /I "../../include" /D "WIN32" /D "WIN32_MEAN_AND_LEAN" /D "VC_EXTRALEAN" /D "GLEW_BUILD" /YX /FD /GZ /c /GS- +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 opengl32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"../../bin/glew32d.dll" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none +# ADD LINK32 /base:0x62AA0000 + +!ENDIF + +# Begin Target + +# Name "glew_shared - Win32 Release" +# Name "glew_shared - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\src\glew.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\include\GL\glew.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\GL\wglew.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\glew.rc +# End Source File +# End Group +# End Target +# End Project diff --git a/vendor/glew-cmake-2.2.0/build/vc6/glew_static.dsp b/vendor/glew-cmake-2.2.0/build/vc6/glew_static.dsp new file mode 100644 index 0000000..d6bd3d6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc6/glew_static.dsp @@ -0,0 +1,112 @@ +# Microsoft Developer Studio Project File - Name="glew_static" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=glew_static - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "glew_static.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "glew_static.mak" CFG="glew_static - Win32 Debug MX" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "glew_static - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "glew_static - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "glew_static - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../lib" +# PROP Intermediate_Dir "static/release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c /GS- +# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "WIN32_LEAN_AND_MEAN" /D "VC_EXTRALEAN" /D "GLEW_STATIC" /YX /FD /c /GS- +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" /d "GLEW_STATIC" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"../../lib/glew32s.lib" + +!ELSEIF "$(CFG)" == "glew_static - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../lib" +# PROP Intermediate_Dir "static/debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "WIN32_LEAN_AND_MEAN" /D "VC_EXTRALEAN" /D "GLEW_STATIC" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" /d "GLEW_STATIC" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"../../lib/glew32sd.lib" + +!ENDIF + +# Begin Target + +# Name "glew_static - Win32 Release" +# Name "glew_static - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\src\glew.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\include\GL\glew.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\GL\wglew.h +# End Source File +# End Group +# Begin Group "Resources" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\glew.rc +# End Source File +# End Group +# End Target +# End Project diff --git a/vendor/glew-cmake-2.2.0/build/vc6/glewinfo.dsp b/vendor/glew-cmake-2.2.0/build/vc6/glewinfo.dsp new file mode 100644 index 0000000..95a599d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc6/glewinfo.dsp @@ -0,0 +1,103 @@ +# Microsoft Developer Studio Project File - Name="glewinfo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=glewinfo - Win32 Debug MX +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "glewinfo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "glewinfo.mak" CFG="glewinfo - Win32 Debug MX" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "glewinfo - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "glewinfo - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "glewinfo - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../bin" +# PROP Intermediate_Dir "static/release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "WIN32_MEAN_AND_LEAN" /D "VC_EXTRALEAN" /D "GLEW_STATIC" /D "_CRT_SECURE_NO_WARNINGS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 ../../lib/glew32s.lib opengl32.lib gdi32.lib user32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "glewinfo - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../bin" +# PROP Intermediate_Dir "static/debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /D "WIN32" /D "WIN32_LEAN_AND_MEAN" /D "VC_EXTRA_LEAN" /D "GLEW_STATIC" /D "_CRT_SECURE_NO_WARNINGS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ../../lib/glew32sd.lib opengl32.lib gdi32.lib user32.lib /nologo /subsystem:console /incremental:no /pdb:"static/debug/glewinfod.pdb" /debug /machine:I386 /out:"../../bin/glewinfod.exe" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "glewinfo - Win32 Release" +# Name "glewinfo - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\src\glewinfo.c +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\glewinfo.rc +# End Source File +# End Group +# End Target +# End Project diff --git a/vendor/glew-cmake-2.2.0/build/vc6/visualinfo.dsp b/vendor/glew-cmake-2.2.0/build/vc6/visualinfo.dsp new file mode 100644 index 0000000..adcc814 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/build/vc6/visualinfo.dsp @@ -0,0 +1,103 @@ +# Microsoft Developer Studio Project File - Name="visualinfo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=visualinfo - Win32 Debug MX +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "visualinfo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "visualinfo.mak" CFG="visualinfo - Win32 Debug MX" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "visualinfo - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "visualinfo - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "visualinfo - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../bin" +# PROP Intermediate_Dir "static/release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "WIN32_MEAN_AND_LEAN" /D "VC_EXTRALEAN" /D "GLEW_STATIC" /D "_CRT_SECURE_NO_WARNINGS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 ../../lib/glew32s.lib glu32.lib opengl32.lib gdi32.lib user32.lib kernel32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "visualinfo - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../bin" +# PROP Intermediate_Dir "static/debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /D "WIN32" /D "WIN32_LEAN_AND_MEAN" /D "VC_EXTRA_LEAN" /D "GLEW_STATIC" /D "_CRT_SECURE_NO_WARNINGS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ../../lib/glew32sd.lib glu32.lib opengl32.lib gdi32.lib user32.lib kernel32.lib /nologo /subsystem:console /incremental:no /pdb:"static/debug/visualinfod.pdb" /debug /machine:I386 /out:"../../bin/visualinfod.exe" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "visualinfo - Win32 Release" +# Name "visualinfo - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\src\visualinfo.c +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\visualinfo.rc +# End Source File +# End Group +# End Target +# End Project diff --git a/vendor/glew-cmake-2.2.0/cmake-testbuild.sh b/vendor/glew-cmake-2.2.0/cmake-testbuild.sh new file mode 100644 index 0000000..fbbc339 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/cmake-testbuild.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +# This script tests the CMake build: +# +# - builds the main CMakeLists.txt +# - builds and runs a small test app in a separate build tree so +# the config-module is tested, too +# +# Options (environment variables): +# +# - The variable BUILD_SHARED_LIBS will be forwarded to the CMake project +# that builds and installs the GLEW libraries. Set BUILD_SHARED_LIBS to +# ON or OFF to install only static or shared libs. Leave it unset to +# install both. +# +# Note: BUILD_SHARED_LIBS controls only what to install not what to build. +# +# - GLEW_USE_STATIC_LIBS will be forwarded to the test project that calls +# `find_package` to find GLEW. Set GLEW_USE_STATIC LIBS to ON or OFF force +# finding the shared or static versions of GLEW. Leave it unset to find +# the shared or what is available. +# +# Examples: +# +# Build & install shared + static, find default (shared) +# +# ./cmake-testbuild.sh +# +# Build & install shared + static, find static +# +# GLEW_USE_STATIC_LIBS=ON ./cmake-testbuild.sh +# +# Install static only (still build both) +# +# BUILD_SHARED_LIBS=OFF ./cmake-testbuild.sh +# + +set -ex + +rm -rf out/include +rm -rf out/lib* +rm -rf out/bin + +if [ -n "$BUILD_SHARED_LIBS" ]; then + bsl=-DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS +else + bsl=-UBUILD_SHARED_LIBS +fi + +if [ -n "$GLEW_USE_STATIC_LIBS" ]; then + gusl=-DGLEW_USE_STATIC_LIBS=$GLEW_USE_STATIC_LIBS +else + gusl=-UGLEW_USE_STATIC_LIBS +fi + +cmake -Hbuild/cmake -Bout/build/glew -DCMAKE_INSTALL_PREFIX=${PWD}/out -DCMAKE_BUILD_TYPE=Debug $bsl +cmake --build out/build/glew --target install --config Debug +cmake out/build/glew -DCMAKE_BUILD_TYPE=Release +cmake --build out/build/glew --target install --config Release --clean-first + +cmake -Hbuild/cmake/testbuild -Bout/build/cmake-testbuild -DCMAKE_INSTALL_PREFIX=${PWD}/out -DCMAKE_PREFIX_PATH=${PWD}/out -DCMAKE_BUILD_TYPE=Debug $gusl +cmake --build out/build/cmake-testbuild --target install --config Debug + +cmake out/build/cmake-testbuild -DCMAKE_BUILD_TYPE=Release +cmake --build out/build/cmake-testbuild --target install --config Release --clean-first + +export LD_LIBRARY_PATH=${PWD}/out/lib:$LD_LIBRARY_PATH +export DYLD_LIBRARY_PATH=${PWD}/out/lib:$DYLD_LIBRARY_PATH + +out/bin/cmake-test_d +out/bin/cmake-test diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.cygming b/vendor/glew-cmake-2.2.0/config/Makefile.cygming new file mode 100644 index 0000000..dcd7b21 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.cygming @@ -0,0 +1,21 @@ +NAME = glew32 +GLEW_DEST = /usr +BINDIR = /usr/bin +LIBDIR = /usr/lib/mingw +INCDIR = /usr/include/mingw/GL +# use gcc for linking, with ld it does not work +CC := gcc -mno-cygwin +LD := gcc -mno-cygwin +LN := +LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 +LDFLAGS.EXTRA = -L$(LIBDIR) +CFLAGS.EXTRA += -fno-builtin -fno-stack-protector +LDFLAGS.EXTRA += -nostdlib +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = .exe +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.STATIC = lib$(NAME).a # the static lib will be broken +LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.cygwin b/vendor/glew-cmake-2.2.0/config/Makefile.cygwin new file mode 100644 index 0000000..f4be222 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.cygwin @@ -0,0 +1,20 @@ +NAME = GLEW +GLEW_DEST ?= /usr +# use gcc for linking, with ld it does not work +CC := cc +LD := cc +LN := +CFLAGS.EXTRA += -D_WIN32 +LDFLAGS.EXTRA = +LIBDIR = $(GLEW_DEST)/lib +LDFLAGS.GL = -lOpenGL32 -mwindows +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = .exe +LIB.SONAME = cyg$(NAME)-$(GLEW_MAJOR)-$(GLEW_MINOR).dll +LIB.DEVLNK = lib$(NAME).dll.a +LIB.SHARED = cyg$(NAME)-$(GLEW_MAJOR)-$(GLEW_MINOR).dll +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.cygwin-x11 b/vendor/glew-cmake-2.2.0/config/Makefile.cygwin-x11 new file mode 100644 index 0000000..bc7e2fd --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.cygwin-x11 @@ -0,0 +1,19 @@ +NAME = GLEW +GLEW_DEST ?= /usr +# use gcc for linking, with ld it does not work +CC := cc +LD := cc +LN := +LDFLAGS.EXTRA = +LIBDIR = $(GLEW_DEST)/lib +LDFLAGS.GL = -lGL -lX11 +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = .exe +LIB.SONAME = cyg$(NAME)-$(GLEW_MAJOR)-$(GLEW_MINOR).dll +LIB.DEVLNK = lib$(NAME).dll.a +LIB.SHARED = cyg$(NAME)-$(GLEW_MAJOR)-$(GLEW_MINOR).dll +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.darwin b/vendor/glew-cmake-2.2.0/config/Makefile.darwin new file mode 100644 index 0000000..8030f05 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.darwin @@ -0,0 +1,27 @@ +GLEW_DEST = /usr/local +NAME = $(GLEW_NAME) +CC = cc +LD = cc +CFLAGS.EXTRA += -dynamic -fno-common +CFLAGS.EXTRA += -pedantic +CFLAGS.EXTRA += -fPIC +LDFLAGS.EXTRA = +ifneq (undefined, $(origin GLEW_APPLE_GLX)) +CFLAGS.EXTRA += -std=c99 +CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' +LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 +else +CFLAGS.EXTRA += -std=c89 +GLEW_NO_GLU = -DGLEW_NO_GLU +LDFLAGS.GL = -framework OpenGL +endif +LDFLAGS.STATIC = +LDFLAGS.DYNAMIC = +WARN = -Wall -W +POPT = -Os +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib +LIB.DEVLNK = lib$(NAME).dylib +LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.darwin-gcc6 b/vendor/glew-cmake-2.2.0/config/Makefile.darwin-gcc6 new file mode 100644 index 0000000..ecb61b3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.darwin-gcc6 @@ -0,0 +1,31 @@ +# For building with Brew gcc: +# $ brew install gcc +GLEW_DEST = /usr/local +NAME = $(GLEW_NAME) +CC = gcc-6 +LD = gcc-6 +CFLAGS.EXTRA += -dynamic -fno-common +CFLAGS.EXTRA += -fPIC +# Lots of warnings with -pedantic +# warning: ISO C forbids conversion of object pointer to function pointer type +#CFLAGS.EXTRA += -pedantic +LDFLAGS.EXTRA = +ifneq (undefined, $(origin GLEW_APPLE_GLX)) +CFLAGS.EXTRA += -std=c99 +CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' +LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 +else +CFLAGS.EXTRA += -std=c89 +GLEW_NO_GLU = -DGLEW_NO_GLU +LDFLAGS.GL = -framework OpenGL +endif +LDFLAGS.STATIC = +LDFLAGS.DYNAMIC = +WARN = -Wall -W +POPT = -Os +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib +LIB.DEVLNK = lib$(NAME).dylib +LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.darwin-ppc b/vendor/glew-cmake-2.2.0/config/Makefile.darwin-ppc new file mode 100644 index 0000000..7a41736 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.darwin-ppc @@ -0,0 +1,30 @@ +# Note: Mac PPC is obsolete but the configuration +# is here for reference. +GLEW_DEST = /usr/local +NAME = $(GLEW_NAME) +CC = cc +LD = cc +CFLAGS.EXTRA += -arch ppc +CFLAGS.EXTRA += -dynamic -fno-common +CFLAGS.EXTRA += -pedantic +CFLAGS.EXTRA += -fPIC +LDFLAGS.EXTRA = -arch ppc +ifneq (undefined, $(origin GLEW_APPLE_GLX)) +CFLAGS.EXTRA += -std=c99 +CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' +LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 +else +CFLAGS.EXTRA += -std=c89 +GLEW_NO_GLU = -DGLEW_NO_GLU +LDFLAGS.GL = -framework OpenGL +endif +LDFLAGS.STATIC = +LDFLAGS.DYNAMIC = +WARN = -Wall -W +POPT = -Os +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib +LIB.DEVLNK = lib$(NAME).dylib +LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.darwin-universal b/vendor/glew-cmake-2.2.0/config/Makefile.darwin-universal new file mode 100644 index 0000000..fdbf30a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.darwin-universal @@ -0,0 +1,33 @@ +# +# Needs to be clang toolchain for universal: -arch x86_64 -arch arm64 +# +GLEW_DEST = /usr/local +NAME = $(GLEW_NAME) +CC = cc +LD = cc +AR = +LIBTOOL = libtool -static -o +STRIP = +CFLAGS.EXTRA = -dynamic -fno-common +CFLAGS.EXTRA += -pedantic +CFLAGS.EXTRA += -fPIC +CFLAGS.EXTRA += -arch x86_64 -arch arm64 +LDFLAGS.EXTRA = -arch x86_64 -arch arm64 +ifneq (undefined, $(origin GLEW_APPLE_GLX)) +CFLAGS.EXTRA += -std=c99 +CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' +LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 +else +CFLAGS.EXTRA += -std=c89 +GLEW_NO_GLU = -DGLEW_NO_GLU +LDFLAGS.GL = -framework OpenGL +endif +LDFLAGS.DYNAMIC = +WARN = -Wall -W +POPT = -Os +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib +LIB.DEVLNK = lib$(NAME).dylib +LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.darwin-x86_64 b/vendor/glew-cmake-2.2.0/config/Makefile.darwin-x86_64 new file mode 100644 index 0000000..dbed967 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.darwin-x86_64 @@ -0,0 +1,28 @@ +GLEW_DEST = /usr/local +NAME = $(GLEW_NAME) +CC = cc +LD = cc +CFLAGS.EXTRA += -arch x86_64 +CFLAGS.EXTRA += -dynamic -fno-common +CFLAGS.EXTRA += -pedantic +CFLAGS.EXTRA += -fPIC +LDFLAGS.EXTRA = -arch x86_64 +ifneq (undefined, $(origin GLEW_APPLE_GLX)) +CFLAGS.EXTRA += -std=c99 +CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' +LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 +else +CFLAGS.EXTRA += -std=c89 +GLEW_NO_GLU = -DGLEW_NO_GLU +LDFLAGS.GL = -framework OpenGL +endif +LDFLAGS.STATIC = +LDFLAGS.DYNAMIC = +WARN = -Wall -W +POPT = -Os +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib +LIB.DEVLNK = lib$(NAME).dylib +LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.fedora-mingw32 b/vendor/glew-cmake-2.2.0/config/Makefile.fedora-mingw32 new file mode 100644 index 0000000..9bad92a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.fedora-mingw32 @@ -0,0 +1,12 @@ +# For cross-compiling from Linux to Windows x86 using mingw32 +# http://www.mingw.org/ +# +# $ make SYSTEM=fedora-mingw32 + +include config/Makefile.linux-mingw32 + +CC := i686-pc-mingw32-gcc +LD := i686-pc-mingw32-ld +LDFLAGS.GL += -L/usr/i686-pc-mingw32/sys-root/mingw/lib +CFLAGS.EXTRA += -fno-builtin -fno-stack-protector +LDFLAGS.EXTRA += -nostdlib diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.flatpak-32 b/vendor/glew-cmake-2.2.0/config/Makefile.flatpak-32 new file mode 100644 index 0000000..2c106de --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.flatpak-32 @@ -0,0 +1,24 @@ +NAME = $(GLEW_NAME) +CC = /usr/lib/sdk/toolchain-i386/bin/i686-unknown-linux-gnu-gcc -m32 -L/lib/i386-linux-gnu +LD = /usr/lib/sdk/toolchain-i386/bin/i686-unknown-linux-gnu-gcc -m32 -L/lib/i386-linux-gnu +LDFLAGS.EXTRA += -m32 +LDFLAGS.EXTRA += -L/lib/i386-linux-gnu +LIBDIR = $(GLEW_DEST)/lib32 +LDFLAGS.GL = -lGL -lX11 +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +WARN += -Wall -W +WARN += -Wshadow +WARN += -pedantic +POPT = -O2 +CFLAGS.EXTRA += -m32 +CFLAGS.EXTRA += -fPIC +CFLAGS.EXTRA += -Wcast-qual +CFLAGS.EXTRA += -ansi -pedantic +CFLAGS.EXTRA += -fno-stack-protector +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -m32 -shared -Wl,-soname=$(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.freebsd b/vendor/glew-cmake-2.2.0/config/Makefile.freebsd new file mode 100644 index 0000000..0ef81ce --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.freebsd @@ -0,0 +1,19 @@ +# As of FreeBSD12 X11 is in /usr/local + +NAME = $(GLEW_NAME) +CC = cc +LD = ld +LDFLAGS.EXTRA = -L/usr/local/lib +LDFLAGS.GL = -lGL -lX11 +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +CFLAGS.EXTRA += -I/usr/local/include -fPIC +NAME = GLEW +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -soname $(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.gnu b/vendor/glew-cmake-2.2.0/config/Makefile.gnu new file mode 100644 index 0000000..8d4f07e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.gnu @@ -0,0 +1,17 @@ +NAME = $(GLEW_NAME) +CC = cc +LD = cc +LDFLAGS.EXTRA = -L/usr/X11R6/lib +LDFLAGS.GL = -lGL -lX11 +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +NAME = GLEW +WARN = -Wall -W +POPT = -O2 +CFLAGS.EXTRA += -fPIC +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.haiku b/vendor/glew-cmake-2.2.0/config/Makefile.haiku new file mode 100644 index 0000000..b8b7bd1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.haiku @@ -0,0 +1,20 @@ +NAME = $(GLEW_NAME) +CC = cc +LD = cc + +LDFLAGS.GL = -lGL +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic + +NAME = GLEW +WARN = -Wall -W +POPT = -O2 + +BIN.SUFFIX = + +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) + diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.irix b/vendor/glew-cmake-2.2.0/config/Makefile.irix new file mode 100644 index 0000000..ef8f830 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.irix @@ -0,0 +1,17 @@ +NAME = $(GLEW_NAME) +CC = cc +LD = ld +ABI = -64# -n32 +CC += $(ABI) +LD += $(ABI) +LDFLAGS.EXTRA = +LDFLAGS.GL = -lGL -lXext -lX11 +NAME = GLEW +WARN = -fullwarn -woff 1110,1498 +POPT = -O2 -OPT:Olimit=0 +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -soname $(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.kfreebsd b/vendor/glew-cmake-2.2.0/config/Makefile.kfreebsd new file mode 100644 index 0000000..e2ff5c3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.kfreebsd @@ -0,0 +1,17 @@ +NAME = $(GLEW_NAME) +CC = cc +LD = cc +LDFLAGS.EXTRA = -L/usr/X11R6/lib +LDFLAGS.GL = -lGL -lX11 +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +NAME = GLEW +WARN = -Wall -W +POPT = -O2 +CFLAGS.EXTRA += -fPIC +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname $(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.linux b/vendor/glew-cmake-2.2.0/config/Makefile.linux new file mode 100644 index 0000000..694a98d --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.linux @@ -0,0 +1,39 @@ +NAME = $(GLEW_NAME) +CC = cc +LD = cc +M_ARCH ?= $(shell uname -m) +ARCH64 = false +ifeq (x86_64,${M_ARCH}) + ARCH64 = true +endif +ifeq (ppc64,${M_ARCH}) + ARCH64 = true +endif +ifeq (e2k,${M_ARCH}) + ARCH64 = true +endif +ifeq (${ARCH64},true) + LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64 + LIBDIR = $(GLEW_DEST)/lib64 +else + LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib + LIBDIR = $(GLEW_DEST)/lib +endif +LDFLAGS.GL = -lGL -lX11 +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +NAME = GLEW +WARN += -Wall -W +WARN += -Wshadow +WARN += -pedantic +POPT = -O2 +CFLAGS.EXTRA += -fPIC +CFLAGS.EXTRA += -Wcast-qual +CFLAGS.EXTRA += -ansi -pedantic +CFLAGS.EXTRA += -fno-stack-protector +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.linux-clang b/vendor/glew-cmake-2.2.0/config/Makefile.linux-clang new file mode 100644 index 0000000..75a43f8 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.linux-clang @@ -0,0 +1,34 @@ +NAME = $(GLEW_NAME) +CC = clang +LD = clang +M_ARCH ?= $(shell uname -m) +ARCH64 = false +ifeq (x86_64,${M_ARCH}) + ARCH64 = true +endif +ifeq (ppc64,${M_ARCH}) + ARCH64 = true +endif +ifeq (${ARCH64},true) + LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64 + LIBDIR = $(GLEW_DEST)/lib64 +else + LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib + LIBDIR = $(GLEW_DEST)/lib +endif +LDFLAGS.GL = -lGL -lX11 +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +NAME = GLEW +WARN = -Wall -W +POPT = -O2 +CFLAGS.EXTRA += -fPIC +CFLAGS.EXTRA += -Wcast-qual +CFLAGS.EXTRA += -std=c89 -pedantic +CFLAGS.EXTRA += -fno-stack-protector +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.linux-clang-egl b/vendor/glew-cmake-2.2.0/config/Makefile.linux-clang-egl new file mode 100644 index 0000000..ca06419 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.linux-clang-egl @@ -0,0 +1,4 @@ +include config/Makefile.linux-clang + +LDFLAGS.GL = -lEGL -lGL +CFLAGS.EXTRA += -DGLEW_EGL diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.linux-egl b/vendor/glew-cmake-2.2.0/config/Makefile.linux-egl new file mode 100644 index 0000000..bcdc3cb --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.linux-egl @@ -0,0 +1,4 @@ +include config/Makefile.linux + +LDFLAGS.GL = -lEGL -lGL +CFLAGS.EXTRA += -DGLEW_EGL diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.linux-egl-glvnd b/vendor/glew-cmake-2.2.0/config/Makefile.linux-egl-glvnd new file mode 100644 index 0000000..dbd6328 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.linux-egl-glvnd @@ -0,0 +1,5 @@ +include config/Makefile.linux + +LDFLAGS.GL = -lEGL -lOpenGL +CFLAGS.EXTRA += -DGLEW_EGL +GLEW_NO_GLU = -DGLEW_NO_GLU diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.linux-mingw32 b/vendor/glew-cmake-2.2.0/config/Makefile.linux-mingw32 new file mode 100644 index 0000000..5b298a5 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.linux-mingw32 @@ -0,0 +1,24 @@ +# For cross-compiling from Linux to Windows 32-bit using mingw32 +# http://mingw-w64.org/ +# +# Ubuntu/Debian: +# $ sudo apt install mingw-w64 +# $ make SYSTEM=linux-mingw32 + +NAME := glew32 +HOST := i686-w64-mingw32 +GLEW_DEST ?= /usr/local/$(HOST) +CC := $(HOST)-gcc +LD := $(HOST)-ld +LN := +STRIP := +LDFLAGS.GL = -L/usr/$(HOST)/lib -lopengl32 -lgdi32 -luser32 -lkernel32 +CFLAGS.EXTRA += -fno-builtin -fno-stack-protector -Wno-cast-function-type +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = .exe +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.STATIC = lib$(NAME).a # the static lib will be broken +LDFLAGS.SO = -nostdlib -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.linux-mingw64 b/vendor/glew-cmake-2.2.0/config/Makefile.linux-mingw64 new file mode 100644 index 0000000..4168df6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.linux-mingw64 @@ -0,0 +1,24 @@ +# For cross-compiling from Linux to Windows 64-bit using mingw64 +# http://mingw-w64.org/ +# +# Ubuntu/Debian: +# $ sudo apt install mingw-w64 +# $ make SYSTEM=linux-mingw64 + +NAME := glew32 +HOST := x86_64-w64-mingw32 +GLEW_DEST ?= /usr/local/$(HOST) +CC := $(HOST)-gcc +LD := $(HOST)-ld +LN := +STRIP := +LDFLAGS.GL = -L/usr/$(HOST)/lib -lopengl32 -lgdi32 -luser32 -lkernel32 +CFLAGS.EXTRA += -fno-builtin -fno-stack-protector -Wno-cast-function-type +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = .exe +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.STATIC = lib$(NAME).a # the static lib will be broken +LDFLAGS.SO = -nostdlib -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.linux-osmesa b/vendor/glew-cmake-2.2.0/config/Makefile.linux-osmesa new file mode 100644 index 0000000..c957872 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.linux-osmesa @@ -0,0 +1,4 @@ +include config/Makefile.linux + +LDFLAGS.GL = -lOSMesa +CFLAGS.EXTRA += -DGLEW_OSMESA diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.mingw b/vendor/glew-cmake-2.2.0/config/Makefile.mingw new file mode 100644 index 0000000..3f413ee --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.mingw @@ -0,0 +1,17 @@ +NAME = glew32 +# use gcc for linking, with ld it does not work +CC := gcc -fno-builtin +LD := gcc +LN := +LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 +LDFLAGS.EXTRA = -L/mingw/lib +CFLAGS.EXTRA += -fno-builtin -fno-stack-protector +LDFLAGS.EXTRA += -nostdlib +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = .exe +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.STATIC = lib$(NAME).a # the static lib will be broken +LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.mingw-win32 b/vendor/glew-cmake-2.2.0/config/Makefile.mingw-win32 new file mode 100644 index 0000000..347efd6 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.mingw-win32 @@ -0,0 +1,5 @@ +include config/Makefile.mingw + +POPT := -march=i686 -mtune=generic -O2 +CFLAGS.EXTRA += -m32 +LDFLAGS.EXTRA += -m32 diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.msys b/vendor/glew-cmake-2.2.0/config/Makefile.msys new file mode 100644 index 0000000..d6fc680 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.msys @@ -0,0 +1,20 @@ +NAME = glew32 +# use gcc for linking, with ld it does not work +CC := gcc +LD := gcc +LN := +CFLAGS.EXTRA += -D_WIN32 +LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 +LDFLAGS.EXTRA = +CFLAGS.EXTRA += -fno-builtin -fno-stack-protector +LIBDIR = $(GLEW_DEST)/bin +WARN += -Wall -W +WARN += -Wno-cast-function-type +POPT = -O2 +BIN.SUFFIX = .exe +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.SHARED.DIR = bin +LIB.STATIC = lib$(NAME).a # the static lib will be broken +LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.msys-win32 b/vendor/glew-cmake-2.2.0/config/Makefile.msys-win32 new file mode 100644 index 0000000..160d3eb --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.msys-win32 @@ -0,0 +1,5 @@ +include config/Makefile.msys + +POPT := -march=i686 -mtune=generic -O2 +CFLAGS.EXTRA += -m32 +LDFLAGS.EXTRA += -m32 diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.msys-win64 b/vendor/glew-cmake-2.2.0/config/Makefile.msys-win64 new file mode 100644 index 0000000..c1c785a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.msys-win64 @@ -0,0 +1,5 @@ +include config/Makefile.msys + +POPT := -mtune=generic -O2 +CFLAGS.EXTRA += -m64 +LDFLAGS.EXTRA += -m64 diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.nacl-32 b/vendor/glew-cmake-2.2.0/config/Makefile.nacl-32 new file mode 100644 index 0000000..2182cee --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.nacl-32 @@ -0,0 +1,31 @@ +NAME = $(REGAL_NAME) + +M_PREFIX = i686 +M_NAME ?= $(shell uname -s) +ifeq (Linux,${M_NAME}) +M_PREFIX = i686 +endif + +CC = $(M_PREFIX)-nacl-gcc +CXX = $(M_PREFIX)-nacl-g++ +LD = $(M_PREFIX)-nacl-ld +STRIP ?= +EXT.DYNAMIC = so +LDFLAGS.EXTRA = +LIBDIR = +CFLAGS.EXTRA += -fPIC +CFLAGS.EXTRA += -m32 +LDFLAGS.EXTRA += -melf_nacl +LDFLAGS.GL = +LDFLAGS.GLU = -lRegalGLU +LDFLAGS.GLUT = -lRegalGLUT +LDFLAGS.STATIC = +LDFLAGS.DYNAMIC = -shared +WARN = -Wall -W -Wno-unused-parameter +POPT = -O2 +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = $(LDFLAGS.DYNAMIC) -soname=$(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.nacl-64 b/vendor/glew-cmake-2.2.0/config/Makefile.nacl-64 new file mode 100644 index 0000000..d6135ea --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.nacl-64 @@ -0,0 +1,31 @@ +NAME = $(REGAL_NAME) + +M_PREFIX = i686 +M_NAME ?= $(shell uname -s) +ifeq (Linux,${M_NAME}) +M_PREFIX = i686 +endif + +CC = $(M_PREFIX)-nacl-gcc +CXX = $(M_PREFIX)-nacl-g++ +LD = $(M_PREFIX)-nacl-ld +STRIP ?= +EXT.DYNAMIC = so +LDFLAGS.EXTRA = +LIBDIR = +CFLAGS.EXTRA += -fPIC +CFLAGS.EXTRA += -m64 +LDFLAGS.EXTRA += -melf64_nacl +LDFLAGS.GL = +LDFLAGS.GLU = -lRegalGLU +LDFLAGS.GLUT = -lRegalGLUT +LDFLAGS.STATIC = +LDFLAGS.DYNAMIC = -shared +WARN = -Wall -W -Wno-unused-parameter +POPT = -O2 +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = $(LDFLAGS.DYNAMIC) -soname=$(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.netbsd b/vendor/glew-cmake-2.2.0/config/Makefile.netbsd new file mode 100644 index 0000000..d2db8a9 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.netbsd @@ -0,0 +1,17 @@ +NAME = $(GLEW_NAME) +CC = cc +LD = ld +LDFLAGS.EXTRA = -L/usr/X11R7/lib -R /usr/X11R7/lib +LDFLAGS.GL = -lGL -lX11 +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +CFLAGS.EXTRA += -I/usr/X11R7/include -fPIC +NAME = GLEW +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -soname $(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.openbsd b/vendor/glew-cmake-2.2.0/config/Makefile.openbsd new file mode 100644 index 0000000..b64910c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.openbsd @@ -0,0 +1,17 @@ +NAME = $(GLEW_NAME) +CC = cc +LD = ld +LDFLAGS.EXTRA = -L/usr/X11R6/lib +LDFLAGS.GL = -lGLU -lGL -lX11 -lm +LDFLAGS.STATIC = -Wl,-Bstatic +LDFLAGS.DYNAMIC = -Wl,-Bdynamic +CFLAGS.EXTRA += -I/usr/X11R6/include +NAME = GLEW +WARN = -Wall -W +POPT = -O2 +BIN.SUFFIX = +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -soname $(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.solaris b/vendor/glew-cmake-2.2.0/config/Makefile.solaris new file mode 100644 index 0000000..bb2455f --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.solaris @@ -0,0 +1,14 @@ +NAME = $(GLEW_NAME) +CC = cc +LD = ld +CFLAGS.EXTRA = -I/usr/openwin/include -Kpic +LDFLAGS.SO = -G +LDFLAGS.EXTRA = -L/usr/openwin/lib +LDFLAGS.GL = -lGL -lX11 +NAME = GLEW +BIN.SUFFIX = +POPT = -xO2 +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a diff --git a/vendor/glew-cmake-2.2.0/config/Makefile.solaris-gcc b/vendor/glew-cmake-2.2.0/config/Makefile.solaris-gcc new file mode 100644 index 0000000..24a8531 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/Makefile.solaris-gcc @@ -0,0 +1,15 @@ +NAME = $(GLEW_NAME) +CC = gcc +LD = ld +CFLAGS.EXTRA = -I/usr/openwin/include -fPIC +LDFLAGS.SO = -G +LDFLAGS.EXTRA = -L/usr/openwin/lib +LDFLAGS.GL = -lGL -lX11 +NAME = GLEW +BIN.SUFFIX = +POPT = -O2 +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) diff --git a/vendor/glew-cmake-2.2.0/config/config.guess b/vendor/glew-cmake-2.2.0/config/config.guess new file mode 100644 index 0000000..1972fda --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/config.guess @@ -0,0 +1,1700 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2021 Free Software Foundation, Inc. + +timestamp='2021-01-25' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +me=$(echo "$0" | sed -e 's,.*/,,') + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown +UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown +UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown +UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)) + case "$UNAME_MACHINE_ARCH" in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') + endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi-}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') + ;; + *5.*) + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "$( (/bin/universe) 2>/dev/null)" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case $(/usr/bin/uname -p) in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:*:*) + case "$(/usr/bin/arch -k)" in + Series*|S4*) + UNAME_RELEASE=$(uname -v) + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "$(/bin/arch)" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && + SYSTEM_NAME=$("$dummy" "$dummyarg") && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=$(/usr/bin/uname -p) + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=$(/usr/bin/oslevel) + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) + sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + echo ia64-hp-hpux"$HPUX_REV" + exit ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk + else + echo "$UNAME_MACHINE"-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:BSD/OS:*:*) + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=$(uname -p) + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + fi + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=$(/usr/bin/uname -p) + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*:PW*:*) + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-pc-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + *:GNU:*:*) + # the GNU system + echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" + exit ;; + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case $(/bin/uname -X | grep "^Machine") in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=$(sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=$(uname -p) + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=$(uname -p) + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + # shellcheck disable=SC2154 + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + *:AROS:*:*) + echo "$UNAME_MACHINE"-unknown-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; +esac + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown) +uname -r = $( (uname -r) 2>/dev/null || echo unknown) +uname -s = $( (uname -s) 2>/dev/null || echo unknown) +uname -v = $( (uname -v) 2>/dev/null || echo unknown) + +/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) +/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) + +hostinfo = $( (hostinfo) 2>/dev/null) +/bin/universe = $( (/bin/universe) 2>/dev/null) +/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) +/bin/arch = $( (/bin/arch) 2>/dev/null) +/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) +/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/vendor/glew-cmake-2.2.0/config/version b/vendor/glew-cmake-2.2.0/config/version new file mode 100644 index 0000000..10f22c3 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/config/version @@ -0,0 +1,7 @@ +GLEW_MAJOR = 2 +GLEW_MINOR = 2 +GLEW_MICRO = 0 +GLEW_VERSION = $(GLEW_MAJOR).$(GLEW_MINOR).$(GLEW_MICRO) +GLEW_NAME = GLEW +SO_MAJOR = $(GLEW_MAJOR).$(GLEW_MINOR) +SO_VERSION = $(GLEW_VERSION) diff --git a/vendor/glew-cmake-2.2.0/doc/advanced.html b/vendor/glew-cmake-2.2.0/doc/advanced.html new file mode 100644 index 0000000..4c219fc --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/advanced.html @@ -0,0 +1,230 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Automatic Code Generation

+ +

+Starting from release 1.1.0, the source code and parts of the +documentation are automatically generated from the extension +specifications in a two-step process. In the first step, +specification files from the OpenGL registry are downloaded and +parsed. Skeleton descriptors are created for each extension. These +descriptors contain all necessary information for creating the source +code and documentation in a simple and compact format, including the +name of the extension, url link to the specification, tokens, function +declarations, typedefs and struct definitions. In the second step, +the header files as well as the library and glewinfo source are +generated from the descriptor files. The code generation scripts are +located in the auto subdirectory. +

+ +

+The code generation scripts require GNU make, wget, and perl. On +Windows, the simplest way to get access to these tools is to install +Cygwin, but make sure that the +root directory is mounted in binary mode. The makefile in the +auto directory provides the following build targets: +

+ + + + + + + + + + + + +
makeCreate the source files from the descriptors.
If the +descriptors do not exist, create them from the spec files.
If the spec +files do not exist, download them from the OpenGL repository.
make cleanDelete the source files.
make clobberDelete the source files and the descriptors.
make destroyDelete the source files, the descriptors, and the spec files.
make customCreate the source files for the extensions +listed in auto/custom.txt.
See "Custom Code +Generation" below for more details.
+ +

Adding a New Extension

+ +

+To add a new extension, create a descriptor file for the extension in +auto/core and rerun the code generation scripts by typing +make clean; make in the auto directory. +

+ +

+The format of the descriptor file is given below. Items in +brackets are optional. +

+ +

+<Extension Name>
+[<URL of Specification File>]
+    [<Token Name> <Token Value>]
+    [<Token Name> <Token Value>]
+    ...
+    [<Typedef>]
+    [<Typedef>]
+    ...
+    [<Function Signature>]
+    [<Function Signature>]
+    ...
+ +

+ + + +

+Take a look at one of the files in auto/core for an +example. Note that typedefs and function signatures should not be +terminated with a semicolon. +

+ +

Custom Code Generation

+

+Starting from GLEW 1.3.0, it is possible to control which extensions +to include in the library by specifying a list in +auto/custom.txt. This is useful when you do not need all the +extensions and would like to reduce the size of the source files. +Type make clean; make custom in the auto directory +to rerun the scripts with the custom list of extensions. +

+ +

+For example, the following is the list of extensions needed to get GLEW and the +utilities to compile. +

+ +

+WGL_ARB_extensions_string
+WGL_ARB_multisample
+WGL_ARB_pixel_format
+WGL_ARB_pbuffer
+WGL_EXT_extensions_string
+WGL_ATI_pixel_format_float
+WGL_NV_float_buffer
+

+ +

Separate Namespace

+ +

+To avoid name clashes when linking with libraries that include the +same symbols, extension entry points are declared in a separate +namespace (release 1.1.0 and up). This is achieved by aliasing OpenGL +function names to their GLEW equivalents. For instance, +glFancyFunction is simply an alias to +glewFancyFunction. The separate namespace does not effect +token and function pointer definitions. +

+ +

Known Issues

+ +

+GLEW requires GLX 1.2 for compatibility with GLUT. +

+ + +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/basic.html b/vendor/glew-cmake-2.2.0/doc/basic.html new file mode 100644 index 0000000..2372118 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/basic.html @@ -0,0 +1,280 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Initializing GLEW

+

+First you need to create a valid OpenGL rendering context and call +glewInit() to initialize the extension entry points. If +glewInit() returns GLEW_OK, the initialization +succeeded and you can use the available extensions as well as core +OpenGL functionality. For example: +

+ +

+#include <GL/glew.h>
+#include <GL/glut.h>
+...
+glutInit(&argc, argv);
+glutCreateWindow("GLEW Test");
+GLenum err = glewInit();
+if (GLEW_OK != err)
+{
+  /* Problem: glewInit failed, something is seriously wrong. */
+  fprintf(stderr, "Error: %s\n", glewGetErrorString(err));
+  ...
+}
+fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));
+

+ +

Checking for Extensions

+ +

+Starting from GLEW 1.1.0, you can find out if a particular extension +is available on your platform by querying globally defined variables +of the form GLEW_{extension_name}: +

+ +

+if (GLEW_ARB_vertex_program)
+{
+  /* It is safe to use the ARB_vertex_program extension here. */
+  glGenProgramsARB(...);
+}
+

+ +

+In GLEW 1.0.x, a global structure was used for this task. To ensure +binary compatibility between releases, the struct was replaced with a +set of variables. +

+ +

+You can also check for core OpenGL functionality. For example, to +see if OpenGL 1.3 is supported, do the following: +

+ +

+if (GLEW_VERSION_1_3)
+{
+  /* Yay! OpenGL 1.3 is supported! */
+}
+

+ +

+In general, you can check if GLEW_{extension_name} or +GLEW_VERSION_{version} is true or false. +

+ +

+It is also possible to perform extension checks from string +input. Starting from the 1.3.0 release, use glewIsSupported +to check if the required core or extension functionality is +available: +

+ +

+if (glewIsSupported("GL_VERSION_1_4  GL_ARB_point_sprite"))
+{
+  /* Great, we have OpenGL 1.4 + point sprites. */
+}
+

+ +

+For extensions only, glewGetExtension provides a slower alternative +(GLEW 1.0.x-1.2.x). Note that in the 1.3.0 release +glewGetExtension was replaced with +glewIsSupported. +

+ +

+if (glewGetExtension("GL_ARB_fragment_program"))
+{
+  /* Looks like ARB_fragment_program is supported. */
+}
+

+ +

Experimental Drivers

+ +

+GLEW obtains information on the supported extensions from the graphics +driver. Experimental or pre-release drivers, however, might not +report every available extension through the standard mechanism, in +which case GLEW will report it unsupported. To circumvent this +situation, the glewExperimental global switch can be turned +on by setting it to GL_TRUE before calling +glewInit(), which ensures that all extensions with valid +entry points will be exposed. +

+ +

Platform Specific Extensions

+ +

+Platform specific extensions are separated into two header files: +wglew.h and glxew.h, which define the available +WGL and GLX extensions. To determine if a certain +extension is supported, query WGLEW_{extension name} or +GLXEW_{extension_name}. For example: +

+ +

+#include <GL/wglew.h>
+
+if (WGLEW_ARB_pbuffer)
+{
+  /* OK, we can use pbuffers. */
+}
+else
+{
+  /* Sorry, pbuffers will not work on this platform. */
+}
+

+ +

+Alternatively, use wglewIsSupported or +glxewIsSupported to check for extensions from a string: +

+ +

+if (wglewIsSupported("WGL_ARB_pbuffer"))
+{
+  /* OK, we can use pbuffers. */
+}
+

+ +

Utilities

+ +

+GLEW provides two command-line utilities: one for creating a list of +available extensions and visuals; and another for verifying extension +entry points. +

+ +

visualinfo: extensions and visuals

+ +

+visualinfo is an extended version of glxinfo. The +Windows version creates a file called visualinfo.txt, which +contains a list of available OpenGL, WGL, and GLU extensions as well +as a table of visuals aka. pixel formats. Pbuffer and MRT capable +visuals are also included. For additional usage information, type +visualinfo -h. +

+ +

glewinfo: extension verification utility

+ +

+glewinfo allows you to verify the entry points for the +extensions supported on your platform. The Windows version +reports the results to a text file called glewinfo.txt. The +Unix version prints the results to stdout. +

+ +

Windows usage:

+
glewinfo [-pf <id>]
+ +

where <id> is the pixel format id for which the +capabilities are displayed.

+ +

Unix usage:

+
glewinfo [-display <dpy>] [-visual <id>]
+ +

where <dpy> is the X11 display and <id> is +the visual id for which the capabilities are displayed.

+ + +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/build.html b/vendor/glew-cmake-2.2.0/doc/build.html new file mode 100644 index 0000000..491c521 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/build.html @@ -0,0 +1,149 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Building GLEW

+ +

Windows

+ +

A MS Visual Studio project is provided in the build/vc6 directory.

+

Pre-built shared and static libraries are also available for download.

+ +

Makefile

+ +

For platforms other than MS Windows, the provided Makefile is used.

+ +

Command-line variables

+ + + + + + +
SYSTEMautoTarget system to build: darwin, linux, solaris, etc.
For a full list of supported targets: ls config/Makefile.*
+config.guess is used to auto detect, as necessary.
GLEW_DEST/usrBase directory for installation.
+ +

Make targets

+ + + + + + + + + + + + +
allBuild everything.
glew.libBuild static and dynamic GLEW libraries.
glew.lib.mxBuild static and dynamic GLEWmx libraries.
glew.binBuild glewinfo and visualinfo utilities.
cleanDelete temporary and built files.
install.allInstall everything.
installInstall GLEW libraries.
install.mxInstall GLEWmx libraries.
install.binInstall glewinfo and visualinfo utilities.
uninstallDelete installed files.
+ +

Requirements

+ +
    +
  • GNU make
  • +
  • perl
  • +
  • wget
  • +
  • GNU sed
  • +
  • gcc compiler
  • +
  • git
  • +
+ +Ubuntu:
sudo apt-get install libXmu-dev libXi-dev libgl-dev dos2unix git wget
+Fedora:
sudo yum install libXmu-devel libXi-devel libGL-devel dos2unix git wget
+ +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/credits.html b/vendor/glew-cmake-2.2.0/doc/credits.html new file mode 100644 index 0000000..0f5c18e --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/credits.html @@ -0,0 +1,102 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

+Author, copyright and licensing information on github.

+ +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/github.png b/vendor/glew-cmake-2.2.0/doc/github.png new file mode 100644 index 0000000..540f7c0 Binary files /dev/null and b/vendor/glew-cmake-2.2.0/doc/github.png differ diff --git a/vendor/glew-cmake-2.2.0/doc/glew.css b/vendor/glew-cmake-2.2.0/doc/glew.css new file mode 100644 index 0000000..1bb7dd1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/glew.css @@ -0,0 +1,187 @@ +h1 +{ + color: black; + font: 23px "Verdana", "Arial", "Helvetica", sans-serif; + font-weight: bold; + text-align: center; + margin-top: 12px; + margin-bottom: 18px; +} + +h2 +{ + color: black; + font: 18px "Verdana", "Arial", "Helvetica", sans-serif; + font-weight: bold; + text-align: left; + padding-top: 0px; + padding-bottom: 0px; + margin-top: 18px; + margin-bottom: 12px; +} + +h3 +{ + color: black; + font: 17px "Verdana", "Arial", "Helvetica", sans-serif; + text-align: left; + padding-top: 0px; + padding-bottom: 0px; + margin-top: 12px; + margin-bottom: 12px; +} + +small +{ + font: 8pt "Verdana", "Arial", "Helvetica", sans-serif; +} + +body +{ + color: black; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; + text-align: left; +} + +td +{ + color: black; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; +} + +tt +{ + color: rgb(0,120,0); +} +/* color: maroon; */ + +td.num +{ + color: lightgrey; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; + text-align: right; +} + +blockquote +{ + color: rgb(0,120,0); + background: #f0f0f0; + text-align: left; + margin-left: 40px; + margin-right: 40px; + margin-bottom: 6px; + padding-bottom: 0px; + margin-top: 0px; + padding-top: 0px; + border-top: 0px; + border-width: 0px; +} + +pre +{ + color: rgb(0,120,0); + background: #f0f0f0; + text-align: left; + margin-left: 40px; + margin-right: 40px; + margin-bottom: 6px; + padding-bottom: 0px; + margin-top: 0px; + padding-top: 0px; + border-top: 0px; + border-width: 0px; +} + +p +{ + color: black; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; + text-align: left; + margin-bottom: 0px; + padding-bottom: 6px; + margin-top: 0px; + padding-top: 0px; +} + +p.right +{ + color: black; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; + text-align: right; + margin-bottom: 0px; + padding-bottom: 6px; + margin-top: 0px; + padding-top: 0px; +} + +p.pre +{ + color: rgb(0,120,0); + font: 10pt "Courier New", "Courier", monospace; + background: #f0f0f0; + text-align: left; + margin-top: 0px; + margin-bottom: 6px; + margin-left: 40px; + margin-right: 40px; + padding-top: 0px; + padding-bottom: 6px; + padding-left: 6px; + padding-right: 6px; + border-top: 0px; + border-width: 0px; +} + +a:link +{ + color: rgb(0,0,139); + text-decoration: none; +} + +a:visited +{ + color: rgb(220,20,60); + text-decoration: none; +} + +a:hover +{ + color: rgb(220,20,60); + text-decoration: underline; + background: "#e8e8e8"; +} + +ul +{ + list-style-type: disc; + text-align: left; + margin-left: 40px; + margin-top: 0px; + padding-top: 0px; + margin-bottom: 0px; + padding-bottom: 3px; +} + +ul.none +{ + list-style-type: none; +} + +ol +{ + text-align: left; + margin-left: 40px; + margin-top: 0px; + padding-top: 0px; + margin-bottom: 0px; + padding-bottom: 12px; +} + +hr +{ + color: maroon; + background-color: maroon; + height: 1px; + border: 0px; + width: 80%; +} diff --git a/vendor/glew-cmake-2.2.0/doc/glew.html b/vendor/glew-cmake-2.2.0/doc/glew.html new file mode 100644 index 0000000..a809edf --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/glew.html @@ -0,0 +1,1076 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Supported OpenGL Extensions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1 3DFX_multisample
2 3DFX_tbuffer
3 3DFX_texture_compression_FXT1

4 AMD_blend_minmax_factor
5 AMD_compressed_3DC_texture
6 AMD_compressed_ATC_texture
7 AMD_conservative_depth
8 AMD_debug_output
9 AMD_depth_clamp_separate
10 AMD_draw_buffers_blend
11 AMD_framebuffer_multisample_advanced
12 AMD_framebuffer_sample_positions
13 AMD_gcn_shader
14 AMD_gpu_shader_half_float
15 AMD_gpu_shader_half_float_fetch
16 AMD_gpu_shader_int16
17 AMD_gpu_shader_int64
18 AMD_interleaved_elements
19 AMD_multi_draw_indirect
20 AMD_name_gen_delete
21 AMD_occlusion_query_event
22 AMD_performance_monitor
23 AMD_pinned_memory
24 AMD_program_binary_Z400
25 AMD_query_buffer_object
26 AMD_sample_positions
27 AMD_seamless_cubemap_per_texture
28 AMD_shader_atomic_counter_ops
29 AMD_shader_ballot
30 AMD_shader_explicit_vertex_parameter
31 AMD_shader_image_load_store_lod
32 AMD_shader_stencil_export
33 AMD_shader_stencil_value_export
34 AMD_shader_trinary_minmax
35 AMD_sparse_texture
36 AMD_stencil_operation_extended
37 AMD_texture_gather_bias_lod
38 AMD_texture_texture4
39 AMD_transform_feedback3_lines_triangles
40 AMD_transform_feedback4
41 AMD_vertex_shader_layer
42 AMD_vertex_shader_tessellator
43 AMD_vertex_shader_viewport_index

44 ANDROID_extension_pack_es31a

45 ANGLE_depth_texture
46 ANGLE_framebuffer_blit
47 ANGLE_framebuffer_multisample
48 ANGLE_instanced_arrays
49 ANGLE_pack_reverse_row_order
50 ANGLE_program_binary
51 ANGLE_texture_compression_dxt1
52 ANGLE_texture_compression_dxt3
53 ANGLE_texture_compression_dxt5
54 ANGLE_texture_usage
55 ANGLE_timer_query
56 ANGLE_translated_shader_source

57 APPLE_aux_depth_stencil
58 APPLE_client_storage
59 APPLE_clip_distance
60 APPLE_color_buffer_packed_float
61 APPLE_copy_texture_levels
62 APPLE_element_array
63 APPLE_fence
64 APPLE_float_pixels
65 APPLE_flush_buffer_range
66 APPLE_framebuffer_multisample
67 APPLE_object_purgeable
68 APPLE_pixel_buffer
69 APPLE_rgb_422
70 APPLE_row_bytes
71 APPLE_specular_vector
72 APPLE_sync
73 APPLE_texture_2D_limited_npot
74 APPLE_texture_format_BGRA8888
75 APPLE_texture_max_level
76 APPLE_texture_packed_float
77 APPLE_texture_range
78 APPLE_transform_hint
79 APPLE_vertex_array_object
80 APPLE_vertex_array_range
81 APPLE_vertex_program_evaluators
82 APPLE_ycbcr_422

83 ARB_ES2_compatibility
84 ARB_ES3_1_compatibility
85 ARB_ES3_2_compatibility
86 ARB_ES3_compatibility
87 ARB_arrays_of_arrays
88 ARB_base_instance
89 ARB_bindless_texture
90 ARB_blend_func_extended
91 ARB_buffer_storage
92 ARB_cl_event
93 ARB_clear_buffer_object
94 ARB_clear_texture
95 ARB_clip_control
96 ARB_color_buffer_float
97 ARB_compatibility
98 ARB_compressed_texture_pixel_storage
99 ARB_compute_shader
100 ARB_compute_variable_group_size
101 ARB_conditional_render_inverted
102 ARB_conservative_depth
103 ARB_copy_buffer
104 ARB_copy_image
105 ARB_cull_distance
106 ARB_debug_output
107 ARB_depth_buffer_float
108 ARB_depth_clamp
109 ARB_depth_texture
110 ARB_derivative_control
111 ARB_direct_state_access
112 ARB_draw_buffers
113 ARB_draw_buffers_blend
114 ARB_draw_elements_base_vertex
115 ARB_draw_indirect
116 ARB_draw_instanced
117 ARB_enhanced_layouts
118 ARB_explicit_attrib_location
119 ARB_explicit_uniform_location
120 ARB_fragment_coord_conventions
121 ARB_fragment_layer_viewport
122 ARB_fragment_program
123 ARB_fragment_program_shadow
124 ARB_fragment_shader
125 ARB_fragment_shader_interlock
126 ARB_framebuffer_no_attachments
127 ARB_framebuffer_object
128 ARB_framebuffer_sRGB
129 ARB_geometry_shader4
130 ARB_get_program_binary
131 ARB_get_texture_sub_image
132 ARB_gl_spirv
133 ARB_gpu_shader5
134 ARB_gpu_shader_fp64
135 ARB_gpu_shader_int64
136 ARB_half_float_pixel
137 ARB_half_float_vertex
138 ARB_imaging
139 ARB_indirect_parameters
140 ARB_instanced_arrays
141 ARB_internalformat_query
142 ARB_internalformat_query2
143 ARB_invalidate_subdata
144 ARB_map_buffer_alignment
145 ARB_map_buffer_range
146 ARB_matrix_palette
147 ARB_multi_bind
148 ARB_multi_draw_indirect
149 ARB_multisample
150 ARB_multitexture
151 ARB_occlusion_query
152 ARB_occlusion_query2
153 ARB_parallel_shader_compile
154 ARB_pipeline_statistics_query
155 ARB_pixel_buffer_object
156 ARB_point_parameters
157 ARB_point_sprite
158 ARB_polygon_offset_clamp
159 ARB_post_depth_coverage
160 ARB_program_interface_query
161 ARB_provoking_vertex
162 ARB_query_buffer_object
163 ARB_robust_buffer_access_behavior
164 ARB_robustness
165 ARB_robustness_application_isolation
166 ARB_robustness_share_group_isolation
167 ARB_sample_locations
168 ARB_sample_shading
169 ARB_sampler_objects
170 ARB_seamless_cube_map
171 ARB_seamless_cubemap_per_texture
172 ARB_separate_shader_objects
173 ARB_shader_atomic_counter_ops
174 ARB_shader_atomic_counters
175 ARB_shader_ballot
176 ARB_shader_bit_encoding
177 ARB_shader_clock
178 ARB_shader_draw_parameters
179 ARB_shader_group_vote
180 ARB_shader_image_load_store
181 ARB_shader_image_size
182 ARB_shader_objects
183 ARB_shader_precision
184 ARB_shader_stencil_export
185 ARB_shader_storage_buffer_object
186 ARB_shader_subroutine
187 ARB_shader_texture_image_samples
188 ARB_shader_texture_lod
189 ARB_shader_viewport_layer_array
190 ARB_shading_language_100
191 ARB_shading_language_420pack
192 ARB_shading_language_include
193 ARB_shading_language_packing
194 ARB_shadow
195 ARB_shadow_ambient
196 ARB_sparse_buffer
197 ARB_sparse_texture
198 ARB_sparse_texture2
199 ARB_sparse_texture_clamp
200 ARB_spirv_extensions
201 ARB_stencil_texturing
202 ARB_sync
203 ARB_tessellation_shader
204 ARB_texture_barrier
205 ARB_texture_border_clamp
206 ARB_texture_buffer_object
207 ARB_texture_buffer_object_rgb32
208 ARB_texture_buffer_range
209 ARB_texture_compression
210 ARB_texture_compression_bptc
211 ARB_texture_compression_rgtc
212 ARB_texture_cube_map
213 ARB_texture_cube_map_array
214 ARB_texture_env_add
215 ARB_texture_env_combine
216 ARB_texture_env_crossbar
217 ARB_texture_env_dot3
218 ARB_texture_filter_anisotropic
219 ARB_texture_filter_minmax
220 ARB_texture_float
221 ARB_texture_gather
222 ARB_texture_mirror_clamp_to_edge
223 ARB_texture_mirrored_repeat
224 ARB_texture_multisample
225 ARB_texture_non_power_of_two
226 ARB_texture_query_levels
227 ARB_texture_query_lod
228 ARB_texture_rectangle
229 ARB_texture_rg
230 ARB_texture_rgb10_a2ui
231 ARB_texture_stencil8
232 ARB_texture_storage
233 ARB_texture_storage_multisample
234 ARB_texture_swizzle
235 ARB_texture_view
236 ARB_timer_query
237 ARB_transform_feedback2
238 ARB_transform_feedback3
239 ARB_transform_feedback_instanced
240 ARB_transform_feedback_overflow_query
241 ARB_transpose_matrix
242 ARB_uniform_buffer_object
243 ARB_vertex_array_bgra
244 ARB_vertex_array_object
245 ARB_vertex_attrib_64bit
246 ARB_vertex_attrib_binding
247 ARB_vertex_blend
248 ARB_vertex_buffer_object
249 ARB_vertex_program
250 ARB_vertex_shader
251 ARB_vertex_type_10f_11f_11f_rev
252 ARB_vertex_type_2_10_10_10_rev
253 ARB_viewport_array
254 ARB_window_pos

255 ARM_mali_program_binary
256 ARM_mali_shader_binary
257 ARM_rgba8
258 ARM_shader_framebuffer_fetch
259 ARM_shader_framebuffer_fetch_depth_stencil
260 ARM_texture_unnormalized_coordinates

261 ATIX_point_sprites
262 ATIX_texture_env_combine3
263 ATIX_texture_env_route
264 ATIX_vertex_shader_output_point_size

265 ATI_draw_buffers
266 ATI_element_array
267 ATI_envmap_bumpmap
268 ATI_fragment_shader
269 ATI_map_object_buffer
270 ATI_meminfo
271 ATI_pn_triangles
272 ATI_separate_stencil
273 ATI_shader_texture_lod
274 ATI_text_fragment_shader
275 ATI_texture_compression_3dc
276 ATI_texture_env_combine3
277 ATI_texture_float
278 ATI_texture_mirror_once
279 ATI_vertex_array_object
280 ATI_vertex_attrib_array_object
281 ATI_vertex_streams

282 DMP_program_binary
283 DMP_shader_binary

284 EXT_422_pixels
285 EXT_Cg_shader
286 EXT_EGL_image_array
287 EXT_EGL_image_external_wrap_modes
288 EXT_EGL_image_storage
289 EXT_EGL_image_storage_compression
290 EXT_EGL_sync
291 EXT_YUV_target
292 EXT_abgr
293 EXT_base_instance
294 EXT_bgra
295 EXT_bindable_uniform
296 EXT_blend_color
297 EXT_blend_equation_separate
298 EXT_blend_func_extended
299 EXT_blend_func_separate
300 EXT_blend_logic_op
301 EXT_blend_minmax
302 EXT_blend_subtract
303 EXT_buffer_storage
304 EXT_clear_texture
305 EXT_clip_control
306 EXT_clip_cull_distance
307 EXT_clip_volume_hint
308 EXT_cmyka
309 EXT_color_buffer_float
310 EXT_color_buffer_half_float
311 EXT_color_subtable
312 EXT_compiled_vertex_array
313 EXT_compressed_ETC1_RGB8_sub_texture
314 EXT_conservative_depth
315 EXT_convolution
316 EXT_coordinate_frame
317 EXT_copy_image
318 EXT_copy_texture
319 EXT_cull_vertex
320 EXT_debug_label
321 EXT_debug_marker
322 EXT_depth_bounds_test
323 EXT_depth_clamp
324 EXT_direct_state_access
325 EXT_discard_framebuffer
326 EXT_disjoint_timer_query
327 EXT_draw_buffers
328 EXT_draw_buffers2
329 EXT_draw_buffers_indexed
330 EXT_draw_elements_base_vertex
331 EXT_draw_instanced
332 EXT_draw_range_elements
333 EXT_draw_transform_feedback
334 EXT_external_buffer
335 EXT_float_blend
336 EXT_fog_coord
337 EXT_frag_depth
338 EXT_fragment_lighting
339 EXT_framebuffer_blit
340 EXT_framebuffer_blit_layers
341 EXT_framebuffer_multisample
342 EXT_framebuffer_multisample_blit_scaled
343 EXT_framebuffer_object
344 EXT_framebuffer_sRGB
345 EXT_geometry_point_size
346 EXT_geometry_shader
347 EXT_geometry_shader4
348 EXT_gpu_program_parameters
349 EXT_gpu_shader4
350 EXT_gpu_shader5
351 EXT_histogram
352 EXT_index_array_formats
353 EXT_index_func
354 EXT_index_material
355 EXT_index_texture
356 EXT_instanced_arrays
357 EXT_light_texture
358 EXT_map_buffer_range
359 EXT_memory_object
360 EXT_memory_object_fd
361 EXT_memory_object_win32
362 EXT_misc_attribute
363 EXT_multi_draw_arrays
364 EXT_multi_draw_indirect
365 EXT_multiple_textures
366 EXT_multisample
367 EXT_multisample_compatibility
368 EXT_multisampled_render_to_texture
369 EXT_multisampled_render_to_texture2
370 EXT_multiview_draw_buffers
371 EXT_multiview_tessellation_geometry_shader
372 EXT_multiview_texture_multisample
373 EXT_multiview_timer_query
374 EXT_occlusion_query_boolean
375 EXT_packed_depth_stencil
376 EXT_packed_float
377 EXT_packed_pixels
378 EXT_paletted_texture
379 EXT_pixel_buffer_object
380 EXT_pixel_transform
381 EXT_pixel_transform_color_table
382 EXT_point_parameters
383 EXT_polygon_offset
384 EXT_polygon_offset_clamp
385 EXT_post_depth_coverage
386 EXT_primitive_bounding_box
387 EXT_protected_textures
388 EXT_provoking_vertex
389 EXT_pvrtc_sRGB
390 EXT_raster_multisample
391 EXT_read_format_bgra
392 EXT_render_snorm
393 EXT_rescale_normal
394 EXT_robustness
395 EXT_sRGB
396 EXT_sRGB_write_control
397 EXT_scene_marker
398 EXT_secondary_color
399 EXT_semaphore
400 EXT_semaphore_fd
401 EXT_semaphore_win32
402 EXT_separate_depth_stencil
403 EXT_separate_shader_objects
404 EXT_separate_specular_color
405 EXT_shader_framebuffer_fetch
406 EXT_shader_framebuffer_fetch_non_coherent
407 EXT_shader_group_vote
408 EXT_shader_image_load_formatted
409 EXT_shader_image_load_store
410 EXT_shader_implicit_conversions
411 EXT_shader_integer_mix
412 EXT_shader_io_blocks
413 EXT_shader_non_constant_global_initializers
414 EXT_shader_pixel_local_storage
415 EXT_shader_pixel_local_storage2
416 EXT_shader_samples_identical
417 EXT_shader_texture_lod
418 EXT_shadow_funcs
419 EXT_shadow_samplers
420 EXT_shared_texture_palette
421 EXT_sparse_texture
422 EXT_sparse_texture2
423 EXT_static_vertex_array
424 EXT_stencil_clear_tag
425 EXT_stencil_two_side
426 EXT_stencil_wrap
427 EXT_subtexture
428 EXT_tessellation_point_size
429 EXT_tessellation_shader
430 EXT_texture
431 EXT_texture3D
432 EXT_texture_array
433 EXT_texture_border_clamp
434 EXT_texture_buffer
435 EXT_texture_buffer_object
436 EXT_texture_compression_astc_decode_mode
437 EXT_texture_compression_astc_decode_mode_rgb9e5
438 EXT_texture_compression_bptc
439 EXT_texture_compression_dxt1
440 EXT_texture_compression_latc
441 EXT_texture_compression_rgtc
442 EXT_texture_compression_s3tc
443 EXT_texture_compression_s3tc_srgb
444 EXT_texture_cube_map
445 EXT_texture_cube_map_array
446 EXT_texture_edge_clamp
447 EXT_texture_env
448 EXT_texture_env_add
449 EXT_texture_env_combine
450 EXT_texture_env_dot3
451 EXT_texture_filter_anisotropic
452 EXT_texture_filter_minmax
453 EXT_texture_format_BGRA8888
454 EXT_texture_format_sRGB_override
455 EXT_texture_integer
456 EXT_texture_lod_bias
457 EXT_texture_mirror_clamp
458 EXT_texture_mirror_clamp_to_edge
459 EXT_texture_norm16
460 EXT_texture_object
461 EXT_texture_perturb_normal
462 EXT_texture_query_lod
463 EXT_texture_rectangle
464 EXT_texture_rg
465 EXT_texture_sRGB
466 EXT_texture_sRGB_R8
467 EXT_texture_sRGB_RG8
468 EXT_texture_sRGB_decode
469 EXT_texture_shadow_lod
470 EXT_texture_shared_exponent
471 EXT_texture_snorm
472 EXT_texture_storage
473 EXT_texture_storage_compression
474 EXT_texture_swizzle
475 EXT_texture_type_2_10_10_10_REV
476 EXT_texture_view
477 EXT_timer_query
478 EXT_transform_feedback
479 EXT_unpack_subimage
480 EXT_vertex_array
481 EXT_vertex_array_bgra
482 EXT_vertex_array_setXXX
483 EXT_vertex_attrib_64bit
484 EXT_vertex_shader
485 EXT_vertex_weighting
486 EXT_win32_keyed_mutex
487 EXT_window_rectangles
488 EXT_x11_sync_object

489 FJ_shader_binary_GCCSO

490 GREMEDY_frame_terminator
491 GREMEDY_string_marker

492 HP_convolution_border_modes
493 HP_image_transform
494 HP_occlusion_test
495 HP_texture_lighting

496 IBM_cull_vertex
497 IBM_multimode_draw_arrays
498 IBM_rasterpos_clip
499 IBM_static_data
500 IBM_texture_mirrored_repeat
501 IBM_vertex_array_lists

502 IMG_bindless_texture
503 IMG_framebuffer_downsample
504 IMG_multisampled_render_to_texture
505 IMG_program_binary
506 IMG_pvric_end_to_end_signature
507 IMG_read_format
508 IMG_shader_binary
509 IMG_texture_compression_pvrtc
510 IMG_texture_compression_pvrtc2
511 IMG_texture_env_enhanced_fixed_function
512 IMG_texture_filter_cubic
513 IMG_tile_region_protection

514 INGR_color_clamp
515 INGR_interlace_read

516 INTEL_blackhole_render
517 INTEL_conservative_rasterization
518 INTEL_fragment_shader_ordering
519 INTEL_framebuffer_CMAA
520 INTEL_map_texture
521 INTEL_parallel_arrays
522 INTEL_performance_query
523 INTEL_shader_integer_functions2
524 INTEL_texture_scissor

525 KHR_blend_equation_advanced
526 KHR_blend_equation_advanced_coherent
527 KHR_context_flush_control
528 KHR_debug
529 KHR_no_error
530 KHR_parallel_shader_compile
531 KHR_robust_buffer_access_behavior
532 KHR_robustness
533 KHR_shader_subgroup
534 KHR_texture_compression_astc_hdr
535 KHR_texture_compression_astc_ldr
536 KHR_texture_compression_astc_sliced_3d

537 KTX_buffer_region

538 MESAX_texture_stack

539 MESA_bgra
540 MESA_framebuffer_flip_x
541 MESA_framebuffer_flip_y
542 MESA_framebuffer_swap_xy
543 MESA_pack_invert
544 MESA_program_binary_formats
545 MESA_resize_buffers
546 MESA_shader_integer_functions
547 MESA_tile_raster_order
548 MESA_window_pos
549 MESA_ycbcr_texture

550 NVX_blend_equation_advanced_multi_draw_buffers
551 NVX_conditional_render
552 NVX_gpu_memory_info
553 NVX_gpu_multicast2
554 NVX_linked_gpu_multicast
555 NVX_progress_fence

556 NV_3dvision_settings
557 NV_EGL_stream_consumer_external
558 NV_alpha_to_coverage_dither_control
559 NV_bgr
560 NV_bindless_multi_draw_indirect
561 NV_bindless_multi_draw_indirect_count
562 NV_bindless_texture
563 NV_blend_equation_advanced
564 NV_blend_equation_advanced_coherent
565 NV_blend_minmax_factor
566 NV_blend_square
567 NV_clip_space_w_scaling
568 NV_command_list
569 NV_compute_program5
570 NV_compute_shader_derivatives
571 NV_conditional_render
572 NV_conservative_raster
573 NV_conservative_raster_dilate
574 NV_conservative_raster_pre_snap
575 NV_conservative_raster_pre_snap_triangles
576 NV_conservative_raster_underestimation
577 NV_copy_buffer
578 NV_copy_depth_to_color
579 NV_copy_image
580 NV_deep_texture3D
581 NV_depth_buffer_float
582 NV_depth_clamp
583 NV_depth_nonlinear
584 NV_depth_range_unclamped
585 NV_draw_buffers
586 NV_draw_instanced
587 NV_draw_texture
588 NV_draw_vulkan_image
589 NV_evaluators
590 NV_explicit_attrib_location
591 NV_explicit_multisample
592 NV_fbo_color_attachments
593 NV_fence
594 NV_fill_rectangle
595 NV_float_buffer
596 NV_fog_distance
597 NV_fragment_coverage_to_color
598 NV_fragment_program
599 NV_fragment_program2
600 NV_fragment_program4
601 NV_fragment_program_option
602 NV_fragment_shader_barycentric
603 NV_fragment_shader_interlock
604 NV_framebuffer_blit
605 NV_framebuffer_mixed_samples
606 NV_framebuffer_multisample
607 NV_framebuffer_multisample_coverage
608 NV_generate_mipmap_sRGB
609 NV_geometry_program4
610 NV_geometry_shader4
611 NV_geometry_shader_passthrough
612 NV_gpu_multicast
613 NV_gpu_program4
614 NV_gpu_program5
615 NV_gpu_program5_mem_extended
616 NV_gpu_program_fp64
617 NV_gpu_shader5
618 NV_half_float
619 NV_image_formats
620 NV_instanced_arrays
621 NV_internalformat_sample_query
622 NV_light_max_exponent
623 NV_memory_attachment
624 NV_memory_object_sparse
625 NV_mesh_shader
626 NV_multisample_coverage
627 NV_multisample_filter_hint
628 NV_non_square_matrices
629 NV_occlusion_query
630 NV_pack_subimage
631 NV_packed_depth_stencil
632 NV_packed_float
633 NV_packed_float_linear
634 NV_parameter_buffer_object
635 NV_parameter_buffer_object2
636 NV_path_rendering
637 NV_path_rendering_shared_edge
638 NV_pixel_buffer_object
639 NV_pixel_data_range
640 NV_platform_binary
641 NV_point_sprite
642 NV_polygon_mode
643 NV_present_video
644 NV_primitive_restart
645 NV_primitive_shading_rate
646 NV_query_resource_tag
647 NV_read_buffer
648 NV_read_buffer_front
649 NV_read_depth
650 NV_read_depth_stencil
651 NV_read_stencil
652 NV_register_combiners
653 NV_register_combiners2
654 NV_representative_fragment_test
655 NV_robustness_video_memory_purge
656 NV_sRGB_formats
657 NV_sample_locations
658 NV_sample_mask_override_coverage
659 NV_scissor_exclusive
660 NV_shader_atomic_counters
661 NV_shader_atomic_float
662 NV_shader_atomic_float64
663 NV_shader_atomic_fp16_vector
664 NV_shader_atomic_int64
665 NV_shader_buffer_load
666 NV_shader_noperspective_interpolation
667 NV_shader_storage_buffer_object
668 NV_shader_subgroup_partitioned
669 NV_shader_texture_footprint
670 NV_shader_thread_group
671 NV_shader_thread_shuffle
672 NV_shading_rate_image
673 NV_shadow_samplers_array
674 NV_shadow_samplers_cube
675 NV_stereo_view_rendering
676 NV_tessellation_program5
677 NV_texgen_emboss
678 NV_texgen_reflection
679 NV_texture_array
680 NV_texture_barrier
681 NV_texture_border_clamp
682 NV_texture_compression_latc
683 NV_texture_compression_s3tc
684 NV_texture_compression_s3tc_update
685 NV_texture_compression_vtc
686 NV_texture_env_combine4
687 NV_texture_expand_normal
688 NV_texture_multisample
689 NV_texture_npot_2D_mipmap
690 NV_texture_rectangle
691 NV_texture_rectangle_compressed
692 NV_texture_shader
693 NV_texture_shader2
694 NV_texture_shader3
695 NV_timeline_semaphore
696 NV_transform_feedback
697 NV_transform_feedback2
698 NV_uniform_buffer_std430_layout
699 NV_uniform_buffer_unified_memory
700 NV_vdpau_interop
701 NV_vdpau_interop2
702 NV_vertex_array_range
703 NV_vertex_array_range2
704 NV_vertex_attrib_integer_64bit
705 NV_vertex_buffer_unified_memory
706 NV_vertex_program
707 NV_vertex_program1_1
708 NV_vertex_program2
709 NV_vertex_program2_option
710 NV_vertex_program3
711 NV_vertex_program4
712 NV_video_capture
713 NV_viewport_array
714 NV_viewport_array2
715 NV_viewport_swizzle

716 OES_EGL_image
717 OES_EGL_image_external
718 OES_EGL_image_external_essl3
719 OES_blend_equation_separate
720 OES_blend_func_separate
721 OES_blend_subtract
722 OES_byte_coordinates
723 OES_compressed_ETC1_RGB8_texture
724 OES_compressed_paletted_texture
725 OES_copy_image
726 OES_depth24
727 OES_depth32
728 OES_depth_texture
729 OES_depth_texture_cube_map
730 OES_draw_buffers_indexed
731 OES_draw_texture
732 OES_element_index_uint
733 OES_extended_matrix_palette
734 OES_fbo_render_mipmap
735 OES_fragment_precision_high
736 OES_framebuffer_object
737 OES_geometry_point_size
738 OES_geometry_shader
739 OES_get_program_binary
740 OES_gpu_shader5
741 OES_mapbuffer
742 OES_matrix_get
743 OES_matrix_palette
744 OES_packed_depth_stencil
745 OES_point_size_array
746 OES_point_sprite
747 OES_read_format
748 OES_required_internalformat
749 OES_rgb8_rgba8
750 OES_sample_shading
751 OES_sample_variables
752 OES_shader_image_atomic
753 OES_shader_io_blocks
754 OES_shader_multisample_interpolation
755 OES_single_precision
756 OES_standard_derivatives
757 OES_stencil1
758 OES_stencil4
759 OES_stencil8
760 OES_surfaceless_context
761 OES_tessellation_point_size
762 OES_tessellation_shader
763 OES_texture_3D
764 OES_texture_border_clamp
765 OES_texture_buffer
766 OES_texture_compression_astc
767 OES_texture_cube_map
768 OES_texture_cube_map_array
769 OES_texture_env_crossbar
770 OES_texture_mirrored_repeat
771 OES_texture_npot
772 OES_texture_stencil8
773 OES_texture_storage_multisample_2d_array
774 OES_texture_view
775 OES_vertex_array_object
776 OES_vertex_half_float
777 OES_vertex_type_10_10_10_2

778 OML_interlace
779 OML_resample
780 OML_subsample

781 OVR_multiview
782 OVR_multiview2
783 OVR_multiview_multisampled_render_to_texture

784 PGI_misc_hints
785 PGI_vertex_hints

786 QCOM_YUV_texture_gather
787 QCOM_alpha_test
788 QCOM_binning_control
789 QCOM_driver_control
790 QCOM_extended_get
791 QCOM_extended_get2
792 QCOM_frame_extrapolation
793 QCOM_framebuffer_foveated
794 QCOM_motion_estimation
795 QCOM_perfmon_global_mode
796 QCOM_render_sRGB_R8_RG8
797 QCOM_render_shared_exponent
798 QCOM_shader_framebuffer_fetch_noncoherent
799 QCOM_shader_framebuffer_fetch_rate
800 QCOM_shading_rate
801 QCOM_texture_foveated
802 QCOM_texture_foveated2
803 QCOM_texture_foveated_subsampled_layout
804 QCOM_texture_lod_bias
805 QCOM_tiled_rendering
806 QCOM_writeonly_rendering

807 REGAL_ES1_0_compatibility
808 REGAL_ES1_1_compatibility
809 REGAL_enable
810 REGAL_error_string
811 REGAL_extension_query
812 REGAL_log
813 REGAL_proc_address

814 REND_screen_coordinates

815 S3_s3tc

816 SGIS_clip_band_hint
817 SGIS_color_range
818 SGIS_detail_texture
819 SGIS_fog_function
820 SGIS_generate_mipmap
821 SGIS_line_texgen
822 SGIS_multisample
823 SGIS_multitexture
824 SGIS_pixel_texture
825 SGIS_point_line_texgen
826 SGIS_shared_multisample
827 SGIS_sharpen_texture
828 SGIS_texture4D
829 SGIS_texture_border_clamp
830 SGIS_texture_edge_clamp
831 SGIS_texture_filter4
832 SGIS_texture_lod
833 SGIS_texture_select

834 SGIX_async
835 SGIX_async_histogram
836 SGIX_async_pixel
837 SGIX_bali_g_instruments
838 SGIX_bali_r_instruments
839 SGIX_bali_timer_instruments
840 SGIX_blend_alpha_minmax
841 SGIX_blend_cadd
842 SGIX_blend_cmultiply
843 SGIX_calligraphic_fragment
844 SGIX_clipmap
845 SGIX_color_matrix_accuracy
846 SGIX_color_table_index_mode
847 SGIX_complex_polar
848 SGIX_convolution_accuracy
849 SGIX_cube_map
850 SGIX_cylinder_texgen
851 SGIX_datapipe
852 SGIX_decimation
853 SGIX_depth_pass_instrument
854 SGIX_depth_texture
855 SGIX_dvc
856 SGIX_flush_raster
857 SGIX_fog_blend
858 SGIX_fog_factor_to_alpha
859 SGIX_fog_layers
860 SGIX_fog_offset
861 SGIX_fog_patchy
862 SGIX_fog_scale
863 SGIX_fog_texture
864 SGIX_fragment_lighting_space
865 SGIX_fragment_specular_lighting
866 SGIX_fragments_instrument
867 SGIX_framezoom
868 SGIX_icc_texture
869 SGIX_igloo_interface
870 SGIX_image_compression
871 SGIX_impact_pixel_texture
872 SGIX_instrument_error
873 SGIX_interlace
874 SGIX_ir_instrument1
875 SGIX_line_quality_hint
876 SGIX_list_priority
877 SGIX_mpeg1
878 SGIX_mpeg2
879 SGIX_nonlinear_lighting_pervertex
880 SGIX_nurbs_eval
881 SGIX_occlusion_instrument
882 SGIX_packed_6bytes
883 SGIX_pixel_texture
884 SGIX_pixel_texture_bits
885 SGIX_pixel_texture_lod
886 SGIX_pixel_tiles
887 SGIX_polynomial_ffd
888 SGIX_quad_mesh
889 SGIX_reference_plane
890 SGIX_resample
891 SGIX_scalebias_hint
892 SGIX_shadow
893 SGIX_shadow_ambient
894 SGIX_slim
895 SGIX_spotlight_cutoff
896 SGIX_sprite
897 SGIX_subdiv_patch
898 SGIX_subsample
899 SGIX_tag_sample_buffer
900 SGIX_texture_add_env
901 SGIX_texture_coordinate_clamp
902 SGIX_texture_lod_bias
903 SGIX_texture_mipmap_anisotropic
904 SGIX_texture_multi_buffer
905 SGIX_texture_phase
906 SGIX_texture_range
907 SGIX_texture_scale_bias
908 SGIX_texture_supersample
909 SGIX_vector_ops
910 SGIX_vertex_array_object
911 SGIX_vertex_preclip
912 SGIX_vertex_preclip_hint
913 SGIX_ycrcb
914 SGIX_ycrcb_subsample
915 SGIX_ycrcba

916 SGI_color_matrix
917 SGI_color_table
918 SGI_complex
919 SGI_complex_type
920 SGI_fft
921 SGI_texture_color_table

922 SUNX_constant_data

923 SUN_convolution_border_modes
924 SUN_global_alpha
925 SUN_mesh_array
926 SUN_read_video_pixels
927 SUN_slice_accum
928 SUN_triangle_list
929 SUN_vertex

930 VIV_shader_binary

931 WIN_phong_shading
932 WIN_scene_markerXXX
933 WIN_specular_fog
934 WIN_swap_hint
+ +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/glew.png b/vendor/glew-cmake-2.2.0/doc/glew.png new file mode 100644 index 0000000..d46550f Binary files /dev/null and b/vendor/glew-cmake-2.2.0/doc/glew.png differ diff --git a/vendor/glew-cmake-2.2.0/doc/glew.txt b/vendor/glew-cmake-2.2.0/doc/glew.txt new file mode 100644 index 0000000..67b4aff --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/glew.txt @@ -0,0 +1,29 @@ +The OpenGL Extension Wrangler Library +Copyright (C) 2008-2016, Nigel Stewart +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. diff --git a/vendor/glew-cmake-2.2.0/doc/glxew.html b/vendor/glew-cmake-2.2.0/doc/glxew.html new file mode 100644 index 0000000..6054051 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/glxew.html @@ -0,0 +1,188 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Supported GLX Extensions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1 3DFX_multisample

2 AMD_gpu_association

3 ARB_context_flush_control
4 ARB_create_context
5 ARB_create_context_no_error
6 ARB_create_context_profile
7 ARB_create_context_robustness
8 ARB_fbconfig_float
9 ARB_framebuffer_sRGB
10 ARB_get_proc_address
11 ARB_multisample
12 ARB_robustness_application_isolation
13 ARB_robustness_share_group_isolation
14 ARB_vertex_buffer_object

15 ATI_pixel_format_float
16 ATI_render_texture

17 EXT_buffer_age
18 EXT_context_priority
19 EXT_create_context_es2_profile
20 EXT_create_context_es_profile
21 EXT_fbconfig_packed_float
22 EXT_framebuffer_sRGB
23 EXT_get_drawable_type
24 EXT_import_context
25 EXT_libglvnd
26 EXT_no_config_context
27 EXT_scene_marker
28 EXT_stereo_tree
29 EXT_swap_control
30 EXT_swap_control_tear
31 EXT_texture_from_pixmap
32 EXT_visual_info
33 EXT_visual_rating

34 INTEL_swap_event

35 MESA_agp_offset
36 MESA_copy_sub_buffer
37 MESA_pixmap_colormap
38 MESA_query_renderer
39 MESA_release_buffers
40 MESA_set_3dfx_mode
41 MESA_swap_control

42 NV_copy_buffer
43 NV_copy_image
44 NV_delay_before_swap
45 NV_float_buffer
46 NV_multigpu_context
47 NV_multisample_coverage
48 NV_present_video
49 NV_robustness_video_memory_purge
50 NV_swap_group
51 NV_vertex_array_range
52 NV_video_capture
53 NV_video_out

54 OML_swap_method
55 OML_sync_control

56 SGIS_blended_overlay
57 SGIS_color_range
58 SGIS_multisample
59 SGIS_shared_multisample

60 SGIX_fbconfig
61 SGIX_hyperpipe
62 SGIX_pbuffer
63 SGIX_swap_barrier
64 SGIX_swap_group
65 SGIX_video_resize
66 SGIX_visual_select_group

67 SGI_cushion
68 SGI_make_current_read
69 SGI_swap_control
70 SGI_video_sync

71 SUN_get_transparent_index
72 SUN_video_resize
+ +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/gpl.txt b/vendor/glew-cmake-2.2.0/doc/gpl.txt new file mode 100644 index 0000000..b7b5f53 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/gpl.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/vendor/glew-cmake-2.2.0/doc/index.html b/vendor/glew-cmake-2.2.0/doc/index.html new file mode 100644 index 0000000..78ce7a1 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/index.html @@ -0,0 +1,213 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

+The OpenGL Extension Wrangler Library (GLEW) is a cross-platform +open-source C/C++ extension loading library. GLEW provides efficient +run-time mechanisms for determining which OpenGL extensions are +supported on the target platform. OpenGL core and extension +functionality is exposed in a single header file. GLEW has been +tested on a variety of operating systems, including Windows, Linux, +Mac OS X, FreeBSD, Irix, and Solaris. +

+ +

Downloads

+

+GLEW is distributed +as source and precompiled binaries.
+The latest release is +2.2.0[03-15-20]: +

+

+

+

+ + + +
+ + + + + + + + + + + + + + + +
Source +ZIP |  +TGZ
Binaries +Windows 32-bit and 64-bit +
+
+ +

+

+An up-to-date copy is also available using git: +

+
    +
  • github
    +git clone https://github.com/nigels-com/glew.git glew
     
  • +
+ +

Supported Extensions

+

+The latest release contains support for OpenGL 4.6, compatibility and forward-compatible contexts and the following extensions: +

+ + +

News

+
    +
  • [03-15-20] GLEW 2.2.0 new extensions and minor bug fixes
  • +
  • [07-31-17] GLEW 2.1.0 adds support for OpenGL 4.6, new extensions and minor bug fixes
  • +
  • [07-24-16] GLEW 2.0.0 adds support for forward-compatible contexts, adds new extensions, OSMesa and EGL support, MX discontinued and minor bug fixes
  • +
  • [08-10-15] GLEW 1.13.0 adds support for new extensions, fixes minor bugs
  • +
  • [26-01-15] GLEW 1.12.0 fixes minor bugs and adds new extensions
  • +
  • [08-11-14] GLEW 1.11.0 adds support for OpenGL 4.5, new extensions
  • +
  • [07-22-13] GLEW 1.10.0 adds support for OpenGL 4.4, new extensions
  • +
  • [08-06-12] GLEW 1.9.0 adds support for OpenGL 4.3, new extensions
  • +
  • [07-17-12] GLEW 1.8.0 fixes minor bugs and adds new extensions
  • +
  • [08-26-11] GLEW 1.7.0 adds support for OpenGL 4.2, new extensions, fixes bugs
  • +
  • [04-27-11] GLEW 1.6.0 fixes minor bugs and adds eight new extensions
  • +
  • [01-31-11] GLEW 1.5.8 fixes minor bugs and adds two new extensions
  • +
  • [11-03-10] GLEW 1.5.7 fixes minor bugs and adds one new extension
  • +
  • [09-07-10] GLEW 1.5.6 adds support for OpenGL 4.1, fixes bugs
  • +
  • [07-13-10] GLEW 1.5.5 fixes minor bugs and adds new extensions
  • +
  • [04-21-10] GLEW 1.5.4 adds support for OpenGL 3.3, OpenGL 4.0 and new extensions, fixes bugs
  • +
  • [02-28-10] GLEW 1.5.3 fixes minor bugs and adds three new extensions
  • +
  • [12-31-09] GLEW 1.5.2 adds support for OpenGL 3.1, OpenGL 3.2 and new extensions
  • +
  • [11-03-08] GLEW 1.5.1 adds support for OpenGL 3.0 and 31 new extensions
  • +
  • [12-27-07] GLEW 1.5.0 is released under less restrictive licenses
  • +
  • [04-27-07] GLEW 1.4.0 is released
  • +
  • [03-08-07] GLEW is included in the NVIDIA OpenGL SDK
  • +
  • [03-04-07] GLEW 1.3.6 is released
  • +
  • [02-28-07] Repository is migrated to SVN
  • +
  • [02-25-07] GLEW is included in the OpenGL SDK
  • +
  • [11-21-06] GLEW 1.3.5 adds OpenGL 2.1 and NVIDIA G80 extensions
  • +
  • [03-04-06] GLEW 1.3.4 adds support for five new extensions
  • +
  • [05-16-05] GLEW 1.3.3 is released
  • +
  • [03-16-05] GLEW 1.3.2 adds support for GL_APPLE_pixel_buffer
  • +
  • [02-11-05] gljava and sdljava provide a Java binding to OpenGL via GLEW
  • +
  • [02-02-05] GLEW 1.3.1 adds support for GL_EXT_framebuffer_object
  • +
  • [01-04-05] GLEW 1.3.0 adds core OpenGL 2.0 support plus many enhancements
  • +
  • [12-22-04] GLEWpy Python wrapper announced
  • +
  • [12-12-04] Mailing lists created on sourceforge
  • +
  • [12-06-04] GLEW 1.2.5 adds new extensions and support for FreeBSD
  • +
+ +

Links

+ + + +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/install.html b/vendor/glew-cmake-2.2.0/doc/install.html new file mode 100644 index 0000000..0fe901a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/install.html @@ -0,0 +1,226 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Installation

+ +

+To use the shared library version of GLEW, you need to copy the +headers and libraries into their destination directories. On Windows +this typically boils down to copying: +

+ + + + + + + + + + +
bin/glew32.dll    to    %SystemRoot%/system32
lib/glew32.lib    to    {VC Root}/Lib
include/GL/glew.h    to    {VC Root}/Include/GL
include/GL/wglew.h    to    {VC Root}/Include/GL
+

+

+ +

+where {VC Root} is the Visual C++ root directory, typically +C:/Program Files/Microsoft Visual Studio/VC98 for Visual +Studio 6.0 or C:/Program Files/Microsoft Visual +Studio .NET 2003/Vc7/PlatformSDK for Visual Studio .NET. +

+ +

+On Unix, typing make install will attempt to install GLEW +into /usr/include/GL and /usr/lib. You can +customize the installation target via the GLEW_DEST +environment variable if you do not have write access to these +directories. +

+ +

Building Your Project with GLEW

+

+There are two ways to build your project with GLEW. +

+

Including the source files / project file

+

+The simpler but less flexible way is to include glew.h and +glew.c into your project. On Windows, you also need to +define the GLEW_STATIC preprocessor token when building a +static library or executable, and the GLEW_BUILD preprocessor +token when building a dll. You also need to replace +<GL/gl.h> and <GL/glu.h> with +<glew.h> in your code and set the appropriate include +flag (-I) to tell the compiler where to look for it. For +example: +

+

+#include <glew.h>
+#include <GL/glut.h>
+<gl, glu, and glut functionality is available here>
+

+

+Depending on where you put glew.h you may also need to change +the include directives in glew.c. Note that if you are using +GLEW together with GLUT, you have to include glew.h first. +In addition, glew.h includes glu.h, so you do not +need to include it separately. +

+

+On Windows, you also have the option of adding the supplied project +file glew_static.dsp to your workspace (solution) and compile +it together with your other projects. In this case you also need to +change the GLEW_BUILD preprocessor constant to +GLEW_STATIC when building a static library or executable, +otherwise you get build errors. +

+

+Note that GLEW does not use the C +runtime library, so it does not matter which version (single-threaded, +multi-threaded or multi-threaded DLL) it is linked with (without +debugging information). It is, however, always a good idea to compile all +your projects including GLEW with the same C runtime settings. +

+ +

Using GLEW as a shared library

+ +

+Alternatively, you can use the provided project files / makefile to +build a separate shared library you can link your projects with later. +In this case the best practice is to install glew.h, +glew32.lib, and glew32.dll / libGLEW.so to +where the OpenGL equivalents gl.h, opengl32.lib, and +opengl32.dll / libGL.so are located. Note that you +need administrative privileges to do this. If you do not have +administrator access and your system administrator will not do it for +you, you can install GLEW into your own lib and include subdirectories +and tell the compiler where to find it. Then you can just replace +<GL/gl.h> with <GL/glew.h> in your +program: +

+ +

+#include <GL/glew.h>
+#include <GL/glut.h>
+<gl, glu, and glut functionality is available here>
+

+ +

+or: +

+ +

+#include <GL/glew.h>
+<gl and glu functionality is available here>
+

+ +

+Remember to link your project with glew32.lib, +glu32.lib, and opengl32.lib on Windows and +libGLEW.so, libGLU.so, and libGL.so on +Unix (-lGLEW -lGLU -lGL). +

+ +

+It is important to keep in mind that glew.h includes neither +windows.h nor gl.h. Also, GLEW will warn you by +issuing a preprocessor error in case you have included gl.h, +glext.h, or glATI.h before glew.h. +

+ + +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/khronos.txt b/vendor/glew-cmake-2.2.0/doc/khronos.txt new file mode 100644 index 0000000..ffc271c --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/khronos.txt @@ -0,0 +1,20 @@ +Copyright (c) 2007 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. diff --git a/vendor/glew-cmake-2.2.0/doc/log.html b/vendor/glew-cmake-2.2.0/doc/log.html new file mode 100644 index 0000000..939469b --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/log.html @@ -0,0 +1,1419 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Change Log

+ +
+
    +
  • 2.2.0 [03-15-20] + +
      +
    • Bug fixes: +
        +
      • GL_EXT_semaphore constants +
      • Some const pointer fixups in OpenGL API +
      • Correction for GLEW_VERSION_4_5 +
      • Windows build updates and fixes +
      +
    + +
      +
    • New extensions: +
        +
      • GL_AMD_framebuffer_multisample_advanced +
      • GL_AMD_gpu_shader_half_float_fetch +
      • GL_AMD_shader_image_load_store_lod +
      • GL_ARM_texture_unnormalized_coordinates +
      • GL_DMP_program_binary +
      • GL_DMP_shader_binary +
      • GL_EXT_EGL_image_external_wrap_modes +
      • GL_EXT_EGL_image_storage +
      • GL_EXT_EGL_sync +
      • GL_EXT_clip_control +
      • GL_EXT_depth_clamp +
      • GL_EXT_disjoint_timer_query +
      • GL_EXT_draw_transform_feedback +
      • GL_EXT_multiview_tessellation_geometry_shader +
      • GL_EXT_multiview_texture_multisample +
      • GL_EXT_multiview_timer_query +
      • GL_EXT_occlusion_query_boolean +
      • GL_EXT_primitive_bounding_box +
      • GL_EXT_protected_textures +
      • GL_EXT_robustness +
      • GL_EXT_shader_framebuffer_fetch_non_coherent +
      • GL_EXT_static_vertex_array +
      • GL_EXT_tessellation_point_size +
      • GL_EXT_tessellation_shader +
      • GL_EXT_texture_border_clamp +
      • GL_EXT_texture_buffer +
      • GL_EXT_texture_compression_s3tc_srgb +
      • GL_EXT_texture_format_sRGB_override +
      • GL_EXT_texture_mirror_clamp_to_edge +
      • GL_EXT_texture_query_lod +
      • GL_EXT_texture_shadow_lod +
      • GL_FJ_shader_binary_GCCSO +
      • GL_IMG_bindless_texture +
      • GL_IMG_framebuffer_downsample +
      • GL_IMG_multisampled_render_to_texture +
      • GL_IMG_program_binary +
      • GL_IMG_read_format +
      • GL_IMG_shader_binary +
      • GL_IMG_texture_compression_pvrtc +
      • GL_IMG_texture_compression_pvrtc2 +
      • GL_IMG_texture_env_enhanced_fixed_function +
      • GL_IMG_texture_filter_cubic +
      • GL_INTEL_blackhole_render +
      • GL_INTEL_shader_integer_functions2 +
      • GL_KHR_shader_subgroup +
      • GL_MESA_framebuffer_flip_y +
      • GL_MESA_program_binary_formats +
      • GL_MESA_tile_raster_order +
      • GL_NVX_gpu_multicast2 +
      • GL_NVX_progress_fence +
      • GL_NV_compute_shader_derivatives +
      • GL_NV_conservative_raster_pre_snap +
      • GL_NV_conservative_raster_underestimation +
      • GL_NV_depth_nonlinear +
      • GL_NV_fragment_shader_barycentric +
      • GL_NV_memory_attachment +
      • GL_NV_mesh_shader +
      • GL_NV_query_resource_tag +
      • GL_NV_read_buffer +
      • GL_NV_read_buffer_front +
      • GL_NV_representative_fragment_test +
      • GL_NV_scissor_exclusive +
      • GL_NV_shader_subgroup_partitioned +
      • GL_NV_shader_texture_footprint +
      • GL_NV_shading_rate_image +
      • GL_NV_vdpau_interop2 +
      • GL_OES_EGL_image +
      • GL_OES_EGL_image_external +
      • GL_OES_EGL_image_external_essl3 +
      • GL_OES_blend_equation_separate +
      • GL_OES_blend_func_separate +
      • GL_OES_blend_subtract +
      • GL_OES_compressed_ETC1_RGB8_texture +
      • GL_OES_compressed_paletted_texture +
      • GL_OES_copy_image +
      • GL_OES_depth24 +
      • GL_OES_depth32 +
      • GL_OES_depth_texture +
      • GL_OES_depth_texture_cube_map +
      • GL_OES_draw_buffers_indexed +
      • GL_OES_draw_texture +
      • GL_OES_element_index_uint +
      • GL_OES_extended_matrix_palette +
      • GL_OES_fbo_render_mipmap +
      • GL_OES_fragment_precision_high +
      • GL_OES_framebuffer_object +
      • GL_OES_geometry_point_size +
      • GL_OES_geometry_shader +
      • GL_OES_get_program_binary +
      • GL_OES_gpu_shader5 +
      • GL_OES_mapbuffer +
      • GL_OES_matrix_get +
      • GL_OES_matrix_palette +
      • GL_OES_packed_depth_stencil +
      • GL_OES_point_size_array +
      • GL_OES_point_sprite +
      • GL_OES_read_format +
      • GL_OES_required_internalformat +
      • GL_OES_rgb8_rgba8 +
      • GL_OES_sample_shading +
      • GL_OES_sample_variables +
      • GL_OES_shader_image_atomic +
      • GL_OES_shader_io_blocks +
      • GL_OES_shader_multisample_interpolation +
      • GL_OES_single_precision +
      • GL_OES_standard_derivatives +
      • GL_OES_stencil1 +
      • GL_OES_stencil4 +
      • GL_OES_stencil8 +
      • GL_OES_surfaceless_context +
      • GL_OES_tessellation_point_size +
      • GL_OES_tessellation_shader +
      • GL_OES_texture_3D +
      • GL_OES_texture_border_clamp +
      • GL_OES_texture_buffer +
      • GL_OES_texture_compression_astc +
      • GL_OES_texture_cube_map +
      • GL_OES_texture_cube_map_array +
      • GL_OES_texture_env_crossbar +
      • GL_OES_texture_mirrored_repeat +
      • GL_OES_texture_npot +
      • GL_OES_texture_stencil8 +
      • GL_OES_texture_storage_multisample_2d_array +
      • GL_OES_texture_view +
      • GL_OES_vertex_array_object +
      • GL_OES_vertex_half_float +
      • GL_OES_vertex_type_10_10_10_2 +
      • GL_QCOM_YUV_texture_gather +
      • GL_QCOM_shader_framebuffer_fetch_rate +
      • GL_QCOM_texture_foveated +
      • GL_QCOM_texture_foveated_subsampled_layout +
      • GL_VIV_shader_binary +
      • EGL_ANDROID_GLES_layers +
      • EGL_ANDROID_get_frame_timestamps +
      • EGL_ANDROID_get_native_client_buffer +
      • EGL_ARM_image_format +
      • EGL_EXT_bind_to_front +
      • EGL_EXT_client_sync +
      • EGL_EXT_compositor +
      • EGL_EXT_gl_colorspace_display_p3 +
      • EGL_EXT_gl_colorspace_display_p3_linear +
      • EGL_EXT_gl_colorspace_display_p3_passthrough +
      • EGL_EXT_gl_colorspace_scrgb +
      • EGL_EXT_image_gl_colorspace +
      • EGL_EXT_image_implicit_sync_control +
      • EGL_EXT_surface_CTA861_3_metadata +
      • EGL_EXT_sync_reuse +
      • EGL_KHR_display_reference +
      • EGL_MESA_query_driver +
      • EGL_NV_context_priority_realtime +
      • EGL_NV_quadruple_buffer +
      • EGL_NV_stream_dma +
      • EGL_NV_stream_flush +
      • EGL_NV_stream_origin +
      • EGL_NV_triple_buffer +
      • EGL_WL_bind_wayland_display +
      • EGL_WL_create_wayland_buffer_from_image +
      • GLX_EXT_context_priority +
      • GLX_EXT_no_config_context +
      • GLX_NV_multigpu_context +
      • WGL_NV_multigpu_context +
      +
    + +
+ +
+
    +
  • 2.1.0 [07-31-17] +
      +
    • Enhancements: +
        +
      • OpenGL 4.6 support added +
      • Improved Mac OSX build support +
      • Improved cmake build support +
      +
    + +
      +
    • Bug fixes: +
        +
      • Resolved crash when glXGetCurrentDisplay() is NULL +
      • CMake: only install PDB files with MSVC +
      • wglGetProcAddress crash with NOGDI defined +
      • Mac: using -Os rather than -O2 +
      +
    + +
      +
    • New extensions: +
        +
      • GL_AMD_gpu_shader_half_float +
      • GL_AMD_shader_ballot +
      • GL_ARB_gl_spirv +
      • GL_EGL_KHR_context_flush_control +
      • GL_INTEL_conservative_rasterization +
      • GL_MESA_shader_integer_functions +
      • GL_NVX_blend_equation_advanced_multi_draw_buffers +
      • GL_NV_gpu_multicast +
      • EGL_ARM_implicit_external_sync +
      • EGL_EXT_gl_colorspace_bt2020_linear +
      • EGL_EXT_gl_colorspace_bt2020_pq +
      • EGL_EXT_gl_colorspace_scrgb_linear +
      • EGL_EXT_image_dma_buf_import_modifiers +
      • EGL_EXT_pixel_format_float +
      • EGL_EXT_surface_SMPTE2086_metadata +
      • EGL_KHR_context_flush_control +
      • EGL_KHR_no_config_context +
      • EGL_KHR_stream_attrib +
      • EGL_MESA_platform_surfaceless +
      • EGL_NV_stream_cross_display +
      • EGL_NV_stream_cross_object +
      • EGL_NV_stream_cross_partition +
      • EGL_NV_stream_cross_process +
      • EGL_NV_stream_cross_system +
      • EGL_NV_stream_fifo_next +
      • EGL_NV_stream_fifo_synchronous +
      • EGL_NV_stream_frame_limits +
      • EGL_NV_stream_remote +
      • EGL_NV_stream_reset +
      • EGL_NV_stream_socket +
      • EGL_NV_stream_socket_inet +
      • EGL_NV_stream_socket_unix +
      • WGL_EXT_colorspace +
      +
    + +
+ +
+
    +
  • 2.0.0 [07-24-16] +
      +
    • Enhancements: +
        +
      • Forward context support added +
      • OSMesa support added +
      • EGL support added +
      • MX support discontinued +
      • Improved cmake build support +
      +
    +
      +
    • New extensions: +
        +
      • GL_AMD_shader_explicit_vertex_parameter +
      • GL_ARB_gl_spirv +
      • GL_EGL_NV_robustness_video_memory_purge +
      • GL_EXT_window_rectangles +
      • GL_INTEL_conservative_rasterization +
      • GL_KHR_texture_compression_astc_sliced_3d +
      • GL_MESA_shader_integer_functions +
      • GL_NVX_blend_equation_advanced_multi_draw_buffers +
      • GL_NVX_linked_gpu_multicast +
      • GL_NV_clip_space_w_scaling +
      • GL_NV_command_list +
      • GL_NV_conservative_raster_pre_snap_triangles +
      • GL_NV_draw_vulkan_image +
      • GL_NV_gpu_multicast +
      • GL_NV_robustness_video_memory_purge +
      • GL_NV_shader_atomic_float64 +
      • GL_NV_stereo_view_rendering +
      • GL_NV_viewport_swizzle +
      • GLX_EXT_libglvnd +
      • GLX_NV_robustness_video_memory_purge +
      +
    +
+ +
+
    +
  • 1.13.0 [08-10-15] +
      +
    • Enhancements: +
        +
      • glxewInit, wglewInit +
      • glewinfo adds support for -version, -profile core|compatibility and -flag debug|forward parameters +
      • Improved cmake build support +
      +
    +
      +
    • New extensions: +
        +
      • GL_ARB_ES3_2_compatibility +
      • GL_ARB_fragment_shader_interlock +
      • GL_ARB_gpu_shader_int64 +
      • GL_ARB_parallel_shader_compile +
      • GL_ARB_post_depth_coverage +
      • GL_ARB_sample_locations +
      • GL_ARB_shader_atomic_counter_ops +
      • GL_ARB_shader_ballot +
      • GL_ARB_shader_clock +
      • GL_ARB_shader_viewport_layer_array +
      • GL_ARB_sparse_texture2 +
      • GL_ARB_sparse_texture_clamp +
      • GL_ARB_texture_filter_minmax +
      • GL_INTEL_framebuffer_CMAA +
      • GL_KHR_no_error +
      • GL_NV_conservative_raster_dilate +
      • GL_OVR_multiview +
      • GL_OVR_multiview2 +
      +
    • Bug fixes +
    +
+ +
+
    +
  • 1.12.0 [01-26-15] +
      +
    • New extensions: +
        +
      • GL_EXT_polygon_offset_clamp +
      • GL_EXT_post_depth_coverage +
      • GL_EXT_raster_multisample +
      • GL_EXT_sparse_texture2 +
      • GL_EXT_texture_filter_minmax +
      • GL_NV_conservative_raster +
      • GL_NV_fill_rectangle +
      • GL_NV_fragment_coverage_to_color +
      • GL_NV_fragment_shader_interlock +
      • GL_NV_framebuffer_mixed_samples +
      • GL_NV_geometry_shader_passthrough +
      • GL_NV_internalformat_sample_query +
      • GL_NV_sample_locations +
      • GL_NV_sample_mask_override_coverage +
      • GL_NV_shader_atomic_fp16_vector +
      • GL_NV_uniform_buffer_unified_memory +
      • GL_NV_viewport_array2 +
      +
    • Bug fixes +
    +
+ +
+
    +
  • 1.11.0 [08-11-14] +
      +
    • New features: +
        +
      • Support for OpenGL 4.5 +
      +
    • New extensions: +
        +
      • GL_AMD_gcn_shader +
      • GL_AMD_gpu_shader_int64 +
      • GL_AMD_occlusion_query_event +
      • GL_AMD_shader_atomic_counter_ops +
      • GL_AMD_shader_stencil_value_export +
      • GL_AMD_transform_feedback4 +
      • GL_ARB_ES3_1_compatibility +
      • GL_ARB_clip_control +
      • GL_ARB_conditional_render_inverted +
      • GL_ARB_cull_distance +
      • GL_ARB_derivative_control +
      • GL_ARB_direct_state_access +
      • GL_ARB_get_texture_sub_image +
      • GL_ARB_pipeline_statistics_query +
      • GL_ARB_shader_texture_image_samples +
      • GL_ARB_sparse_buffer +
      • GL_ARB_texture_barrier +
      • GL_ARB_transform_feedback_overflow_query +
      • GL_EXT_debug_label +
      • GL_EXT_shader_image_load_formatted +
      • GL_EXT_shader_integer_mix +
      • GL_INTEL_fragment_shader_ordering +
      • GL_INTEL_performance_query +
      • GL_KHR_blend_equation_advanced +
      • GL_KHR_blend_equation_advanced_coherent +
      • GL_KHR_context_flush_control +
      • GL_KHR_robust_buffer_access_behavior +
      • GL_KHR_robustness +
      • GL_KHR_texture_compression_astc_hdr +
      • GL_NV_bindless_multi_draw_indirect_count +
      • GL_NV_shader_atomic_int64 +
      • GL_NV_shader_thread_group +
      • GL_NV_shader_thread_shuffle +
      • GL_REGAL_proc_address +
      • GLX_ARB_context_flush_control +
      • GLX_EXT_stereo_tree +
      • GLX_MESA_query_renderer +
      • GLX_NV_copy_buffer +
      • GLX_NV_delay_before_swap +
      • WGL_ARB_context_flush_control +
      • WGL_NV_delay_before_swap +
      +
    • Bug fixes +
    +
+ +
+
    +
  • 1.10.0 [07-22-13] +
      +
    • New features: +
        +
      • Support for OpenGL 4.4 +
      +
    • New extensions: +
        +
      • GL_AMD_interleaved_elements +
      • GL_AMD_shader_trinary_minmax +
      • GL_AMD_sparse_texture +
      • GL_ANGLE_depth_texture +
      • GL_ANGLE_framebuffer_blit +
      • GL_ANGLE_framebuffer_multisample +
      • GL_ANGLE_instanced_arrays +
      • GL_ANGLE_pack_reverse_row_order +
      • GL_ANGLE_program_binary +
      • GL_ANGLE_texture_compression_dxt1 +
      • GL_ANGLE_texture_compression_dxt3 +
      • GL_ANGLE_texture_compression_dxt5 +
      • GL_ANGLE_texture_usage +
      • GL_ANGLE_timer_query +
      • GL_ANGLE_translated_shader_source +
      • GL_ARB_bindless_texture +
      • GL_ARB_buffer_storage +
      • GL_ARB_clear_texture +
      • GL_ARB_compute_variable_group_size +
      • GL_ARB_enhanced_layouts +
      • GL_ARB_indirect_parameters +
      • GL_ARB_multi_bind +
      • GL_ARB_query_buffer_object +
      • GL_ARB_seamless_cubemap_per_texture +
      • GL_ARB_shader_draw_parameters +
      • GL_ARB_shader_group_vote +
      • GL_ARB_sparse_texture +
      • GL_ARB_texture_mirror_clamp_to_edge +
      • GL_ARB_texture_stencil8 +
      • GL_ARB_vertex_type_10f_11f_11f_rev +
      • GL_INTEL_map_texture +
      • GL_NVX_conditional_render +
      • GL_NV_bindless_multi_draw_indirect +
      • GL_NV_blend_equation_advanced +
      • GL_NV_compute_program5 +
      • GL_NV_deep_texture3D +
      • GL_NV_draw_texture +
      • GL_NV_shader_atomic_counters +
      • GL_NV_shader_storage_buffer_object +
      • GL_REGAL_ES1_0_compatibility +
      • GL_REGAL_ES1_1_compatibility +
      • GL_REGAL_enable +
      • GLX_EXT_buffer_age +
      • WGL_ARB_robustness_application_isolation +
      • WGL_ARB_robustness_share_group_isolation +
      +
    • Bug fixes +
    +
+ +
+
    +
  • 1.9.0 [08-06-12] +
      +
    • New features: + +
    • New extensions: +
        +
      • GL_ARB_ES3_compatibility +
      • GL_ARB_clear_buffer_object +
      • GL_ARB_compute_shader +
      • GL_ARB_copy_image +
      • GL_ARB_explicit_uniform_location +
      • GL_ARB_fragment_layer_viewport +
      • GL_ARB_framebuffer_no_attachments +
      • GL_ARB_internalformat_query2 +
      • GL_ARB_multi_draw_indirect +
      • GL_ARB_program_interface_query +
      • GL_ARB_robust_buffer_access_behavior +
      • GL_ARB_robustness_application_isolation +
      • GL_ARB_robustness_share_group_isolation +
      • GL_ARB_shader_image_size +
      • GL_ARB_shader_storage_buffer_object +
      • GL_ARB_stencil_texturing +
      • GL_ARB_texture_buffer_range +
      • GL_ARB_texture_query_levels +
      • GL_ARB_texture_storage_multisample +
      • GL_ARB_texture_view +
      • GL_ARB_vertex_attrib_binding +
      • GL_EXT_debug_marker +
      • GL_KHR_debug +
      • GL_REGAL_error_string +
      • GL_REGAL_extension_query +
      • GL_REGAL_log +
      • GLX_ARB_robustness_application_isolation +
      • GLX_ARB_robustness_share_group_isolation +
      • GLX_EXT_create_context_es_profile +
      • WGL_EXT_create_context_es_profile +
      +
    • Bug fixes: +
        +
      • Not using GLU library for Makefile builds. +
      +
    +
+ +
+
    +
  • 1.8.0 [07-17-12] +
      +
    • New extensions: +
        +
      • GL_AMD_pinned_memory +
      • GL_AMD_query_buffer_object +
      • GL_AMD_stencil_operation_extended +
      • GL_AMD_vertex_shader_layer +
      • GL_AMD_vertex_shader_viewport_index +
      • GL_NV_bindless_texture +
      • GL_NV_shader_atomic_float +
      • GLX_EXT_swap_control_tear +
      • WGL_EXT_swap_control_tear +
      • WGL_NV_DX_interop2 +
      +
    • Bug fixes: +
        +
      • MS Visual Studio 2010 projects added +
      • GLX_NV_video_out replaces GLX_NV_video_output +
      • ANSI C prototype for glewInit +
      • Improved CentOS build support +
      • Improved GL_ARB_gpu_shader_fp64 support +
      • ARB_texture_compression_bptc and ARB_copy_buffer constants +
      • Linux needs to define GLEW_STATIC for static library builds +
      • Custom code generation problem resolved +
      • GLEWAPIENTRY added to glew.h for calling convention customization +
      • Correction for glPathStencilDepthOffsetNV +
      • Resolve OSX gcc warnings +
      • Added build support for NetBSD +
      +
    +
+ +
+
    +
  • 1.7.0 [08-26-11] +
      +
    • New features: +
        +
      • Support for OpenGL 4.2 +
      +
    • New extensions: +
        +
      • GL_AMD_multi_draw_indirect +
      • GL_ARB_base_instance +
      • GL_ARB_compressed_texture_pixel_storage +
      • GL_ARB_conservative_depth +
      • GL_ARB_internalformat_query +
      • GL_ARB_map_buffer_alignment +
      • GL_ARB_shader_atomic_counters +
      • GL_ARB_shader_image_load_store +
      • GL_ARB_shading_language_420pack +
      • GL_ARB_shading_language_packing +
      • GL_ARB_texture_storage +
      • GL_ARB_transform_feedback_instanced +
      • GL_EXT_framebuffer_multisample_blit_scaled +
      • GL_NV_path_rendering +
      • GL_NV_path_rendering +
      • GLX_MESA_swap_control +
      +
    • Bug fixes: +
        +
      • const qualifiers for GL 1.4 MultiDrawArrays, MultiDrawElements +
      • Add glGetGraphicsResetStatusARB to GL_ARB_robustness +
      • Remove EXT suffix from GL_KTX_buffer_region entry points +
      • Solaris needs inttypes.h +
      • Add ERROR_INVALID_VERSION_ARB and ERROR_INVALID_PROFILE_ARB to WGL_ARB_create_context +
      • Add GLX_MESA_swap_control +
      • Set -install_name for OSX +
      • Add 64-bit darwin build option (SYSTEM=darwin_x86-64) +
      • Add GL_NV_path_rendering +
      +
    +
+ +
+
    +
  • 1.6.0 [04-27-11] +
      +
    • New extensions: +
        +
      • GL_AMD_blend_minmax_factor +
      • GL_AMD_sample_positions +
      • GL_EXT_x11_sync_object +
      • GL_NV_texture_multisample +
      • GL_NV_video_capture +
      • GLX_NV_video_capture +
      • WGL_NV_DX_interop +
      • WGL_NV_video_capture +
      +
    • Bug fixes: +
        +
      • Define GLEW_NO_GLU for no glu dependency. +
      • mx suffix for GLEW MX libraries, build both libraries by default. +
      • Cygwin build improvements +
      • Soname of GLEWmx shared libraries +
      • Query GL extension string only once +
      • GLX_OML_sync_control no longer requires C99 +
      • glDraw*InstancedARB moved from GL_ARB_draw_instanced to GL_ARB_instanced_arrays +
      • glFramebufferTextureLayerEXT moved from GL_EXT_geometry_shader4 to GL_EXT_texture_array +
      • Fixes for BSD build +
      +
    +
+ +
+
    +
  • 1.5.8 [01-31-11] +
      +
    • New extensions: +
        +
      • GL_AMD_depth_clamp_separate +
      • GL_EXT_texture_sRGB_decode +
      +
    • Bug fixes: +
        +
      • Borland C++ fix for __int64 +
      • GL_DOUBLE_MATNxM enumerants for OpenGL 4.0 +
      • Correction to glGetTransformFeedbackVarying +
      • Correction to glSecondaryColorPointer +
      • Corrections to glGetVertexAttribPointerv and glGetShaderSource +
      • Switched code repository from svn to git +
      +
    +
+ +
+
    +
  • 1.5.7 [11-03-10] +
      +
    • New extension: +
        +
      • GL_NVX_gpu_memory_info +
      +
    • Bug fixes: +
        +
      • Improved mingw32 build support +
      • Improved cygwin build support +
      • glGetPointervEXT fix +
      • Add GLEW_VERSION_1_2_1 +
      +
    +
+ +
+
    +
  • 1.5.6 [09-07-10] +
      +
    • New features: +
        +
      • Support for OpenGL 4.1 +
      +
    • New extensions: +
        +
      • GL_ARB_ES2_compatibility +
      • GL_ARB_cl_event +
      • GL_ARB_debug_output +
      • GL_ARB_get_program_binary +
      • GL_ARB_robustness +
      • GL_ARB_separate_shader_objects +
      • GL_ARB_shader_precision +
      • GL_ARB_shader_stencil_export +
      • GL_ARB_vertex_attrib_64bit +
      • GL_ARB_viewport_array +
      • GLX_ARB_create_context_robustness +
      • GLX_EXT_create_context_es2_profile +
      • WGL_ARB_create_context_robustness +
      • WGL_EXT_create_context_es2_profile +
      +
    +
+ +
+
    +
  • 1.5.5 [07-13-10] +
      +
    • New extensions: +
        +
      • GL_AMD_debug_output +
      • GL_AMD_name_gen_delete +
      • GL_AMD_transform_feedback3_lines_triangles +
      • GL_NV_multisample_coverage +
      • GL_NV_vdpau_interop +
      • GLX_AMD_gpu_association +
      • GLX_NV_multisample_coverage +
      • WGL_NV_multisample_coverage +
      +
    • Bug fixes: +
        +
      • Compilation issue with GLX_SGI_video_sync +
      • OpenGL 4.0 double-precision uniform functions added +
      • Constness of glPointParameterfvARB and glPointParameterfvEXT +
      • Added glVertexAttribDivisor +
      • Compilation issue with Nvidia GLX headers +
      +
    +
+ +
+
    +
  • 1.5.4 [04-21-10] +
      +
    • New features: +
        +
      • Support for OpenGL 3.3 +
      • Support for OpenGL 4.0 +
      +
    • New extensions: +
        +
      • GL_AMD_conservative_depth +
      • GL_ARB_blend_func_extended +
      • GL_ARB_draw_indirect +
      • GL_ARB_explicit_attrib_location +
      • GL_ARB_gpu_shader5 +
      • GL_ARB_gpu_shader_fp64 +
      • GL_ARB_occlusion_query2 +
      • GL_ARB_sampler_objects +
      • GL_ARB_shader_bit_encoding +
      • GL_ARB_shader_subroutine +
      • GL_ARB_shading_language_include +
      • GL_ARB_tessellation_shader +
      • GL_ARB_texture_buffer_object_rgb32 +
      • GL_ARB_texture_compression_bptc +
      • GL_ARB_texture_rgb10_a2ui +
      • GL_ARB_texture_swizzle +
      • GL_ARB_timer_query +
      • GL_ARB_transform_feedback2 +
      • GL_ARB_transform_feedback3 +
      • GL_ARB_vertex_type_2_10_10_10_rev +
      • GL_EXT_shader_image_load_store +
      • GL_EXT_vertex_attrib_64bit +
      • GL_NV_gpu_program5 +
      • GL_NV_gpu_program_fp64 +
      • GL_NV_gpu_shader5 +
      • GL_NV_tessellation_program5 +
      • GL_NV_vertex_attrib_integer_64bit +
      • GLX_ARB_vertex_buffer_object +
      +
    • Bug fixes: +
        +
      • Parameter constness fix for glPointParameteriv and glPointParameterfv +
      +
    +
+ +
+
    +
  • 1.5.3 [02-28-10] +
      +
    • New extensions: +
        +
      • GLX_INTEL_swap_event +
      • GL_AMD_seamless_cubemap_per_texture +
      • GL_AMD_shader_stencil_export +
      +
    • Bug fixes: +
        +
      • Correct version detection for GL 3.1 and 3.2 +
      • Missing 3.1 enumerants +
      • Add glew.pc +
      +
    +
+ +
+
    +
  • 1.5.2 [12-31-09] +
      +
    • New features: +
        +
      • Support for OpenGL 3.1 +
      • Support for OpenGL 3.2 +
      +
    • New extensions: +
        +
      • GL_AMD_draw_buffers_blend +
      • GL_AMD_performance_monitor +
      • GL_AMD_texture_texture4 +
      • GL_AMD_vertex_shader_tessellator +
      • GL_APPLE_aux_depth_stencil +
      • GL_APPLE_object_purgeable +
      • GL_APPLE_rgb_422 +
      • GL_APPLE_row_bytes +
      • GL_APPLE_vertex_program_evaluators +
      • GL_ARB_compatibility +
      • GL_ARB_copy_buffer +
      • GL_ARB_depth_clamp +
      • GL_ARB_draw_buffers_blend +
      • GL_ARB_draw_elements_base_vertex +
      • GL_ARB_fragment_coord_conventions +
      • GL_ARB_provoking_vertex +
      • GL_ARB_sample_shading +
      • GL_ARB_seamless_cube_map +
      • GL_ARB_shader_texture_lod +
      • GL_ARB_sync +
      • GL_ARB_texture_cube_map_array +
      • GL_ARB_texture_gather +
      • GL_ARB_texture_multisample +
      • GL_ARB_texture_query_lod +
      • GL_ARB_uniform_buffer_object +
      • GL_ARB_vertex_array_bgra +
      • GL_ATI_meminfo +
      • GL_EXT_provoking_vertex +
      • GL_EXT_separate_shader_objects +
      • GL_EXT_texture_snorm +
      • GL_NV_copy_image +
      • GL_NV_parameter_buffer_object2 +
      • GL_NV_shader_buffer_load +
      • GL_NV_texture_barrier +
      • GL_NV_transform_feedback2 +
      • GL_NV_vertex_buffer_unified_memory +
      • WGL_AMD_gpu_association +
      • WGL_ARB_create_context_profile +
      • WGL_NV_copy_image +
      • GLX_ARB_create_context_profile +
      • GLX_EXT_swap_control +
      • GLX_NV_copy_image +
      +
    • Bug fixes: +
        +
      • DOS line endings for windows .zip archives only. +
      • glTransformFeedbackVaryings arguments. +
      • Resource leak in glewinfo and visualinfo tools. +
      • WIN32_LEAN_AND_MEAN preprocessor pollution. +
      • Fixed version detection for GLEW_VERSION_2_1 and GLEW_VERSION_3_0. +
      • MesaGLUT glut.h GLAPIENTRY dependency. +
      • glFramebufferTextureLayer correction. +
      • OSX compiler warnings resolved. +
      • Cygwin linking to opengl32 by default, rather than X11 OpenGL. +
      • SnowLeopard (OSX 10.6) gl.h detection. +
      • Use $(STRIP) consistently. +
      +
    +
+ +
+
    +
  • 1.5.1 [11-03-08] +
      +
    • New features: +
        +
      • Support for OpenGL 3.0 +
      +
    • New extensions: +
        +
      • GL_ARB_depth_buffer_float +
      • GL_ARB_draw_instance, +
      • GL_ARB_framebuffer_object +
      • GL_ARB_framebuffer_sRGB +
      • GL_ARB_geometry_shader4 +
      • GL_ARB_half_float_pixel +
      • GL_ARB_half_float_vertex +
      • GL_ARB_instanced_arrays +
      • GL_ARB_map_buffer_range +
      • GL_ARB_texture_buffer_object +
      • GL_ARB_texture_compression_rgtc +
      • GL_ARB_vertex_array_object +
      • GL_EXT_direct_state_access +
      • GL_EXT_texture_swizzle +
      • GL_EXT_transform_feedback +
      • GL_EXT_vertex_array_bgra +
      • GL_NV_conditional_render +
      • GL_NV_explicit_multisample +
      • GL_NV_present_video +
      • GL_SGIS_point_line_texgen +
      • GL_SGIX_convolution_accuracy +
      • WGL_ARB_create_context +
      • WGL_ARB_framebuffer_sRGB +
      • WGL_NV_present_video +
      • WGL_NV_swap_group +
      • WGL_NV_video_output +
      • GLX_ARB_create_context +
      • GLX_ARB_framebuffer_sRGB +
      • GLX_NV_present_video +
      • GLX_NV_swap_group +
      • GLX_NV_video_output +
      +
    • Bug fixes: +
        +
      • Licensing issues with documentation +
      • Problems with long long and _MSC_VER on MINGW +
      • Incorrect parameter for glGetUniformLocation +
      • glewGetExtension fails on last entry +
      • Incomplete GL_NV_texture_shader tokens +
      • Scripting problems on Cygwin +
      • Incorrect definition for GLint on OS X +
      +
    +
+ +
+
    +
  • 1.5.0 [12-27-07] +
      +
    • New features: +
        +
      • Licensing change (BSD, Mesa 3-D, Khronos) +
      • Switch to using registry on www.opengl.org +
      • Support for major and minor version strings +
      +
    • New extensions: +
        +
      • GL_APPLE_flush_buffer_range +
      • GL_GREMEDY_frame_terminator +
      • GLX_EXT_texture_from_pixmap +
      +
    • Bug fixes: +
        +
      • Incorrect 64-bit type definitions +
      • Do not strip static library on install +
      • Missing tokens in GL_ATI_fragment_shader and WGL_{ARB,EXT}_make_current_read +
      • Missing tokens in GL_VERSION_2_1 +
      • Missing functions in GL_VERSION_1_4 +
      • Incorrect parameter type for glXCopyContext +
      +
    +
+
+
    +
  • 1.4.0 [04-27-07] +
      +
    • New features: +
        +
      • Extension variables are declared const to avoid possible +corruption of their values +
      +
    • New extensions: +
        +
      • GL_NV_depth_range_unclamped +
      +
    • Bug fixes: +
        +
      • Incorrect tokens in GL_NV_transform_feedback and GL_NV_framebuffer_multisample_coverage +
      • Incorrect function names in GL_EXT_gpu_program_parameters +
      • Missing tokens in GL_EXT_framebuffer_multisample +
      • GLEW_MX initialization problem for WGL_{ARB,EXT}_extensions_string +
      +
    +
+
+
    +
  • 1.3.6 [03-04-07] +
      +
    • New extensions: +
        +
      • GL_ATI_shader_texture_lod +
      • GL_EXT_gpu_program_parameters +
      • GL_NV_geometry_shader4 +
      • WGL_NV_gpu_affinity +
      • GLX_SGIX_hyperpipe +
      +
    • Bug fixes: +
        +
      • Missing include guards in glxew.h +
      • Makefile and install problems for Cygwin builds +
      • Install problem for Linux AMD64 builds +
      • Incorrect token in GL_ATI_texture_compression_3dc +
      • Missing tokens from GL_ATIX_point_sprites +
      +
    +
+
+
    +
  • 1.3.5 [11-21-06] +
      +
    • New features: +
        +
      • Support for core OpenGL 2.1 +
      • Debug support for glewIsSupported +
      +
    • New extensions: +
        +
      • GL_EXT_bindable_uniform +
      • GL_EXT_draw_buffers2 +
      • GL_EXT_draw_instanced +
      • GL_EXT_framebuffer_sRGB +
      • GL_EXT_geometry_shader4 +
      • GL_EXT_gpu_shader4 +
      • GL_EXT_packed_float +
      • GL_EXT_texture_array +
      • GL_EXT_texture_buffer_object +
      • GL_EXT_texture_compression_latc +
      • GL_EXT_texture_compression_rgtc +
      • GL_EXT_texture_integer +
      • GL_EXT_texture_shared_exponent +
      • GL_EXT_timer_query +
      • GL_NV_depth_buffer_float +
      • GL_NV_fragment_program4 +
      • GL_NV_framebuffer_multisample_coverage +
      • GL_NV_geometry_program4 +
      • GL_NV_gpu_program4 +
      • GL_NV_parameter_buffer_object +
      • GL_NV_transform_feedback +
      • GL_NV_vertex_program4 +
      • GL_OES_byte_coordinates +
      • GL_OES_compressed_paletted_texture +
      • GL_OES_read_format +
      • GL_OES_single_precision +
      • WGL_EXT_pixel_format_packed_float +
      • WGL_EXT_framebuffer_sRGB +
      • GLX_EXT_fbconfig_packed_float +
      • GLX_EXT_framebuffer_sRGB +
      +
    • Bug fixes: +
        +
      • Wrong GLXContext definition on Solaris +
      • Makefile problem for parallel builds +
      +
    +
+
+
    +
  • 1.3.4 [03-04-06] +
      +
    • New extensions: +
        +
      • GL_EXT_framebuffer_blit +
      • GL_EXT_framebuffer_multisample +
      • GL_EXT_packed_depth_stencil +
      • GL_MESAX_texture_stack +
      • WGL_3DL_stereo_control +
      +
    +
      +
    • Bug fixes: +
        +
      • glBlendEquation missing from GL_ARB_imaging +
      • Wrong APIENTRY definition for Cygwin +
      • Incorrect OS X OpenGL types +
      • Unix 64-bit installation patch +
      +
    +
+
+
    +
  • 1.3.3 [05-16-05] +
      +
    • New feature: +
        +
      • Code generation option to split source into multiple files +
      +
    +
      +
    • Bug fixes: +
        +
      • OpenGL 2.0 core initialization problems +
      • Wrong value for token GL_SHADER_TYPE +
      • Missing tokens in GL_ATI_fragment_shader +
      • Missing entry points in GL_ARB_transpose_matrix +
      +
    +
+
+
    +
  • 1.3.2 [03-16-05] +
      +
    • New extension: +
        +
      • GL_APPLE_pixel_buffer +
      +
    • Bug fixes: +
        +
      • Missing OpenGL 2.0 entry points +
      • Missing tokens in GL_SGIX_shadow +
      • MinGW makefile problem +
      • Check for incorrect OpenGL version string on SiS hardware +
      • Documentation update to meet the HTML 4.01 Transitional specification +
      +
    +
+
+
    +
  • 1.3.1 [02-02-05] +
      +
    • New features: +
        +
      • Consistent Unix and Windows versioning +
      +
    • New extensions: +
        +
      • GL_EXT_framebuffer_object +
      • GL_ARB_pixel_buffer_object +
      +
    • Bug fixes: +
        +
      • Missing OpenGL 2.0 tokens +
      • Incorrect typedefs (GLhandleARB and GLhalf) +
      • Borland compiler problems +
      +
    +
+
+
    +
  • 1.3.0 [01-04-05] +
      +
    • New features: +
        +
      • Support for core OpenGL 2.0 +
      • glewIsSupported provides efficient string-based extension checks +
      • Custom code generation from a list of extensions +
      • Makefile changes +
      +
    • New extensions: +
        +
      • WGL_ATI_render_texture_rectangle +
      +
    • Bug fixes: +
        +
      • Incorrect function signature in OpenGL 1.5 core +
      +
    +
+
+
    +
  • 1.2.5 [12-06-04] +
      +
    • New extensions: +
        +
      • GL_ATI_texture_compression_3dc +
      • GL_EXT_Cg_shader +
      • GL_EXT_draw_range_elements +
      • GL_KTX_buffer_region +
      +
    • Bug fixes: +
        +
      • OpenGL version detection bug +
      • Problems with wxWindows and MinGW compilation +
      • visualinfo compilation problem with GLEW_MX specified +
      • Wrong token name in OpenGL 1.5 core +
      +
    • Support for FreeBSD +
    +
+
+
    +
  • 1.2.4 [09-06-04] +
      +
    • Added ARB_draw_buffers and ARB_texture_rectangle +
    • Fixed bug in ARB_shader_objects +
    • Replaced wglinfo with visualinfo +
    +
+
+
    +
  • 1.2.3 [06-10-04] +
      +
    • Added GL_NV_fragment_program2, GL_NV_fragment_program_option, GL_NV_vertex_program2_option, GL_NV_vertex_program3 +
    • Bug fix in GL_ARB_vertex_blend +
    +
+
+
    +
  • 1.2.2 [05-08-04] +
      +
    • Added GL_EXT_pixel_buffer_object, removed GL_NV_element_array +
    • Fixed GLEW_MX problems +
    • Bug fix in GL_EXT_texture_rectangle and wglinfo +
    +
+
+
    +
  • 1.2.1 [03-18-04] +
      +
    • Bug fix in OpenGL version query (early release of 1.2.0 contained this bug) +
    • Bug fix in GL_ARB_shader_objects and temporary bug fix in GL_ARB_vertex_shader +
    • Added flags on GDI support and multisampling to wglinfo +
    +
+
+
    +
  • 1.2.0 [02-19-04] +
      +
    • Added full OpenGL 1.5 support +
    • Added support for multiple rendering contexts with different capabilities +
    • Added command line flags to glewinfo for selecting displays and visuals +
    • Added GLX_SGIS_multisample, GLX_SUN_video_resize, and GL_SUN_read_video_pixels +
    • Added MinGW/MSYS support +
    • Bug fixes in GL_ARB_shader_objects and the OS X build +
    +
+
+
    +
  • 1.1.4 [12-15-03] +
      +
    • Added GL_APPLE_float_pixels, GL_APPLE_texture_range, +GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, +GLX_ATI_pixel_format_float, and GLX_ATI_render_texture +
    • Bug fixes in GL_ATI_map_object_buffer and GL_ATI_fragment_shader +
    +
+
+
    +
  • 1.1.3 [10-28-03] +
      +
    • Added Solaris and Darwin support +
    • Added GL_ARB_fragment_shader, GL_ARB_shader_objects, and GL_ARB_vertex_shader +
    • Fixed bug in GL_WIN_swap_hint +
    • Removed glewinfo's dependency on GLUT +
    +
+
+
    +
  • 1.1.2 [09-15-03] +
      +
    • Removed dependency on WGL_{ARB,EXT}_extensions_string to make GLEW run on Matrox cards +
    • Added glewGetString for querying the GLEW version string +
    +
+
+
    +
  • 1.1.1 [08-11-03] +
      +
    • Added GLX_NV_float_buffer, GL_ARB_shading_language_100, and GL_ARB_texture_non_power_of_two +
    • Fixed bug in GL_ARB_vertex_buffer_object +
    • Minor updates in documentation +
    +
+
+
    +
  • 1.1.0 [07-08-03] +
      +
    • Added automatic code generation +
    • Added almost every extension in the registry +
    • Added separate namespace +
    • Added Irix support +
    • Updated documentation +
    +
+
+
    +
  • 1.0.7 [06-29-03] +
      +
    • Added GL_EXT_depth_bounds_test +
    • Fixed typos +
    +
+
+
    +
  • 1.0.6 [05-05-03] +
      +
    • Added ARB_vertex_buffer_object and NV_half_float +
    • Updated wglinfo +
    • Temporary Linux bug fixes (problems with SDL and MESA) +
    +
+
+
    +
  • 1.0.5 [02-17-03] +
      +
    • Bug fixes +
    • Added wglinfo +
    • Updated documentation +
    +
+
+
    +
  • 1.0.4 [02-02-03] +
      +
    • Added NV_texture_expand_normal +
    • Added mingw support +
    • Updated documentation +
    +
+
+
    +
  • 1.0.3 [01-09-03] +
      +
    • Cleaned up ATI extensions +
    • Changed function prototypes to match glext.h +
    • Added EXT_texture3D +
    • Fixed typos in ATI_vertex_attrib_array_object and ATI_draw_buffers +
    +
+
+
    +
  • 1.0.2 [12-21-02] +
      +
    • Added list of supported extensions to documentation +
    • Added NV_half_float and NV_texgen_emboss +
    +
+
+
    +
  • 1.0.1 [12-17-02] +
      +
    • Bug fixes +
    • Added glewGetExtension +
    +
+
+
    +
  • 1.0.0 [12-12-02] +
      +
    • Initial release +
    +
+
+ + +
+ + diff --git a/vendor/glew-cmake-2.2.0/doc/mesa.txt b/vendor/glew-cmake-2.2.0/doc/mesa.txt new file mode 100644 index 0000000..a82dd4b --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/mesa.txt @@ -0,0 +1,21 @@ +Mesa 3-D graphics library +Version: 7.0 + +Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/glew-cmake-2.2.0/doc/new.png b/vendor/glew-cmake-2.2.0/doc/new.png new file mode 100644 index 0000000..7ce2b47 Binary files /dev/null and b/vendor/glew-cmake-2.2.0/doc/new.png differ diff --git a/vendor/glew-cmake-2.2.0/doc/ogl_sm.jpg b/vendor/glew-cmake-2.2.0/doc/ogl_sm.jpg new file mode 100644 index 0000000..f318d76 Binary files /dev/null and b/vendor/glew-cmake-2.2.0/doc/ogl_sm.jpg differ diff --git a/vendor/glew-cmake-2.2.0/doc/travis.png b/vendor/glew-cmake-2.2.0/doc/travis.png new file mode 100644 index 0000000..caf2607 Binary files /dev/null and b/vendor/glew-cmake-2.2.0/doc/travis.png differ diff --git a/vendor/glew-cmake-2.2.0/doc/wglew.html b/vendor/glew-cmake-2.2.0/doc/wglew.html new file mode 100644 index 0000000..1826b01 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/doc/wglew.html @@ -0,0 +1,169 @@ + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 2.2.0

GLEW Logo

+ + + + + + + + + + + + + +
Download
Usage
Building
Installation
Source Generation
Change Log

GitHub
Issues
Pull Requests

SourceForge Page
+

+
+ + + + +
Last Update: 03-15-20
+ OpenGL Logo
+ GitHub Logo
+ Travis Logo
+ SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Supported WGL Extensions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1 3DFX_multisample

2 3DL_stereo_control

3 AMD_gpu_association

4 ARB_buffer_region
5 ARB_context_flush_control
6 ARB_create_context
7 ARB_create_context_no_error
8 ARB_create_context_profile
9 ARB_create_context_robustness
10 ARB_extensions_string
11 ARB_framebuffer_sRGB
12 ARB_make_current_read
13 ARB_multisample
14 ARB_pbuffer
15 ARB_pixel_format
16 ARB_pixel_format_float
17 ARB_render_texture
18 ARB_robustness_application_isolation
19 ARB_robustness_share_group_isolation

20 ATI_pixel_format_float
21 ATI_render_texture_rectangle

22 EXT_colorspace
23 EXT_create_context_es2_profile
24 EXT_create_context_es_profile
25 EXT_depth_float
26 EXT_display_color_table
27 EXT_extensions_string
28 EXT_framebuffer_sRGB
29 EXT_make_current_read
30 EXT_multisample
31 EXT_pbuffer
32 EXT_pixel_format
33 EXT_pixel_format_packed_float
34 EXT_swap_control
35 EXT_swap_control_tear

36 I3D_digital_video_control
37 I3D_gamma
38 I3D_genlock
39 I3D_image_buffer
40 I3D_swap_frame_lock
41 I3D_swap_frame_usage

42 NV_DX_interop
43 NV_DX_interop2
44 NV_copy_image
45 NV_delay_before_swap
46 NV_float_buffer
47 NV_gpu_affinity
48 NV_multigpu_context
49 NV_multisample_coverage
50 NV_present_video
51 NV_render_depth_texture
52 NV_render_texture_rectangle
53 NV_swap_group
54 NV_vertex_array_range
55 NV_video_capture
56 NV_video_output

57 OML_sync_control
+ +
+ + diff --git a/vendor/glew-cmake-2.2.0/glew-cmake/Dockerfile b/vendor/glew-cmake-2.2.0/glew-cmake/Dockerfile new file mode 100644 index 0000000..9fc0db8 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/glew-cmake/Dockerfile @@ -0,0 +1,10 @@ +# Azure pipeline require glibc based image +FROM debian:buster-slim + +RUN apt update && \ + apt install -y git make gcc python && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* + +RUN mkdir -p ~/.ssh && \ + ssh-keyscan github.com >> ~/.ssh/known_hosts \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/glew-cmake/cmake-install-test.cmake b/vendor/glew-cmake-2.2.0/glew-cmake/cmake-install-test.cmake new file mode 100644 index 0000000..600f781 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/glew-cmake/cmake-install-test.cmake @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 2.8.12) +project(cmake_install_test) + +# Dependencies of glew. +# These are referenced in glewConfig.cmake. but, not automatically found. +find_package(OpenGL REQUIRED) +find_package(X11 REQUIRED) + +find_package(glew) +add_executable(glewinfo glewinfo.c) +target_link_libraries(glewinfo PRIVATE libglew_static) diff --git a/vendor/glew-cmake-2.2.0/glew-cmake/fetch-content.cmake b/vendor/glew-cmake-2.2.0/glew-cmake/fetch-content.cmake new file mode 100644 index 0000000..274370a --- /dev/null +++ b/vendor/glew-cmake-2.2.0/glew-cmake/fetch-content.cmake @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.4) +project(fetch_content) + +include(FetchContent) +FetchContent_Declare( + glew + GIT_REPOSITORY https://github.com/Perlmint/glew-cmake.git + GIT_TAG origin/master +) +FetchContent_GetProperties(glew) +if(NOT glew_POPULATED) + FetchContent_Populate(glew) + + add_subdirectory(${glew_SOURCE_DIR} ${glew_BINARY_DIR} EXCLUDE_FROM_ALL) +endif() + +add_executable(glewinfo glewinfo.c) +target_link_libraries(glewinfo PRIVATE libglew_static) diff --git a/vendor/glew-cmake-2.2.0/glew-cmake/maintain.sh b/vendor/glew-cmake-2.2.0/glew-cmake/maintain.sh new file mode 100644 index 0000000..9eba428 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/glew-cmake/maintain.sh @@ -0,0 +1,240 @@ +#!/bin/bash +# +# This script is used for auto maintaining +# - merging with original repo +# - regenerating sources and headers +# - push changes to repository +# +set -euxo pipefail + +ORIGINAL_REPO_URL=https://github.com/nigels-com/glew.git +absolute_path () { + local TARGET_FILE=$1 + shift + local OUT=$1 + shift + pushd `dirname $TARGET_FILE` + TARGET_FILE=`basename $TARGET_FILE` + + # Iterate down a (possible) chain of symlinks + while [ -L "$TARGET_FILE" ] + do + TARGET_FILE=`readlink $TARGET_FILE` + cd `dirname $TARGET_FILE` + TARGET_FILE=`basename $TARGET_FILE` + done + + # Compute the canonicalized name by finding the physical path + # for the directory we're in and appending the target file. + PHYS_DIR=`pwd -P` + RESULT=$PHYS_DIR/$TARGET_FILE + eval "$OUT=\"${RESULT}\"" + popd +} + +if [ -z "${WORKSPACE:-}" ]; then + echo "Set WORKSPACE as default value" + absolute_path "$0" SCRIPT_PATH + WORKSPACE=$(dirname "$SCRIPT_PATH") + WORKSPACE=$(dirname "$WORKSPACE") + echo "WORKSPACE=$WORKSPACE" +fi + +if [ -z "${TEST_MODE:-}" -o "${TEST_MODE:-}" != "false" ]; then + PUSH_ARG="--dry-run" +else + PUSH_ARG="" +fi + +source_update () { + GIT_BRANCH_NAME=$1 + # for recovery when test mode. + PUSH_COUNT=0 + + echo "Checkout branch ${GIT_BRANCH_NAME}" + git reset --hard + git clean -f . + if [ `git branch | grep ${GIT_BRANCH_NAME} | wc -l` = 0 ]; then + git checkout origin/${GIT_BRANCH_NAME} -b ${GIT_BRANCH_NAME} + else + git checkout -f $GIT_BRANCH_NAME + git pull -s recursive -X theirs --no-edit --progress origin + fi + echo "Pull from origin repository(${ORIGINAL_REPO_URL})" + BEFORE_COMMIT=`git rev-parse HEAD` + git pull -s recursive -X theirs --no-edit --commit --progress original_repo ${GIT_BRANCH_NAME} + AFTER_COMMIT=`git rev-parse HEAD` + if [ "$BEFORE_COMMIT" != "$AFTER_COMMIT" ]; then + echo "Source Updated" + git checkout "original_repo/${GIT_BRANCH_NAME}" -- README.md + git mv -f README.md README_glew.md + git checkout $BEFORE_COMMIT -- README.md + git add -f README.md README_glew.md + git commit --amend -m "Merge ${ORIGINAL_REPO_URL} into ${GIT_BRANCH_NAME} HEAD at $(TZ=GMT date)" + git push ${PUSH_ARG} origin $GIT_BRANCH_NAME:$GIT_BRANCH_NAME + PUSH_COUNT=$((PUSH_COUNT + 1)) + fi + + cd "$WORKSPACE/auto" + echo "CleanUp" + make clean + cd "$WORKSPACE/auto" + REGISTRIES=`find . -name .git -type d -exec dirname {} \;` + for REGISTRY in $REGISTRIES + do + rm -rf $REGISTRY + done + cd "$WORKSPACE" + echo "Generated Source Update" + make extensions + echo "Diff sources" + git add --force src/glew.c src/glewinfo.c include/GL/* doc/* build/*.rc + # Check is there any staged changes? + if [ `git diff --cached | wc -c` -ne 0 ]; then + # Commit and push it + echo "Sources updated" + git commit -m"Generate Sources of ${GIT_BRANCH_NAME} updated at $(TZ=GMT date)" + echo "Push to repository" + git push ${PUSH_ARG} origin ${GIT_BRANCH_NAME}:${GIT_BRANCH_NAME} + PUSH_COUNT=$((PUSH_COUNT + 1)) + else + echo "Differences Not found" + fi + + # when test mode, reset created commits + if [ -n "$PUSH_ARG" ]; then + echo "Reset commits" + git reset --hard HEAD~${PUSH_COUNT} + fi +} + +import_tags () { + echo "Fetch tags from origin repository(${ORIGINAL_REPO_URL})" + BEFORE_TAG_COUNT=`git tag | wc -l | sed "s/^ \+//"` + git fetch --tags --progress original_repo + AFTER_TAG_COUNT=`git tag | wc -l | sed "s/^ \+//"` + NEW_VERSION_TAGS=`diff -u <(git tag | grep glew-cmake- | sed s/glew-cmake/glew/) <(git tag | grep "glew-[0-9]") | grep ^+ | sed 1d | sed s/^+// || true` + if [ ! $BEFORE_TAG_COUNT -eq $AFTER_TAG_COUNT -o ! -z "$NEW_VERSION_TAGS" ]; then + echo "Tags updated" + git push ${PUSH_ARG} --tags origin + + git checkout glew-cmake-release + for TAG in $NEW_VERSION_TAGS + do + echo "Import $TAG" + git checkout $TAG -- . + git mv -f README.md README_glew.md + git checkout master -- CMakeLists.txt GeneratePkgConfig.cmake README.md + cd "$WORKSPACE/auto" + COMMIT_TIME=`git log -1 $TAG --format=%ct` + echo "Patch perl scripts for new version" + find bin -name '*.pl' -exec sed -i "s/do 'bin/use lib '.';\ndo 'bin/" {} \; + echo "Remove registries" + REGISTRIES=`find . -name .git -type d -exec dirname {} \;` + for REGISTRY in $REGISTRIES + do + rm -rf $REGISTRY + done + echo "Run code generation to download registries" + make clean + cd "$WORKSPACE" + make extensions + echo "Rewind registry repos" + cd "$WORKSPACE/auto" + make clean + REGISTRIES=`find . -name .git -type d -exec dirname {} \;` + for REGISTRY in $REGISTRIES + do + cd "$WORKSPACE/auto/$REGISTRY" + PROPER_COMMIT=`git log --until=$COMMIT_TIME -1 --format=%H` + git checkout --force $PROPER_COMMIT + find . -name .dummy -exec touch {} \; + done + echo "CleanUp for tag" + cd "$WORKSPACE/auto" + # remove previous data + rm -rf extensions + echo "Generate source code" + make + cd "$WORKSPACE" + git reset + git add --force src include doc CMakeLists.txt GeneratePkgConfig.cmake build/*.rc config/version + if [ `git diff --cached | wc -c` -ne 0 ]; then + git commit -m"glew-cmake release from $TAG" + NEW_TAG=`echo $TAG | sed s/glew-/glew-cmake-/` + git tag $NEW_TAG + else + echo "No difference! something wrong" + fi + done + + git push ${PUSH_ARG} origin glew-cmake-release + if [ -z "$PUSH_ARG" ]; then + git push --tags ${PUSH_ARG} origin + fi + + # when test mode, reset created commits + if [ -n "$PUSH_ARG" ]; then + echo "Reset commits for tags" + for TAG in $NEW_VERSION_TAGS + do + NEW_TAG=`echo $TAG | sed s/glew-/glew-cmake-/` + git tag -d $NEW_TAG + git reset --hard HEAD~1 + done + fi + fi +} + +# add remote when original repo is not found in local repo +if [ `git remote | grep original_repo | wc -l` = 0 ]; then + git remote add original_repo ${ORIGINAL_REPO_URL} +fi + +git fetch -n original_repo + +branch_list () { + eval "$2=\"`git branch -r | grep $1 | sed "s/\s\+$1\///g" | sed ':a;N;$!ba;s/\n/ /g'`\"" +} + +contains () { + local OUT=$1 + shift + local seeking=$1 + shift + local in=1 + for element in $*; do + if [ $element = $seeking ]; then + in=0 + break + fi + done + eval "$OUT=\"${in}\"" +} + +#branch_list original_repo ORIGINAL_REPO_BRANCH_LIST +#branch_list origin ORIGIN_REPO_BRANCH_LIST + +join () { + local OUT=$1 + shift + local value="`echo $* | sed "s/ /\n/g" | sort -u | sed ':a;N;$!ba;s/\n/ /g'`" + eval "$OUT=\"${value}\"" +} + +#join ALL_BRANCH_LIST $ORIGINAL_REPO_BRANCH_LIST $ORIGIN_REPO_BRANCH_LIST +# +#for branch in $ALL_BRANCH_LIST; do +# contains IN_ORIGINAL_REPO $branch $ORIGINAL_REPO_BRANCH_LIST +# if [ $IN_ORIGINAL_REPO = 1 ]; then +# if [ $branch != "glew-cmake-release" ]; then +# git push ${PUSH_ARG} origin :$branch +# fi +# else +# source_update $branch +# fi +#done + +source_update master + +import_tags \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/glew-cmake/mingw.cmake b/vendor/glew-cmake-2.2.0/glew-cmake/mingw.cmake new file mode 100644 index 0000000..d834751 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/glew-cmake/mingw.cmake @@ -0,0 +1,16 @@ +set(CMAKE_SYSTEM_NAME Windows) +set(TOOLCHAIN_PREFIX x86_64-w64-mingw32) + +# cross compilers to use for C, C++ and Fortran +set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) +set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++) +set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres) + +# target environment on the build host system +set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX}) + +# modify default behavior of FIND_XXX() commands +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + diff --git a/vendor/glew-cmake-2.2.0/glew-cmake/sub-directory-test.cmake b/vendor/glew-cmake-2.2.0/glew-cmake/sub-directory-test.cmake new file mode 100644 index 0000000..f2c51fc --- /dev/null +++ b/vendor/glew-cmake-2.2.0/glew-cmake/sub-directory-test.cmake @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 2.8.12) +project(sub_test) + +add_subdirectory($ENV{GITHUB_WORKSPACE}/ glew_sub) +add_executable(glewinfo glewinfo.c) +target_link_libraries(glewinfo PRIVATE libglew_static) \ No newline at end of file diff --git a/vendor/glew-cmake-2.2.0/glew.pc.in b/vendor/glew-cmake-2.2.0/glew.pc.in new file mode 100644 index 0000000..a892540 --- /dev/null +++ b/vendor/glew-cmake-2.2.0/glew.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=${prefix} +libdir=@libdir@ +includedir=${prefix}/include + +Name: glew +Description: The OpenGL Extension Wrangler library +Version: @version@ +Cflags: -I${includedir} @cflags@ +Libs: -L${libdir} -l@libname@ @libgl@ +Requires: @requireslib@ diff --git a/vendor/sdl-3.0.0/.clang-format b/vendor/sdl-3.0.0/.clang-format new file mode 100644 index 0000000..e98e5cd --- /dev/null +++ b/vendor/sdl-3.0.0/.clang-format @@ -0,0 +1,90 @@ +--- +AlignConsecutiveMacros: Consecutive +AlignConsecutiveAssignments: None +AlignConsecutiveBitFields: None +AlignConsecutiveDeclarations: None +AlignEscapedNewlines: Right +AlignOperands: Align +AlignTrailingComments: true + +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortEnumsOnASingleLine: true +AllowShortBlocksOnASingleLine: Never +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLoopsOnASingleLine: false + +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: MultiLine + +# Custom brace breaking +BreakBeforeBraces: Custom +BraceWrapping: + AfterCaseLabel: true + AfterClass: true + AfterControlStatement: Never + AfterEnum: true + AfterFunction: true + AfterNamespace: true + AfterObjCDeclaration: true + AfterStruct: true + AfterUnion: true + AfterExternBlock: false + BeforeElse: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + +# Make the closing brace of container literals go to a new line +Cpp11BracedListStyle: false + +# Never format includes +IncludeBlocks: Preserve +# clang-format version 4.0 through 12.0: +#SortIncludes: false +# clang-format version 13.0+: +#SortIncludes: Never + +# No length limit, in case it breaks macros, you can +# disable it with /* clang-format off/on */ comments +ColumnLimit: 0 + +IndentWidth: 4 +ContinuationIndentWidth: 4 +IndentCaseLabels: false +IndentCaseBlocks: false +IndentGotoLabels: true +IndentPPDirectives: None +IndentExternBlock: NoIndent + +PointerAlignment: Right +SpaceAfterCStyleCast: false +SpacesInCStyleCastParentheses: false +SpacesInConditionalStatement: false +SpacesInContainerLiterals: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeParens: ControlStatements +SpaceAroundPointerQualifiers: Default +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false + +UseCRLF: false +UseTab: Never + +ForEachMacros: + [ + "spa_list_for_each", + "spa_list_for_each_safe", + "wl_list_for_each", + "wl_array_for_each", + "udev_list_entry_foreach", + ] + +--- + diff --git a/vendor/sdl-3.0.0/.clang-tidy b/vendor/sdl-3.0.0/.clang-tidy new file mode 100644 index 0000000..b46d0de --- /dev/null +++ b/vendor/sdl-3.0.0/.clang-tidy @@ -0,0 +1,59 @@ +--- +Checks: > + -*, + bugprone-assert-side-effect, + bugprone-assignment-in-if-condition, + bugprone-bool-pointer-implicit-conversion, + bugprone-dangling-handle, + bugprone-dynamic-static-initializers, + bugprone-infinite-loop, + bugprone-integer-division, + bugprone-macro-repeated-side-effects, + bugprone-misplaced-operator-in-strlen-in-alloc, + bugprone-misplaced-pointer-arithmetic-in-alloc, + bugprone-misplaced-widening-cast, + bugprone-not-null-terminated-result, + bugprone-posix-return, + bugprone-redundant-branch-condition, + bugprone-string-literal-with-embedded-nul, + bugprone-suspicious-memset-usage, + bugprone-suspicious-semicolon, + bugprone-suspicious-string-compare, + bugprone-too-small-loop-variable, + bugprone-unused-return-value, + cert-err33-c, + clang-analyzer-core.*, + clang-analyzer-valist.*, + clang-analyzer-unix.Malloc, + clang-diagnostic-*, + google-readability-casting, + misc-misleading-bidirectional, + misc-misleading-identifier, + misc-misplaced-const, + misc-redundant-expression, + objc-*, + performance-type-promotion-in-math-fn, + readability-avoid-const-params-in-decls, + readability-braces-around-statements, + readability-const-return-type, + readability-duplicate-include, + readability-inconsistent-declaration-parameter-name, + readability-misplaced-array-index, + readability-non-const-parameter, + readability-redundant-control-flow, + readability-redundant-declaration, + readability-redundant-function-ptr-dereference, + readability-redundant-preprocessor, + readability-simplify-boolean-expr + +CheckOptions: + - key: bugprone-assert-side-effect.AssertMacros + value: "SDL_assert, SDL_assert_release, SDL_assert_paranoid, SDL_assert_always, SDL_COMPILE_TIME_ASSERT" + - key: bugprone-misplaced-widening-cast.CheckImplicitCasts + value: true + - key: bugprone-not-null-terminated-result.WantToUseSafeFunctions + value: false # Do not recommend _s functions + +FormatStyle: "file" +HeaderFilterRegex: "*.h$" +WarningsAsErrors: "" diff --git a/vendor/sdl-3.0.0/.editorconfig b/vendor/sdl-3.0.0/.editorconfig new file mode 100644 index 0000000..de2d6de --- /dev/null +++ b/vendor/sdl-3.0.0/.editorconfig @@ -0,0 +1,69 @@ +# For format see editorconfig.org +# Copyright 2022 Collabora Ltd. +# SPDX-License-Identifier: Zlib + +root = true + +[*.{c,cc,cg,cpp,gradle,h,java,m,metal,pl,py,S,sh,txt}] +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{html,js,json,m4,yml,yaml,vcxproj,vcxproj.filters}] +indent_size = 2 +indent_style = space +trim_tailing_whitespace = true + +[*.xml] +indent_size = 4 +indent_style = space + +[{CMakeLists.txt,cmake/*.cmake}] +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[{cmake/cmake_uninstall.cmake.in,test/CMakeLists.txt,cmake/SDL3Config.cmake.in}] +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[{Makefile.*,*.mk,*.sln,*.pbxproj,*.plist}] +indent_size = 8 +indent_style = tab +tab_width = 8 + +[src/joystick/controller_type.*] +indent_style = tab + +[src/joystick/hidapi/steam/*.h] +indent_style = tab + +[src/libm/*.c] +indent_style = tab + +[src/test/SDL_test_{crc32,md5,random}.c] +indent_size = 2 +indent_style = space + +[src/video/yuv2rgb/*.{c,h}] +indent_style = tab + +[wayland-protocols/*.xml] +indent_size = 2 +indent_style = space + +[*.{markdown,md}] +indent_size = 4 +indent_style = space +# Markdown syntax treats tabs as 4 spaces +tab_width = 4 + +[{*.bat,*.rc}] +end_of_line = crlf + +[*.cocci]' +insert_final_newline = true diff --git a/vendor/sdl-3.0.0/.github/PULL_REQUEST_TEMPLATE.md b/vendor/sdl-3.0.0/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..533be85 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,7 @@ + + +## Description + + +## Existing Issue(s) + diff --git a/vendor/sdl-3.0.0/.github/cmake/CMakeLists.txt b/vendor/sdl-3.0.0/.github/cmake/CMakeLists.txt new file mode 100644 index 0000000..39ebaf8 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/cmake/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.0) +project(ci_utils C CXX) + +set(txt "CC=${CMAKE_C_COMPILER} +CXX=${CMAKE_CXX_COMPILER} +CFLAGS=${CMAKE_C_FLAGS} +CXXFLAGS=${CMAKE_CXX_FLAGS} +LDFLAGS=${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_C_STANDARD_LIBRARIES} +") + +message("${txt}") + +set(VAR_PATH "/tmp/env.txt" CACHE PATH "Where to write environment file") +message(STATUS "Writing CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS environment to ${VAR_PATH}") + +file(WRITE "${VAR_PATH}" "${txt}") diff --git a/vendor/sdl-3.0.0/.github/workflows/android.yml b/vendor/sdl-3.0.0/.github/workflows/android.yml new file mode 100644 index 0000000..20a09fe --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/android.yml @@ -0,0 +1,105 @@ +name: Build (Android) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + android: + name: ${{ matrix.platform.name }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + platform: + - { name: Android.mk } + - { name: CMake, cmake: 1, android_abi: "arm64-v8a", android_platform: 23, arch: "aarch64", artifact: "SDL-android-arm64", apk-artifact: "SDL-android-apks-arm64" } + + steps: + - uses: actions/checkout@v3 + - uses: nttld/setup-ndk@v1 + id: setup_ndk + with: + ndk-version: r21e + - name: Build (Android.mk) + if: ${{ matrix.platform.name == 'Android.mk' }} + run: | + ./build-scripts/androidbuildlibs.sh + - uses: actions/setup-java@v3 + if: ${{ matrix.platform.name == 'CMake' }} + with: + distribution: 'temurin' + java-version: '11' + - name: Setup (CMake) + if: ${{ matrix.platform.name == 'CMake' }} + run: | + sudo apt-get update + sudo apt-get install ninja-build pkg-config + - name: Configure (CMake) + if: ${{ matrix.platform.name == 'CMake' }} + run: | + cmake -S . -B build \ + -Wdeprecated -Wdev -Werror \ + -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \ + -DSDL_WERROR=ON \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DSDL_CLANG_TIDY=ON \ + -DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \ + -DANDROID_ABI=${{ matrix.platform.android_abi }} \ + -DSDL_SHARED=ON \ + -DSDL_STATIC=ON \ + -DSDL_STATIC_PIC=ON \ + -DSDL_VENDOR_INFO="Github Workflow" \ + -DCMAKE_INSTALL_PREFIX=prefix \ + -DCMAKE_BUILD_TYPE=Release \ + -GNinja + - name: Build (CMake) + if: ${{ matrix.platform.name == 'CMake' }} + run: | + cmake --build build --config Release --parallel --verbose + - name: Build test apk's (CMake) + if: ${{ matrix.platform.name == 'CMake' }} + run: | + cmake --build build --config Release --parallel --verbose --target testaudiocapture-apk testcontroller-apk testmultiaudio-apk testsprite-apk + - name: Install (CMake) + if: ${{ matrix.platform.name == 'CMake' }} + run: | + cmake --install build --config Release + echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV + ( cd prefix; find ) | LC_ALL=C sort -u + - name: Package (CPack) + if: ${{ matrix.platform.name == 'CMake' }} + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + if: ${{ matrix.platform.name == 'CMake' }} + run: | + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \ + -DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \ + -DANDROID_ABI=${{ matrix.platform.android_abi }} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} + cmake --build cmake_config_build --verbose + - name: Verify sdl3.pc + if: ${{ matrix.platform.name == 'CMake' }} + run: | + export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}" + export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + if: ${{ matrix.platform.name == 'CMake' }} + with: + if-no-files-found: error + name: ${{ matrix.platform.artifact }} + path: build/dist/SDL3* + - uses: actions/upload-artifact@v3 + if: ${{ matrix.platform.name == 'CMake' }} + with: + if-no-files-found: error + name: ${{ matrix.platform.apk-artifact }} + path: build/test/*.apk diff --git a/vendor/sdl-3.0.0/.github/workflows/cpactions.yml b/vendor/sdl-3.0.0/.github/workflows/cpactions.yml new file mode 100644 index 0000000..b4ebb38 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/cpactions.yml @@ -0,0 +1,69 @@ +name: Build (C/P Actions) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + freebsd: + runs-on: ubuntu-latest + name: FreeBSD + timeout-minutes: 30 + steps: + - uses: actions/checkout@v3 + - name: Build + uses: cross-platform-actions/action@v0.19.1 + with: + operating_system: freebsd + version: '13.2' + run: | + sudo pkg update + sudo pkg install -y \ + cmake \ + ninja \ + pkgconf \ + libXcursor \ + libXext \ + libXinerama \ + libXi \ + libXfixes \ + libXrandr \ + libXScrnSaver \ + libXxf86vm \ + wayland \ + wayland-protocols \ + libxkbcommon \ + mesa-libs \ + libglvnd \ + evdev-proto \ + libinotify \ + alsa-lib \ + jackit \ + pipewire \ + pulseaudio \ + sndio \ + dbus \ + zh-fcitx \ + ibus \ + libudev-devd + cmake -S . -B build -GNinja \ + -Wdeprecated -Wdev -Werror \ + -DCMAKE_BUILD_TYPE=Release \ + -DSDL_HIDAPI_LIBUSB=OFF \ + -DSDL_CHECK_REQUIRED_INCLUDES="/usr/local/include" \ + -DSDL_CHECK_REQUIRED_LINK_OPTIONS="-L/usr/local/lib" + cmake --build build/ --config Release --verbose -- -j`sysctl -n hw.ncpu` + cmake --build build/ --config Release --target package + + cmake --build build/ --config Release --target clean + rm -rf build/dist/_CPack_Packages + rm -rf build/CMakeFiles + rm -rf build/docs + + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-freebsd + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/emscripten.yml b/vendor/sdl-3.0.0/.github/workflows/emscripten.yml new file mode 100644 index 0000000..116b811 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/emscripten.yml @@ -0,0 +1,58 @@ +name: Build (Emscripten) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + emscripten: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: mymindstorm/setup-emsdk@v12 + with: + version: 3.1.35 + - name: Install ninja + run: | + sudo apt-get -y update + sudo apt-get install -y ninja-build + - name: Configure (CMake) + run: | + emcmake cmake -S . -B build \ + -Wdeprecated -Wdev -Werror \ + -DSDL_WERROR=ON \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_INSTALL_PREFIX=prefix \ + -GNinja + - name: Build (CMake) + run: cmake --build build/ --verbose + - name: Run build-time tests + run: | + set -eu + export SDL_TESTS_QUICK=1 + # FIXME: enable Emscripten build time tests + # ctest -VV --test-dir build/ + - name: Install (CMake) + run: | + echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV + cmake --install build/ + - name: Package (CPack) + run: | + cmake --build build/ --config Debug --target package + - name: Verify CMake configuration files + run: | + emcmake cmake -S cmake/test -B cmake_config_build \ + -DCMAKE_BUILD_TYPE=Debug \ + -DSDL_VENDOR_INFO="Github Workflow" \ + -DTEST_SHARED=FALSE \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} + cmake --build cmake_config_build --verbose + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-emscripten + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/haiku.yml b/vendor/sdl-3.0.0/.github/workflows/haiku.yml new file mode 100644 index 0000000..468d281 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/haiku.yml @@ -0,0 +1,57 @@ +name: Build (Haiku) + +on: [push, pull_request] + +jobs: + haiku: + runs-on: ubuntu-latest + name: Haiku + container: haiku/cross-compiler:x86_64-r1beta4 + steps: + - uses: actions/checkout@v3 + - name: Setup dependencies + run: | + apt-get install pkg-config -y + - name: Configure Haiku environment variables + run: | + echo "CC=x86_64-unknown-haiku-gcc" >> $GITHUB_ENV + echo "CXX=x86_64-unknown-haiku-g++" >> $GITHUB_ENV + - name: Configure (CMake) + run: | + cmake -S . -B build -GNinja \ + -Wdeprecated -Wdev -Werror \ + -DSDL_SHARED=ON \ + -DSDL_STATIC=ON \ + -DSDL_TESTS=ON \ + -DSDL_WERROR=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DSDL_VENDOR_INFO=Github_Workflow \ + -DCMAKE_INSTALL_PREFIX=cmake_prefix \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SYSTEM_NAME=Haiku + - name: Build (CMake) + run: | + cmake --build build/ --config Release --verbose --parallel + - name: Install (CMake) + run: | + echo "SDL3_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV + cmake --install build/ --config Release + - name: Package (CPack) + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \ + -DCMAKE_SYSTEM_NAME=Haiku + cmake --build ./cmake_config_build --verbose + - name: Verify sdl3.pc + run: | + export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-haiku + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/ios.yml b/vendor/sdl-3.0.0/.github/workflows/ios.yml new file mode 100644 index 0000000..b36f29d --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/ios.yml @@ -0,0 +1,24 @@ +name: Build (iOS/tvOS) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + Build: + name: ${{ matrix.platform.name }} + runs-on: macos-latest + + strategy: + fail-fast: false + matrix: + platform: + - { name: iOS, target: SDL3, sdk: iphoneos } + - { name: tvOS, target: SDL3, sdk: appletvos } + + steps: + - uses: actions/checkout@v3 + - name: Build + run: xcodebuild -project Xcode/SDL/SDL.xcodeproj -target '${{ matrix.platform.target }}' -configuration Release -sdk ${{ matrix.platform.sdk }} clean build diff --git a/vendor/sdl-3.0.0/.github/workflows/loongarch64.yml b/vendor/sdl-3.0.0/.github/workflows/loongarch64.yml new file mode 100644 index 0000000..f45e1fa --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/loongarch64.yml @@ -0,0 +1,92 @@ +name: Build (LoongArch64) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + loongarch64: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + platform: + - { toolchain-version: 2022.09.06 } + steps: + - uses: actions/checkout@v3 + - name: Install build requirements + run: | + sudo apt-get update -y + sudo apt-get install -y --no-install-recommends cmake ninja-build pkg-config tar wget + + - uses: actions/cache/restore@v3 + id: restore-cache + with: + path: /opt/cross-tools + key: loongarch64-${{ matrix.platform.toolchain-version }} + + - name: Download LoongArch64 gcc+glibc toolchain + if: ${{ !steps.restore-cache.outputs.cache-hit }} + run: | + url="https://github.com/loongson/build-tools/releases/download/${{ matrix.platform.toolchain-version }}/loongarch64-clfs-6.3-cross-tools-gcc-glibc.tar.xz" + + wget "$url" -O /tmp/toolchain.tar.xz + + mkdir -p /opt + tar -C /opt -x -f /tmp/toolchain.tar.xz + + - uses: actions/cache/save@v3 + if: ${{ !steps.restore-cache.outputs.cache-hit }} + with: + path: /opt/cross-tools + key: loongarch64-${{ matrix.platform.toolchain-version }} + + - name: Set-up Loongarch64 build environment + run: | + echo "/opt/cross-tools/bin" >> $GITHUB_PATH + echo "CC=loongarch64-unknown-linux-gnu-gcc" >> $GITHUB_ENV + echo "CXX=loongarch64-unknown-linux-gnu-g++" >> $GITHUB_ENV + + - name: Configure (CMake) + run: | + cmake -S . -B build -G Ninja \ + -Wdeprecated -Wdev -Werror \ + -DSDL_SHARED=ON \ + -DSDL_STATIC=ON \ + -DSDL_TESTS=ON \ + -DSDL_WERROR=ON \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DSDL_VENDOR_INFO="Github Workflow" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=prefix + - name: Build (CMake) + run: | + cmake --build build --verbose + - name: Install (CMake) + run: | + echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV + cmake --install build/ + ( cd prefix; find ) | LC_ALL=C sort -u + - name: Package (CPack) + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -DTEST_SHARED=TRUE \ + -DTEST_STATIC=TRUE \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \ + -DCMAKE_BUILD_TYPE=Release + cmake --build cmake_config_build --verbose + - name: Verify sdl3.pc + run: | + export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-loongarch64 + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/main.yml b/vendor/sdl-3.0.0/.github/workflows/main.yml new file mode 100644 index 0000000..62b0e9b --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/main.yml @@ -0,0 +1,151 @@ +name: Build + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + Build: + name: ${{ matrix.platform.name }} + runs-on: ${{ matrix.platform.os }} + + defaults: + run: + shell: ${{ matrix.platform.shell }} + + strategy: + fail-fast: false + matrix: + platform: + - { name: Windows (mingw32), os: windows-latest, shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686, artifact: 'SDL-mingw32' } + - { name: Windows (mingw64), os: windows-latest, shell: 'msys2 {0}', msystem: mingw64, msys-env: mingw-w64-x86_64, artifact: 'SDL-mingw64' } + - { name: Windows (clang32), os: windows-latest, shell: 'msys2 {0}', msystem: clang32, msys-env: mingw-w64-clang-i686, artifact: 'SDL-msys2-clang32' } + - { name: Windows (clang64), os: windows-latest, shell: 'msys2 {0}', msystem: clang64, msys-env: mingw-w64-clang-x86_64, artifact: 'SDL-msys2-clang64' } + - { name: Windows (ucrt64), os: windows-latest, shell: 'msys2 {0}', msystem: ucrt64, msys-env: mingw-w64-ucrt-x86_64, artifact: 'SDL-msys2-ucrt64' } + - { name: Ubuntu 20.04, os: ubuntu-20.04, shell: sh, artifact: 'SDL-ubuntu20.04' } + #- { name: Intel oneAPI (Ubuntu 20.04), os: ubuntu-20.04, shell: bash, artifact: 'SDL-ubuntu20.04-oneapi', intel: true, + # source_cmd: 'source /opt/intel/oneapi/setvars.sh; export CC=icx; export CXX=icx;'} + #- { name: Intel Compiler (Ubuntu 20.04), os: ubuntu-20.04, shell: bash, artifact: 'SDL-ubuntu20.04-icc', intel: true, cmake: '-DSDL_CLANG_TIDY=OFF', + # source_cmd: 'source /opt/intel/oneapi/setvars.sh; export CC=icc; export CXX=icpc; export CFLAGS=-diag-disable=10441; export CXXFLAGS=-diag-disable=10441; '} + - { name: Ubuntu 22.04, os: ubuntu-22.04, shell: sh, artifact: 'SDL-ubuntu22.04' } + - { name: MacOS (Framework), os: macos-latest, shell: sh, cmake: '-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DSDL_FRAMEWORK=ON -DSDL_CLANG_TIDY=OFF', skip_test_pkgconfig: true, artifact: 'SDL-macos-framework', no-static: true } + - { name: MacOS (GNU prefix), os: macos-latest, shell: sh, cmake: '-DCMAKE_OSX_ARCHITECTURES="x86_64" -DCLANG_TIDY_BINARY="$(brew --prefix llvm)/bin/clang-tidy"', artifact: 'SDL-macos-gnu' } + + steps: + - name: Set up MSYS2 + if: matrix.platform.shell == 'msys2 {0}' + uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.platform.msystem }} + install: >- + ${{ matrix.platform.msys-env }}-cc + ${{ matrix.platform.msys-env }}-cmake + ${{ matrix.platform.msys-env }}-ninja + ${{ matrix.platform.msys-env }}-perl + ${{ matrix.platform.msys-env }}-pkg-config + ${{ matrix.platform.msys-env }}-clang-tools-extra + + - name: Setup Linux dependencies + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install build-essential git \ + pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev \ + libaudio-dev libjack-dev libsndio-dev libusb-1.0-0-dev libx11-dev libxext-dev \ + libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libwayland-dev \ + libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \ + libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev + + - name: Setup extra Ubuntu 22.04 dependencies + if: matrix.platform.os == 'ubuntu-22.04' + run: | + sudo apt-get install libpipewire-0.3-dev libdecor-0-dev + + - name: Setup Macos dependencies + if: runner.os == 'macOS' + run: | + brew install \ + ninja \ + pkg-config \ + llvm + + - name: Setup Intel oneAPI + if: matrix.platform.intel + run: | + # Setup oneAPI repo + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB + sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB + sudo echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + sudo apt-get update -y + + # Install oneAPI + sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic + + - uses: actions/checkout@v3 + - name: Check that versioning is consistent + # We only need to run this once: arbitrarily use the Linux/CMake build + if: "runner.os == 'Linux'" + run: ./build-scripts/test-versioning.sh + - name: Configure (CMake) + run: | + ${{ matrix.platform.source_cmd }} + cmake -S . -B build -G Ninja \ + -Wdeprecated -Wdev -Werror \ + -DSDL_SHARED=ON \ + -DSDL_STATIC=ON \ + -DSDL_TESTS=ON \ + -DSDL_WERROR=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DSDL_VENDOR_INFO="Github Workflow" \ + -DSDL_CLANG_TIDY=ON \ + -DCMAKE_INSTALL_PREFIX=cmake_prefix \ + -DCMAKE_BUILD_TYPE=Release \ + ${{ matrix.platform.cmake }} + - name: Build (CMake) + id: build + run: | + ${{ matrix.platform.source_cmd }} + cmake --build build/ --config Release --verbose --parallel + - name: Run build-time tests (CMake) + run: | + ${{ matrix.platform.source_cmd }} + set -eu + export SDL_TESTS_QUICK=1 + ctest -VV --test-dir build/ -j2 + if test "${{ runner.os }}" = "Linux"; then + # This should show us the SDL_REVISION + strings build/libSDL3.so.0 | grep SDL- + fi + - name: Install (CMake) + run: | + ${{ matrix.platform.source_cmd }} + set -eu + cmake --install build/ --config Release + ( cd cmake_prefix; find . ) | LC_ALL=C sort -u + - name: Package (CPack) + if: ${{ always() && steps.build.outcome == 'success' }} + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + run: | + ${{ matrix.platform.source_cmd }} + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -DTEST_SHARED=ON \ + -DTEST_STATIC=${{ !matrix.platform.no-static }} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_PREFIX_PATH=$(echo "${{ github.workspace }}/cmake_prefix" | sed -e 's#\\#/#g') + cmake --build cmake_config_build --verbose + - name: Verify sdl3.pc + if: ${{ !matrix.platform.skip_test_pkgconfig }} + run: | + ${{ matrix.platform.source_cmd }} + export PKG_CONFIG_PATH=$(echo "${{ github.workspace }}/cmake_prefix/lib/pkgconfig" | sed -e 's#\\#/#g') + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + if: ${{ always() && steps.build.outcome == 'success' }} + with: + if-no-files-found: error + name: ${{ matrix.platform.artifact }} + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/msvc.yml b/vendor/sdl-3.0.0/.github/workflows/msvc.yml new file mode 100644 index 0000000..9195a94 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/msvc.yml @@ -0,0 +1,102 @@ +name: Build (MSVC) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + Build: + name: ${{ matrix.platform.name }} + runs-on: windows-latest + + strategy: + fail-fast: false + matrix: + platform: + - { name: Windows (x64), flags: -A x64, project: VisualC/SDL.sln, projectflags: '/p:Platform=x64', artifact: 'SDL-VC-x64' } + - { name: Windows (x86), flags: -A Win32, project: VisualC/SDL.sln, projectflags: '/p:Platform=Win32', artifact: 'SDL-VC-x86' } + - { name: Windows static VCRT (x64), flags: -A x64 -DSDL_FORCE_STATIC_VCRT=ON, artifact: 'SDL-VC-static-VCRT-x64' } + - { name: Windows static VCRT (x86), flags: -A Win32 -DSDL_FORCE_STATIC_VCRT=ON, artifact: 'SDL-VC-static-VCRT-x86' } + - { name: Windows (clang-cl x64), flags: -T ClangCL -A x64, artifact: 'SDL-clang-cl-x64' } + - { name: Windows (clang-cl x86), flags: -T ClangCL -A Win32, artifact: 'SDL-clang-cl-x86' } + - { name: Windows (ARM), flags: -A ARM, artifact: 'SDL-VC-arm32', notests: true } + - { name: Windows (ARM64), flags: -A ARM64, artifact: 'SDL-VC-arm64', notests: true } + - { name: UWP (x64), flags: -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0", nowerror: true, notests: true, + project: VisualC-WinRT/SDL-UWP.sln, projectflags: '/p:Platform=x64 /p:WindowsTargetPlatformVersion=10.0.17763.0', artifact: 'SDL-VC-UWP' } + + steps: + - uses: actions/checkout@v3 + - name: Create CMake project using SDL as a subproject + shell: python + run: | + import os + import textwrap + srcdir = r"${{ github.workspace }}".replace("\\", "/") + builddir = f"{ srcdir }/build" + os.makedirs(builddir) + cmakelists_txt = textwrap.dedent(f"""\ + # Always build .PDB symbol file + set(CMAKE_POLICY_DEFAULT_CMP0141 "NEW" CACHE STRING "MSVC debug information format flags are selected by an abstraction") + set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "ProgramDatabase" CACHE STRING "MSVC debug information format") + set(CMAKE_EXE_LINKER_FLAGS "-DEBUG" CACHE STRING "Linker flags for executables") + set(CMAKE_SHARED_LINKER_FLAGS "-DEBUG" CACHE STRING "Linker flag for shared libraries") + cmake_minimum_required(VERSION 3.0...3.25) + project(sdl_user) + enable_testing() + add_subdirectory("{ srcdir }" SDL) + """) + print(cmakelists_txt) + with open(f"{ builddir }/CMakeLists.txt", "w") as f: + f.write(cmakelists_txt) + - name: Configure (CMake) + run: cmake -S build -B build ` + -Wdeprecated -Wdev -Werror ` + -DSDL_WERROR=${{ !matrix.platform.nowerror }} ` + -DSDL_SHARED=ON ` + -DSDL_STATIC=ON ` + -DSDL_TESTS=ON ` + -DSDL_INSTALL_TESTS=ON ` + -DSDL_VENDOR_INFO="Github Workflow" ` + -DSDL_DISABLE_INSTALL=OFF ` + -DSDL_DISABLE_INSTALL_CPACK=OFF ` + -DSDL_DISABLE_INSTALL_DOCS=OFF ` + ${{ matrix.platform.flags }} ` + -DCMAKE_INSTALL_PREFIX=prefix + - name: Build (CMake) + id: build + run: | + cmake --build build/ --config Release --parallel + - name: Run build-time tests + if: ${{ !matrix.platform.notests }} + run: | + $env:SDL_TESTS_QUICK=1 + ctest -VV --test-dir build/ -C Release -j2 + - name: Install (CMake) + run: | + echo "SDL3_DIR=$Env:GITHUB_WORKSPACE/prefix" >> $Env:GITHUB_ENV + cmake --install build/ + - name: Package (CPack) + if: ${{ always() && steps.build.outcome == 'success' }} + run: | + cmake --build build/ --config Release --target PACKAGE + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build ` + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} ` + ${{ matrix.platform.flags }} + cmake --build cmake_config_build --config Release + + - name: Add msbuild to PATH + if: ${{ matrix.platform.project != '' }} + uses: microsoft/setup-msbuild@v1.1.3 + - name: Build msbuild + if: ${{ matrix.platform.project != '' }} + run: msbuild ${{ matrix.platform.project }} /m /p:BuildInParallel=true /p:Configuration=Release ${{ matrix.platform.projectflags }} + - uses: actions/upload-artifact@v3 + if: ${{ always() && steps.build.outcome == 'success' }} + with: + if-no-files-found: error + name: ${{ matrix.platform.artifact }} + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/n3ds.yml b/vendor/sdl-3.0.0/.github/workflows/n3ds.yml new file mode 100644 index 0000000..42d6dd4 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/n3ds.yml @@ -0,0 +1,65 @@ +name: Build (Nintendo 3DS) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + n3ds: + runs-on: ubuntu-latest + container: + image: devkitpro/devkitarm:latest + steps: + - uses: actions/checkout@v3 + - name: Install build requirements + run: | + apt update + apt install ninja-build + - name: Configure (CMake) + run: | + cmake -S . -B build -G Ninja \ + -Wdeprecated -Wdev -Werror \ + -DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \ + -DSDL_WERROR=ON \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DSDL_VENDOR_INFO="Github Workflow" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=prefix + - name: Build (CMake) + run: | + cmake --build build --verbose + - name: Install (CMake) + run: | + echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV + cmake --install build/ + ( cd prefix; find ) | LC_ALL=C sort -u + - name: Package (CPack) + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \ + -DTEST_SHARED=FALSE \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \ + -DCMAKE_BUILD_TYPE=Release + cmake --build cmake_config_build --verbose + - name: Extract CC/CXX/CFLAGS/CXXFLAGS from CMake toolchain + run: | + cmake -S .github/cmake -B /tmp/cmake_extract \ + -DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DVAR_PATH=/tmp/n3ds_env.txt + cat /tmp/n3ds_env.txt >> $GITHUB_ENV + - name: Verify sdl3.pc + run: | + export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-n3ds + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/ppc64le.yml b/vendor/sdl-3.0.0/.github/workflows/ppc64le.yml new file mode 100644 index 0000000..36be9b2 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/ppc64le.yml @@ -0,0 +1,61 @@ +name: Build (PowerPC64) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + ppc64le: + runs-on: ubuntu-latest + container: + image: dockcross/linux-ppc64le:latest + steps: + - uses: actions/checkout@v3 + - name: Install build requirements + run: | + apt-get update -y + apt-get install -y cmake ninja-build + - name: Configure (CMake) + run: | + # FIXME: Enable SDL_WERROR + cmake -S . -B build -G Ninja \ + -Wdeprecated -Wdev -Werror \ + -DSDL_SHARED=ON \ + -DSDL_STATIC=ON \ + -DSDL_TESTS=ON \ + -DSDL_WERROR=OFF \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DSDL_VENDOR_INFO="Github Workflow" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=prefix + - name: Build (CMake) + run: | + cmake --build build --verbose + - name: Install (CMake) + run: | + echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV + cmake --install build/ + ( cd prefix; find ) | LC_ALL=C sort -u + - name: Package (CPack) + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -DTEST_SHARED=TRUE \ + -DTEST_STATIC=TRUE \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \ + -DCMAKE_BUILD_TYPE=Release + cmake --build cmake_config_build --verbose + - name: Verify sdl3.pc + run: | + export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-ppc64le + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/ps2.yml b/vendor/sdl-3.0.0/.github/workflows/ps2.yml new file mode 100644 index 0000000..f1c349b --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/ps2.yml @@ -0,0 +1,69 @@ +name: Build (Sony Playstation 2) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + ps2: + runs-on: ubuntu-latest + container: ps2dev/ps2dev:latest + steps: + - uses: actions/checkout@v3 + - name: Setup dependencies + run: | + apk update + apk add cmake gmp mpc1 mpfr4 ninja pkgconf make git + + # To be removed once ps2_drivers is part of PS2DEV + - name: Install ps2_drivers lib + run: | + git clone https://github.com/fjtrujy/ps2_drivers.git + cd ps2_drivers + make -j $(getconf _NPROCESSORS_ONLN) clean + make -j $(getconf _NPROCESSORS_ONLN) + make -j $(getconf _NPROCESSORS_ONLN) install + + - name: Configure (CMake) + run: | + cmake -S . -B build -G Ninja \ + -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake \ + -DSDL_WERROR=ON \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DCMAKE_INSTALL_PREFIX=cmake_prefix \ + -DCMAKE_BUILD_TYPE=Release + - name: Build (CMake) + run: cmake --build build --config Release --verbose -- -j 1 + - name: Install (CMake) + run: | + set -eu + cmake --install build/ --config Release + echo "SDL3_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV + ( cd cmake_prefix; find ) | LC_ALL=C sort -u + - name: Package (CPack) + run: | + cmake --build build/ --config Release --target package -- -j 1 + + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -Wdeprecated -Wdev -Werror \ + -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake \ + -DTEST_SHARED=FALSE \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \ + -DCMAKE_BUILD_TYPE=Release + cmake --build cmake_config_build --verbose -- -j 1 + - name: Verify sdl3.pc + run: | + export CC=mips64r5900el-ps2-elf-gcc + export LDFLAGS="-L$PS2DEV/ps2sdk/ee/lib -L$PS2DEV/gsKit/lib -L$PS2DEV/ps2sdk/ports/lib" + export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-ps2 + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/psp.yml b/vendor/sdl-3.0.0/.github/workflows/psp.yml new file mode 100644 index 0000000..333bd64 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/psp.yml @@ -0,0 +1,61 @@ +name: Build (Sony Playstation Portable) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + psp: + runs-on: ubuntu-latest + container: pspdev/pspdev:latest + steps: + - uses: actions/checkout@v3 + - name: Setup dependencies + run: | + apk update + apk add cmake gmp mpc1 mpfr4 make pkgconf + - name: Patch the pspdev toolchain to use -isystem instead of -I + run: | + # https://github.com/pspdev/pspsdk/issues/123 + sed -E s/-I/-isystem/g -i $PSPDEV/psp/share/pspdev.cmake + - name: Configure (CMake) + run: | + cmake -S . -B build \ + -Wdeprecated -Wdev -Werror \ + -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \ + -DSDL_WERROR=ON \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=prefix + - name: Build (CMake) + run: cmake --build build --config Release --verbose + - name: Install (CMake) + run: | + echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV + cmake --install build --config Release + ( cd prefix; find ) | LC_ALL=C sort -u + - name: Package (CPack) + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build \ + -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \ + -DTEST_SHARED=FALSE \ + -DCMAKE_BUILD_TYPE=Release + cmake --build cmake_config_build --verbose + - name: Verify sdl3.pc + run: | + export CC=psp-gcc + export LDFLAGS="-L$PSPDEV/lib -L$PSPDEV/psp/lib -L$PSPDEV/psp/sdk/lib" + export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-psp + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/riscos.yml b/vendor/sdl-3.0.0/.github/workflows/riscos.yml new file mode 100644 index 0000000..2f1869e --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/riscos.yml @@ -0,0 +1,64 @@ +name: Build (RISC OS) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + Build: + name: ${{ matrix.platform.name }} + runs-on: ubuntu-latest + container: riscosdotinfo/riscos-gccsdk-4.7:latest + + strategy: + fail-fast: false + matrix: + platform: + - { name: CMake } + + steps: + - name: Setup dependencies + run: apt-get update && apt-get install -y cmake ninja-build + - uses: actions/checkout@v3 + - name: Configure (CMake) + if: ${{ contains(matrix.platform.name, 'CMake') }} + run: | + cmake -S . -B build -G Ninja \ + -Wdeprecated -Wdev -Werror \ + -DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake \ + -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \ + -DRISCOS:BOOL=ON \ + -DSDL_GCC_ATOMICS=OFF \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DSDL_VENDOR_INFO="Github Workflow" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/prefix_cmake + - name: Build (CMake) + if: ${{ contains(matrix.platform.name, 'CMake') }} + run: cmake --build build --verbose + - name: Install (CMake) + if: ${{ contains(matrix.platform.name, 'CMake') }} + run: | + echo "SDL3_DIR=${{ github.workspace }}/prefix_cmake" >> $GITHUB_ENV + cmake --install build/ + ( cd ${{ github.workspace }}/prefix_cmake; find ) | LC_ALL=C sort -u + - name: Package (CPack) + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -DTEST_SHARED=OFF \ + -DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \ + -DCMAKE_BUILD_TYPE=Release \ + ${{ matrix.platform.test_args }} + cmake --build cmake_config_build --verbose + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: SDL-riscos + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.github/workflows/visionos.yml.disabled b/vendor/sdl-3.0.0/.github/workflows/visionos.yml.disabled new file mode 100644 index 0000000..f697543 --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/visionos.yml.disabled @@ -0,0 +1,22 @@ +name: Build (visionOS) + +# FIXME: Enable this workflow once CMake 3.28 becomes available on GitHub +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + Build: + name: visionOS + runs-on: macos-latest + + steps: + - uses: actions/checkout@v3 + - name: Configure + run: | + cmake -B build -GXcode -DCMAKE_SYSTEM_NAME=visionOS + - name: Build + run: | + cmake --build build diff --git a/vendor/sdl-3.0.0/.github/workflows/vita.yml b/vendor/sdl-3.0.0/.github/workflows/vita.yml new file mode 100644 index 0000000..6c8f14a --- /dev/null +++ b/vendor/sdl-3.0.0/.github/workflows/vita.yml @@ -0,0 +1,136 @@ +name: Build (Sony Playstation Vita) + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +defaults: + run: + shell: sh + +jobs: + vita: + name: ${{ matrix.platform.name }} + runs-on: ubuntu-latest + container: + image: vitasdk/vitasdk:latest + strategy: + fail-fast: false + matrix: + platform: + - { name: Vita (GLES w/ pib), pib: true, version: 1.1.4, artifact: SDL-vita-pib } + - { name: Vita (GLES w/ PVR_PSP2 + gles4vita), pvr: true, version: 3.9, artifact: SDL-vita-pvr } + + steps: + - uses: actions/checkout@v3 + - name: Install build requirements + run: | + apk update + apk add cmake ninja pkgconf bash tar + + - uses: actions/cache/restore@v3 + id: restore-cache + with: + path: /vita/dependencies + key: ${{ matrix.platform.artifact }}-${{ matrix.platform.version }} + + - name: Download PVR_PSP2 (GLES) + if: ${{ !!matrix.platform.pvr && !steps.restore-cache.outputs.cache-hit }} + run: | + pvr_psp2_version=${{ matrix.platform.version }} + + mkdir -p /vita/dependencies/include + mkdir -p /vita/dependencies/lib + + # Configure PVR_PSP2 headers + wget https://github.com/GrapheneCt/PVR_PSP2/archive/refs/tags/v$pvr_psp2_version.zip -P/tmp + unzip /tmp/v$pvr_psp2_version.zip -d/tmp + cp -r /tmp/PVR_PSP2-$pvr_psp2_version/include/* /vita/dependencies/include + rm /tmp/v$pvr_psp2_version.zip + + # include guard of PVR_PSP2's khrplatform.h does not match the usual one + sed -i -e s/__drvkhrplatform_h_/__khrplatform_h_/ /vita/dependencies/include/KHR/khrplatform.h + + # Configure PVR_PSP2 stub libraries + wget https://github.com/GrapheneCt/PVR_PSP2/releases/download/v$pvr_psp2_version/vitasdk_stubs.zip -P/tmp + unzip /tmp/vitasdk_stubs.zip -d/tmp/pvr_psp2_stubs + find /tmp/pvr_psp2_stubs -type f -name "*.a" -exec cp {} /vita/dependencies/lib \; + rm /tmp/vitasdk_stubs.zip + rm -rf /tmp/pvr_psp2_stubs + + - name: Download gl4es4vita (OpenGL) + if: ${{ !!matrix.platform.pib && !steps.restore-cache.outputs.cache-hit }} + run: | + gl4es4vita_version=${{ matrix.platform.version }} + + mkdir -p /vita/dependencies/include + mkdir -p /vita/dependencies/lib + + # Configure gl4es4vita headers + wget https://github.com/SonicMastr/gl4es4vita/releases/download/v$gl4es4vita_version-vita/include.zip -P/tmp + unzip -o /tmp/include.zip -d/vita/dependencies/include + rm /tmp/include.zip + + # Configure gl4es4vita stub libraries + wget https://github.com/SonicMastr/gl4es4vita/releases/download/v$gl4es4vita_version-vita/vitasdk_stubs.zip -P/tmp + unzip /tmp/vitasdk_stubs.zip -d/vita/dependencies/lib + + - uses: actions/cache/save@v3 + if: ${{ !steps.restore-cache.outputs.cache-hit }} + with: + path: /vita/dependencies + key: ${{ matrix.platform.artifact }}-${{ matrix.platform.version }} + + - name: Copy PVR_PSP2 (GLES) or gl4es4vita (OpenGL) to vita toolchain dir + run: | + cp -rv /vita/dependencies/* ${VITASDK}/arm-vita-eabi + + - name: Fix vita.toolchain.cmake + run: | + # cache PKG_CONFIG_PATH + sed -i -E 's/set\( PKG_CONFIG_EXECUTABLE "\$\{VITASDK}\/bin\/arm-vita-eabi-pkg-config" )/set( PKG_CONFIG_EXECUTABLE "${VITASDK}\/bin\/arm-vita-eabi-pkg-config" CACHE PATH "Path of pkg-config executable" )/' ${VITASDK}/share/vita.toolchain.cmake + + - name: Configure (CMake) + run: | + cmake -S . -B build -G Ninja \ + -Wdeprecated -Wdev -Werror \ + -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \ + -DVIDEO_VITA_PIB=${{ !!matrix.platform.pib }} \ + -DVIDEO_VITA_PVR=${{ !!matrix.platform.pvr }} \ + -DSDL_ARMNEON=ON \ + -DSDL_ARMSIMD=ON \ + -DSDL_WERROR=ON \ + -DSDL_TESTS=ON \ + -DSDL_INSTALL_TESTS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=prefix + - name: Build (CMake) + run: cmake --build build --verbose + - name: Install (CMake) + run: | + echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV + cmake --install build/ + ( cd prefix; find ) | LC_ALL=C sort -u + - name: Package (CPack) + run: | + cmake --build build/ --config Release --target package + - name: Verify CMake configuration files + run: | + cmake -S cmake/test -B cmake_config_build -G Ninja \ + -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \ + -DTEST_SHARED=FALSE \ + -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \ + -DCMAKE_BUILD_TYPE=Release + cmake --build cmake_config_build --verbose + - name: Verify sdl3.pc + run: | + export CC=arm-vita-eabi-gcc + export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh + - uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: ${{ matrix.platform.artifact }} + path: build/dist/SDL3* diff --git a/vendor/sdl-3.0.0/.gitignore b/vendor/sdl-3.0.0/.gitignore new file mode 100644 index 0000000..93ee540 --- /dev/null +++ b/vendor/sdl-3.0.0/.gitignore @@ -0,0 +1,160 @@ +build/ +build-*/ +!build-scripts/ +buildbot/ +/VERSION.txt +__pycache__ + +*.so +*.so.* +*.dll +*.exe +*.o +*.obj +*.res +*.lib +*.a +*.la +*.dSYM +*,e1f +*,ff8 +*.lnk +*.err +*.exp +*.map +*.orig +*~ +*.swp +*.tmp +*.rej + +# for CMake +CMakeFiles/ +CMakeCache.txt +cmake_install.cmake +cmake_uninstall.cmake +SDL3ConfigVersion.cmake +.ninja_* +*.ninja + +# for CLion +.idea +cmake-build-* + +# for Xcode +*.mode1* +*.perspective* +*.pbxuser +(^|/)build($|/) +.DS_Store +xcuserdata +*.xcworkspace + +# for Visual Studio Code +.vscode/ + +# for Visual C++ +.vs +Debug +Release +*.user +*.ncb +*.suo +*.sdf +VisualC/tests/gamepadmap/axis.bmp +VisualC/tests/gamepadmap/button.bmp +VisualC/tests/gamepadmap/gamepadmap.bmp +VisualC/tests/gamepadmap/gamepadmap_back.bmp +VisualC/tests/loopwave/sample.wav +VisualC/tests/testautomation/CompareSurfaces0001_Reference.bmp +VisualC/tests/testautomation/CompareSurfaces0001_TestOutput.bmp +VisualC/tests/testgamepad/axis.bmp +VisualC/tests/testgamepad/button.bmp +VisualC/tests/testgamepad/gamepadmap.bmp +VisualC/tests/testgamepad/gamepadmap_back.bmp +VisualC/tests/testoverlay/moose.dat +VisualC/tests/testrendertarget/icon.bmp +VisualC/tests/testrendertarget/sample.bmp +VisualC/tests/testscale/icon.bmp +VisualC/tests/testscale/sample.bmp +VisualC/tests/testsprite/icon.bmp +VisualC/tests/testyuv/testyuv.bmp +VisualC-GDK/**/Layout + +# for Android +android-project/local.properties +android-project/.gradle/ + +test/checkkeys +test/checkkeysthreads +test/gamepadmap +test/loopwave +test/loopwavequeue +test/testatomic +test/testaudiocapture +test/testaudiohotplug +test/testaudioinfo +test/testautomation +test/testbounds +test/testcustomcursor +test/testdisplayinfo +test/testdraw +test/testdrawchessboard +test/testdropfile +test/testerror +test/testevdev +test/testfile +test/testfilesystem +test/testgamepad +test/testgeometry +test/testgesture +test/testgl +test/testgles +test/testgles2 +test/testhaptic +test/testhittesting +test/testhotplug +test/testiconv +test/testime +test/testintersections +test/testjoystick +test/testkeys +test/testloadso +test/testlocale +test/testlock +test/testmessage +test/testmouse +test/testmultiaudio +test/testnative +test/testoverlay +test/testplatform +test/testpower +test/testqsort +test/testrelative +test/testrendercopyex +test/testrendertarget +test/testresample +test/testrumble +test/testscale +test/testsem +test/testsensor +test/testshader +test/testshape +test/testsprite +test/testspriteminimal +test/teststreaming +test/testsurround +test/testthread +test/testtimer +test/testurl +test/testver +test/testviewport +test/testvulkan +test/testwm +test/testyuv +test/torturethread + +# for Doxygen +docs/output +SDL.tag +doxygen_warn.txt diff --git a/vendor/sdl-3.0.0/.wikiheaders-options b/vendor/sdl-3.0.0/.wikiheaders-options new file mode 100644 index 0000000..e11b0a7 --- /dev/null +++ b/vendor/sdl-3.0.0/.wikiheaders-options @@ -0,0 +1,17 @@ +projectfullname = SDL +projectshortname = SDL +incsubdir = include/SDL3 +wikisubdir = +readmesubdir = docs +apiprefixregex = (SDL_|SDLK_|KMOD_|AUDIO_) +mainincludefname = SDL3/SDL.h +versionfname = include/SDL3/SDL_version.h +versionmajorregex = \A\#define\s+SDL_MAJOR_VERSION\s+(\d+)\Z +versionminorregex = \A\#define\s+SDL_MINOR_VERSION\s+(\d+)\Z +versionpatchregex = \A\#define\s+SDL_PATCHLEVEL\s+(\d+)\Z +selectheaderregex = \ASDL.*?\.h\Z +projecturl = https://libsdl.org/ +wikiurl = https://wiki.libsdl.org +bugreporturl = https://github.com/libsdl-org/sdlwiki/issues/new +warn_about_missing = 0 +wikipreamble = (This is the documentation for SDL3, which is under heavy development and the API is changing! [SDL2](https://wiki.libsdl.org/SDL2/) is the current stable version!) diff --git a/vendor/sdl-3.0.0/Android.mk b/vendor/sdl-3.0.0/Android.mk new file mode 100644 index 0000000..3779eb5 --- /dev/null +++ b/vendor/sdl-3.0.0/Android.mk @@ -0,0 +1,136 @@ +LOCAL_PATH := $(call my-dir) + +########################### +# +# SDL shared library +# +########################### + +include $(CLEAR_VARS) + +LOCAL_MODULE := SDL3 + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/src + +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES) + +LOCAL_SRC_FILES := \ + $(subst $(LOCAL_PATH)/,, \ + $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/aaudio/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/openslES/*.c) \ + $(LOCAL_PATH)/src/atomic/SDL_atomic.c.arm \ + $(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \ + $(wildcard $(LOCAL_PATH)/src/core/*.c) \ + $(wildcard $(LOCAL_PATH)/src/core/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \ + $(wildcard $(LOCAL_PATH)/src/dynapi/*.c) \ + $(wildcard $(LOCAL_PATH)/src/events/*.c) \ + $(wildcard $(LOCAL_PATH)/src/file/*.c) \ + $(wildcard $(LOCAL_PATH)/src/haptic/*.c) \ + $(wildcard $(LOCAL_PATH)/src/haptic/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/hidapi/*.c) \ + $(wildcard $(LOCAL_PATH)/src/hidapi/android/*.cpp) \ + $(wildcard $(LOCAL_PATH)/src/joystick/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/hidapi/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/virtual/*.c) \ + $(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \ + $(wildcard $(LOCAL_PATH)/src/locale/*.c) \ + $(wildcard $(LOCAL_PATH)/src/locale/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/misc/*.c) \ + $(wildcard $(LOCAL_PATH)/src/misc/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/power/*.c) \ + $(wildcard $(LOCAL_PATH)/src/power/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/filesystem/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/sensor/*.c) \ + $(wildcard $(LOCAL_PATH)/src/sensor/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/render/*.c) \ + $(wildcard $(LOCAL_PATH)/src/render/*/*.c) \ + $(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \ + $(wildcard $(LOCAL_PATH)/src/thread/*.c) \ + $(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \ + $(wildcard $(LOCAL_PATH)/src/timer/*.c) \ + $(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \ + $(wildcard $(LOCAL_PATH)/src/video/*.c) \ + $(wildcard $(LOCAL_PATH)/src/video/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/video/yuv2rgb/*.c)) + +LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES +LOCAL_CFLAGS += \ + -Wall -Wextra \ + -Wmissing-prototypes \ + -Wunreachable-code-break \ + -Wunneeded-internal-declaration \ + -Wmissing-variable-declarations \ + -Wfloat-conversion \ + -Wshorten-64-to-32 \ + -Wunreachable-code-return \ + -Wshift-sign-overflow \ + -Wstrict-prototypes \ + -Wkeyword-macro \ + +# Warnings we haven't fixed (yet) +LOCAL_CFLAGS += -Wno-unused-parameter -Wno-sign-compare + +LOCAL_CXXFLAGS += -std=gnu++11 + +LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid + +LOCAL_LDFLAGS := -Wl,--no-undefined -Wl,--version-script=$(LOCAL_PATH)/src/dynapi/SDL_dynapi.sym + +ifeq ($(NDK_DEBUG),1) + cmd-strip := +endif + +LOCAL_STATIC_LIBRARIES := cpufeatures + +include $(BUILD_SHARED_LIBRARY) + + +########################### +# +# SDL_test static library +# +########################### + +LOCAL_MODULE := SDL3_test + +LOCAL_MODULE_FILENAME := libSDL3_test + +LOCAL_SRC_FILES := \ + $(subst $(LOCAL_PATH)/,, \ + $(wildcard $(LOCAL_PATH)/src/test/*.c)) + +LOCAL_LDLIBS := + +LOCAL_LDFLAGS := + +LOCAL_EXPORT_LDLIBS := + +include $(BUILD_STATIC_LIBRARY) + + +########################### +# +# SDL static library +# +########################### + +LOCAL_MODULE := SDL3_static + +LOCAL_MODULE_FILENAME := libSDL3 + +LOCAL_LDLIBS := + +LOCAL_LDFLAGS := + +LOCAL_EXPORT_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid + +include $(BUILD_STATIC_LIBRARY) + +$(call import-module,android/cpufeatures) + diff --git a/vendor/sdl-3.0.0/BUGS.txt b/vendor/sdl-3.0.0/BUGS.txt new file mode 100644 index 0000000..eb973d5 --- /dev/null +++ b/vendor/sdl-3.0.0/BUGS.txt @@ -0,0 +1,16 @@ + +Bugs are now managed in the SDL issue tracker, here: + + https://github.com/libsdl-org/SDL/issues + +You may report bugs there, and search to see if a given issue has already + been reported, discussed, and maybe even fixed. + + +You may also find help at the SDL forums/mailing list: + + https://discourse.libsdl.org/ + +Bug reports are welcome here, but we really appreciate if you use the issue + tracker, as bugs discussed on the mailing list may be forgotten or missed. + diff --git a/vendor/sdl-3.0.0/CMakeLists.txt b/vendor/sdl-3.0.0/CMakeLists.txt new file mode 100644 index 0000000..6edba99 --- /dev/null +++ b/vendor/sdl-3.0.0/CMakeLists.txt @@ -0,0 +1,3427 @@ +cmake_minimum_required(VERSION 3.16) + +if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + message(FATAL_ERROR "Prevented in-tree build. Please create a build directory outside of the SDL source code and run \"cmake -S ${CMAKE_SOURCE_DIR} -B .\" from there") +endif() + +# MSVC runtime library flags are selected by an abstraction. +set(CMAKE_POLICY_DEFAULT_CMP0091 NEW) + +# See docs/release_checklist.md +project(SDL3 LANGUAGES C CXX VERSION "3.0.0") + +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + set(SDL3_SUBPROJECT OFF) +else() + set(SDL3_SUBPROJECT ON) +endif() + +# CMake 3.0 expands the "if(${A})" in "set(OFF 1);set(A OFF);if(${A})" to "if(1)" +# CMake 3.24+ emits a warning when not set. +unset(OFF) +unset(ON) +if(POLICY CMP0054) + cmake_policy(SET CMP0054 NEW) +endif() + +include(CheckLibraryExists) +include(CheckIncludeFile) +include(CheckLanguage) +include(CheckSymbolExists) +include(CheckCSourceCompiles) +include(CheckCSourceRuns) +include(CheckCCompilerFlag) +include(CheckCXXCompilerFlag) +include(CheckStructHasMember) +include(CMakeDependentOption) +include(CMakeParseArguments) +include(CMakePushCheckState) +include(GNUInstallDirs) + +if(NOT DEFINED OpenGL_GL_PREFERENCE) + set(OpenGL_GL_PREFERENCE GLVND) +endif() + +find_package(PkgConfig) + +list(APPEND CMAKE_MODULE_PATH "${SDL3_SOURCE_DIR}/cmake") +include("${SDL3_SOURCE_DIR}/cmake/macros.cmake") +include("${SDL3_SOURCE_DIR}/cmake/sdlchecks.cmake") +include("${SDL3_SOURCE_DIR}/cmake/sdlcompilers.cmake") +include("${SDL3_SOURCE_DIR}/cmake/sdlmanpages.cmake") +include("${SDL3_SOURCE_DIR}/cmake/sdlplatform.cmake") +include("${SDL3_SOURCE_DIR}/cmake/sdltargets.cmake") +include("${SDL3_SOURCE_DIR}/cmake/CheckCPUArchitecture.cmake") +include("${SDL3_SOURCE_DIR}/cmake/GetGitRevisionDescription.cmake") +include("${SDL3_SOURCE_DIR}/cmake/3rdparty.cmake") + +SDL_DetectCompiler() +SDL_DetectCPUArchitecture() + +# Increment this if there is an incompatible change - but if that happens, +# we should rename the library from SDL3 to SDL4, at which point this would +# reset to 0 anyway. +set(SDL_SO_VERSION_MAJOR "0") +set(SDL_SO_VERSION_MINOR "${PROJECT_VERSION_MINOR}") +set(SDL_SO_VERSION_PATCH "${PROJECT_VERSION_PATCH}") +set(SDL_SO_VERSION "${SDL_SO_VERSION_MAJOR}.${SDL_SO_VERSION_MINOR}.${SDL_SO_VERSION_PATCH}") + +if(PROJECT_VERSION_MINOR MATCHES "[02468]$") + math(EXPR SDL_DYLIB_COMPAT_VERSION_MAJOR "100 * ${PROJECT_VERSION_MINOR} + 1") + set(SDL_DYLIB_COMPAT_VERSION_MINOR "0") + math(EXPR SDL_DYLIB_CURRENT_VERSION_MAJOR "${SDL_DYLIB_COMPAT_VERSION_MAJOR}") + set(SDL_DYLIB_CURRENT_VERSION_MINOR "${PROJECT_VERSION_PATCH}") +else() + math(EXPR SDL_DYLIB_COMPAT_VERSION_MAJOR "100 * ${PROJECT_VERSION_MINOR} + ${PROJECT_VERSION_PATCH} + 1") + set(SDL_DYLIB_COMPAT_VERSION_MINOR "0") + math(EXPR SDL_DYLIB_CURRENT_VERSION_MAJOR "${SDL_DYLIB_COMPAT_VERSION_MAJOR}") + set(SDL_DYLIB_CURRENT_VERSION_MINOR "0") +endif() +set(SDL_DYLIB_CURRENT_VERSION_PATCH "0") +set(SDL_DYLIB_COMPAT_VERSION_PATCH "0") + +set(SDL_DYLIB_CURRENT_VERSION "${SDL_DYLIB_CURRENT_VERSION_MAJOR}.${SDL_DYLIB_CURRENT_VERSION_MINOR}.${SDL_DYLIB_CURRENT_VERSION_PATCH}") +set(SDL_DYLIB_COMPAT_VERSION "${SDL_DYLIB_COMPAT_VERSION_MAJOR}.${SDL_DYLIB_COMPAT_VERSION_MINOR}.${SDL_DYLIB_COMPAT_VERSION_PATCH}") + +message(DEBUG "SDL_SO_VERSION=${SDL_SO_VERSION} SDL_DYLIB_CURRENT_VERSION=${SDL_DYLIB_CURRENT_VERSION} SDL_DYLIB_COMPAT_VERSION=${SDL_DYLIB_COMPAT_VERSION}") + +set(SDL_FRAMEWORK_VERSION "A") + +set(SDL_CHECK_REQUIRED_INCLUDES "" CACHE STRING "Extra includes (for CMAKE_REQUIRED_INCLUDES)") +set(SDL_CHECK_REQUIRED_LINK_OPTIONS "" CACHE STRING "Extra link options (for CMAKE_REQUIRED_LINK_OPTIONS)") +mark_as_advanced(SDL_CHECK_REQUIRED_INCLUDES SDL_CHECK_REQUIRED_LINK_OPTIONS) + +string(APPEND CMAKE_REQUIRED_FLAGS " -D_GNU_SOURCE=1") +list(APPEND CMAKE_REQUIRED_INCLUDES ${SDL_CHECK_REQUIRED_INCLUDES}) +list(APPEND CMAKE_REQUIRED_LINK_OPTIONS ${SDL_CHECK_REQUIRED_LINK_OPTIONS}) + +# Get the platform +SDL_DetectCMakePlatform() + +# Don't mistake macOS for unix +if(UNIX AND NOT ANDROID AND NOT APPLE AND NOT RISCOS) + set(UNIX_SYS ON) +else() + set(UNIX_SYS OFF) +endif() + +if(UNIX OR APPLE) + set(UNIX_OR_MAC_SYS ON) +else() + set(UNIX_OR_MAC_SYS OFF) +endif() + +# Emscripten pthreads work, but you need to have a non-pthread fallback build +# for systems without support. It's not currently enough to not use +# pthread functions in a pthread-build; it won't start up on unsupported +# browsers. As such, you have to explicitly enable it on Emscripten builds +# for the time being. This default will change to ON once this becomes +# commonly supported in browsers or the Emscripten team makes a single +# binary work everywhere. +if (UNIX_OR_MAC_SYS AND NOT EMSCRIPTEN) + set(SDL_PTHREADS_DEFAULT ON) +else() + set(SDL_PTHREADS_DEFAULT OFF) +endif() + +if(UNIX_SYS OR ANDROID) + set(SDL_CLOCK_GETTIME_DEFAULT ON) +else() + set(SDL_CLOCK_GETTIME_DEFAULT OFF) +endif() + +# The hidraw support doesn't catch Xbox, PS4 and Nintendo controllers, +# so we'll just use libusb when it's available. libusb does not support iOS, +# so we default to yes on iOS. +# TODO: Windows can support libusb, the hid.c file just depends on Unix APIs +if((WINDOWS AND NOT WINDOWS_STORE) OR IOS OR TVOS OR VISIONOS OR ANDROID) + set(SDL_HIDAPI_LIBUSB_AVAILABLE FALSE) +else() + set(SDL_HIDAPI_LIBUSB_AVAILABLE TRUE) +endif() + +set(SDL_ASSEMBLY_DEFAULT OFF) +if(USE_CLANG OR USE_GCC OR USE_INTELCC OR MSVC_VERSION GREATER 1400) + set(SDL_ASSEMBLY_DEFAULT ON) +endif() + +set(SDL_GCC_ATOMICS_DEFAULT OFF) +if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC) + set(SDL_GCC_ATOMICS_DEFAULT ON) +endif() + +# Default option knobs +set(SDL_LIBC_DEFAULT ON) +set(SDL_SYSTEM_ICONV_DEFAULT ON) +if(WINDOWS) + set(SDL_LIBC_DEFAULT OFF) + set(SDL_SYSTEM_ICONV_DEFAULT OFF) +endif() + +if(MSVC) + option(SDL_FORCE_STATIC_VCRT "Force /MT for static VC runtimes" OFF) + if(SDL_FORCE_STATIC_VCRT) + if(NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY) + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + endif() + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + if(${flag_var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif() + endforeach() + endif() + + if(NOT SDL_LIBC) + # Make sure /RTC1 is disabled, otherwise it will use functions from the CRT + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + string(REGEX REPLACE "/RTC(su|[1su])" "" ${flag_var} "${${flag_var}}") + endforeach(flag_var) + endif() + + if(MSVC_CLANG) + # clang-cl treats /W4 as '-Wall -Wextra' -- we don't need -Wextra + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + string(REGEX REPLACE "/W4" "/W3" ${flag_var} "${${flag_var}}") + endforeach(flag_var) + endif() +endif() + +set(SDL_SHARED_DEFAULT ON) +set(SDL_STATIC_DEFAULT ON) + +set(SDL_SHARED_AVAILABLE ON) +set(SDL_STATIC_AVAILABLE ON) + +# All these *_DEFAULT vars will default to ON if not specified, +# so you only need to override them if they need to be disabled. +if(EMSCRIPTEN) + # Set up default values for the currently supported set of subsystems: + # Emscripten/Javascript does not have assembly support, a dynamic library + # loading architecture, or low-level CPU inspection. + + # SDL_THREADS_DEFAULT now defaults to ON, but pthread support might be disabled by default. + # !!! FIXME: most of these subsystems should default to ON if there are dummy implementations to be used. + + set(SDL_ASSEMBLY_DEFAULT OFF) + set(SDL_SHARED_AVAILABLE OFF) + set(SDL_ATOMIC_DEFAULT OFF) + set(SDL_LOADSO_DEFAULT OFF) + set(SDL_CPUINFO_DEFAULT OFF) +endif() + +if(VITA OR PSP OR PS2 OR N3DS OR RISCOS) + set(SDL_SHARED_AVAILABLE OFF) + set(SDL_LOADSO_DEFAULT OFF) +endif() + +if(SDL_SHARED_DEFAULT AND SDL_STATIC_DEFAULT AND SDL_SHARED_AVAILABLE) + if(DEFINED BUILD_SHARED_LIBS) + # When defined, use BUILD_SHARED_LIBS as default + if(BUILD_SHARED_LIBS) + set(SDL_STATIC_DEFAULT OFF) + else() + set(SDL_SHARED_DEFAULT OFF) + endif() + else() + # Default to just building the shared library + set(SDL_STATIC_DEFAULT OFF) + endif() +endif() + +set(SDL_SUBSYSTEMS + Atomic + Audio + Video + Render + Events + Joystick + Haptic + Hidapi + Power + Threads + Timers + File + Loadso + CPUinfo + Filesystem + Sensor + Locale + Misc +) +foreach(_SUB IN LISTS SDL_SUBSYSTEMS) + string(TOUPPER ${_SUB} _OPT) + if(NOT DEFINED SDL_${_OPT}_DEFAULT) + set(SDL_${_OPT}_DEFAULT ON) + endif() + option(SDL_${_OPT} "Enable the ${_SUB} subsystem" ${SDL_${_OPT}_DEFAULT}) +endforeach() + +cmake_dependent_option(SDL_FRAMEWORK "Build SDL libraries as Apple Framework" OFF "APPLE" OFF) +if(SDL_FRAMEWORK) + set(SDL_STATIC_AVAILABLE FALSE) +endif() + +# Allow some projects to be built conditionally. +set_option(SDL_DISABLE_INSTALL "Disable installation of SDL3" ${SDL3_SUBPROJECT}) +cmake_dependent_option(SDL_DISABLE_INSTALL_CPACK "Create binary SDL3 archive using CPack" ${SDL3_SUBPROJECT} "NOT SDL_DISABLE_INSTALL" ON) +cmake_dependent_option(SDL_DISABLE_INSTALL_DOCS "Install docs for SDL3" ${SDL3_SUBPROJECT} "NOT SDL_DISABLE_INSTALL;NOT SDL_FRAMEWORK" ON) +set_option(SDL_DISABLE_UNINSTALL "Disable uninstallation of SDL3" OFF) + +cmake_dependent_option(SDL_DISABLE_ANDROID_JAR "Disable creation of SDL3.jar" ${SDL3_SUBPROJECT} "ANDROID" ON) + +option_string(SDL_ASSERTIONS "Enable internal sanity checks (auto/disabled/release/enabled/paranoid)" "auto") +set_option(SDL_ASSEMBLY "Enable assembly routines" ${SDL_ASSEMBLY_DEFAULT}) +dep_option(SDL_AVX "Use AVX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_AVX2 "Use AVX2 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_AVX512F "Use AVX512F assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_SSE "Use SSE assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_SSE2 "Use SSE2 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_SSE3 "Use SSE3 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_SSE4_1 "Use SSE4.1 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_SSE4_2 "Use SSE4.2 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_MMX "Use MMX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_ALTIVEC "Use Altivec assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_POWERPC32 OR SDL_CPU_POWERPC64" OFF) +dep_option(SDL_ARMSIMD "Use SIMD assembly blitters on ARM" OFF "SDL_ASSEMBLY;SDL_CPU_ARM32" OFF) +dep_option(SDL_ARMNEON "Use NEON assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_ARM32 OR SDL_CPU_ARM64" OFF) +dep_option(SDL_ARMNEON_BLITTERS "Use NEON assembly blitters on ARM32" OFF "SDL_VIDEO;SDL_ASSEMBLY;SDL_ARMNEON;SDL_CPU_ARM32" OFF) +dep_option(SDL_LSX "Use LSX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_LOONGARCH64" OFF) +dep_option(SDL_LASX "Use LASX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_LOONGARCH64" OFF) + +set_option(SDL_LIBC "Use the system C library" ${SDL_LIBC_DEFAULT}) +set_option(SDL_SYSTEM_ICONV "Use iconv() from system-installed libraries" ${SDL_SYSTEM_ICONV_DEFAULT}) +set_option(SDL_GCC_ATOMICS "Use gcc builtin atomics" ${SDL_GCC_ATOMICS_DEFAULT}) +dep_option(SDL_DBUS "Enable D-Bus support" ON ${UNIX_SYS} OFF) +set_option(SDL_DISKAUDIO "Support the disk writer audio driver" ON) +set_option(SDL_DUMMYAUDIO "Support the dummy audio driver" ON) +set_option(SDL_DUMMYVIDEO "Use dummy video driver" ON) +dep_option(SDL_IBUS "Enable IBus support" ON ${UNIX_SYS} OFF) +dep_option(SDL_OPENGL "Include OpenGL support" ON "NOT VISIONOS" OFF) +dep_option(SDL_OPENGLES "Include OpenGL ES support" ON "NOT VISIONOS" OFF) +set_option(SDL_PTHREADS "Use POSIX threads for multi-threading" ${SDL_PTHREADS_DEFAULT}) +dep_option(SDL_PTHREADS_SEM "Use pthread semaphores" ON "SDL_PTHREADS" OFF) +dep_option(SDL_OSS "Support the OSS audio API" ON "UNIX_SYS OR RISCOS" OFF) +set_option(SDL_ALSA "Support the ALSA audio API" ${UNIX_SYS}) +dep_option(SDL_ALSA_SHARED "Dynamically load ALSA audio support" ON "SDL_ALSA" OFF) +set_option(SDL_JACK "Support the JACK audio API" ${UNIX_SYS}) +dep_option(SDL_JACK_SHARED "Dynamically load JACK audio support" ON "SDL_JACK" OFF) +set_option(SDL_PIPEWIRE "Use Pipewire audio" ${UNIX_SYS}) +dep_option(SDL_PIPEWIRE_SHARED "Dynamically load Pipewire support" ON "SDL_PIPEWIRE" OFF) +set_option(SDL_PULSEAUDIO "Use PulseAudio" ${UNIX_SYS}) +dep_option(SDL_PULSEAUDIO_SHARED "Dynamically load PulseAudio support" ON "SDL_PULSEAUDIO" OFF) +set_option(SDL_SNDIO "Support the sndio audio API" ${UNIX_SYS}) +dep_option(SDL_SNDIO_SHARED "Dynamically load the sndio audio API" ON "SDL_SNDIO" OFF) +set_option(SDL_RPATH "Use an rpath when linking SDL" ${UNIX_SYS}) +set_option(SDL_CLOCK_GETTIME "Use clock_gettime() instead of gettimeofday()" ${SDL_CLOCK_GETTIME_DEFAULT}) +set_option(SDL_X11 "Use X11 video driver" ${UNIX_SYS}) +dep_option(SDL_X11_SHARED "Dynamically load X11 support" ON "SDL_X11" OFF) +set(SDL_X11_OPTIONS Xcursor Xdbe XInput Xfixes Xrandr Xscrnsaver XShape) +foreach(_SUB ${SDL_X11_OPTIONS}) + string(TOUPPER "SDL_X11_${_SUB}" _OPT) + dep_option(${_OPT} "Enable ${_SUB} support" ON "SDL_X11" OFF) +endforeach() +set_option(SDL_WAYLAND "Use Wayland video driver" ${UNIX_SYS}) +dep_option(SDL_WAYLAND_SHARED "Dynamically load Wayland support" ON "SDL_WAYLAND" OFF) +dep_option(SDL_WAYLAND_LIBDECOR "Use client-side window decorations on Wayland" ON "SDL_WAYLAND" OFF) +dep_option(SDL_WAYLAND_LIBDECOR_SHARED "Dynamically load libdecor support" ON "SDL_WAYLAND_LIBDECOR;SDL_WAYLAND_SHARED" OFF) +dep_option(SDL_WAYLAND_QT_TOUCH "QtWayland server support for Wayland video driver" ON "SDL_WAYLAND" OFF) +dep_option(SDL_RPI "Use Raspberry Pi video driver" ON "UNIX_SYS;SDL_CPU_ARM32 OR SDL_CPU_ARM64" OFF) +dep_option(SDL_ROCKCHIP "Use ROCKCHIP Hardware Acceleration video driver" ON "UNIX_SYS;SDL_CPU_ARM32 OR SDL_CPU_ARM64" OFF) +set_option(SDL_COCOA "Use Cocoa video driver" ${APPLE}) +set_option(SDL_DIRECTX "Use DirectX for Windows audio/video" ${WINDOWS}) +set_option(SDL_XINPUT "Use Xinput for Windows" ${WINDOWS}) +set_option(SDL_WASAPI "Use the Windows WASAPI audio driver" ${WINDOWS}) +set_option(SDL_RENDER_D3D "Enable the Direct3D render driver" ${WINDOWS}) +set_option(SDL_RENDER_METAL "Enable the Metal render driver" ${APPLE}) +dep_option(SDL_VIVANTE "Use Vivante EGL video driver" ON "${UNIX_SYS};SDL_CPU_ARM32" OFF) +dep_option(SDL_VULKAN "Enable Vulkan support" ON "ANDROID OR APPLE OR LINUX OR WINDOWS" OFF) +set_option(SDL_METAL "Enable Metal support" ${APPLE}) +set_option(SDL_KMSDRM "Use KMS DRM video driver" ${UNIX_SYS}) +dep_option(SDL_KMSDRM_SHARED "Dynamically load KMS DRM support" ON "SDL_KMSDRM" OFF) +set_option(SDL_OFFSCREEN "Use offscreen video driver" ON) +option_string(SDL_BACKGROUNDING_SIGNAL "number to use for magic backgrounding signal or 'OFF'" OFF) +option_string(SDL_FOREGROUNDING_SIGNAL "number to use for magic foregrounding signal or 'OFF'" OFF) +dep_option(SDL_HIDAPI "Enable the HIDAPI subsystem" ON "NOT VISIONOS" OFF) +dep_option(SDL_HIDAPI_LIBUSB "Use libusb for low level joystick drivers" ON SDL_HIDAPI_LIBUSB_AVAILABLE OFF) +dep_option(SDL_HIDAPI_LIBUSB_SHARED "Dynamically load libusb support" ON SDL_HIDAPI_LIBUSB OFF) +dep_option(SDL_HIDAPI_JOYSTICK "Use HIDAPI for low level joystick drivers" ON SDL_HIDAPI OFF) +dep_option(SDL_VIRTUAL_JOYSTICK "Enable the virtual-joystick driver" ON SDL_HIDAPI OFF) +set_option(SDL_LIBUDEV "Enable libudev support" ON) +set_option(SDL_ASAN "Use AddressSanitizer to detect memory errors" OFF) +set_option(SDL_CCACHE "Use Ccache to speed up build" OFF) +set_option(SDL_CLANG_TIDY "Run clang-tidy static analysis" OFF) + +set(SDL_VENDOR_INFO "" CACHE STRING "Vendor name and/or version to add to SDL_REVISION") + +cmake_dependent_option(SDL_SHARED "Build a shared version of the library" ${SDL_SHARED_DEFAULT} ${SDL_SHARED_AVAILABLE} OFF) +cmake_dependent_option(SDL_STATIC "Build a static version of the library" ${SDL_STATIC_DEFAULT} ${SDL_STATIC_AVAILABLE} OFF) +option(SDL_TEST_LIBRARY "Build the SDL3_test library" ON) + +dep_option(SDL_STATIC_PIC "Static version of the library should be built with Position Independent Code" "${CMAKE_POSITION_INDEPENDENT_CODE}" "SDL_STATIC" OFF) +dep_option(SDL_TESTS "Build the test directory" OFF SDL_TEST_LIBRARY OFF) +dep_option(SDL_INSTALL_TESTS "Install test-cases" OFF "NOT SDL_DISABLE_INSTALL;NOT SDL_FRAMEWORK;NOT WINDOWS_STORE" OFF) +dep_option(SDL_TESTS_LINK_SHARED "link tests to shared SDL library" "${SDL_SHARED}" "SDL_SHARED;SDL_STATIC" "${SDL_SHARED}") +set(SDL_TESTS_TIMEOUT_MULTIPLIER "1" CACHE STRING "Timeout multiplier to account for really slow machines") + +if(VITA) + set_option(VIDEO_VITA_PIB "Build with PSVita piglet gles2 support" OFF) + set_option(VIDEO_VITA_PVR "Build with PSVita PVR gles/gles2 support" OFF) +endif() + +set(HAVE_STATIC_PIC "${SDL_STATIC_PIC}") + +if(NOT (SDL_SHARED OR SDL_STATIC)) + message(FATAL_ERROR "SDL_SHARED and SDL_STATIC cannot both be disabled") +endif() + +if(SDL_SHARED) + add_library(SDL3-shared SHARED) + add_library(SDL3::SDL3-shared ALIAS SDL3-shared) + SDL_AddCommonCompilerFlags(SDL3-shared) + target_compile_features(SDL3-shared PRIVATE c_std_99) +endif() + +if(SDL_STATIC) + add_library(SDL3-static STATIC) + add_library(SDL3::SDL3-static ALIAS SDL3-static) + SDL_AddCommonCompilerFlags(SDL3-static) + target_compile_features(SDL3-static PRIVATE c_std_99) +endif() + +if(SDL_TEST_LIBRARY) + add_library(SDL3_test STATIC) + add_library(SDL3::SDL3_test ALIAS SDL3_test) + SDL_AddCommonCompilerFlags(SDL3_test) +endif() + +# Make sure SDL3::SDL3 always exists +if(TARGET SDL3::SDL3-shared) + add_library(SDL3::SDL3 ALIAS SDL3-shared) +else() + add_library(SDL3::SDL3 ALIAS SDL3-static) +endif() + +sdl_pc_link_options("-lSDL3") + +# Enable large file support on 32-bit glibc, so that we can access files +# with large inode numbers +check_symbol_exists("__GLIBC__" "stdlib.h" LIBC_IS_GLIBC) +if (LIBC_IS_GLIBC AND CMAKE_SIZEOF_VOID_P EQUAL 4) + # Enable large file support on 32-bit glibc, so that we can access files with large inode numbers + sdl_compile_definitions(PRIVATE "_FILE_OFFSET_BITS=64") + # Enable 64-bit time_t on 32-bit glibc, so that time stamps remain correct beyond January 2038 + sdl_compile_definitions(PRIVATE "_TIME_BITS=64") +endif() + +if(WINDOWS_STORE) + sdl_compile_definitions(PRIVATE "SDL_BUILDING_WINRT=1") + sdl_compile_options(PRIVATE "-ZW") +endif() + +check_linker_supports_version_file(HAVE_WL_VERSION_SCRIPT) +if(HAVE_WL_VERSION_SCRIPT) + sdl_shared_link_options("-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/dynapi/SDL_dynapi.sym") +else() + if((LINUX AND LIBC_IS_GLIBC) OR ANDROID) + message(FATAL_ERROR "Linker does not support '-Wl,--version-script=xxx.sym'. This is required on the current host platform (${SDL_CMAKE_PLATFORM}).") + endif() +endif() + +if(CYGWIN) + # We build SDL on cygwin without the UNIX emulation layer + sdl_include_directories(PUBLIC SYSTEM "/usr/include/mingw") + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -mno-cygwin") + check_c_source_compiles("int main(int argc, char **argv) { return 0; }" + HAVE_GCC_NO_CYGWIN) + cmake_pop_check_state() + if(HAVE_GCC_NO_CYGWIN) + sdl_shared_link_options("-mno-cygwin") + endif() +endif() + +# General includes +sdl_compile_definitions(PRIVATE "USING_GENERATED_CONFIG_H") +sdl_include_directories( + PRIVATE + "${SDL3_BINARY_DIR}/include-config-$>" + "${SDL3_BINARY_DIR}/include" + "${SDL3_SOURCE_DIR}/include" +) +# Note: The clang toolset for Visual Studio does not support the '-idirafter' option. +if(USE_GCC OR USE_INTELCC OR (USE_CLANG AND NOT MSVC_CLANG)) + sdl_compile_options(NO_EXPORT PUBLIC "$") +else() + sdl_include_directories(NO_EXPORT SYSTEM PUBLIC "$") +endif() + +# General source files +sdl_glob_sources( + "${SDL3_SOURCE_DIR}/src/*.c" + "${SDL3_SOURCE_DIR}/src/atomic/*.c" + "${SDL3_SOURCE_DIR}/src/audio/*.c" + "${SDL3_SOURCE_DIR}/src/core/*.c" + "${SDL3_SOURCE_DIR}/src/cpuinfo/*.c" + "${SDL3_SOURCE_DIR}/src/dynapi/*.c" + "${SDL3_SOURCE_DIR}/src/events/*.c" + "${SDL3_SOURCE_DIR}/src/file/*.c" + "${SDL3_SOURCE_DIR}/src/joystick/*.c" + "${SDL3_SOURCE_DIR}/src/haptic/*.c" + "${SDL3_SOURCE_DIR}/src/hidapi/*.c" + "${SDL3_SOURCE_DIR}/src/libm/*.c" + "${SDL3_SOURCE_DIR}/src/locale/*.c" + "${SDL3_SOURCE_DIR}/src/misc/*.c" + "${SDL3_SOURCE_DIR}/src/power/*.c" + "${SDL3_SOURCE_DIR}/src/render/*.c" + "${SDL3_SOURCE_DIR}/src/render/*/*.c" + "${SDL3_SOURCE_DIR}/src/sensor/*.c" + "${SDL3_SOURCE_DIR}/src/stdlib/*.c" + "${SDL3_SOURCE_DIR}/src/thread/*.c" + "${SDL3_SOURCE_DIR}/src/timer/*.c" + "${SDL3_SOURCE_DIR}/src/video/*.c" + "${SDL3_SOURCE_DIR}/src/video/yuv2rgb/*.c" +) +if(MSVC AND TARGET SDL3-shared) + if(SDL_CPU_X64) + enable_language(ASM_MASM) + set(asm_src "${SDL3_SOURCE_DIR}/src/stdlib/SDL_mslibc_x64.asm") + target_compile_options(SDL3-shared PRIVATE "$<$:/nologo>") + set_property(SOURCE "${asm_src}" PROPERTY LANGUAGE "ASM_MASM") + target_sources(SDL3-shared PRIVATE "${asm_src}") + elseif(SDL_CPU_ARM32 OR DL_CPU_ARM64) + # FIXME: ARM assembler (armasm.exe/armasm64.exe) is NOT ASM_MASM, and does currently not work with CMake + # (https://gitlab.kitware.com/cmake/cmake/-/issues/18912) + endif() +endif() + +if(USE_INTELCC) + # warning #39: division by zero + # warning #239: floating point underflow + # warning #264: floating-point value does not fit in required floating-point type + set_property(SOURCE "${SDL3_SOURCE_DIR}/src/libm/e_exp.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -wd239 -wd264") + set_property(SOURCE "${SDL3_SOURCE_DIR}/src/libm/e_log.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -wd39") + set_property(SOURCE "${SDL3_SOURCE_DIR}/src/libm/e_log10.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -wd39") + set_property(SOURCE + "${SDL3_SOURCE_DIR}/src/libm/e_exp.c" + "${SDL3_SOURCE_DIR}/src/libm/e_log.c" + "${SDL3_SOURCE_DIR}/src/libm/e_log10.c" + PROPERTY SKIP_PRECOMPILE_HEADERS 1) +endif() + +set(SDL_DEFAULT_ASSERT_LEVEL_CONFIGURED 1) +if(SDL_ASSERTIONS MATCHES "^(auto|)$") + # Do nada - use optimization settings to determine the assertion level + set(SDL_DEFAULT_ASSERT_LEVEL ) + set(SDL_DEFAULT_ASSERT_LEVEL_CONFIGURED 0) +elseif(SDL_ASSERTIONS MATCHES "^(disabled|0)$") + set(SDL_DEFAULT_ASSERT_LEVEL 0) +elseif(SDL_ASSERTIONS MATCHES "^(release|1)$") + set(SDL_DEFAULT_ASSERT_LEVEL 1) +elseif(SDL_ASSERTIONS MATCHES "^(enabled|2)$") + set(SDL_DEFAULT_ASSERT_LEVEL 2) +elseif(SDL_ASSERTIONS MATCHES "^(paranoid|3)$") + set(SDL_DEFAULT_ASSERT_LEVEL 3) +else() + message(FATAL_ERROR "unknown assertion level") +endif() +set(HAVE_ASSERTIONS ${SDL_ASSERTIONS}) + +if(NOT SDL_BACKGROUNDING_SIGNAL STREQUAL "OFF") + sdl_compile_definitions(PRIVATE "SDL_BACKGROUNDING_SIGNAL=${SDL_BACKGROUNDING_SIGNAL}") +endif() + +if(NOT SDL_FOREGROUNDING_SIGNAL STREQUAL "OFF") + sdl_compile_definitions(PRIVATE "SDL_FOREGROUNDING_SIGNAL=${SDL_FOREGROUNDING_SIGNAL}") +endif() + +# Compiler option evaluation +if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC) + if(SDL_GCC_ATOMICS) + check_c_source_compiles("int main(int argc, char **argv) { + int a; + void *x, *y, *z; + __sync_lock_test_and_set(&a, 4); + __sync_lock_test_and_set(&x, y); + __sync_fetch_and_add(&a, 1); + __sync_bool_compare_and_swap(&a, 5, 10); + __sync_bool_compare_and_swap(&x, y, z); + return 0; }" COMPILER_SUPPORTS_GCC_ATOMICS) + set(HAVE_GCC_ATOMICS ${COMPILER_SUPPORTS_GCC_ATOMICS}) + if(NOT HAVE_GCC_ATOMICS) + check_c_source_compiles("int main(int argc, char **argv) { + int a; + __sync_lock_test_and_set(&a, 1); + __sync_lock_release(&a); + return 0; }" COMPILER_SUPPORTS_SYNC_LOCK_TEST_AND_SET) + set(HAVE_GCC_SYNC_LOCK_TEST_AND_SET ${COMPILER_SUPPORTS_SYNC_LOCK_TEST_AND_SET}) + endif() + endif() + + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -fvisibility=hidden -Werror") + check_c_source_compiles(" + #if !defined(__GNUC__) || __GNUC__ < 4 + #error SDL only uses visibility attributes in GCC 4 or newer + #endif + __attribute__((visibility(\"default\"))) int foo(void); + __attribute__((visibility(\"hidden\"))) int bar(void); + int foo(void) { return 0; } + int bar(void) { return 1; } + int main(void) { return 0; }" HAVE_GCC_FVISIBILITY) + cmake_pop_check_state() + + if(APPLE) + # FIXME: don't use deprecated declarations + check_c_compiler_flag(-Wno-error=deprecated-declarations COMPILER_SUPPORTS_WNO_ERROR_DEPRECATED_DECLARATIONS) + if(COMPILER_SUPPORTS_WNO_ERROR_DEPRECATED_DECLARATIONS) + sdl_compile_options(PRIVATE "-Wno-error=deprecated-declarations") + endif() + endif() + + if(APPLE) + check_linker_flag(C "-Wl,-undefined,error" LINKER_SUPPORTS_WL_UNDEFINED_ERROR) + if(LINKER_SUPPORTS_WL_UNDEFINED_ERROR) + sdl_shared_link_options("-Wl,-undefined,error") + endif() + elseif(NOT OPENBSD) + cmake_push_check_state() + check_linker_flag(C "-Wl,--no-undefined" LINKER_SUPPORTS_WL_NO_UNDEFINED) + #FIXME: originally this if had an additional "AND NOT (USE_CLANG AND WINDOWS)" + if(LINKER_SUPPORTS_WL_NO_UNDEFINED) + sdl_shared_link_options("-Wl,--no-undefined") + endif() + endif() +endif() + +if(MSVC) + sdl_compile_definitions( + PRIVATE + "_CRT_SECURE_NO_DEPRECATE" + "_CRT_NONSTDC_NO_DEPRECATE" + "_CRT_SECURE_NO_WARNINGS" + ) + + # CET support was added in VS 2019 16.7 + if(MSVC_VERSION GREATER 1926 AND CMAKE_GENERATOR_PLATFORM MATCHES "Win32|x64") + # Mark SDL3.dll as compatible with Control-flow Enforcement Technology (CET) + sdl_shared_link_options("-CETCOMPAT") + endif() +endif() + +if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") + # Due to a limitation of Microsoft's LTO implementation, LTO must be disabled for memcpy and memset. + # The same applies to various functions normally belonging in the C library (for x86 architecture). + set_property(SOURCE "${SDL3_SOURCE_DIR}/src/stdlib/SDL_mslibc.c" APPEND_STRING PROPERTY COMPILE_FLAGS " /GL-") +endif() + +if(SDL_ASSEMBLY) + set(HAVE_ASSEMBLY TRUE) + + if(SDL_MMX) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -mmmx") + endif() + check_c_source_compiles(" + #include + void ints_add(int *dest, int *a, int *b, unsigned size) { + for (; size >= 2; size -= 2, dest += 2, a += 2, b += 2) { + *(__m64*)dest = _mm_add_pi32(*(__m64*)a, *(__m64*)b); + } + } + int main(int argc, char *argv[]) { + ints_add((int*)0, (int*)0, (int*)0, 0); + return 0; + }" COMPILER_SUPPORTS_MMX) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_MMX) + set(HAVE_MMX TRUE) + endif() + endif() + if(SDL_SSE) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -msse") + endif() + check_c_source_compiles(" + #include + void floats_add(float *dest, float *a, float *b, unsigned size) { + for (; size >= 4; size -= 4, dest += 4, a += 4, b += 4) { + _mm_storeu_ps(dest, _mm_add_ps(_mm_loadu_ps(a), _mm_loadu_ps (b))); + } + } + int main(int argc, char **argv) { + floats_add((float*)0, (float*)0, (float*)0, 0); + return 0; + }" COMPILER_SUPPORTS_SSE) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_SSE) + set(HAVE_SSE TRUE) + endif() + endif() + if(SDL_SSE2) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -msse2") + endif() + check_c_source_compiles(" + #include + void doubles_add(double *dest, double *a, double *b, unsigned size) { + for (; size >= 4; size -= 4, dest += 4, a += 4, b += 4) { + _mm_store_pd(dest, _mm_add_pd(_mm_loadu_pd(a), _mm_loadu_pd(b))); + } + } + int main(int argc, char **argv) { + doubles_add((double*)0, (double*)0, (double*)0, 0); + return 0; + }" COMPILER_SUPPORTS_SSE2) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_SSE2) + set(HAVE_SSE2 TRUE) + endif() + endif() + if(SDL_SSE3) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -msse3") + endif() + check_c_source_compiles(" + #include + void ints_add(int *dest, int *a, int *b, unsigned size) { + for (; size >= 4; size -= 4, dest += 4, a += 4, b += 4) { + _mm_storeu_si128((__m128i*)dest, _mm_add_epi32(_mm_lddqu_si128((__m128i*)a), _mm_lddqu_si128((__m128i*)b))); + } + } + int main(int argc, char **argv) { + ints_add((int*)0, (int*)0, (int*)0, 0); + return 0; + }" COMPILER_SUPPORTS_SSE3) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_SSE3) + set(HAVE_SSE3 TRUE) + endif() + endif() + if(SDL_SSE4_1) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -msse4.1") + endif() + check_c_source_compiles(" + #include + void ints_mul(int *dest, int *a, int *b, unsigned size) { + for (; size >= 4; size -= 4, dest += 4, a += 4, b += 4) { + _mm_storeu_si128((__m128i*)dest, _mm_mullo_epi32(_mm_lddqu_si128((__m128i*)a), _mm_lddqu_si128((__m128i*)b))); + } + } + int main(int argc, char **argv) { + ints_mul((int*)0, (int*)0, (int*)0, 0); + return 0; + }" COMPILER_SUPPORTS_SSE4_1) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_SSE4_1) + set(HAVE_SSE4_1 TRUE) + endif() + endif() + if(SDL_SSE4_2) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -msse4.2") + endif() + check_c_source_compiles(" + #include + unsigned calc_crc32c(const char *text, unsigned len) { + unsigned crc32c = ~0; + for (; len >= 4; len -= 4, text += 4) { + crc32c = (unsigned)_mm_crc32_u32(crc32c, *(unsigned*)text); + } + return crc32c; + } + int main(int argc, char **argv) { + calc_crc32c(\"SDL_SSE4\",8); + return 0; + }" COMPILER_SUPPORTS_SSE4_2) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_SSE4_2) + set(HAVE_SSE4_2 TRUE) + endif() + endif() + if(SDL_AVX) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -mavx") + endif() + check_c_source_compiles(" + #include + void floats_add(float *dest, float *a, float *b, unsigned size) { + for (; size >= 8; size -= 8, dest += 8, a += 8, b += 8) { + _mm256_storeu_ps(dest, _mm256_add_ps(_mm256_loadu_ps(a), _mm256_loadu_ps(b))); + } + } + int main(int argc, char **argv) { + floats_add((float*)0, (float*)0, (float*)0, 0); + return 0; + }" COMPILER_SUPPORTS_AVX) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_AVX) + set(HAVE_AVX TRUE) + endif() + endif() + if(SDL_AVX2) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -mavx2") + endif() + check_c_source_compiles(" + #include + void ints_add(int *dest, int *a, int *b, unsigned size) { + for (; size >= 8; size -= 8, dest += 8, a += 8, b += 8) { + _mm256_storeu_si256((__m256i*)dest, _mm256_add_epi32(_mm256_loadu_si256((__m256i*)a), _mm256_loadu_si256((__m256i*)b))); + } + } + int main(int argc, char **argv) { + ints_add((int*)0, (int*)0, (int*)0, 0); + return 0; + }" COMPILER_SUPPORTS_AVX2) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_AVX2) + set(HAVE_AVX2 TRUE) + endif() + endif() + if(SDL_AVX512F) + cmake_push_check_state() + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + string(APPEND CMAKE_REQUIRED_FLAGS " -mavx512f") + endif() + check_c_source_compiles(" + #include + void floats_add(float *dest, float *a, float *b, unsigned size) { + for (; size >= 16; size -= 16, dest += 16, a += 16, b += 16) { + _mm512_storeu_ps(dest, _mm512_add_ps(_mm512_loadu_ps(a), _mm512_loadu_ps(b))); + } + } + int main(int argc, char **argv) { + floats_add((float*)0, (float*)0, (float*)0, 0); + return 0; + }" COMPILER_SUPPORTS_AVX512F) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_AVX512F) + set(HAVE_AVX512F TRUE) + endif() + endif() + + if(USE_GCC OR USE_CLANG) + # TODO: Those all seem to be quite GCC specific - needs to be + # reworked for better compiler support + + if(SDL_ALTIVEC) + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -maltivec") + check_c_source_compiles(" + #include + vector unsigned int vzero() { + return vec_splat_u32(0); + } + int main(int argc, char **argv) { return 0; }" COMPILER_SUPPORTS_ALTIVEC) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_ALTIVEC) + set(HAVE_ALTIVEC TRUE) + set(SDL_ALTIVEC_BLITTERS 1) + sdl_compile_options(PRIVATE "-maltivec") + set_property(SOURCE "${SDL3_SOURCE_DIR}/src/video/SDL_blit_N.c" APPEND PROPERTY COMPILE_DEFINITIONS "SDL_ENABLE_ALTIVEC") + set_property(SOURCE "${SDL3_SOURCE_DIR}/src/video/SDL_blit_N.c" PROPERTY SKIP_PRECOMPILE_HEADERS 1) + endif() + endif() + + if(SDL_LSX) + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -mlsx") + check_c_source_compiles(" + #ifndef __loongarch_sx + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { return 0; }" COMPILER_SUPPORTS_LSX) + check_include_file("lsxintrin.h" HAVE_LSXINTRIN_H) + cmake_pop_check_state() + + if(COMPILER_SUPPORTS_LSX AND HAVE_LSXINTRIN_H) + set(HAVE_LSX TRUE) + endif() + endif() + + if(SDL_LASX) + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -mlasx") + check_c_source_compiles(" + #ifndef __loongarch_asx + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { return 0; }" COMPILER_SUPPORTS_LASX) + check_include_file("lasxintrin.h" HAVE_LASXINTRIN_H) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_LASX AND HAVE_LASXINTRIN_H) + set(HAVE_LASX TRUE) + endif() + endif() + + if(SDL_ARMSIMD) + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -x assembler-with-cpp") + list(APPEND CMAKE_REQUIRED_LINK_OPTIONS -x none) + check_c_source_compiles(" + .text + .arch armv6 + .object_arch armv4 + .arm + .altmacro + #ifndef __ARM_EABI__ + #error EABI is required (to be sure that calling conventions are compatible) + #endif + main: + .global main + pld [r0] + uqadd8 r0, r0, r0 + " ARMSIMD_FOUND) + cmake_pop_check_state() + + if(ARMSIMD_FOUND) + set(HAVE_ARMSIMD TRUE) + set(SDL_ARM_SIMD_BLITTERS 1) + enable_language(ASM) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/arm/pixman-arm-simd*.S") + set_property(SOURCE ${ARMSIMD_SOURCES} APPEND PROPERTY COMPILE_OPTIONS -x assembler-with-cpp) + set(WARN_ABOUT_ARM_SIMD_ASM_MIT TRUE) + endif() + endif() + + if(SDL_ARMNEON_BLITTERS) + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -x assembler-with-cpp") + list(APPEND CMAKE_REQUIRED_LINK_OPTIONS -x none) + check_c_source_compiles(" + .text + .fpu neon + .arch armv7a + .object_arch armv4 + .eabi_attribute 10, 0 + .arm + .altmacro + #ifndef __ARM_EABI__ + #error EABI is required (to be sure that calling conventions are compatible) + #endif + main: + .global main + pld [r0] + vmovn.u16 d0, q0 + " COMPILER_SUPPORTS_ARMNEON_ASSEMBLY) + cmake_pop_check_state() + if(COMPILER_SUPPORTS_ARMNEON_ASSEMBLY) + set(HAVE_ARMNEON_BLITTERS TRUE) + set(SDL_ARM_NEON_BLITTERS 1) + enable_language(ASM) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/arm/pixman-arm-neon*.S") + set_property(SOURCE ${ARMNEON_SOURCES} APPEND PROPERTY COMPILE_OPTIONS -x assembler-with-cpp) + set(WARN_ABOUT_ARM_NEON_ASM_MIT TRUE) + endif() + endif() + + if(SDL_ARMNEON) + check_c_source_compiles(" + #include + void floats_add(float *dest, float *a, float *b, unsigned size) { + for (; size >= 4; size -= 4, dest += 4, a += 4, b += 4) { + vst1q_f32(dest, vaddq_f32(vld1q_f32(a), vld1q_f32(b))); + } + } + int main(int argc, char *argv[]) { + floats_add((float*)0, (float*)0, (float*)0, 0); + return 0; + }" COMPILER_SUPPORTS_ARMNEON) + + if(COMPILER_SUPPORTS_ARMNEON) + set(HAVE_ARMNEON TRUE) + endif() + endif() + endif() +endif() + +if(NOT HAVE_MMX) + set(SDL_DISABLE_MMX 1) +endif() + +if(NOT HAVE_SSE) + set(SDL_DISABLE_SSE 1) +endif() + +if(NOT HAVE_SSE2) + set(SDL_DISABLE_SSE2 1) +endif() + +if(NOT HAVE_SSE3) + set(SDL_DISABLE_SSE3 1) +endif() + +if(NOT HAVE_SSE4_1) + set(SDL_DISABLE_SSE4_1 1) +endif() + +if(NOT HAVE_SSE4_2) + set(SDL_DISABLE_SSE4_2 1) +endif() + +if(NOT HAVE_AVX) + set(SDL_DISABLE_AVX 1) +endif() + +if(NOT HAVE_AVX2) + set(SDL_DISABLE_AVX2 1) +endif() + +if(NOT HAVE_AVX512F) + set(SDL_DISABLE_AVX512F 1) +endif() + +if(NOT HAVE_LSX) + set(SDL_DISABLE_LSX 1) +endif() + +if(NOT HAVE_LASX) + set(SDL_DISABLE_LASX 1) +endif() + +if(NOT HAVE_ARMNEON) + set(SDL_DISABLE_NEON 1) +endif() + +set(SDL_DISABLE_ALLOCA 0) +check_include_file("alloca.h" "HAVE_ALLOCA_H") +if(MSVC) + check_include_file("malloc.h" "HAVE_MALLOC") + check_symbol_exists("_alloca" "malloc.h" _ALLOCA_IN_MALLOC_H) + if(NOT HAVE_ALLOCA_H AND NOT _ALLOCA_IN_MALLOC_H) + set(SDL_DISABLE_ALLOCA 1) + endif() +endif() + +# TODO: Can't deactivate on FreeBSD? w/o LIBC, SDL_stdinc.h can't define anything. +if(SDL_LIBC) + set(available_headers) + set(HAVE_LIBC TRUE) + set(headers_to_check + ctype.h + float.h + iconv.h + inttypes.h + limits.h + malloc.h + math.h + memory.h + signal.h + stdarg.h + stddef.h + stdint.h + stdio.h + stdlib.h + string.h + strings.h + sys/types.h + wchar.h + ) + foreach(_HEADER IN LISTS headers_to_check) + string(TOUPPER "${_HEADER}" HEADER_IDENTIFIER) + string(REGEX REPLACE "[./]" "_" HEADER_IDENTIFIER "${HEADER_IDENTIFIER}") + set(LIBC_HAS_VAR "LIBC_HAS_${HEADER_IDENTIFIER}") + check_include_file("${_HEADER}" "${LIBC_HAS_VAR}") + set(HAVE_${HEADER_IDENTIFIER} ${${LIBC_HAS_VAR}}) + if(HAVE_${HEADER_IDENTIFIER}) + list(APPEND available_headers "${_HEADER}") + endif() + endforeach() + + set(symbols_to_check + abs acos acosf asin asinf atan atan2 atan2f atanf atof atoi + bcopy bsearch + calloc ceil ceilf copysign copysignf cos cosf + _Exit exp expf + fabs fabsf floor floorf fmod fmodf fopen64 free fseeko fseeko64 + getenv + _i64toa index itoa + log log10 log10f logf lround lroundf _ltoa + malloc memcmp memcpy memmove memset modf modff + pow powf putenv + qsort + realloc rindex round roundf + scalbn scalbnf setenv sin sinf sqr sqrt sqrtf sscanf strchr + strcmp strlcat strlcpy strlen strncmp strnlen + strrchr strstr strtod strtok_r strtol strtoll strtoul strtoull + tan tanf trunc truncf + unsetenv + vsnprintf vsscanf + wcsnlen wcscmp wcsdup wcslcat wcslcpy wcslen wcsncmp wcsstr wcstol + ) + if(WINDOWS) + list(APPEND symbols_to_check + _stricmp _strlwr _strnicmp _strrev _strupr _ui64toa _uitoa _ultoa _wcsdup _wcsicmp _wcsnicmp + ) + else() + list(APPEND symbols_to_check + strcasecmp strcasestr strncasecmp wcscasecmp wcsncasecmp + ) + endif() + check_library_exists(m pow "" HAVE_LIBM) + cmake_push_check_state() + if(HAVE_LIBM) + sdl_link_dependency(math LIBS m) + list(APPEND CMAKE_REQUIRED_LIBRARIES m) + endif() + foreach(_FN IN LISTS symbols_to_check) + string(TOUPPER ${_FN} _UPPER) + set(LIBC_HAS_VAR "LIBC_HAS_${_UPPER}") + check_symbol_exists("${_FN}" "${available_headers}" ${LIBC_HAS_VAR}) + set(HAVE_${_UPPER} ${${LIBC_HAS_VAR}}) + endforeach() + cmake_pop_check_state() + + if(NOT WINDOWS) + check_include_file(linux/input.h HAVE_LINUX_INPUT_H) + + check_symbol_exists(getpagesize "unistd.h" HAVE_GETPAGESIZE) + check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION) + check_symbol_exists(setjmp "setjmp.h" HAVE_SETJMP) + check_symbol_exists(nanosleep "time.h" HAVE_NANOSLEEP) + check_symbol_exists(sysconf "unistd.h" HAVE_SYSCONF) + check_symbol_exists(sysctlbyname "sys/types.h;sys/sysctl.h" HAVE_SYSCTLBYNAME) + check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL) + check_symbol_exists(elf_aux_info "sys/auxv.h" HAVE_ELF_AUX_INFO) + check_symbol_exists(poll "poll.h" HAVE_POLL) + + if(SDL_SYSTEM_ICONV) + check_library_exists(iconv iconv_open "" HAVE_LIBICONV) + if(HAVE_LIBICONV) + find_package(Iconv) + if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN) + set(HAVE_ICONV 1) + set(HAVE_SYSTEM_ICONV TRUE) + pkg_check_modules(PC_ICONV iconv) + if(PC_ICONV_FOUND) + sdl_link_dependency(iconv LIBS Iconv::Iconv CMAKE_MODULE Iconv PKG_CONFIG_SPECS iconv) + else() + sdl_link_dependency(iconv LIBS Iconv::Iconv CMAKE_MODULE Iconv PKG_CONFIG_LIBS iconv) + endif() + endif() + else() + check_library_exists(c iconv_open "" HAVE_BUILTIN_ICONV) + if(HAVE_BUILTIN_ICONV) + set(HAVE_ICONV 1) + set(HAVE_SYSTEM_ICONV TRUE) + endif() + endif() + endif() + + check_struct_has_member("struct sigaction" "sa_sigaction" "signal.h" HAVE_SA_SIGACTION) + endif() +else() + set(headers + stdarg.h + stddef.h + stdint.h + ) + foreach(_HEADER ${headers}) + string(TOUPPER "${_HEADER}" HEADER_IDENTIFIER) + string(REGEX REPLACE "[./]" "_" HEADER_IDENTIFIER "${HEADER_IDENTIFIER}") + set(LIBC_HAS_VAR "LIBC_HAS_${HEADER_IDENTIFIER}") + check_include_file("${_HEADER}" "${LIBC_HAS_VAR}") + set(HAVE_${HEADER_IDENTIFIER} ${${LIBC_HAS_VAR}}) + endforeach() + + if(MSVC AND USE_CLANG) + check_c_compiler_flag("/Q_no-use-libirc" HAS_Q_NO_USE_LIBIRC) + endif() +endif() + + +# Enable/disable various subsystems of the SDL library +foreach(_SUB ${SDL_SUBSYSTEMS}) + string(TOUPPER ${_SUB} _OPT) + if(NOT SDL_${_OPT}) + set(SDL_${_OPT}_DISABLED 1) + endif() +endforeach() +if(SDL_HAPTIC) + if(NOT SDL_JOYSTICK) + # Haptic requires some private functions from the joystick subsystem. + message(FATAL_ERROR "SDL_HAPTIC requires SDL_JOYSTICK, which is not enabled") + endif() +endif() + + +# General SDL subsystem options, valid for all platforms +if(SDL_AUDIO) + # CheckDummyAudio/CheckDiskAudio - valid for all platforms + if(SDL_DUMMYAUDIO) + set(SDL_AUDIO_DRIVER_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/dummy/*.c") + set(HAVE_DUMMYAUDIO TRUE) + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_DISKAUDIO) + set(SDL_AUDIO_DRIVER_DISK 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/disk/*.c") + set(HAVE_DISKAUDIO TRUE) + set(HAVE_SDL_AUDIO TRUE) + endif() +endif() + +if(UNIX OR APPLE) + # Relevant for Unix/Darwin only + set(DYNAPI_NEEDS_DLOPEN 1) + CheckDLOPEN() + if(SDL_LOADSO AND HAVE_DLOPEN) + set(SDL_LOADSO_DLOPEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/loadso/dlopen/*.c") + set(HAVE_SDL_LOADSO TRUE) + endif() +endif() + +if(UNIX OR APPLE OR HAIKU OR RISCOS) + CheckO_CLOEXEC() +endif() + +if(SDL_JOYSTICK) + if(SDL_VIRTUAL_JOYSTICK) + set(HAVE_VIRTUAL_JOYSTICK TRUE) + set(SDL_JOYSTICK_VIRTUAL 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/virtual/*.c") + endif() +endif() + +if(SDL_VIDEO) + if(SDL_DUMMYVIDEO) + set(SDL_VIDEO_DRIVER_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/dummy/*.c") + set(HAVE_DUMMYVIDEO TRUE) + set(HAVE_SDL_VIDEO TRUE) + endif() +endif() + +# Platform-specific options and settings +if(ANDROID) + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/android") + + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/android/*.c") + sdl_sources("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") + set_property(SOURCE "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-declaration-after-statement") + + if(SDL_MISC) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/android/*.c") + set(HAVE_SDL_MISC TRUE) + endif() + + # SDL_spinlock.c Needs to be compiled in ARM mode. + # There seems to be no better way currently to set the ARM mode. + # see: https://issuetracker.google.com/issues/62264618 + # Another option would be to set ARM mode to all compiled files + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -Werror=unused-command-line-argument") + check_c_compiler_flag(-marm HAVE_ARM_MODE) + cmake_pop_check_state() + if(HAVE_ARM_MODE) + set_property(SOURCE "${SDL3_SOURCE_DIR}/src/atomic/SDL_spinlock.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -marm") + set_source_files_properties(src/atomic/SDL_spinlock.c PROPERTIES SKIP_PRECOMPILE_HEADERS 1) + endif() + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_ANDROID 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/android/*.c") + + set(SDL_AUDIO_DRIVER_OPENSLES 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/openslES/*.c") + + sdl_link_dependency(opensles LIBS ${ANDROID_DL_LIBRARY} OpenSLES) + + set(SDL_AUDIO_DRIVER_AAUDIO 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/aaudio/*.c") + + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_ANDROID 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/android/*.c") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_HAPTIC) + set(SDL_HAPTIC_ANDROID 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/android/*.c") + set(HAVE_SDL_HAPTIC TRUE) + endif() + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_ANDROID 1) + sdl_glob_sources( + "${SDL3_SOURCE_DIR}/src/joystick/android/*.c" + "${SDL3_SOURCE_DIR}/src/joystick/steam/*.c" + ) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_LOADSO) + set(SDL_LOADSO_DLOPEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/loadso/dlopen/*.c") + set(HAVE_SDL_LOADSO TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_ANDROID 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/android/*.c") + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_LOCALE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/android/*.c") + set(HAVE_SDL_LOCALE TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/unix/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif() + if(SDL_SENSOR) + set(SDL_SENSOR_ANDROID 1) + set(HAVE_SDL_SENSORS TRUE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/android/*.c") + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_ANDROID 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/android/*.c") + set(HAVE_SDL_VIDEO TRUE) + + # Core stuff + # find_library(ANDROID_DL_LIBRARY dl) + # FIXME failing dlopen https://github.com/android-ndk/ndk/issues/929 + sdl_link_dependency(android_video LIBS dl log android) + sdl_compile_definitions(PRIVATE "GL_GLEXT_PROTOTYPES") + + #enable gles + if(SDL_OPENGLES) + set(SDL_VIDEO_OPENGL_EGL 1) + set(HAVE_OPENGLES TRUE) + set(SDL_VIDEO_OPENGL_ES 1) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + + sdl_link_dependency(opengles LIBS GLESv1_CM GLESv2) + endif() + + if(SDL_VULKAN) + check_c_source_compiles(" + #if defined(__ARM_ARCH) && __ARM_ARCH < 7 + #error Vulkan doesn't work on this configuration + #endif + int main(int argc, char **argv) { return 0; } + " VULKAN_PASSED_ANDROID_CHECKS) + if(VULKAN_PASSED_ANDROID_CHECKS) + set(SDL_VIDEO_VULKAN 1) + set(HAVE_VULKAN TRUE) + endif() + endif() + endif() + + CheckPTHREAD() + if(SDL_CLOCK_GETTIME) + set(HAVE_CLOCK_GETTIME 1) + endif() + + if(NOT SDL_DISABLE_ANDROID_JAR) + find_package(Java) + find_package(SdlAndroidPlatform MODULE) + + if(Java_FOUND AND SdlAndroidPlatform_FOUND) + include(UseJava) + set(path_android_jar "${SDL_ANDROID_PLATFORM_ROOT}/android.jar") + set(android_java_sources_root "${SDL3_SOURCE_DIR}/android-project/app/src/main/java") + file(GLOB SDL_JAVA_SOURCES "${android_java_sources_root}/org/libsdl/app/*.java") + set(CMAKE_JAVA_COMPILE_FLAGS "-encoding;utf-8") + add_jar(SDL3-jar + SOURCES ${SDL_JAVA_SOURCES} + INCLUDE_JARS "${path_android_jar}" + OUTPUT_NAME "SDL3" + VERSION "${SDL3_VERSION}" + ) + set_property(TARGET SDL3-jar PROPERTY OUTPUT "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}.jar") + set(javasourcesjar "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}-sources.jar") + string(REGEX REPLACE "${android_java_sources_root}/" "" sdl_relative_java_sources "${SDL_JAVA_SOURCES}") + add_custom_command( + OUTPUT "${javasourcesjar}" + COMMAND ${Java_JAR_EXECUTABLE} cf "${javasourcesjar}" ${sdl_relative_java_sources} + WORKING_DIRECTORY "${android_java_sources_root}" + DEPENDS ${SDL_JAVA_SOURCES} + ) + add_custom_target(SDL3-javasources ALL DEPENDS "${javasourcesjar}") + if(NOT SDL_DISABLE_INSTALL_DOCS) + set(javadocdir "${SDL3_BINARY_DIR}/docs/javadoc") + set(javadocjar "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}-javadoc.jar") + set(javadoc_index_html "${javadocdir}/index.html") + add_custom_command( + OUTPUT "${javadoc_index_html}" + COMMAND ${CMAKE_COMMAND} -E rm -rf "${javadocdir}" + COMMAND ${Java_JAVADOC_EXECUTABLE} -encoding utf8 -d "${javadocdir}" + -classpath "${path_android_jar}" + -author -use -version ${SDL_JAVA_SOURCES} + DEPENDS ${SDL_JAVA_SOURCES} "${path_android_jar}" + ) + add_custom_target(SDL3-javadoc ALL DEPENDS "${javadoc_index_html}") + set_property(TARGET SDL3-javadoc PROPERTY OUTPUT_DIR "${javadocdir}") + endif() + endif() + endif() + +elseif(EMSCRIPTEN) + # Hide noisy warnings that intend to aid mostly during initial stages of porting a new + # project. Uncomment at will for verbose cross-compiling -I/../ path info. + sdl_compile_options(PRIVATE "-Wno-warn-absolute-paths") + + if(SDL_MISC) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/emscripten/*.c") + set(HAVE_SDL_MISC TRUE) + endif() + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_EMSCRIPTEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/emscripten/*.c") + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_EMSCRIPTEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/emscripten/*.c") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_EMSCRIPTEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/emscripten/*.c") + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_EMSCRIPTEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/emscripten/*.c") + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_LOCALE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/emscripten/*.c") + set(HAVE_SDL_LOCALE TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/unix/*.c") + set(HAVE_SDL_TIMERS TRUE) + + if(SDL_CLOCK_GETTIME) + set(HAVE_CLOCK_GETTIME 1) + endif() + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_EMSCRIPTEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/emscripten/*.c") + set(HAVE_SDL_VIDEO TRUE) + + #enable gles + if(SDL_OPENGLES) + set(SDL_VIDEO_OPENGL_EGL 1) + set(HAVE_OPENGLES TRUE) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + endif() + endif() + + CheckPTHREAD() + CheckLibUnwind() + +elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU) + if(SDL_AUDIO) + if(NETBSD) + set(SDL_AUDIO_DRIVER_NETBSD 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/netbsd/*.c") + set(HAVE_SDL_AUDIO TRUE) + elseif(QNX) + set(SDL_AUDIO_DRIVER_QNX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/qnx/*.c") + sdl_link_dependency(asound LIBS asound) + set(HAVE_SDL_AUDIO TRUE) + endif() + CheckOSS() + CheckALSA() + CheckJACK() + CheckPipewire() + CheckPulseAudio() + CheckSNDIO() + endif() + + if(SDL_VIDEO) + # Need to check for Raspberry PI first and add platform specific compiler flags, otherwise the test for GLES fails! + CheckRPI() + # Need to check for ROCKCHIP platform and get rid of "Can't window GBM/EGL surfaces on window creation." + CheckROCKCHIP() + CheckX11() + # Need to check for EGL first because KMSDRM and Wayland depend on it. + CheckEGL() + CheckKMSDRM() + CheckGLX() + CheckOpenGL() + CheckOpenGLES() + CheckWayland() + CheckVivante() + CheckVulkan() + CheckQNXScreen() + endif() + + if(UNIX) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/unix/*.c") + + if (HAVE_LINUX_INPUT_H) + check_c_source_compiles(" + #include + #ifndef EVIOCGNAME + #error EVIOCGNAME() ioctl not available + #endif + int main(int argc, char** argv) { return 0; }" HAVE_INPUT_EVENTS) + endif() + + if(LINUX) + check_c_source_compiles(" + #include + #include + #include + int main(int argc, char **argv) { + struct kbentry kbe; + kbe.kb_table = KG_CTRL; + ioctl(0, KDGKBENT, &kbe); + return 0; + }" HAVE_INPUT_KD) + elseif(FREEBSD) + check_c_source_compiles(" + #include + #include + int main(int argc, char **argv) { + accentmap_t accTable; + ioctl(0, KDENABIO, 1); + return 0; + }" HAVE_INPUT_KBIO) + elseif(OPENBSD OR NETBSD) + check_c_source_compiles(" + #include + #include + #include + #include + #include + int main(int argc, char **argv) { + struct wskbd_map_data data; + ioctl(0, WSKBDIO_GETMAP, &data); + return 0; + }" HAVE_INPUT_WSCONS) + endif() + + if(HAVE_INPUT_EVENTS) + set(SDL_INPUT_LINUXEV 1) + endif() + + if(SDL_HAPTIC AND HAVE_INPUT_EVENTS) + set(SDL_HAPTIC_LINUX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/linux/*.c") + set(HAVE_SDL_HAPTIC TRUE) + endif() + + if(HAVE_INPUT_KD) + set(SDL_INPUT_LINUXKD 1) + endif() + + if(HAVE_INPUT_KBIO) + set(SDL_INPUT_FBSDKBIO 1) + endif() + + if(HAVE_INPUT_WSCONS) + set(SDL_INPUT_WSCONS 1) + endif() + + CheckLibUDev() + check_include_file("sys/inotify.h" HAVE_SYS_INOTIFY_H) + check_symbol_exists(inotify_init "sys/inotify.h" HAVE_INOTIFY_INIT) + check_symbol_exists(inotify_init1 "sys/inotify.h" HAVE_INOTIFY_INIT1) + + if(HAVE_SYS_INOTIFY_H AND HAVE_INOTIFY_INIT) + set(HAVE_INOTIFY 1) + endif() + + if(PKG_CONFIG_FOUND) + if(SDL_DBUS) + pkg_search_module(DBUS dbus-1 dbus) + if(DBUS_FOUND) + set(HAVE_DBUS_DBUS_H TRUE) + sdl_include_directories(PRIVATE SYSTEM ${DBUS_INCLUDE_DIRS}) + # Fcitx need only dbus. + set(HAVE_FCITX TRUE) + set(HAVE_DBUS TRUE) + endif() + endif() + + if(SDL_IBUS) + pkg_search_module(IBUS ibus-1.0 ibus) + find_path(HAVE_SYS_INOTIFY_H NAMES sys/inotify.h) + if(IBUS_FOUND AND HAVE_SYS_INOTIFY_H) + set(HAVE_IBUS_IBUS_H TRUE) + sdl_include_directories(PRIVATE SYSTEM ${IBUS_INCLUDE_DIRS}) + set(HAVE_IBUS TRUE) + endif() + endif() + + if (HAVE_IBUS_IBUS_H OR HAVE_FCITX) + set(SDL_USE_IME 1) + endif() + + if(FREEBSD AND NOT HAVE_INOTIFY) + set(LibInotify_PKG_CONFIG_SPEC libinotify) + pkg_check_modules(PC_LIBINOTIFY IMPORTED_TARGET ${LibInotify_PKG_CONFIG_SPEC}) + if(PC_LIBINOTIFY_FOUND) + set(HAVE_INOTIFY 1) + sdl_link_dependency(libinotify LIBS PkgConfig::PC_LIBINOTIFY PKG_CONFIG_PREFIX PC_LIBINOTIFY PKG_CONFIG_SPECS ${LibInotify_PKG_CONFIG_SPEC}) + endif() + endif() + + CheckLibUnwind() + endif() + + if(HAVE_DBUS_DBUS_H) + sdl_sources( + "${SDL3_SOURCE_DIR}/src/core/linux/SDL_dbus.c" + "${SDL3_SOURCE_DIR}/src/core/linux/SDL_system_theme.c" + ) + endif() + + if(SDL_USE_IME) + sdl_sources("${SDL3_SOURCE_DIR}/src/core/linux/SDL_ime.c") + endif() + + if(HAVE_IBUS_IBUS_H) + sdl_sources("${SDL3_SOURCE_DIR}/src/core/linux/SDL_ibus.c") + endif() + + if(HAVE_FCITX) + sdl_sources("${SDL3_SOURCE_DIR}/src/core/linux/SDL_fcitx.c") + endif() + + if(HAVE_LIBUDEV_H) + sdl_sources("${SDL3_SOURCE_DIR}/src/core/linux/SDL_udev.c") + endif() + + if(HAVE_INPUT_EVENTS) + sdl_sources( + "${SDL3_SOURCE_DIR}/src/core/linux/SDL_evdev.c" + "${SDL3_SOURCE_DIR}/src/core/linux/SDL_evdev_kbd.c" + ) + endif() + + if(HAVE_INPUT_KBIO) + sdl_sources("${SDL3_SOURCE_DIR}/src/core/freebsd/SDL_evdev_kbd_freebsd.c") + endif() + + # Always compiled for Linux, unconditionally: + sdl_sources( + "${SDL3_SOURCE_DIR}/src/core/linux/SDL_evdev_capabilities.c" + "${SDL3_SOURCE_DIR}/src/core/linux/SDL_threadprio.c" + "${SDL3_SOURCE_DIR}/src/core/linux/SDL_sandbox.c" + ) + + # src/core/unix/*.c is included in a generic if(UNIX) section, elsewhere. + endif() + + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + + if(SDL_JOYSTICK) + if(FREEBSD OR NETBSD OR OPENBSD OR BSDI) + CheckUSBHID() + endif() + if(LINUX AND HAVE_LINUX_INPUT_H AND NOT ANDROID) + set(SDL_JOYSTICK_LINUX 1) + sdl_glob_sources( + "${SDL3_SOURCE_DIR}/src/joystick/linux/*.c" + "${SDL3_SOURCE_DIR}/src/joystick/steam/*.c" + ) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + endif() + + CheckPTHREAD() + + if(SDL_CLOCK_GETTIME) + check_library_exists(c clock_gettime "" FOUND_CLOCK_GETTIME_LIBC) + if(FOUND_CLOCK_GETTIME_LIBC) + set(HAVE_CLOCK_GETTIME 1) + else() + check_library_exists(rt clock_gettime "" FOUND_CLOCK_GETTIME_LIBRT) + if(FOUND_CLOCK_GETTIME_LIBRT) + set(HAVE_CLOCK_GETTIME 1) + sdl_link_dependency(clock LIBS rt) + endif() + endif() + endif() + + if(SDL_MISC) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/unix/*.c") + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_POWER) + if(LINUX) + set(SDL_POWER_LINUX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/linux/*.c") + set(HAVE_SDL_POWER TRUE) + endif() + endif() + + if(SDL_LOCALE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/unix/*.c") + set(HAVE_SDL_LOCALE TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_UNIX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/unix/*.c") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/unix/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif() + + set(SDL_RLD_FLAGS "") + if(SDL_RPATH AND SDL_SHARED) + if(BSDI OR FREEBSD OR LINUX OR NETBSD) + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -Wl,--enable-new-dtags") + check_c_compiler_flag("" HAVE_ENABLE_NEW_DTAGS) + cmake_pop_check_state() + if(HAVE_ENABLE_NEW_DTAGS) + set(SDL_RLD_FLAGS "-Wl,-rpath,\${libdir} -Wl,--enable-new-dtags") + else() + set(SDL_RLD_FLAGS "-Wl,-rpath,\${libdir}") + endif() + elseif(SOLARIS) + set(SDL_RLD_FLAGS "-R\${libdir}") + endif() + set(HAVE_RPATH TRUE) + endif() + + if(QNX) + # QNX's *printf() family generates a SIGSEGV if NULL is passed for a string + # specifier (on purpose), but SDL expects "(null)". Use the built-in + # implementation. + set (HAVE_VSNPRINTF 0) + set (USE_POSIX_SPAWN 1) + endif() +elseif(WINDOWS) + check_c_source_compiles(" + #include + int main(int argc, char **argv) { return 0; }" HAVE_WIN32_CC) + + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/windows/*.c") + + if(WINDOWS_STORE) + sdl_glob_sources( + "${SDL3_SOURCE_DIR}/src/core/winrt/*.c" + "${SDL3_SOURCE_DIR}/src/core/winrt/*.cpp" + ) + endif() + + if(TARGET SDL3-shared AND MSVC AND NOT SDL_LIBC) + # Prevent codegen that would use the VC runtime libraries. + target_compile_options(SDL3-shared PRIVATE $<$:/GS-> $<$:/Gs1048576>) + if(SDL_CPU_X86) + target_compile_options(SDL3-shared PRIVATE "/arch:SSE") + endif() + endif() + + if(SDL_MISC) + if(WINDOWS_STORE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/winrt/*.cpp") + else() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/windows/*.c") + endif() + set(HAVE_SDL_MISC TRUE) + endif() + + # Check for DirectX + if(SDL_DIRECTX) + cmake_push_check_state() + if(DEFINED MSVC_VERSION AND NOT ${MSVC_VERSION} LESS 1700) + set(USE_WINSDK_DIRECTX TRUE) + endif() + if(NOT MINGW AND NOT USE_WINSDK_DIRECTX) + if("$ENV{DXSDK_DIR}" STREQUAL "") + message(FATAL_ERROR "DIRECTX requires the \$DXSDK_DIR environment variable to be set") + endif() + string(APPEND CMAKE_REQUIRED_FLAGS " /I\"$ENV{DXSDK_DIR}\\Include\"") + endif() + + check_include_file(d3d9.h HAVE_D3D_H) + check_include_file(d3d11_1.h HAVE_D3D11_H) + check_c_source_compiles(" + #include + #include + #include + ID3D12Device1 *device; + #if WDK_NTDDI_VERSION > 0x0A000008 + int main(int argc, char **argv) { return 0; } + #endif" HAVE_D3D12_H) + check_include_file(ddraw.h HAVE_DDRAW_H) + check_include_file(dsound.h HAVE_DSOUND_H) + check_include_file(dinput.h HAVE_DINPUT_H) + if(WINDOWS_STORE OR SDL_CPU_ARM32) + set(HAVE_DINPUT_H 0) + endif() + check_include_file(dxgi.h HAVE_DXGI_H) + cmake_pop_check_state() + if(HAVE_D3D_H OR HAVE_D3D11_H OR HAVE_D3D12_H OR HAVE_DDRAW_H OR HAVE_DSOUND_H OR HAVE_DINPUT_H) + set(HAVE_DIRECTX TRUE) + if(NOT MINGW AND NOT USE_WINSDK_DIRECTX) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(PROCESSOR_ARCH "x64") + else() + set(PROCESSOR_ARCH "x86") + endif() + sdl_link_directories("$") + sdl_include_directories(PRIVATE SYSTEM "$") + endif() + endif() + endif() + + if(SDL_XINPUT) + # xinput.h may need windows.h, but does not include it itself. + check_c_source_compiles(" + #include + #include + int main(int argc, char **argv) { return 0; }" HAVE_XINPUT_H) + check_c_source_compiles(" + #include + #include + XINPUT_GAMEPAD_EX x1; + int main(int argc, char **argv) { return 0; }" HAVE_XINPUT_GAMEPAD_EX) + check_c_source_compiles(" + #include + #include + XINPUT_STATE_EX s1; + int main(int argc, char **argv) { return 0; }" HAVE_XINPUT_STATE_EX) + check_c_source_compiles(" + #define COBJMACROS + #include + __x_ABI_CWindows_CGaming_CInput_CIGamepadStatics2 *s2; + int main(int argc, char **argv) { return 0; }" HAVE_WINDOWS_GAMING_INPUT_H) + endif() + + # headers needed elsewhere + check_include_file(tpcshrd.h HAVE_TPCSHRD_H) + check_include_file(roapi.h HAVE_ROAPI_H) + check_include_file(mmdeviceapi.h HAVE_MMDEVICEAPI_H) + check_include_file(audioclient.h HAVE_AUDIOCLIENT_H) + check_include_file(sensorsapi.h HAVE_SENSORSAPI_H) + check_include_file(shellscalingapi.h HAVE_SHELLSCALINGAPI_H) + + if(SDL_AUDIO) + if(HAVE_DSOUND_H AND NOT WINDOWS_STORE) + set(SDL_AUDIO_DRIVER_DSOUND 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/directsound/*.c") + set(HAVE_SDL_AUDIO TRUE) + endif() + + if(SDL_WASAPI AND HAVE_AUDIOCLIENT_H AND HAVE_MMDEVICEAPI_H) + set(SDL_AUDIO_DRIVER_WASAPI 1) + set(HAVE_WASAPI TRUE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/wasapi/*.c") + if(WINDOWS_STORE) + sdl_sources("${SDL3_SOURCE_DIR}/src/audio/wasapi/SDL_wasapi_winrt.cpp") + endif() + set(HAVE_SDL_AUDIO TRUE) + endif() + endif() + + if(SDL_VIDEO) + # requires SDL_LOADSO on Windows (IME, DX, etc.) + if(NOT SDL_LOADSO) + message(FATAL_ERROR "SDL_VIDEO requires SDL_LOADSO, which is not enabled") + endif() + if(WINDOWS_STORE) + set(SDL_VIDEO_DRIVER_WINRT 1) + sdl_glob_sources( + "${SDL3_SOURCE_DIR}/src/video/winrt/*.c" + "${SDL3_SOURCE_DIR}/src/video/winrt/*.cpp" + "${SDL3_SOURCE_DIR}/src/render/direct3d11/*.cpp" + ) + else() + set(SDL_VIDEO_DRIVER_WINDOWS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/windows/*.c") + endif() + + if(SDL_RENDER_D3D AND HAVE_D3D_H AND NOT WINDOWS_STORE) + set(SDL_VIDEO_RENDER_D3D 1) + set(HAVE_RENDER_D3D TRUE) + endif() + if(SDL_RENDER_D3D AND HAVE_D3D11_H) + set(SDL_VIDEO_RENDER_D3D11 1) + set(HAVE_RENDER_D3D TRUE) + endif() + if(SDL_RENDER_D3D AND HAVE_D3D12_H AND NOT WINDOWS_STORE) + set(SDL_VIDEO_RENDER_D3D12 1) + set(HAVE_RENDER_D3D TRUE) + endif() + set(HAVE_SDL_VIDEO TRUE) + endif() + + if(SDL_THREADS) + set(SDL_THREAD_GENERIC_COND_SUFFIX 1) + set(SDL_THREAD_GENERIC_RWLOCK_SUFFIX 1) + set(SDL_THREAD_WINDOWS 1) + sdl_sources( + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_syscond.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_sysrwlock.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_syscond_cv.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_sysmutex.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_sysrwlock_srw.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_syssem.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_systhread.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_systls.c" + ) + set(HAVE_SDL_THREADS TRUE) + endif() + + if(SDL_SENSOR AND HAVE_SENSORSAPI_H AND NOT WINDOWS_STORE) + set(SDL_SENSOR_WINDOWS 1) + set(HAVE_SDL_SENSORS TRUE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/windows/*.c") + endif() + + if(SDL_POWER) + if(WINDOWS_STORE) + set(SDL_POWER_WINRT 1) + sdl_sources("${SDL3_SOURCE_DIR}/src/power/winrt/SDL_syspower.cpp") + else() + set(SDL_POWER_WINDOWS 1) + sdl_sources("${SDL3_SOURCE_DIR}/src/power/windows/SDL_syspower.c") + set(HAVE_SDL_POWER TRUE) + endif() + endif() + + if(SDL_LOCALE) + if(WINDOWS_STORE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/winrt/*.c") + else() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/windows/*.c") + endif() + set(HAVE_SDL_LOCALE TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_WINDOWS 1) + if(WINDOWS_STORE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/winrt/*.cpp") + else() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/windows/*.c") + endif() + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + # Libraries for Win32 native and MinGW + if(NOT WINDOWS_STORE) + sdl_link_dependency(base LIBS kernel32 user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32) + endif() + + if(WINDOWS_STORE) + sdl_link_dependency(windows + LIBS + vccorlib$<$:d>.lib + msvcrt$<$:d>.lib + LINK_OPTIONS + -nodefaultlib:vccorlib$<$:d> + -nodefaultlib:msvcrt$<$:d> + ) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_WINDOWS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/windows/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(SDL_LOADSO) + set(SDL_LOADSO_WINDOWS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/loadso/windows/*.c") + set(HAVE_SDL_LOADSO TRUE) + endif() + + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/windows/*.c") + + if(SDL_VIDEO) + if(SDL_OPENGL AND NOT WINDOWS_STORE) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_WGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + set(HAVE_OPENGL TRUE) + endif() + + if(SDL_OPENGLES) + set(SDL_VIDEO_OPENGL_EGL 1) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + set(HAVE_OPENGLES TRUE) + endif() + + if(SDL_VULKAN) + set(SDL_VIDEO_VULKAN 1) + set(HAVE_VULKAN TRUE) + endif() + endif() + + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + + if(SDL_JOYSTICK) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/windows/*.c") + + if(NOT WINDOWS_STORE) + set(SDL_JOYSTICK_RAWINPUT 1) + endif() + if(HAVE_DINPUT_H) + set(SDL_JOYSTICK_DINPUT 1) + sdl_link_dependency(joystick LIBS dinput8) + endif() + if(HAVE_XINPUT_H) + if(NOT WINDOWS_STORE) + set(SDL_JOYSTICK_XINPUT 1) + set(HAVE_XINPUT TRUE) + endif() + if(HAVE_WINDOWS_GAMING_INPUT_H) + set(SDL_JOYSTICK_WGI 1) + endif() + endif() + set(HAVE_SDL_JOYSTICK TRUE) + + if(SDL_HAPTIC) + if((HAVE_DINPUT_H OR HAVE_XINPUT_H) AND NOT WINDOWS_STORE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/windows/*.c") + if(HAVE_DINPUT_H) + set(SDL_HAPTIC_DINPUT 1) + endif() + if(HAVE_XINPUT_H) + set(SDL_HAPTIC_XINPUT 1) + endif() + else() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/dummy/*.c") + set(SDL_HAPTIC_DUMMY 1) + endif() + set(HAVE_SDL_HAPTIC TRUE) + endif() + endif() + + sdl_glob_sources(SHARED "${SDL3_SOURCE_DIR}/src/core/windows/*.rc") + if(MINGW OR CYGWIN) + sdl_pc_link_options("-mwindows") + endif() + +elseif(APPLE) + # TODO: rework this all for proper macOS, iOS and Darwin support + + # We always need these libs on macOS at the moment. + # !!! FIXME: we need Carbon for some very old API calls in + # !!! FIXME: src/video/cocoa/SDL_cocoakeyboard.c, but we should figure out + # !!! FIXME: how to dump those. + if(DARWIN OR MACOSX) + set(SDL_FRAMEWORK_COCOA 1) + set(SDL_FRAMEWORK_CARBON 1) + endif() + set(SDL_FRAMEWORK_FOUNDATION 1) + set(SDL_FRAMEWORK_COREVIDEO 1) + + # Requires the darwin file implementation + if(SDL_FILE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/file/cocoa/*.m") + set(HAVE_SDL_FILE TRUE) + endif() + + if(SDL_MISC) + if(IOS OR TVOS OR VISIONOS) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/ios/*.m") + else() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/macos/*.m") + endif() + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_COREAUDIO 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/coreaudio/*.m") + set(HAVE_SDL_AUDIO TRUE) + set(SDL_FRAMEWORK_COREAUDIO 1) + set(SDL_FRAMEWORK_AUDIOTOOLBOX 1) + set(SDL_FRAMEWORK_AVFOUNDATION 1) + endif() + + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + + if(SDL_JOYSTICK) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/apple/*.m") + if(IOS OR TVOS OR VISIONOS) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/steam/*.c") + set(SDL_JOYSTICK_MFI 1) + if(IOS OR VISIONOS) + set(SDL_FRAMEWORK_COREMOTION 1) + endif() + set(SDL_FRAMEWORK_GAMECONTROLLER 1) + set(SDL_FRAMEWORK_COREHAPTICS 1) + else() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/darwin/*.c") + set_property(SOURCE ${MFI_JOYSTICK_SOURCES} APPEND_STRING PROPERTY COMPILE_FLAGS " -fobjc-weak") + check_objc_source_compiles(" + #include + #include + #import + #import + #if MAC_OS_X_VERSION_MIN_REQUIRED < 1080 + #error GameController framework doesn't work on this configuration + #endif + #if TARGET_CPU_X86 + #error GameController framework doesn't work on this configuration + #endif + int main() { return 0; }" HAVE_FRAMEWORK_GAMECONTROLLER) + check_objc_source_compiles(" + #include + #include + #import + #import + int main() { return 0; }" HAVE_FRAMEWORK_COREHAPTICS) + if(HAVE_FRAMEWORK_GAMECONTROLLER AND HAVE_FRAMEWORK_COREHAPTICS) + # Only enable MFI if we also have CoreHaptics to ensure rumble works + set(SDL_JOYSTICK_MFI 1) + set(SDL_FRAMEWORK_GAMECONTROLLER 1) + set(SDL_FRAMEWORK_COREHAPTICS 1) + endif() + if(NOT VISIONOS) + set(SDL_JOYSTICK_IOKIT 1) + set(SDL_FRAMEWORK_IOKIT 1) + endif() + set(SDL_FRAMEWORK_FF 1) + endif() + set(HAVE_SDL_JOYSTICK TRUE) + endif() + + if(SDL_HAPTIC) + if (IOS OR TVOS OR VISIONOS) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/dummy/*.c") + set(SDL_HAPTIC_DUMMY 1) + else() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/darwin/*.c") + set(SDL_HAPTIC_IOKIT 1) + set(SDL_FRAMEWORK_IOKIT 1) + set(SDL_FRAMEWORK_FF 1) + endif() + set(HAVE_SDL_HAPTIC TRUE) + endif() + + if(SDL_POWER) + if (IOS OR TVOS OR VISIONOS) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/uikit/*.m") + set(SDL_POWER_UIKIT 1) + else() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/macos/*.c") + set(SDL_POWER_MACOSX 1) + set(SDL_FRAMEWORK_IOKIT 1) + endif() + set(HAVE_SDL_POWER TRUE) + endif() + + if(SDL_LOCALE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/macos/*.m") + set(HAVE_SDL_LOCALE TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/unix/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif(SDL_TIMERS) + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_COCOA 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/cocoa/*.m") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_SENSOR) + if(IOS OR VISIONOS) + set(SDL_SENSOR_COREMOTION 1) + set(HAVE_SDL_SENSORS TRUE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/coremotion/*.m") + endif() + endif() + + # iOS hack needed - http://code.google.com/p/ios-cmake/ ? + if(SDL_VIDEO) + if (IOS OR TVOS OR VISIONOS) + set(SDL_VIDEO_DRIVER_UIKIT 1) + set(SDL_FRAMEWORK_COREGRAPHICS 1) + set(SDL_FRAMEWORK_QUARTZCORE 1) + set(SDL_FRAMEWORK_UIKIT 1) + set(SDL_IPHONE_KEYBOARD 1) + set(SDL_IPHONE_LAUNCHSCREEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/uikit/*.m") + set(HAVE_SDL_VIDEO TRUE) + else() + CheckCOCOA() + if(SDL_OPENGL) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_CGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + set(HAVE_OPENGL TRUE) + endif() + endif() + + if(SDL_OPENGLES) + if(IOS OR TVOS OR VISIONOS) + set(SDL_FRAMEWORK_OPENGLES 1) + set(SDL_VIDEO_OPENGL_ES 1) + else() + set(SDL_VIDEO_OPENGL_EGL 1) + endif() + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + set(HAVE_OPENGLES TRUE) + endif() + + if(SDL_VULKAN OR SDL_METAL OR SDL_RENDER_METAL) + check_objc_source_compiles(" + #include + #import + #import + + #if (!TARGET_CPU_X86_64 && !TARGET_CPU_ARM64) + #error Metal doesn't work on this configuration + #endif + int main(int argc, char **argv) { return 0; }" HAVE_FRAMEWORK_METAL) + if(HAVE_FRAMEWORK_METAL) + set(SDL_FRAMEWORK_METAL 1) + set(SDL_FRAMEWORK_QUARTZCORE 1) + if(SDL_VULKAN) + set(SDL_VIDEO_VULKAN 1) + set(HAVE_VULKAN TRUE) + endif() + if(SDL_METAL) + set(SDL_VIDEO_METAL 1) + set(HAVE_METAL TRUE) + endif() + if(SDL_RENDER_METAL) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/render/metal/*.m") + set(SDL_VIDEO_RENDER_METAL 1) + set(HAVE_RENDER_METAL TRUE) + endif() + endif() + endif() + endif() + + # Actually load the frameworks at the end so we don't duplicate include. + if(SDL_FRAMEWORK_COREVIDEO) + sdl_link_dependency(corevideo LINK_OPTIONS "-Wl,-framework,CoreVideo") + endif() + if(SDL_FRAMEWORK_COCOA) + sdl_link_dependency(cocoa LINK_OPTIONS "-Wl,-framework,Cocoa") + endif() + if(SDL_FRAMEWORK_IOKIT) + sdl_link_dependency(iokit LINK_OPTIONS "-Wl,-framework,IOKit") + endif() + if(SDL_FRAMEWORK_FF) + sdl_link_dependency(ff LINK_OPTIONS "-Wl,-framework,ForceFeedback") + endif() + if(SDL_FRAMEWORK_CARBON) + sdl_link_dependency(carbon LINK_OPTIONS "-Wl,-framework,Carbon") + endif() + if(SDL_FRAMEWORK_COREAUDIO) + sdl_link_dependency(core_audio LINK_OPTIONS "-Wl,-framework,CoreAudio") + endif() + if(SDL_FRAMEWORK_AUDIOTOOLBOX) + sdl_link_dependency(audio_toolbox LINK_OPTIONS "-Wl,-framework,AudioToolbox") + endif() + if(SDL_FRAMEWORK_AVFOUNDATION) + sdl_link_dependency(av_foundation LINK_OPTIONS "-Wl,-framework,AVFoundation") + endif() + if(SDL_FRAMEWORK_COREBLUETOOTH) + sdl_link_dependency(core_bluetooth LINK_OPTIONS "-Wl,-framework,CoreBluetooth") + endif() + if(SDL_FRAMEWORK_COREGRAPHICS) + sdl_link_dependency(core_graphics LINK_OPTIONS "-Wl,-framework,CoreGraphics") + endif() + if(SDL_FRAMEWORK_COREMOTION) + sdl_link_dependency(core_motion LINK_OPTIONS "-Wl,-framework,CoreMotion") + endif() + if(SDL_FRAMEWORK_FOUNDATION) + sdl_link_dependency(foundation LINK_OPTIONS "-Wl,-framework,Foundation") + endif() + if(SDL_FRAMEWORK_GAMECONTROLLER) + find_library(GAMECONTROLLER GameController) + if(GAMECONTROLLER) + sdl_link_dependency(game_controller LINK_OPTIONS "-Wl,-weak_framework,GameController") + endif() + endif() + if(SDL_FRAMEWORK_METAL) + if(IOS OR TVOS OR VISIONOS) + sdl_link_dependency(metal LINK_OPTIONS "-Wl,-framework,Metal") + else() + sdl_link_dependency(metal LINK_OPTIONS "-Wl,-weak_framework,Metal") + endif() + endif() + if(SDL_FRAMEWORK_OPENGLES) + sdl_link_dependency(opengles LINK_OPTIONS "-Wl,-framework,OpenGLES") + endif() + if(SDL_FRAMEWORK_QUARTZCORE) + if(IOS OR TVOS OR VISIONOS) + sdl_link_dependency(quartz_core LINK_OPTIONS "-Wl,-framework,QuartzCore") + else() + sdl_link_dependency(metal LINK_OPTIONS "-Wl,-weak_framework,QuartzCore") + endif() + endif() + if(SDL_FRAMEWORK_UIKIT) + sdl_link_dependency(ui_kit LINK_OPTIONS "-Wl,-framework,UIKit") + endif() + if(SDL_FRAMEWORK_COREHAPTICS) + find_library(COREHAPTICS CoreHaptics) + if(COREHAPTICS) + sdl_link_dependency(core_haptics LINK_OPTIONS "-Wl,-framework,CoreHaptics") + endif() + endif() + + CheckPTHREAD() + +elseif(HAIKU) + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_HAIKU 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/haiku/*.cc") + set(HAVE_SDL_AUDIO TRUE) + endif() + + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_HAIKU 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/haiku/*.cc") + set(HAVE_SDL_JOYSTICK TRUE) + endif() + + if(SDL_MISC) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/haiku/*.cc") + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_HAIKU 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/haiku/*.cc") + set(HAVE_SDL_VIDEO TRUE) + + if(SDL_OPENGL) + # TODO: Use FIND_PACKAGE(OpenGL) instead + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_HAIKU 1) + set(SDL_VIDEO_RENDER_OGL 1) + sdl_link_dependency(opengl LIBS GL) + set(HAVE_OPENGL TRUE) + endif() + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_HAIKU 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/haiku/*.cc") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_HAIKU 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/haiku/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(SDL_POWER) + set(SDL_POWER_HAIKU 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/haiku/*.c") + set(HAVE_SDL_POWER TRUE) + endif() + + if(SDL_LOCALE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/haiku/*.cc") + set(HAVE_SDL_LOCALE TRUE) + endif() + + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/haiku/*.cc") + + CheckPTHREAD() + sdl_link_dependency(base LIBS root be media game device textencoding) + +elseif(RISCOS) + if(SDL_MISC) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/riscos/*.c") + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_RISCOS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/riscos/*.c") + set(HAVE_SDL_VIDEO TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_RISCOS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/riscos/*.c") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/unix/*.c") + set(HAVE_SDL_TIMERS TRUE) + + if(SDL_CLOCK_GETTIME) + set(HAVE_CLOCK_GETTIME 1) + endif() + endif() + + CheckPTHREAD() + + if(SDL_AUDIO) + CheckOSS() + endif() + +elseif(VITA) + # SDL_spinlock.c Needs to be compiled in ARM mode. + cmake_push_check_state() + string(APPEND CMAKE_REQUIRED_FLAGS " -Werror=unused-command-line-argument") + check_c_compiler_flag(-marm HAVE_ARM_MODE) + cmake_pop_check_state() + if(HAVE_ARM_MODE) + set_property(SOURCE "${SDL3_SOURCE_DIR}/src/atomic/SDL_spinlock.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -marm") + endif() + + if(SDL_MISC) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/vita/*.c") + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_VITA 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/vita/*.c") + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_VITA 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/vita/*.c") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_VITA 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/vita/*.c") + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_VITA 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/vita/*.c") + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_THREADS) + set(SDL_THREAD_VITA 1) + sdl_sources( + "${SDL3_SOURCE_DIR}/src/thread/vita/SDL_sysmutex.c" + "${SDL3_SOURCE_DIR}/src/thread/vita/SDL_syssem.c" + "${SDL3_SOURCE_DIR}/src/thread/vita/SDL_systhread.c" + "${SDL3_SOURCE_DIR}/src/thread/vita/SDL_syscond.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_sysrwlock.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_systls.c" + ) + set(HAVE_SDL_THREADS TRUE) + endif() + if(SDL_LOCALE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/vita/*.c") + set(HAVE_SDL_LOCALE TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_VITA 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/vita/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif() + if(SDL_SENSOR) + set(SDL_SENSOR_VITA 1) + set(HAVE_SDL_SENSORS TRUE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/vita/*.c") + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_VITA 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/vita/*.c") + set(HAVE_SDL_VIDEO TRUE) + + if(VIDEO_VITA_PIB) + check_include_file(pib.h HAVE_PIGS_IN_BLANKET_H) + + if(HAVE_PIGS_IN_BLANKET_H) + set(SDL_VIDEO_OPENGL_ES2 1) + sdl_link_dependency(pib + LIBS + pib + libScePiglet_stub_weak + taihen_stub_weak + SceShaccCg_stub_weak + ) + set(HAVE_VIDEO_VITA_PIB ON) + set(SDL_VIDEO_VITA_PIB 1) + else() + set(HAVE_VIDEO_VITA_PIB OFF) + endif() + endif() + + if(VIDEO_VITA_PVR) + check_include_file(gpu_es4/psp2_pvr_hint.h HAVE_PVR_H) + if(HAVE_PVR_H) + sdl_compile_definitions(PRIVATE "__psp2__") + set(SDL_VIDEO_OPENGL_EGL 1) + set(HAVE_OPENGLES TRUE) + set(SDL_VIDEO_OPENGL_ES 1) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + + sdl_link_dependency(pvr + LIBS + libgpu_es4_ext_stub_weak + libIMGEGL_stub_weak + SceIme_stub + ) + + set(HAVE_VIDEO_VITA_PVR ON) + set(SDL_VIDEO_VITA_PVR 1) + + if(SDL_OPENGL) + check_include_file(gl4esinit.h HAVE_GL4ES_H) + if(HAVE_GL4ES_H) + set(HAVE_OPENGL TRUE) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + sdl_link_dependency(opengl LIBS libGL_stub) + set(SDL_VIDEO_VITA_PVR_OGL 1) + endif() + endif() + + else() + set(HAVE_VIDEO_VITA_PVR OFF) + endif() + endif() + + set(SDL_VIDEO_RENDER_VITA_GXM 1) + sdl_link_dependency(base + LIBS + SceGxm_stub + SceDisplay_stub + SceCtrl_stub + SceAppMgr_stub + SceAppUtil_stub + SceAudio_stub + SceAudioIn_stub + SceSysmodule_stub + SceDisplay_stub + SceCtrl_stub + SceIofilemgr_stub + SceCommonDialog_stub + SceTouch_stub + SceHid_stub + SceMotion_stub + ScePower_stub + SceProcessmgr_stub + ) + endif() + + sdl_compile_definitions(PRIVATE "__VITA__") + +elseif(PSP) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/psp/*.c") + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_PSP 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/psp/*.c") + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_PSP 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/psp/*.c") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_PSP 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/psp/*.c") + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_PSP 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/psp/*.c") + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_THREADS) + set(SDL_THREAD_PSP 1) + sdl_glob_sources( + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_systls.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_sysrwlock.c" + "${SDL3_SOURCE_DIR}/src/thread/psp/*.c" + ) + set(HAVE_SDL_THREADS TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_PSP 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/psp/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_PSP 1) + set(SDL_VIDEO_RENDER_PSP 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/psp/*.c") + set(SDL_VIDEO_OPENGL 1) + set(HAVE_SDL_VIDEO TRUE) + endif() + sdl_link_dependency(base + LIBS + GL + pspvram + pspaudio + pspvfpu + pspdisplay + pspgu + pspge + psphprm + pspctrl + psppower + ) + +elseif(PS2) + sdl_compile_definitions(PRIVATE "PS2" "__PS2__") + sdl_include_directories(PRIVATE SYSTEM "$ENV{PS2SDK}/ports/include" "$ENV{PS2DEV}/gsKit/include") + + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/ps2/*.c") + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_PS2 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/ps2/*.c") + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_PS2 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/ps2/*.c") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_PS2 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/ps2/*.c") + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_THREADS) + set(SDL_THREAD_PS2 1) + sdl_glob_sources( + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_syscond.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_sysmutex.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_sysrwlock.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_systls.c" + "${SDL3_SOURCE_DIR}/src/thread/ps2/*.c" + ) + set(HAVE_SDL_THREADS TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_PS2 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/ps2/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_PS2 1) + set(SDL_VIDEO_RENDER_PS2 1) + sdl_glob_sources( + "${SDL3_SOURCE_DIR}/src/video/ps2/*.c" + "${SDL3_SOURCE_DIR}/src/render/ps2/*.c" + ) + set(SDL_VIDEO_OPENGL 0) + set(HAVE_SDL_VIDEO TRUE) + endif() + + sdl_link_dependency(base + LIBS + patches + gskit + dmakit + ps2_drivers + ) +elseif(N3DS) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/n3ds/*.c") + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_N3DS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/n3ds/*.c") + set(HAVE_SDL_AUDIO TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_N3DS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/n3ds/*.c") + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_N3DS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/n3ds/*.c") + set(HAVE_SDL_JOYSTICK TRUE) + endif() + + if(SDL_POWER) + set(SDL_POWER_N3DS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/n3ds/*.c") + set(HAVE_SDL_POWER TRUE) + endif() + + if(SDL_THREADS) + set(SDL_THREAD_N3DS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/thread/n3ds/*.c") + sdl_sources( + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_systls.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_sysrwlock.c" + ) + set(HAVE_SDL_THREADS TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_N3DS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/n3ds/*.c") + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(SDL_SENSOR) + set(SDL_SENSOR_N3DS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/n3ds/*.c") + set(HAVE_SDL_SENSORS TRUE) + endif() + + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_N3DS 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/n3ds/*.c") + set(HAVE_SDL_VIDEO TRUE) + endif() + + if(SDL_LOCALE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/n3ds/*.c") + set(HAVE_SDL_LOCALE TRUE) + endif() + + # Requires the n3ds file implementation + if(SDL_FILE) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/file/n3ds/*.c") + set(HAVE_SDL_FILE TRUE) + else() + message(FATAL_ERROR "SDL_FILE must be enabled to build on N3DS") + endif() +endif() + +if(HAVE_VULKAN AND NOT SDL_LOADSO) + message(STATUS "Vulkan support is available, but disabled because there's no loadso.") + set(HAVE_VULKAN FALSE) + set(SDL_VIDEO_VULKAN 0) +endif() + +# Platform-independent options + +if(SDL_VIDEO) + if(SDL_OFFSCREEN AND SDL_VIDEO_OPENGL_EGL) + set(SDL_VIDEO_DRIVER_OFFSCREEN 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/offscreen/*.c") + set(HAVE_OFFSCREEN TRUE) + set(HAVE_SDL_VIDEO TRUE) + endif() +endif() + +# Dummies +# configure.ac does it differently: +# if not have X +# if enable_X { SDL_X_DISABLED = 1 } +# [add dummy sources] +# so it always adds a dummy, without checking, if it was actually requested. +# This leads to missing internal references on building, since the +# src/X/*.c does not get included. +if(NOT HAVE_SDL_AUDIO) + set(SDL_AUDIO_DRIVER_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/dummy/*.c") +endif() +if(NOT HAVE_SDL_VIDEO) + set(SDL_VIDEO_DRIVER_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/dummy/*.c") +endif() +if(NOT HAVE_SDL_JOYSTICK) + set(SDL_JOYSTICK_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/dummy/*.c") +endif() +if(NOT HAVE_SDL_HAPTIC) + set(SDL_HAPTIC_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/dummy/*.c") +endif() +if(NOT HAVE_SDL_SENSORS) + set(SDL_SENSOR_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/dummy/*.c") +endif() +if(NOT HAVE_SDL_LOADSO) + set(SDL_LOADSO_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/loadso/dummy/*.c") +endif() +if(NOT HAVE_SDL_FILESYSTEM) + set(SDL_FILESYSTEM_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/dummy/*.c") +endif() +if(NOT HAVE_SDL_LOCALE) + set(SDL_LOCALE_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/dummy/*.c") +endif() +if(NOT HAVE_SDL_MISC) + set(SDL_MISC_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/dummy/*.c") +endif() + +# We always need to have threads and timers around +if(NOT HAVE_SDL_THREADS) + # The emscripten platform has been carefully vetted to work without threads + if(EMSCRIPTEN) + set(SDL_THREADS_DISABLED 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/thread/generic/*.c") + else() + message(FATAL_ERROR "Threads are needed by many SDL subsystems and may not be disabled") + endif() +endif() +if(NOT HAVE_SDL_TIMERS) + set(SDL_TIMER_DUMMY 1) + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/dummy/*.c") +endif() + +# config variables may contain generator expression, so we need to generate SDL_build_config.h in 2 steps: +# 1. replace all `#cmakedefine`'s and `@abc@` +configure_file("${SDL3_SOURCE_DIR}/include/build_config/SDL_build_config.h.cmake" + "${SDL3_BINARY_DIR}/SDL_build_config.h.intermediate") +# 2. generate SDL_build_config.h in an build_type-dependent folder (which should be first in the include search path) +file(GENERATE + OUTPUT "${SDL3_BINARY_DIR}/include-config-$>/build_config/SDL_build_config.h" + INPUT "${SDL3_BINARY_DIR}/SDL_build_config.h.intermediate" +) + +file(GLOB SDL3_INCLUDE_FILES "${SDL3_SOURCE_DIR}/include/SDL3/*.h") +file(GLOB SDL3_TEST_INCLUDE_FILES "${SDL3_SOURCE_DIR}/include/SDL3/SDL_test*.h") +foreach(_hdr IN LISTS SDL3_INCLUDE_FILES) + if(_hdr MATCHES ".*SDL_revision\\.h" OR _hdr MATCHES ".*SDL_test.*\\.h") + list(REMOVE_ITEM SDL3_INCLUDE_FILES "${_hdr}") + endif() +endforeach() + +set(SDL_REVISION "" CACHE STRING "Custom SDL revision (overrides SDL_REVISION_SUFFIX)") +if(NOT SDL_REVISION) + set(SDL_REVISION_SUFFIX "" CACHE STRING "Suffix for the SDL revision") + if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt") + # If VERSION.txt exists, it contains the SDL version + file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt" SDL_REVISION_CENTER) + string(STRIP "${SDL_REVISION_CENTER}" SDL_REVISION_CENTER) + else() + # If VERSION does not exist, use git to calculate a version + git_describe(SDL_REVISION_CENTER) + if(NOT SDL_REVISION_CENTER) + set(SDL_REVISION_CENTER "${SDL3_VERSION}-no-vcs") + endif() + endif() + set(SDL_REVISION "SDL-${SDL_REVISION_CENTER}${SDL_REVISION_SUFFIX}") +endif() + +execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory "${SDL3_BINARY_DIR}/include/SDL3") +configure_file(include/build_config/SDL_revision.h.cmake include/SDL3/SDL_revision.h @ONLY) +list(APPEND SDL3_INCLUDE_FILES "${SDL3_BINARY_DIR}/include/SDL3/SDL_revision.h") + +if(SDL_FRAMEWORK) + # With Apple frameworks, headers in the PUBLIC_HEADER property also need to be added as sources + list(APPEND SDL3_INCLUDE_FILES ${SDL3_TEST_INCLUDE_FILES}) + sdl_sources(${SDL3_INCLUDE_FILES}) +endif() + +if((CMAKE_STATIC_LIBRARY_PREFIX STREQUAL "" AND CMAKE_STATIC_LIBRARY_SUFFIX STREQUAL ".lib") OR SDL_FRAMEWORK) + # - Avoid conflict between the dll import library and the static library + # - Create SDL3-static Apple Framework + set(sdl_static_libname "SDL3-static") +else() + set(sdl_static_libname "SDL3") +endif() + +macro(check_add_debug_flag FLAG SUFFIX) + check_c_compiler_flag(${FLAG} HAS_C_FLAG_${SUFFIX}) + if(HAS_C_FLAG_${SUFFIX}) + string(APPEND CMAKE_C_FLAGS_DEBUG " ${FLAG}") + endif() + + check_cxx_compiler_flag(${FLAG} HAS_CXX_${SUFFIX}) + if(HAS_CXX_${SUFFIX}) + string(APPEND CMAKE_CXX_FLAGS_DEBUG " ${FLAG}") + endif() +endmacro() + +macro(asan_check_add_debug_flag ASAN_FLAG) + check_add_debug_flag("-fsanitize=${ASAN_FLAG}" "${ASAN_FLAG}") + if(HAS_C_${ASAN_FLAG} OR HAS_CXX_${ASAN_FLAG}) + set(HAVE_ASAN ON) + endif() +endmacro() + +macro(asan_check_add_debug_flag2 ASAN_FLAG) + # for some sanitize flags we have to manipulate the CMAKE_REQUIRED_LIBRARIES: + # http://cmake.3232098.n2.nabble.com/CHECK-CXX-COMPILER-FLAG-doesn-t-give-correct-result-for-fsanitize-address-tp7600216p7600217.html + + set(FLAG "-fsanitize=${ASAN_FLAG}") + + cmake_push_check_state() + list(APPEND CMAKE_REQUIRED_LIBRARIES ${FLAG} asan) + check_c_compiler_flag (${FLAG} HAS_C_FLAG_${ASAN_FLAG}) + check_cxx_compiler_flag (${FLAG} HAS_CXX_FLAG_${ASAN_FLAG}) + cmake_pop_check_state() + + if (HAS_C_FLAG_${ASAN_FLAG}) + string(APPEND CMAKE_C_FLAGS_DEBUG " ${FLAG}") + endif() + + if (HAS_CXX_${ASAN_FLAG}) + string(APPEND CMAKE_CXX_FLAGS_DEBUG " ${FLAG}") + endif() + + if(HAS_C_${ASAN_FLAG} OR HAS_CXX_${ASAN_FLAG}) + set(HAVE_ASAN ON) + endif() +endmacro() + +# enable AddressSanitizer if supported +if(SDL_ASAN) + asan_check_add_debug_flag2("address") + asan_check_add_debug_flag("bool") + asan_check_add_debug_flag("bounds") + asan_check_add_debug_flag("enum") + asan_check_add_debug_flag("float-cast-overflow") + asan_check_add_debug_flag("float-divide-by-zero") + asan_check_add_debug_flag("nonnull-attribute") + asan_check_add_debug_flag("returns-nonnull-attribute") + asan_check_add_debug_flag("signed-integer-overflow") + asan_check_add_debug_flag("undefined") + asan_check_add_debug_flag("vla-bound") + asan_check_add_debug_flag("leak") + # The object size sanitizer has no effect on unoptimized builds on Clang, + # but causes warnings. + if(NOT USE_CLANG OR CMAKE_BUILD_TYPE STREQUAL "") + asan_check_add_debug_flag("object-size") + endif() +endif() + +if(SDL_CCACHE) + find_program(CCACHE_BINARY ccache) + if(CCACHE_BINARY) + set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_BINARY}) + set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_BINARY}) + set(CMAKE_OBJC_COMPILER_LAUNCHER ${CCACHE_BINARY}) + set(HAVE_CCACHE ON) + else() + set(HAVE_CCACHE OFF) + endif() +else() + set(HAVE_CCACHE OFF) +endif() + +if(SDL_CLANG_TIDY) + cmake_minimum_required(VERSION 3.6) + find_program(CLANG_TIDY_BINARY clang-tidy) + + if(CLANG_TIDY_BINARY) + set(HAVE_CLANG_TIDY ON) + get_clang_tidy_ignored_files(CLANG_TIDY_IGNORED_FILES) + set(CLANG_TIDY_COMMAND "${CLANG_TIDY_BINARY}" "-extra-arg=-Wno-unknown-warning-option" "--line-filter=[${CLANG_TIDY_IGNORED_FILES}]") + if(SDL_WERROR) + list(APPEND CLANG_TIDY_COMMAND "--warnings-as-errors=*") + endif() + set(CMAKE_C_CLANG_TIDY ${CLANG_TIDY_COMMAND}) + set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_COMMAND}) + set(CMAKE_OBJC_CLANG_TIDY ${CLANG_TIDY_COMMAND}) + get_property(shared_sources TARGET SDL3-collector PROPERTY INTERFACE_SOURCES) + set_source_files_properties(${shared_sources} PROPERTIES SKIP_PRECOMPILE_HEADERS TRUE) + file(GLOB STDLIB_SOURCES "${SDL3_SOURCE_DIR}/src/stdlib/*.c") + set_property(SOURCE ${STDLIB_SOURCES} APPEND PROPERTY COMPILE_DEFINITIONS "SDL_DISABLE_ANALYZE_MACROS") + else() + set(HAVE_CLANG_TIDY OFF) + endif() +endif() + +if(SDL_TESTS) + set(HAVE_TESTS ON) +endif() + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(ARCH_64 TRUE) +else() + set(ARCH_64 FALSE) +endif() + +if(ANDROID) + sdl_include_directories(PRIVATE SYSTEM "${ANDROID_NDK}/sources/android/cpufeatures") +endif() + +if(APPLE) + sdl_compile_options(PRIVATE "-fobjc-arc") +endif() + +if(PS2) + sdl_compile_options(PRIVATE "-Wno-error=declaration-after-statement") +endif() + +if(APPLE) + get_property(sources TARGET SDL3-collector PROPERTY INTERFACE_SOURCES) + foreach(SOURCE_FILE IN LISTS sources) + get_filename_component(FILE_EXTENSION ${SOURCE_FILE} EXT) + if(FILE_EXTENSION STREQUAL ".m") + set_property(SOURCE ${SOURCE_FILE} APPEND_STRING PROPERTY COMPILE_FLAGS " -x objective-c") + endif() + if(NOT FILE_EXTENSION STREQUAL ".c" AND NOT FILE_EXTENSION STREQUAL ".cpp") + set_property(SOURCE ${SOURCE_FILE} PROPERTY SKIP_PRECOMPILE_HEADERS 1) + endif() + endforeach() +endif() + +# Disable precompiled headers on SDL_dynapi.c to avoid applying dynapi overrides +set_source_files_properties(src/dynapi/SDL_dynapi.c PROPERTIES SKIP_PRECOMPILE_HEADERS 1) + +set(SDL_FRAMEWORK_RESOURCES + Xcode/SDL/pkg-support/resources/ReadMe.txt + LICENSE.txt +) +if(SDL_FRAMEWORK) + sdl_sources(${SDL_FRAMEWORK_RESOURCES}) +endif() + +add_library(SDL3_Headers INTERFACE) +add_library(SDL3::Headers ALIAS SDL3_Headers) +set_target_properties(SDL3_Headers PROPERTIES + EXPORT_NAME "Headers" +) +target_include_directories(SDL3_Headers + INTERFACE + "$" + "$" + "$" +) +if(SDL_FRAMEWORK) + target_include_directories(SDL3_Headers + INTERFACE + "$/SDL3.framework/Headers>" + ) + # Add `-F ` to make sure `#include "SDL3/..."` works. + target_compile_options(SDL3_Headers + INTERFACE + "$>" + ) +else() + target_include_directories(SDL3_Headers + INTERFACE + "$" + "$" + ) +endif() + +if(SDL_SHARED) + set_target_properties(SDL3-shared PROPERTIES + OUTPUT_NAME "SDL3" + POSITION_INDEPENDENT_CODE TRUE + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/dynapi/SDL_dynapi.sym" + INTERFACE_LINK_DEPENDS "$" + WINDOWS_EXPORT_ALL_SYMBOLS FALSE + DEFINE_SYMBOL "DLL_EXPORT" + ) + if(HAVE_GCC_FVISIBILITY) + set_target_properties(SDL3-shared PROPERTIES + C_VISIBILITY_PRESET "hidden" + CXX_VISIBILITY_PRESET "hidden" + OBJC_VISIBILITY_PRESET "hidden" + ) + endif() + if(NOT SDL_LIBC) + if(MSVC AND SDL_CPU_X86) + # FIXME: should be added for all architectures (missing symbols for ARM) + target_link_libraries(SDL3-shared PRIVATE "-nodefaultlib:MSVCRT") + endif() + if(HAS_Q_NO_USE_LIBIRC) + target_compile_options(SDL3-shared PRIVATE /Q_no-use-libirc) + endif() + endif() + if(APPLE) + set_target_properties(SDL3-shared PROPERTIES + MACOSX_RPATH TRUE + FRAMEWORK "${SDL_FRAMEWORK}" + ) + if(SDL_FRAMEWORK) + set_target_properties(SDL3-shared PROPERTIES + PUBLIC_HEADER "${SDL3_INCLUDE_FILES}" + FRAMEWORK_VERSION "${SDL_FRAMEWORK_VERSION}" + MACOSX_FRAMEWORK_IDENTIFIER "org.libsdl.SDL3" + RESOURCE "${SDL_FRAMEWORK_RESOURCES}" + ) + endif() + set_target_properties(SDL3-shared PROPERTIES + SOVERSION "${SDL_DYLIB_COMPAT_VERSION}" # SOVERSION corresponds to compatibility version + VERSION "${SDL_DYLIB_CURRENT_VERSION}" # VERSION corresponds to the current version + ) + elseif(UNIX AND NOT ANDROID) + set_target_properties(SDL3-shared PROPERTIES + VERSION "${SDL_SO_VERSION}" + SOVERSION "${SDL_SO_VERSION_MAJOR}" + ) + else() + if(WINDOWS OR CYGWIN) + set_target_properties(SDL3-shared PROPERTIES + PREFIX "" + ) + endif() + endif() + # Note: The clang toolset for Visual Studio does not support /NODEFAULTLIB. + if(MSVC AND NOT SDL_LIBC AND NOT MSVC_CLANG AND NOT SDL_CPU_ARM32) + # Don't try to link with the default set of libraries. + if(NOT WINDOWS_STORE) + # FIXME: is this needed? "-nodefaultlib:MSVCRT" ia already added when SDL_LIBC is false + target_link_options(SDL3-shared PRIVATE "/NODEFAULTLIB") + endif() + endif() + target_link_libraries(SDL3-shared PRIVATE ${SDL_CMAKE_DEPENDS}) + target_include_directories(SDL3-shared + PRIVATE + "$>>" + "$" + ) + target_link_libraries(SDL3-shared PUBLIC $) + if(MINGW OR CYGWIN) + target_link_options(SDL3-shared PRIVATE -static-libgcc) + endif() + # Use `Compatible Interface Properties` to: + # - allow consumers to enforce a shared/static library + # - block linking to SDL libraries of different major version + set_property(TARGET SDL3-shared APPEND PROPERTY COMPATIBLE_INTERFACE_BOOL SDL3_SHARED) + set_property(TARGET SDL3-shared PROPERTY INTERFACE_SDL3_SHARED TRUE) + set_property(TARGET SDL3-shared APPEND PROPERTY COMPATIBLE_INTERFACE_STRING "SDL_VERSION") + set_property(TARGET SDL3-shared PROPERTY INTERFACE_SDL_VERSION "SDL${SDL3_VERSION_MAJOR}") + if(NOT CMAKE_VERSION VERSION_LESS "3.16") + target_precompile_headers(SDL3-shared PRIVATE "$<$,$>:${PROJECT_SOURCE_DIR}/src/SDL_internal.h>") + endif() +endif() + +if(SDL_STATIC) + set_target_properties(SDL3-static PROPERTIES + OUTPUT_NAME "${sdl_static_libname}" + POSITION_INDEPENDENT_CODE "${SDL_STATIC_PIC}" + ) + target_compile_definitions(SDL3-static PRIVATE SDL_STATIC_LIB) + target_link_libraries(SDL3-static PRIVATE ${SDL_CMAKE_DEPENDS}) + target_include_directories(SDL3-static + PRIVATE + "$>>" + "$" + ) + target_link_libraries(SDL3-static PUBLIC $) + # Use `Compatible Interface Properties` to: + # - allow consumers to enforce a shared/static library + # - block linking to SDL libraries of different major version + set_property(TARGET SDL3-static APPEND PROPERTY COMPATIBLE_INTERFACE_BOOL SDL3_SHARED) + set_property(TARGET SDL3-static PROPERTY INTERFACE_SDL3_SHARED FALSE) + set_property(TARGET SDL3-static APPEND PROPERTY COMPATIBLE_INTERFACE_STRING "SDL_VERSION") + set_property(TARGET SDL3-static PROPERTY INTERFACE_SDL_VERSION "SDL${SDL3_VERSION_MAJOR}") + if(NOT CMAKE_VERSION VERSION_LESS "3.16") + target_precompile_headers(SDL3-static PRIVATE "$<$,$>:${PROJECT_SOURCE_DIR}/src/SDL_internal.h>") + endif() +endif() + +sdl_compile_definitions( + PRIVATE + "SDL_BUILD_MAJOR_VERSION=${PROJECT_VERSION_MAJOR}" + "SDL_BUILD_MINOR_VERSION=${PROJECT_VERSION_MINOR}" + "SDL_BUILD_MICRO_VERSION=${PROJECT_VERSION_PATCH}" +) + +##### Tests ##### + +if(SDL_TEST_LIBRARY) + file(GLOB TEST_SOURCES "${SDL3_SOURCE_DIR}/src/test/*.c") + target_sources(SDL3_test PRIVATE ${TEST_SOURCES}) + if(APPLE) + set_target_properties(SDL3_test PROPERTIES + FRAMEWORK "${SDL_FRAMEWORK}" + ) + if(SDL_FRAMEWORK) + set_target_properties(SDL3_test PROPERTIES + FRAMEWORK_VERSION "${SDL_FRAMEWORK_VERSION}" + MACOSX_FRAMEWORK_IDENTIFIER "org.libsdl.SDL3_test" + RESOURCE "${SDL_FRAMEWORK_RESOURCES}" + ) + endif() + endif() + target_link_libraries(SDL3_test PUBLIC $) + # FIXME: get rid of EXTRA_TEST_LIBS variable + target_link_libraries(SDL3_test PRIVATE ${EXTRA_TEST_LIBS}) + set_property(TARGET SDL3_test APPEND PROPERTY COMPATIBLE_INTERFACE_STRING "SDL_VERSION") + set_property(TARGET SDL3_test PROPERTY INTERFACE_SDL_VERSION "SDL${SDL3_VERSION_MAJOR}") +endif() + +##### Configure installation folders ##### + +if(WINDOWS AND NOT MINGW) + set(SDL_INSTALL_CMAKEDIR_ROOT_DEFAULT "cmake") +else() + set(SDL_INSTALL_CMAKEDIR_ROOT_DEFAULT "${CMAKE_INSTALL_LIBDIR}/cmake") +endif() +set(SDL_INSTALL_CMAKEDIR_ROOT "${SDL_INSTALL_CMAKEDIR_ROOT_DEFAULT}" CACHE STRING "Root folder where to install SDL3Config.cmake related files (SDL3 subfolder for MSVC projects)") + +if(FREEBSD) + # FreeBSD uses ${PREFIX}/libdata/pkgconfig + set(SDL_PKGCONFIG_INSTALLDIR "libdata/pkgconfig") +else() + set(SDL_PKGCONFIG_INSTALLDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig") +endif() + +if(WINDOWS AND NOT MINGW) + set(SDL_INSTALL_CMAKEDIR "${SDL_INSTALL_CMAKEDIR_ROOT}") + set(SDL_INSTALL_LICENSEDIR "licenses/SDL3") + set(SDL_INSTALL_HEADERSDIR "${CMAKE_INSTALL_INCLUDEDIR}/SDL3") +elseif(SDL_FRAMEWORK) + set(SDL_INSTALL_CMAKEDIR "SDL3.framework/Versions/${SDL_FRAMEWORK_VERSION}/Resources/CMake") + set(SDL_INSTALL_LICENSEDIR "Resources") + set(SDL_INSTALL_HEADERSDIR "Headers") +else() + set(SDL_INSTALL_CMAKEDIR "${SDL_INSTALL_CMAKEDIR_ROOT}/SDL3") + set(SDL_INSTALL_LICENSEDIR "${CMAKE_INSTALL_DATAROOTDIR}/licenses/${PROJECT_NAME}") + set(SDL_INSTALL_HEADERSDIR "${CMAKE_INSTALL_INCLUDEDIR}/SDL3") +endif() + +if(SDL_FRAMEWORK) + set(SDL_SDL_INSTALL_RESOURCEDIR "SDL3.framework/Resources") + set(SDL_SDL_INSTALL_CMAKEDIR "${SDL_SDL_INSTALL_RESOURCEDIR}/CMake") + set(SDL_SDL_INSTALL_REAL_RESOURCEDIR "SDL3.framework/Versions/${SDL_FRAMEWORK_VERSION}/Resources") + set(SDL_SDL_INSTALL_REAL_CMAKEDIR "${SDL_SDL_INSTALL_REAL_RESOURCEDIR}/CMake") + + set(SDL_SDLtest_INSTALL_RESOURCEDIR "SDL3_test.framework/Resources") + set(SDL_SDLtest_INSTALL_CMAKEDIR "${SDL_SDLtest_INSTALL_RESOURCEDIR}/CMake") + set(SDL_SDLtest_INSTALL_CMAKEFILENAME "SDL3_testConfig.cmake") +else() + set(SDL_SDL_INSTALL_RESOURCEDIR ".") + set(SDL_SDL_INSTALL_CMAKEDIR ${SDL_INSTALL_CMAKEDIR}) + set(SDL_SDL_INSTALL_REAL_CMAKEDIR ${SDL_INSTALL_CMAKEDIR}) + + # Install SDL3*Targets.cmake files in lib/cmake/SDL3 + set(SDL_SDLstatic_INSTALL_RESOURCEDIR ".") + set(SDL_SDLstatic_INSTALL_CMAKEDIR "${SDL_SDL_INSTALL_CMAKEDIR}") + set(SDL_SDLstatic_INSTALL_CMAKEFILENAME "SDL3staticTargets.cmake") + + set(SDL_SDLtest_INSTALL_RESOURCEDIR ".") + set(SDL_SDLtest_INSTALL_CMAKEDIR "${SDL_SDL_INSTALL_CMAKEDIR}") + set(SDL_SDLtest_INSTALL_CMAKEFILENAME "SDL3testTargets.cmake") +endif() + +export(TARGETS SDL3_Headers NAMESPACE "SDL3::" FILE "SDL3headersTargets.cmake") + +if(SDL_SHARED) + export(TARGETS SDL3-shared NAMESPACE "SDL3::" FILE "SDL3sharedTargets.cmake") +endif() + +if(SDL_STATIC) + export(TARGETS SDL3-static NAMESPACE "SDL3::" FILE "SDL3staticTargets.cmake") +endif() + +if(SDL_TEST_LIBRARY) + export(TARGETS SDL3_test NAMESPACE "SDL3::" FILE "SDL3testTargets.cmake") +endif() + +sdl_cmake_config_find_pkg_config_commands(SDL_FIND_PKG_CONFIG_COMMANDS + COLLECTOR SDL3-collector + CONFIG_COMPONENT_FOUND_NAME SDL3_SDL3-static_FOUND +) +sdl_cmake_config_find_pkg_config_commands(SDL_TEST_FIND_PKG_CONFIG_COMMANDS + COLLECTOR SDL3_test-collector + CONFIG_COMPONENT_FOUND_NAME SDL3_SDL3_test_FOUND +) + +include(CMakePackageConfigHelpers) +configure_package_config_file(cmake/SDL3Config.cmake.in SDL3Config.cmake + PATH_VARS CMAKE_INSTALL_PREFIX + INSTALL_DESTINATION "${SDL_SDL_INSTALL_CMAKEDIR}" +) +write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/SDL3ConfigVersion.cmake" + COMPATIBILITY AnyNewerVersion +) + +sdl_cmake_config_required_modules(sdl_cmake_modules) +if(sdl_cmake_modules) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${sdl_cmake_modules} "${SDL3_BINARY_DIR}") +endif() + +if(NOT SDL_DISABLE_INSTALL) + + ##### sdl3.pc ##### + configure_sdl3_pc() + if(NOT SDL_FRAMEWORK) + install(FILES ${SDL3_BINARY_DIR}/sdl3.pc DESTINATION "${SDL_PKGCONFIG_INSTALLDIR}") + endif() + + ##### Installation targets #####() + + install(TARGETS SDL3_Headers EXPORT SDL3headersTargets) + + if(SDL_SHARED) + install(TARGETS SDL3-shared EXPORT SDL3sharedTargets + PUBLIC_HEADER DESTINATION "${SDL_INSTALL_HEADERSDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + FRAMEWORK DESTINATION "." + RESOURCE DESTINATION "${SDL_SDL_INSTALL_RESOURCEDIR}" + ) + if(MSVC) + install(FILES $ DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL) + endif() + endif() + + if(SDL_STATIC) + install(TARGETS SDL3-static EXPORT SDL3staticTargets + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + FRAMEWORK DESTINATION "." + RESOURCE DESTINATION "${SDL_SDLstatic_INSTALL_RESOURCEDIR}" + ) + endif() + + if(SDL_TEST_LIBRARY) + install(TARGETS SDL3_test EXPORT SDL3testTargets + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + FRAMEWORK DESTINATION "." + RESOURCE DESTINATION "${SDL_SDLtest_INSTALL_RESOURCEDIR}" + ) + endif() + + ##### Install CMake Targets ##### + + install(EXPORT SDL3headersTargets + FILE "SDL3headersTargets.cmake" + NAMESPACE SDL3:: + DESTINATION "${SDL_SDL_INSTALL_CMAKEDIR}" + ) + + if(SDL_SHARED) + install(EXPORT SDL3sharedTargets + FILE "SDL3sharedTargets.cmake" + NAMESPACE SDL3:: + DESTINATION "${SDL_SDL_INSTALL_CMAKEDIR}" + ) + endif() + + if(SDL_STATIC) + install(EXPORT SDL3staticTargets + FILE "${SDL_SDLstatic_INSTALL_CMAKEFILENAME}" + NAMESPACE SDL3:: + DESTINATION "${SDL_SDLstatic_INSTALL_CMAKEDIR}" + ) + endif() + + if(SDL_TEST_LIBRARY) + install(EXPORT SDL3testTargets + FILE "${SDL_SDLtest_INSTALL_CMAKEFILENAME}" + NAMESPACE SDL3:: + DESTINATION "${SDL_SDLtest_INSTALL_CMAKEDIR}" + ) + endif() + + install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/SDL3Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/SDL3ConfigVersion.cmake + ${sdl_cmake_modules} + DESTINATION "${SDL_SDL_INSTALL_REAL_CMAKEDIR}" + ) + + if(NOT SDL_FRAMEWORK) + install(FILES ${SDL3_INCLUDE_FILES} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/SDL3" + ) + if(SDL_TEST_LIBRARY) + install(FILES ${SDL3_TEST_INCLUDE_FILES} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/SDL3" + ) + endif() + + install(FILES "LICENSE.txt" DESTINATION "${SDL_INSTALL_LICENSEDIR}") + endif() + + if(NOT SDL_DISABLE_INSTALL_CPACK) + if(SDL_FRAMEWORK) + set(CPACK_GENERATOR "DragNDrop") + elseif(MSVC) + set(CPACK_GENERATOR "ZIP") + else() + set(CPACK_GENERATOR "TGZ") + endif() + configure_file(cmake/CPackProjectConfig.cmake.in CPackProjectConfig.cmake @ONLY) + set(CPACK_PROJECT_CONFIG_FILE "${SDL3_BINARY_DIR}/CPackProjectConfig.cmake") + # CPACK_SOURCE_PACKAGE_FILE_NAME must end with "-src" (so we can block creating a source archive) + set(CPACK_SOURCE_PACKAGE_FILE_NAME "SDL${PROJECT_VERSION_MAJOR}-${PROJECT_VERSION}-src") + set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/dist") + include(CPack) + endif() + + if(ANDROID) + set(SDL_INSTALL_JAVADIR "${CMAKE_INSTALL_DATAROOTDIR}/java" CACHE PATH "Path where to install java clases + java sources") + if(TARGET SDL3-jar) + install(FILES "${SDL3_BINARY_DIR}/SDL3.jar" "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}.jar" + DESTINATION "${SDL_INSTALL_JAVADIR}/SDL3") + endif() + if(TARGET SDL3-javasources) + install(FILES "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}-sources.jar" + DESTINATION "${SDL_INSTALL_JAVADIR}/SDL3") + endif() + endif() + + if(NOT SDL_DISABLE_INSTALL_DOCS) + SDL_generate_manpages( + HEADERS_DIR "${PROJECT_SOURCE_DIR}/include/SDL3" + SYMBOL "SDL_Init" + WIKIHEADERS_PL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build-scripts/wikiheaders.pl" + REVISION "${SDL_REVISION}" + ) + if(TARGET SDL3-javadoc) + set(SDL_INSTALL_JAVADOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/javadoc" CACHE PATH "Path where to install SDL3 javadoc") + install(DIRECTORY "${SDL3_BINARY_DIR}/docs/javadoc/" + DESTINATION "${SDL_INSTALL_JAVADOCDIR}/SDL3") + endif() + endif() +endif() + +##### Uninstall target ##### + +if(NOT SDL_DISABLE_UNINSTALL) + if(NOT TARGET uninstall) + configure_file(cmake/cmake_uninstall.cmake.in cmake_uninstall.cmake IMMEDIATE @ONLY) + + add_custom_target(uninstall + COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") + endif() +endif() + +##### Tests subproject (must appear after the install/uninstall targets) ##### + +if(SDL_TESTS) + set(HAVE_TESTS ON) + enable_testing() + add_subdirectory(test) +endif() + +##### Fix Objective C builds ##### +string(APPEND CMAKE_OBJC_FLAGS " ${CMAKE_C_FLAGS}") + +SDL_PrintSummary() +debug_show_sdl_deps() diff --git a/vendor/sdl-3.0.0/CREDITS.txt b/vendor/sdl-3.0.0/CREDITS.txt new file mode 100644 index 0000000..3243318 --- /dev/null +++ b/vendor/sdl-3.0.0/CREDITS.txt @@ -0,0 +1,53 @@ + +Simple DirectMedia Layer CREDITS +Thanks to everyone who made this possible, including: + +* Cliff Matthews, for giving me a reason to start this project. :) + -- Executor rocks! *grin* + +* Ryan Gordon for helping everybody out and keeping the dream alive. :) + +* Gabriel Jacobo for his work on the Android port and generally helping out all around. + +* Philipp Wiesemann for his attention to detail reviewing the entire SDL code base and proposes patches. + +* Andreas Schiffler for his dedication to unit tests, Visual Studio projects, and managing the Google Summer of Code. + +* Mike Sartain for incorporating SDL into Team Fortress 2 and cheering me on at Valve. + +* Alfred Reynolds for the game controller API and general (in)sanity + +* Jørgen Tjernø for numerous magical macOS fixes. + +* Pierre-Loup Griffais for his deep knowledge of OpenGL drivers. + +* Julian Winter for the SDL 2.0 website. + +* Sheena Smith for many months of great work on the SDL wiki creating the API documentation and style guides. + +* Paul Hunkin for his port of SDL to Android during the Google Summer of Code 2010. + +* Eli Gottlieb for his work on shaped windows during the Google Summer of Code 2010. + +* Jim Grandpre for his work on multi-touch and gesture recognition during + the Google Summer of Code 2010. + +* Edgar "bobbens" Simo for his force feedback API development during the + Google Summer of Code 2008. + +* Aaron Wishnick for his work on audio resampling and pitch shifting during + the Google Summer of Code 2008. + +* Holmes Futrell for his port of SDL to the iPhone and iPod Touch during the + Google Summer of Code 2008. + +* Jon Atkins for SDL_image, SDL_mixer and SDL_net documentation. + +* Everybody at Loki Software, Inc. for their great contributions! + + And a big hand to everyone else who has contributed over the years. + +THANKS! :) + + -- Sam Lantinga + diff --git a/vendor/sdl-3.0.0/INSTALL.txt b/vendor/sdl-3.0.0/INSTALL.txt new file mode 100644 index 0000000..9faadeb --- /dev/null +++ b/vendor/sdl-3.0.0/INSTALL.txt @@ -0,0 +1,43 @@ + +To compile and install SDL: + + 1. Windows with Visual Studio: + * Read ./docs/README-visualc.md + + Windows building with mingw-w64 for x86: + * Run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=build-scripts/cmake-toolchain-mingw64-i686.cmake && cmake --build build && cmake --install build + + Windows building with mingw-w64 for x64: + * Run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=build-scripts/cmake-toolchain-mingw64-x86_64.cmake && cmake --build build && cmake --install build + + macOS with Xcode: + * Read docs/README-macos.md + + macOS from the command line: + * Run: cmake -S . -B build && cmake --build build && cmake --install build + + Linux and other UNIX systems: + * Run: cmake -S . -B build && cmake --build build && cmake --install build + + Android: + * Read docs/README-android.md + + iOS: + * Read docs/README-ios.md + + Using Cmake: + * Read docs/README-cmake.md + + 2. Look at the example programs in ./test, and check out the online + documentation at https://wiki.libsdl.org/ + + 3. Join the SDL developer discussions, sign up on + https://discourse.libsdl.org/ + and go to the development forum + https://discourse.libsdl.org/c/sdl-development/6 + + 4. Sign up for the announcement list through the web interface: + https://www.libsdl.org/mailing-list.php + +That's it! +Sam Lantinga diff --git a/vendor/sdl-3.0.0/LICENSE.txt b/vendor/sdl-3.0.0/LICENSE.txt new file mode 100644 index 0000000..83d8937 --- /dev/null +++ b/vendor/sdl-3.0.0/LICENSE.txt @@ -0,0 +1,18 @@ +Copyright (C) 1997-2023 Sam Lantinga + +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. + diff --git a/vendor/sdl-3.0.0/README-SDL.txt b/vendor/sdl-3.0.0/README-SDL.txt new file mode 100644 index 0000000..2984b14 --- /dev/null +++ b/vendor/sdl-3.0.0/README-SDL.txt @@ -0,0 +1,13 @@ + +Please distribute this file with the SDL runtime environment: + +The Simple DirectMedia Layer (SDL for short) is a cross-platform library +designed to make it easy to write multi-media software, such as games +and emulators. + +The Simple DirectMedia Layer library source code is available from: +https://www.libsdl.org/ + +This library is distributed under the terms of the zlib license: +http://www.zlib.net/zlib_license.html + diff --git a/vendor/sdl-3.0.0/README.md b/vendor/sdl-3.0.0/README.md new file mode 100644 index 0000000..ce500fa --- /dev/null +++ b/vendor/sdl-3.0.0/README.md @@ -0,0 +1,18 @@ + +# Simple DirectMedia Layer (SDL) Version 3.0 + +https://www.libsdl.org/ + +Simple DirectMedia Layer is a cross-platform development library designed +to provide low level access to audio, keyboard, mouse, joystick, and graphics +hardware via OpenGL and Direct3D. It is used by video playback software, +emulators, and popular games including Valve's award winning catalog +and many Humble Bundle games. + +More extensive documentation is available in the docs directory, starting +with [README.md](docs/README.md). If you are migrating to SDL 3.0 from SDL 2.0, +the changes are extensively documented in [README-migration.md](docs/README-migration.md). + +Enjoy! + +Sam Lantinga (slouken@libsdl.org) diff --git a/vendor/sdl-3.0.0/TODO.txt b/vendor/sdl-3.0.0/TODO.txt new file mode 100644 index 0000000..20b205f --- /dev/null +++ b/vendor/sdl-3.0.0/TODO.txt @@ -0,0 +1,10 @@ +Future work roadmap: + * http://wiki.libsdl.org/Roadmap + + * Check 1.2 revisions: + 3554 - Need to resolve semantics for locking keys on different platforms + 4874 - Do we want screen rotation? At what level? + 4974 - Windows file code needs to convert UTF-8 to Unicode, but we don't need to tap dance for Windows 95/98 + 4865 - See if this is still needed (mouse coordinate clamping) + 4866 - See if this is still needed (blocking window repositioning) + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/SDL.sln b/vendor/sdl-3.0.0/VisualC-GDK/SDL.sln new file mode 100644 index 0000000..2cdfa0b --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/SDL.sln @@ -0,0 +1,117 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32414.318 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite", "tests\testsprite\testsprite.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3_test", "SDL_test\SDL_test.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testcontroller", "tests\testcontroller\testcontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgdk", "tests\testgdk\testgdk.vcxproj", "{1C9A3F71-35A5-4C56-B292-F4375B3C3649}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Gaming.Desktop.x64 = Debug|Gaming.Desktop.x64 + Debug|Gaming.Xbox.Scarlett.x64 = Debug|Gaming.Xbox.Scarlett.x64 + Debug|Gaming.Xbox.XboxOne.x64 = Debug|Gaming.Xbox.XboxOne.x64 + Release|Gaming.Desktop.x64 = Release|Gaming.Desktop.x64 + Release|Gaming.Xbox.Scarlett.x64 = Release|Gaming.Xbox.Scarlett.x64 + Release|Gaming.Xbox.XboxOne.x64 = Release|Gaming.Xbox.XboxOne.x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Desktop.x64.Deploy.0 = Debug|Gaming.Desktop.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.Scarlett.x64.Deploy.0 = Debug|Gaming.Xbox.Scarlett.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.XboxOne.x64.Deploy.0 = Debug|Gaming.Xbox.XboxOne.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Desktop.x64.Deploy.0 = Release|Gaming.Desktop.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.Scarlett.x64.Deploy.0 = Release|Gaming.Xbox.Scarlett.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.XboxOne.x64.Deploy.0 = Release|Gaming.Xbox.XboxOne.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Desktop.x64.Deploy.0 = Debug|Gaming.Desktop.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.Scarlett.x64.Deploy.0 = Debug|Gaming.Xbox.Scarlett.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.XboxOne.x64.Deploy.0 = Debug|Gaming.Xbox.XboxOne.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Desktop.x64.Deploy.0 = Release|Gaming.Desktop.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.Scarlett.x64.Deploy.0 = Release|Gaming.Xbox.Scarlett.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.XboxOne.x64.Deploy.0 = Release|Gaming.Xbox.XboxOne.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Desktop.x64.Deploy.0 = Debug|Gaming.Desktop.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.Scarlett.x64.Deploy.0 = Debug|Gaming.Xbox.Scarlett.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.XboxOne.x64.Deploy.0 = Debug|Gaming.Xbox.XboxOne.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Desktop.x64.Deploy.0 = Release|Gaming.Desktop.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.Scarlett.x64.Deploy.0 = Release|Gaming.Xbox.Scarlett.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64 + {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.XboxOne.x64.Deploy.0 = Release|Gaming.Xbox.XboxOne.x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {55812185-D13C-4022-9C81-32E0F4A08305} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {1C9A3F71-35A5-4C56-B292-F4375B3C3649} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C320C9F2-1A8F-41D7-B02B-6338F872BCAD} + EndGlobalSection +EndGlobal diff --git a/vendor/sdl-3.0.0/VisualC-GDK/SDL/SDL.vcxproj b/vendor/sdl-3.0.0/VisualC-GDK/SDL/SDL.vcxproj new file mode 100644 index 0000000..70b625b --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/SDL/SDL.vcxproj @@ -0,0 +1,802 @@ + + + + + Debug + Gaming.Desktop.x64 + + + Debug + Gaming.Xbox.Scarlett.x64 + + + Debug + Gaming.Xbox.XboxOne.x64 + + + Release + Gaming.Desktop.x64 + + + Release + Gaming.Xbox.Scarlett.x64 + + + Release + Gaming.Xbox.XboxOne.x64 + + + + SDL3 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + SDL + 10.0 + + + + DynamicLibrary + $(DefaultPlatformToolset) + + + DynamicLibrary + $(DefaultPlatformToolset) + + + DynamicLibrary + $(DefaultPlatformToolset) + + + DynamicLibrary + $(DefaultPlatformToolset) + + + DynamicLibrary + $(DefaultPlatformToolset) + + + DynamicLibrary + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + + + $(SolutionDir)/../src;$(IncludePath) + + + $(SolutionDir)/../src;$(IncludePath) + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/SDL.tlb + + + Disabled + $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + Level3 + OldStyle + OnlyExplicitInline + true + Use + SDL_internal.h + + + _DEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies) + true + Windows + true + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/SDL.tlb + + + Disabled + $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + Level3 + OldStyle + OnlyExplicitInline + true + + + _DEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_xs.lib;uuid.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies) + true + Windows + true + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/SDL.tlb + + + Disabled + $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + Level3 + OldStyle + OnlyExplicitInline + true + + + _DEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_x.lib;uuid.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies) + true + Windows + true + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/SDL.tlb + + + $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + Level3 + ProgramDatabase + OnlyExplicitInline + true + Use + SDL_internal.h + + + NDEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies) + true + Windows + true + true + true + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/SDL.tlb + + + $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + Level3 + ProgramDatabase + OnlyExplicitInline + true + + + NDEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_xs.lib;uuid.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies) + true + Windows + true + true + true + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/SDL.tlb + + + $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + Level3 + ProgramDatabase + OnlyExplicitInline + true + + + NDEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_x.lib;uuid.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies) + true + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + Create + Create + + + Create + $(IntDir)$(TargetName)_cpp.pch + Create + $(IntDir)$(TargetName)_cpp.pch + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CompileAsCpp + CompileAsCpp + CompileAsCpp + CompileAsCpp + stdcpp17 + stdcpp17 + stdcpp17 + stdcpp17 + + + + NotUsing + NotUsing + + + + + + + + + + + + + + + + + CompileAsCpp + CompileAsCpp + CompileAsCpp + CompileAsCpp + stdcpp17 + stdcpp17 + stdcpp17 + stdcpp17 + + + stdcpp17 + stdcpp17 + stdcpp17 + stdcpp17 + CompileAsCpp + CompileAsCpp + CompileAsCpp + CompileAsCpp + + + + + + + + + + + + + + + + + + + + + + + + + + + CompileAsCpp + CompileAsCpp + CompileAsCpp + CompileAsCpp + stdcpp17 + stdcpp17 + stdcpp17 + stdcpp17 + + + + stdcpp17 + stdcpp17 + stdcpp17 + stdcpp17 + CompileAsCpp + CompileAsCpp + CompileAsCpp + CompileAsCpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CompileAsCpp + CompileAsCpp + CompileAsCpp + CompileAsCpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NotUsing + + + + + + + + + + + + + + + + + + + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/SDL/SDL.vcxproj.filters b/vendor/sdl-3.0.0/VisualC-GDK/SDL/SDL.vcxproj.filters new file mode 100644 index 0000000..a530ef1 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/SDL/SDL.vcxproj.filters @@ -0,0 +1,1425 @@ + + + + + {395b3af0-33d0-411b-b153-de1676bf1ef8} + + + {5a3e3167-75be-414f-8947-a5306df372b2} + + + {546d9ed1-988e-49d3-b1a5-e5b3d19de6c1} + + + {a56247ff-5108-4960-ba6a-6814fd1554ec} + + + {8880dfad-2a06-4e84-ab6e-6583641ad2d1} + + + {2b996a7f-f3e9-4300-a97f-2c907bcd89a9} + + + {5713d682-2bc7-4da4-bcf0-262a98f142eb} + + + {5e27e19f-b3f8-4e2d-b323-b00b2040ec86} + + + {a3ab9cff-8495-4a5c-8af6-27e43199a712} + + + {377061e4-3856-4f05-b916-0d3b360df0f6} + + + {226a6643-1c65-4c7f-92aa-861313d974bb} + + + {ef859522-a7fe-4a00-a511-d6a9896adf5b} + + + {01fd2642-4493-4316-b548-fb829f4c9125} + + + {cce7558f-590a-4f0a-ac0d-e579f76e588e} + + + {7a53c9e4-d4bd-40ed-9265-1625df685121} + + + {4c7a051c-ce7c-426c-bf8c-9187827f9052} + + + {97e2f79f-311b-42ea-81b2-e801649fdd93} + + + {baf97c8c-7e90-41e5-bff8-14051b8d3956} + + + {45e50d3a-56c9-4352-b811-0c60c49a2431} + + + {9d86e0ef-d6f6-4db2-bfc5-b3529406fa8d} + + + {b35fa13c-6ed2-4680-8c56-c7d71b76ceab} + + + {61b61b31-9e26-4171-a3bb-b969f1889726} + + + {f63aa216-6ee7-4143-90d3-32be3787f276} + + + {90bee923-89df-417f-a6c3-3e260a7dd54d} + + + {4c8ad943-c2fb-4014-9ca3-041e0ad08426} + + + {3d68ae70-a9ff-46cf-be69-069f0b02aca0} + + + {ebc2fca3-3c26-45e3-815e-3e0581d5e226} + + + {47c445a2-7014-4e15-9660-7c89a27dddcf} + + + {d008487d-6ed0-4251-848b-79a68e3c1459} + + + {c9e8273e-13ae-47dc-bef8-8ad8e64c9a3d} + + + {0b8e136d-56ae-47e7-9981-e863a57ac616} + + + {bf3febd3-9328-43e8-b196-0fd3be8177dd} + + + {1a62dc68-52d2-4c07-9d81-d94dfe1d0d12} + + + {e9f01b22-34b3-4380-ade6-0e96c74e9c90} + + + {f674f22f-7841-4f3a-974e-c36b2d4823fc} + + + {d7ad92de-4e55-4202-9b2b-1bd9a35fe4dc} + + + {8311d79d-9ad5-4369-99fe-b2fb2659d402} + + + {6c4dfb80-fdf9-497c-a6ff-3cd8f22efde9} + + + {4810e35c-33cb-4da2-bfaf-452da20d3c9a} + + + {2cf93f1d-81fd-4bdc-998c-5e2fa43988bc} + + + {5752b7ab-2344-4f38-95ab-b5d3bc150315} + + + {7a0eae3d-f113-4914-b926-6816d1929250} + + + {ee602cbf-96a2-4b0b-92a9-51d38a727411} + + + {a812185b-9060-4a1c-8431-be4f66894626} + + + {31c16cdf-adc4-4950-8293-28ba530f3882} + + + {add61b53-8144-47d6-bd67-3420a87c4905} + + + {e7cdcf36-b462-49c7-98b7-07ea7b3687f4} + + + {82588eef-dcaa-4f69-b2a9-e675940ce54c} + + + {560239c3-8fa1-4d23-a81a-b8408b2f7d3f} + + + {81711059-7575-4ece-9e68-333b63e992c4} + + + {1e44970f-7535-4bfb-b8a5-ea0cea0349e0} + + + {1dd91224-1176-492b-a2cb-e26153394db0} + + + {e3ecfe50-cf22-41d3-8983-2fead5164b47} + + + {5521d22f-1e52-47a6-8c52-06a3b6bdefd7} + + + {4755f3a6-49ac-46d6-86be-21f5c21f2197} + + + {f48c2b17-1bee-4fec-a7c8-24cf619abe08} + + + {3ab60a46-e18e-450a-a916-328fb8547e59} + + + {3ad16a8a-0ed8-439c-a771-383af2e2867f} + + + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + + + + API Headers + + + API Headers + + + API Headers + + + audio + + + audio + + + audio + + + audio + + + audio + + + audio + + + core\windows + + + core\windows + + + core\windows + + + core\windows + + + core\windows + + + dynapi + + + dynapi + + + dynapi + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + haptic + + + haptic + + + joystick + + + joystick + + + joystick + + + joystick + + + joystick + + + joystick + + + libm + + + libm + + + hidapi\hidapi + + + locale + + + misc + + + audio\directsound + + + audio\disk + + + audio\dummy + + + audio\wasapi + + + haptic\windows + + + haptic\windows + + + haptic\windows + + + joystick\hidapi + + + joystick\hidapi + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\virtual + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video\dummy + + + video\dummy + + + video\dummy + + + video\yuv2rgb + + + video\yuv2rgb + + + video\yuv2rgb + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + timer + + + thread + + + thread + + + thread\windows + + + thread\windows + + + thread\generic + + + sensor + + + sensor + + + sensor\dummy + + + sensor\windows + + + render + + + render + + + render + + + render\direct3d + + + render\direct3d11 + + + render\opengl + + + render\opengl + + + render\opengles2 + + + render\opengles2 + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + power + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + + + + + + render\direct3d12 + + + + core\gdk + + + render\direct3d12 + + + video\gdk + + + thread\generic + + + + + + + + + + + + + + + audio + + + audio + + + audio + + + audio + + + audio + + + audio + + + audio + + + audio + + + atomic + + + atomic + + + core + + + core + + + core\windows + + + core\windows + + + core\windows + + + core\windows + + + cpuinfo + + + dynapi + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + file + + + filesystem\gdk + + + haptic + + + hidapi + + + joystick + + + joystick + + + joystick + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + loadso\windows + + + misc + + + misc\windows + + + locale\windows + + + locale + + + audio\directsound + + + audio\disk + + + audio\dummy + + + audio\wasapi + + + audio\wasapi + + + haptic\windows + + + haptic\windows + + + haptic\windows + + + haptic\dummy + + + joystick\dummy + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\virtual + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video\dummy + + + video\dummy + + + video\dummy + + + video\yuv2rgb + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + timer + + + timer\windows + + + thread + + + thread\windows + + + thread\windows + + + thread\windows + + + thread\windows + + + thread\windows + + + thread\generic + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + sensor + + + sensor\dummy + + + sensor\windows + + + render + + + render + + + render + + + render + + + render\direct3d + + + render\direct3d + + + render\direct3d11 + + + render\direct3d11 + + + render\opengl + + + render\opengl + + + render\opengles2 + + + render\opengles2 + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + power + + + + power\windows + + + render\direct3d12 + + + render\direct3d12 + + + stdlib + + + stdlib + + + core\gdk + + + render\direct3d12 + + + render\direct3d12 + + + render\direct3d12 + + + core\windows + + + core\windows + + + video\gdk + + + thread\windows + + + thread\generic + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/SDL_test/SDL_test.vcxproj b/vendor/sdl-3.0.0/VisualC-GDK/SDL_test/SDL_test.vcxproj new file mode 100644 index 0000000..136a461 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/SDL_test/SDL_test.vcxproj @@ -0,0 +1,209 @@ + + + + + Debug + Gaming.Desktop.x64 + + + Debug + Gaming.Xbox.Scarlett.x64 + + + Debug + Gaming.Xbox.XboxOne.x64 + + + Release + Gaming.Desktop.x64 + + + Release + Gaming.Xbox.Scarlett.x64 + + + Release + Gaming.Xbox.XboxOne.x64 + + + + SDL3_test + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + SDL_test + 10.0 + + + + StaticLibrary + $(DefaultPlatformToolset) + + + StaticLibrary + $(DefaultPlatformToolset) + + + StaticLibrary + $(DefaultPlatformToolset) + + + StaticLibrary + $(DefaultPlatformToolset) + + + StaticLibrary + $(DefaultPlatformToolset) + + + StaticLibrary + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + + + + + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + Level3 + OldStyle + true + + + + + + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + Level3 + OldStyle + true + + + + + + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + Level3 + OldStyle + true + + + + + + Disabled + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + Level3 + OldStyle + true + + + + + + Disabled + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + Level3 + OldStyle + true + + + + + + Disabled + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + Level3 + OldStyle + true + + + + + + + + + + + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/clean.sh b/vendor/sdl-3.0.0/VisualC-GDK/clean.sh new file mode 100644 index 0000000..a026b71 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/clean.sh @@ -0,0 +1,6 @@ +#!/bin/sh +find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete +find . -type f \( -name '*.bmp' -o -name '*.wav' -o -name '*.dat' \) -print -delete +find . -depth -type d \( -name Gaming.Desktop.x64 \) -exec rm -rv {} \; +find . -depth -type d \( -name Gaming.Xbox.Scarlett.x64 \) -exec rm -rv {} \; +find . -depth -type d \( -name Gaming.Xbox.XboxOne.x64 \) -exec rm -rv {} \; diff --git a/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo100x100.png b/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo100x100.png new file mode 100644 index 0000000..2d0333d Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo100x100.png differ diff --git a/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo150x150.png b/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo150x150.png new file mode 100644 index 0000000..046a8fb Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo150x150.png differ diff --git a/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo44x44.png b/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo44x44.png new file mode 100644 index 0000000..3ca25b5 Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo44x44.png differ diff --git a/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo480x480.png b/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo480x480.png new file mode 100644 index 0000000..1123150 Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-GDK/logos/Logo480x480.png differ diff --git a/vendor/sdl-3.0.0/VisualC-GDK/logos/SplashScreenImage.png b/vendor/sdl-3.0.0/VisualC-GDK/logos/SplashScreenImage.png new file mode 100644 index 0000000..def578f Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-GDK/logos/SplashScreenImage.png differ diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/PackageLayout.xml b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/PackageLayout.xml new file mode 100644 index 0000000..2fc9a76 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/PackageLayout.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj new file mode 100644 index 0000000..3f01561 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj @@ -0,0 +1,333 @@ + + + + + Debug + Gaming.Desktop.x64 + + + Debug + Gaming.Xbox.Scarlett.x64 + + + Debug + Gaming.Xbox.XboxOne.x64 + + + Release + Gaming.Desktop.x64 + + + Release + Gaming.Xbox.Scarlett.x64 + + + Release + Gaming.Xbox.XboxOne.x64 + + + + {55812185-D13C-4022-9C81-32E0F4A08305} + testcontroller + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + true + + + Application + $(DefaultPlatformToolset) + true + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testcontroller.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testcontroller.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testcontroller.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testcontroller.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testcontroller.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testcontroller.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + + + + + + + + Document + true + true + true + true + + + + + + + + + + + + + + Document + true + true + true + true + + + + + Document + true + true + true + true + + + + + Document + true + true + true + true + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj.filters b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj.filters new file mode 100644 index 0000000..e4e2413 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj.filters @@ -0,0 +1,52 @@ + + + + + + + + + + logos + + + logos + + + logos + + + logos + + + wingdk + + + wingdk + + + xboxseries + + + xboxone + + + logos + + + + + + {5e858cf0-6fba-498d-b33d-11c8ecbb79c7} + + + {5790a250-283e-4f51-8f28-6a977d3c7a6c} + + + {a4d235e4-4017-4193-af62-ecb2ac249be4} + + + {e704dcb9-c83c-4c94-a139-b0f3e3f428f2} + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/wingdk/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/wingdk/MicrosoftGame.config new file mode 100644 index 0000000..162624a --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/wingdk/MicrosoftGame.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/xboxone/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/xboxone/MicrosoftGame.config new file mode 100644 index 0000000..9d908c9 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/xboxone/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/xboxseries/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/xboxseries/MicrosoftGame.config new file mode 100644 index 0000000..6d1829b --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testcontroller/xboxseries/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/PackageLayout.xml b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/PackageLayout.xml new file mode 100644 index 0000000..abee981 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/PackageLayout.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/src/testgdk.cpp b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/src/testgdk.cpp new file mode 100644 index 0000000..1a962a4 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/src/testgdk.cpp @@ -0,0 +1,503 @@ +/* + Copyright (C) 1997-2023 Sam Lantinga + + 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. +*/ +/* testgdk: Basic tests of using task queue/xbl (with simple drawing) in GDK. + * NOTE: As of June 2022 GDK, login will only work if MicrosoftGame.config is + * configured properly. See README-gdk.md. + */ + +#include +#include +#include + +#include +#include +#include "../src/core/windows/SDL_windows.h" +#include + +extern "C" { +#include "../test/testutils.h" +} + +#include + +#define NUM_SPRITES 100 +#define MAX_SPEED 1 + +static SDLTest_CommonState *state; +static int num_sprites; +static SDL_Texture **sprites; +static SDL_bool cycle_color; +static SDL_bool cycle_alpha; +static int cycle_direction = 1; +static int current_alpha = 0; +static int current_color = 0; +static int sprite_w, sprite_h; +static SDL_BlendMode blendMode = SDL_BLENDMODE_BLEND; + +int done; + +static struct +{ + SDL_AudioSpec spec; + Uint8 *sound; /* Pointer to wave data */ + Uint32 soundlen; /* Length of wave data */ + int soundpos; /* Current play position */ +} wave; + +static SDL_AudioDeviceID device; + +static void +close_audio() +{ + if (device != 0) { + SDL_CloseAudioDevice(device); + device = 0; + } +} + +/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ +static void +quit(int rc) +{ + SDL_free(sprites); + close_audio(); + SDL_free(wave.sound); + SDLTest_CommonQuit(state); + /* If rc is 0, just let main return normally rather than calling exit. + * This allows testing of platforms where SDL_main is required and does meaningful cleanup. + */ + if (rc != 0) { + exit(rc); + } +} + +static void +open_audio() +{ + /* Initialize fillerup() variables */ + device = SDL_OpenAudioDevice(NULL, SDL_FALSE, &wave.spec, NULL, 0); + if (!device) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't open audio: %s\n", SDL_GetError()); + SDL_free(wave.sound); + quit(2); + } + + /* Let the audio run */ + SDL_PlayAudioDevice(device); +} + +static void +reopen_audio() +{ + close_audio(); + open_audio(); +} + +void SDLCALL +fillerup(void *unused, Uint8 *stream, int len) +{ + Uint8 *waveptr; + int waveleft; + + /* Set up the pointers */ + waveptr = wave.sound + wave.soundpos; + waveleft = wave.soundlen - wave.soundpos; + + /* Go! */ + while (waveleft <= len) { + SDL_memcpy(stream, waveptr, waveleft); + stream += waveleft; + len -= waveleft; + waveptr = wave.sound; + waveleft = wave.soundlen; + wave.soundpos = 0; + } + SDL_memcpy(stream, waveptr, len); + wave.soundpos += len; +} + +void +UserLoggedIn(XUserHandle user) +{ + HRESULT hr; + char gamertag[128]; + hr = XUserGetGamertag(user, XUserGamertagComponent::UniqueModern, sizeof(gamertag), gamertag, NULL); + + if (SUCCEEDED(hr)) { + SDL_Log("User logged in: %s", gamertag); + } else { + SDL_Log("[GDK] UserLoggedIn -- XUserGetGamertag failed: 0x%08x.", hr); + } + + XUserCloseHandle(user); +} + +void +AddUserUICallback(XAsyncBlock *asyncBlock) +{ + HRESULT hr; + XUserHandle user = NULL; + + hr = XUserAddResult(asyncBlock, &user); + if (SUCCEEDED(hr)) { + uint64_t userId; + + hr = XUserGetId(user, &userId); + if (FAILED(hr)) { + /* If unable to get the user ID, it means the account is banned, etc. */ + SDL_Log("[GDK] AddUserSilentCallback -- XUserGetId failed: 0x%08x.", hr); + XUserCloseHandle(user); + + /* Per the docs, likely should call XUserResolveIssueWithUiAsync here. */ + } else { + UserLoggedIn(user); + } + } else { + SDL_Log("[GDK] AddUserUICallback -- XUserAddAsync failed: 0x%08x.", hr); + } + + delete asyncBlock; +} + +void +AddUserUI() +{ + HRESULT hr; + XAsyncBlock *asyncBlock = new XAsyncBlock; + + asyncBlock->context = NULL; + asyncBlock->queue = NULL; /* A null queue will use the global process task queue */ + asyncBlock->callback = &AddUserUICallback; + + hr = XUserAddAsync(XUserAddOptions::None, asyncBlock); + + if (FAILED(hr)) { + delete asyncBlock; + SDL_Log("[GDK] AddUserSilent -- failed: 0x%08x", hr); + } +} + +void +AddUserSilentCallback(XAsyncBlock *asyncBlock) +{ + HRESULT hr; + XUserHandle user = NULL; + + hr = XUserAddResult(asyncBlock, &user); + if (SUCCEEDED(hr)) { + uint64_t userId; + + hr = XUserGetId(user, &userId); + if (FAILED(hr)) { + /* If unable to get the user ID, it means the account is banned, etc. */ + SDL_Log("[GDK] AddUserSilentCallback -- XUserGetId failed: 0x%08x. Trying with UI.", hr); + XUserCloseHandle(user); + AddUserUI(); + } else { + UserLoggedIn(user); + } + } else { + SDL_Log("[GDK] AddUserSilentCallback -- XUserAddAsync failed: 0x%08x. Trying with UI.", hr); + AddUserUI(); + } + + delete asyncBlock; +} + +void +AddUserSilent() +{ + HRESULT hr; + XAsyncBlock *asyncBlock = new XAsyncBlock; + + asyncBlock->context = NULL; + asyncBlock->queue = NULL; /* A null queue will use the global process task queue */ + asyncBlock->callback = &AddUserSilentCallback; + + hr = XUserAddAsync(XUserAddOptions::AddDefaultUserSilently, asyncBlock); + + if (FAILED(hr)) { + delete asyncBlock; + SDL_Log("[GDK] AddUserSilent -- failed: 0x%08x", hr); + } +} + +int +LoadSprite(const char *file) +{ + int i; + + for (i = 0; i < state->num_windows; ++i) { + /* This does the SDL_LoadBMP step repeatedly, but that's OK for test code. */ + sprites[i] = LoadTexture(state->renderers[i], file, SDL_TRUE, &sprite_w, &sprite_h); + if (!sprites[i]) { + return -1; + } + if (SDL_SetTextureBlendMode(sprites[i], blendMode) < 0) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't set blend mode: %s\n", SDL_GetError()); + SDL_DestroyTexture(sprites[i]); + return -1; + } + } + + /* We're ready to roll. :) */ + return 0; +} + +void +DrawSprites(SDL_Renderer * renderer, SDL_Texture * sprite) +{ + SDL_Rect viewport; + SDL_FRect temp; + + /* Query the sizes */ + SDL_GetRenderViewport(renderer, &viewport); + + /* Cycle the color and alpha, if desired */ + if (cycle_color) { + current_color += cycle_direction; + if (current_color < 0) { + current_color = 0; + cycle_direction = -cycle_direction; + } + if (current_color > 255) { + current_color = 255; + cycle_direction = -cycle_direction; + } + SDL_SetTextureColorMod(sprite, 255, (Uint8) current_color, + (Uint8) current_color); + } + if (cycle_alpha) { + current_alpha += cycle_direction; + if (current_alpha < 0) { + current_alpha = 0; + cycle_direction = -cycle_direction; + } + if (current_alpha > 255) { + current_alpha = 255; + cycle_direction = -cycle_direction; + } + SDL_SetTextureAlphaMod(sprite, (Uint8) current_alpha); + } + + /* Draw a gray background */ + SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); + SDL_RenderClear(renderer); + + /* Test points */ + SDL_SetRenderDrawColor(renderer, 0xFF, 0x00, 0x00, 0xFF); + SDL_RenderPoint(renderer, 0.0f, 0.0f); + SDL_RenderPoint(renderer, (float)(viewport.w - 1), 0.0f); + SDL_RenderPoint(renderer, 0.0f, (float)(viewport.h - 1)); + SDL_RenderPoint(renderer, (float)(viewport.w - 1), (float)(viewport.h - 1)); + + /* Test horizontal and vertical lines */ + SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF); + SDL_RenderLine(renderer, 1.0f, 0.0f, (float)(viewport.w - 2), 0.0f); + SDL_RenderLine(renderer, 1.0f, (float)(viewport.h - 1), (float)(viewport.w - 2), (float)(viewport.h - 1)); + SDL_RenderLine(renderer, 0.0f, 1.0f, 0.0f, (float)(viewport.h - 2)); + SDL_RenderLine(renderer, (float)(viewport.w - 1), 1, (float)(viewport.w - 1), (float)(viewport.h - 2)); + + /* Test fill and copy */ + SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF); + temp.x = 1.0f; + temp.y = 1.0f; + temp.w = (float)sprite_w; + temp.h = (float)sprite_h; + SDL_RenderFillRect(renderer, &temp); + SDL_RenderTexture(renderer, sprite, NULL, &temp); + temp.x = (float)(viewport.w-sprite_w-1); + temp.y = 1.0f; + temp.w = (float)sprite_w; + temp.h = (float)sprite_h; + SDL_RenderFillRect(renderer, &temp); + SDL_RenderTexture(renderer, sprite, NULL, &temp); + temp.x = 1.0f; + temp.y = (float)(viewport.h-sprite_h-1); + temp.w = (float)sprite_w; + temp.h = (float)sprite_h; + SDL_RenderFillRect(renderer, &temp); + SDL_RenderTexture(renderer, sprite, NULL, &temp); + temp.x = (float)(viewport.w-sprite_w-1); + temp.y = (float)(viewport.h-sprite_h-1); + temp.w = (float)(sprite_w); + temp.h = (float)(sprite_h); + SDL_RenderFillRect(renderer, &temp); + SDL_RenderTexture(renderer, sprite, NULL, &temp); + + /* Test diagonal lines */ + SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF); + SDL_RenderLine(renderer, (float)sprite_w, (float)sprite_h, + (float)(viewport.w-sprite_w-2), (float)(viewport.h-sprite_h-2)); + SDL_RenderLine(renderer, (float)(viewport.w-sprite_w-2), (float)sprite_h, + (float)sprite_w, (float)(viewport.h-sprite_h-2)); + + /* Update the screen! */ + SDL_RenderPresent(renderer); +} + +void +loop() +{ + int i; + SDL_Event event; + + /* Check for events */ + while (SDL_PollEvent(&event)) { + if (event.type == SDL_EVENT_KEY_DOWN && !event.key.repeat) { + SDL_Log("Initial SDL_EVENT_KEY_DOWN: %s", SDL_GetScancodeName(event.key.keysym.scancode)); + } +#if defined(__XBOXONE__) || defined(__XBOXSERIES__) + /* On Xbox, ignore the keydown event because the features aren't supported */ + if (event.type != SDL_EVENT_KEY_DOWN) { + SDLTest_CommonEvent(state, &event, &done); + } +#else + SDLTest_CommonEvent(state, &event, &done); +#endif + } + for (i = 0; i < state->num_windows; ++i) { + if (state->windows[i] == NULL) { + continue; + } + DrawSprites(state->renderers[i], sprites[i]); + } +} + +int +main(int argc, char *argv[]) +{ + int i; + const char *icon = "icon.bmp"; + char *soundname = NULL; + + /* Initialize parameters */ + num_sprites = NUM_SPRITES; + + /* Initialize test framework */ + state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO | SDL_INIT_AUDIO); + if (state == NULL) { + return 1; + } + + for (i = 1; i < argc;) { + int consumed; + + consumed = SDLTest_CommonArg(state, i); + if (consumed == 0) { + consumed = -1; + if (SDL_strcasecmp(argv[i], "--blend") == 0) { + if (argv[i + 1]) { + if (SDL_strcasecmp(argv[i + 1], "none") == 0) { + blendMode = SDL_BLENDMODE_NONE; + consumed = 2; + } else if (SDL_strcasecmp(argv[i + 1], "blend") == 0) { + blendMode = SDL_BLENDMODE_BLEND; + consumed = 2; + } else if (SDL_strcasecmp(argv[i + 1], "add") == 0) { + blendMode = SDL_BLENDMODE_ADD; + consumed = 2; + } else if (SDL_strcasecmp(argv[i + 1], "mod") == 0) { + blendMode = SDL_BLENDMODE_MOD; + consumed = 2; + } else if (SDL_strcasecmp(argv[i + 1], "sub") == 0) { + blendMode = SDL_ComposeCustomBlendMode(SDL_BLENDFACTOR_SRC_ALPHA, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_SUBTRACT, SDL_BLENDFACTOR_ZERO, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_SUBTRACT); + consumed = 2; + } + } + } else if (SDL_strcasecmp(argv[i], "--cyclecolor") == 0) { + cycle_color = SDL_TRUE; + consumed = 1; + } else if (SDL_strcasecmp(argv[i], "--cyclealpha") == 0) { + cycle_alpha = SDL_TRUE; + consumed = 1; + } else if (SDL_isdigit(*argv[i])) { + num_sprites = SDL_atoi(argv[i]); + consumed = 1; + } else if (argv[i][0] != '-') { + icon = argv[i]; + consumed = 1; + } + } + if (consumed < 0) { + static const char *options[] = { + "[--blend none|blend|add|mod]", + "[--cyclecolor]", + "[--cyclealpha]", + "[num_sprites]", + "[icon.bmp]", + NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); + quit(1); + } + i += consumed; + } + if (!SDLTest_CommonInit(state)) { + quit(2); + } + + /* Create the windows, initialize the renderers, and load the textures */ + sprites = + (SDL_Texture **) SDL_malloc(state->num_windows * sizeof(*sprites)); + if (sprites == NULL) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Out of memory!\n"); + quit(2); + } + for (i = 0; i < state->num_windows; ++i) { + SDL_Renderer *renderer = state->renderers[i]; + SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); + SDL_RenderClear(renderer); + } + if (LoadSprite(icon) < 0) { + quit(2); + } + + soundname = GetResourceFilename(argc > 1 ? argv[1] : NULL, "sample.wav"); + + if (soundname == NULL) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s\n", SDL_GetError()); + quit(1); + } + + /* Load the wave file into memory */ + if (SDL_LoadWAV(soundname, &wave.spec, &wave.sound, &wave.soundlen) == NULL) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't load %s: %s\n", soundname, SDL_GetError()); + quit(1); + } + + wave.spec.callback = fillerup; + + /* Show the list of available drivers */ + SDL_Log("Available audio drivers:"); + for (i = 0; i < SDL_GetNumAudioDrivers(); ++i) { + SDL_Log("%i: %s", i, SDL_GetAudioDriver(i)); + } + + SDL_Log("Using audio driver: %s\n", SDL_GetCurrentAudioDriver()); + + open_audio(); + + /* Main render loop */ + done = 0; + + /* Try to add the default user silently */ + AddUserSilent(); + + while (!done) { + loop(); + } + + quit(0); + + SDL_free(soundname); + return 0; +} diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/testgdk.vcxproj b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/testgdk.vcxproj new file mode 100644 index 0000000..c0e74e2 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/testgdk.vcxproj @@ -0,0 +1,395 @@ + + + + + Debug + Gaming.Desktop.x64 + + + Debug + Gaming.Xbox.Scarlett.x64 + + + Debug + Gaming.Xbox.XboxOne.x64 + + + Release + Gaming.Desktop.x64 + + + Release + Gaming.Xbox.Scarlett.x64 + + + Release + Gaming.Xbox.XboxOne.x64 + + + + {1C9A3F71-35A5-4C56-B292-F4375B3C3649} + testsprite + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + true + + + Application + $(DefaultPlatformToolset) + true + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testsprite.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies) + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testsprite.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testsprite.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testsprite.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies) + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testsprite.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testsprite.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + Copying %(Filename)%(Extension) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + Copying %(Filename)%(Extension) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + Document + true + true + true + true + + + + + Document + true + true + true + true + + + + + + + + + + + + + + Document + true + true + true + true + + + + + Document + + + + + Document + true + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/testgdk.vcxproj.filters b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/testgdk.vcxproj.filters new file mode 100644 index 0000000..b82a989 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/testgdk.vcxproj.filters @@ -0,0 +1,53 @@ + + + + + + + + + + logos + + + logos + + + logos + + + logos + + + wingdk + + + wingdk + + + xboxseries + + + + xboxone + + + logos + + + + + + {c3c871f2-c7b7-4025-8ba4-037dde717fe1} + + + {1678a80d-0ee8-4f48-bf89-9462d82dd98a} + + + {1b47b96b-507e-40ec-9c25-99b1a4d5b575} + + + {ac7aa2d5-f0f7-46eb-a548-5b6316f3b63b} + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config new file mode 100644 index 0000000..afd57d6 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config new file mode 100644 index 0000000..a593bd1 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config new file mode 100644 index 0000000..1ab7c17 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/PackageLayout.xml b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/PackageLayout.xml new file mode 100644 index 0000000..60a8378 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/PackageLayout.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/testsprite.vcxproj b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/testsprite.vcxproj new file mode 100644 index 0000000..211f14c --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/testsprite.vcxproj @@ -0,0 +1,389 @@ + + + + + Debug + Gaming.Desktop.x64 + + + Debug + Gaming.Xbox.Scarlett.x64 + + + Debug + Gaming.Xbox.XboxOne.x64 + + + Release + Gaming.Desktop.x64 + + + Release + Gaming.Xbox.Scarlett.x64 + + + Release + Gaming.Xbox.XboxOne.x64 + + + + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} + testsprite + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + true + + + Application + $(DefaultPlatformToolset) + true + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + AllRules.ruleset + AllRules.ruleset + AllRules.ruleset + + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testsprite.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies) + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testsprite.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/testsprite.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testsprite.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies) + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testsprite.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/testsprite.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + xgameruntime.lib;%(AdditionalDependencies) + + + + + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + Copying %(Filename)%(Extension) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + Copying %(Filename)%(Extension) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + copy "%(FullPath)" "$(ProjectDir)\" +copy "%(FullPath)" "$(OutDir)\" + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + Document + true + true + true + true + + + + + Document + true + true + true + true + + + + + + + + + + + + + + Document + true + true + true + true + + + + + true + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/testsprite.vcxproj.filters b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/testsprite.vcxproj.filters new file mode 100644 index 0000000..3e0399e --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/testsprite.vcxproj.filters @@ -0,0 +1,52 @@ + + + + + + + + + + logos + + + logos + + + logos + + + logos + + + wingdk + + + xboxseries + + + xboxone + + + wingdk + + + logos + + + + + + {c3c871f2-c7b7-4025-8ba4-037dde717fe1} + + + {c862dfc3-7803-4359-a31e-9dcda37e641a} + + + {1671e83d-25b3-4eb5-bed0-5c52c80f4e49} + + + {9bf62acf-6661-43f9-bde3-0de9e1db4290} + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/wingdk/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/wingdk/MicrosoftGame.config new file mode 100644 index 0000000..bbb839c --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/wingdk/MicrosoftGame.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/xboxone/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/xboxone/MicrosoftGame.config new file mode 100644 index 0000000..14fbf7d --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/xboxone/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/xboxseries/MicrosoftGame.config b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/xboxseries/MicrosoftGame.config new file mode 100644 index 0000000..402b89e --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-GDK/tests/testsprite/xboxseries/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.sln b/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.sln new file mode 100644 index 0000000..86bd92d --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.sln @@ -0,0 +1,69 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.33027.164 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3-UWP", "SDL-UWP.vcxproj", "{89E9B32E-A86A-47C3-A948-D2B1622925CE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw", "testdraw\testdraw.vcxproj", "{95943BBE-F378-4068-A3FD-DAE1B8309B6E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM.ActiveCfg = Debug|ARM + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM.Build.0 = Debug|ARM + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM64.Build.0 = Debug|ARM64 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x64.ActiveCfg = Debug|x64 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x64.Build.0 = Debug|x64 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x86.ActiveCfg = Debug|Win32 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x86.Build.0 = Debug|Win32 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM.ActiveCfg = Release|ARM + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM.Build.0 = Release|ARM + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM64.ActiveCfg = Release|ARM64 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM64.Build.0 = Release|ARM64 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x64.ActiveCfg = Release|x64 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x64.Build.0 = Release|x64 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x86.ActiveCfg = Release|Win32 + {89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x86.Build.0 = Release|Win32 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM.ActiveCfg = Debug|ARM + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM.Build.0 = Debug|ARM + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM.Deploy.0 = Debug|ARM + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM64.Build.0 = Debug|ARM64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x64.ActiveCfg = Debug|x64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x64.Build.0 = Debug|x64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x64.Deploy.0 = Debug|x64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x86.ActiveCfg = Debug|Win32 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x86.Build.0 = Debug|Win32 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x86.Deploy.0 = Debug|Win32 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM.ActiveCfg = Release|ARM + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM.Build.0 = Release|ARM + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM.Deploy.0 = Release|ARM + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM64.ActiveCfg = Release|ARM64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM64.Build.0 = Release|ARM64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM64.Deploy.0 = Release|ARM64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x64.ActiveCfg = Release|x64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x64.Build.0 = Release|x64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x64.Deploy.0 = Release|x64 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x86.ActiveCfg = Release|Win32 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x86.Build.0 = Release|Win32 + {95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x86.Deploy.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {30680F51-7BB9-41D0-A0D6-BC44A1557D87} + EndGlobalSection +EndGlobal diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.vcxproj b/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.vcxproj new file mode 100644 index 0000000..21c5e7e --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.vcxproj @@ -0,0 +1,876 @@ + + + + + Debug + ARM64 + + + Debug + ARM + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + Create + Create + Create + Create + Create + Create + Create + Create + + + Create + $(IntDir)$(TargetName)_cpp.pch + Create + $(IntDir)$(TargetName)_cpp.pch + Create + $(IntDir)$(TargetName)_cpp.pch + Create + $(IntDir)$(TargetName)_cpp.pch + Create + $(IntDir)$(TargetName)_cpp.pch + Create + $(IntDir)$(TargetName)_cpp.pch + Create + $(IntDir)$(TargetName)_cpp.pch + Create + $(IntDir)$(TargetName)_cpp.pch + true + true + true + true + true + true + true + true + + + + + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + + NotUsing + NotUsing + NotUsing + NotUsing + NotUsing + NotUsing + NotUsing + NotUsing + + + + + + + + + + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + + + + + + + + + + + + + + + + + + + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + true + true + true + true + true + true + true + true + + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NotUsing + + + + + + + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + true + true + true + true + true + true + true + true + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + true + true + true + true + true + true + true + true + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + true + true + true + true + true + true + true + true + + + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + true + true + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + true + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + $(IntDir)$(TargetName)_cpp.pch + + + + + {89e9b32e-a86a-47c3-a948-d2b1622925ce} + DynamicLibrary + SDL3-UWP + SDL3 + en-US + 14.0 + true + Windows Store + 8.2 + 10.0.16299.0 + 10.0.16299.0 + 10.0 + + + + DynamicLibrary + true + v142 + + + DynamicLibrary + true + v142 + + + DynamicLibrary + true + v142 + + + DynamicLibrary + true + v142 + + + DynamicLibrary + false + true + v142 + + + DynamicLibrary + false + true + v142 + + + DynamicLibrary + false + true + v142 + + + DynamicLibrary + false + true + v142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + false + SDL3 + $(SolutionDir)/../src;$(IncludePath) + + + false + false + SDL3 + $(SolutionDir)/../src;$(IncludePath) + + + false + false + SDL3 + $(SolutionDir)/../src;$(IncludePath) + + + false + false + SDL3 + $(SolutionDir)/../src;$(IncludePath) + + + false + false + SDL3 + $(SolutionDir)/../src;$(IncludePath) + + + false + false + SDL3 + $(SolutionDir)/../src;$(IncludePath) + + + false + false + SDL3 + $(SolutionDir)/../src;$(IncludePath) + + + false + false + SDL3 + $(SolutionDir)/../src;$(IncludePath) + + + + Use + false + ..\include;%(AdditionalIncludeDirectories) + DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + SDL_internal.h + + + Console + false + false + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) + + + + + Use + false + ..\include;%(AdditionalIncludeDirectories) + DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + SDL_internal.h + + + Console + false + false + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) + + + + + Use + false + ..\include;%(AdditionalIncludeDirectories) + DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + SDL_internal.h + + + Console + false + false + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) + + + + + Use + false + ..\include;%(AdditionalIncludeDirectories) + DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + SDL_internal.h + + + Console + false + false + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) + + + + + Use + false + ..\include;%(AdditionalIncludeDirectories) + DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + SDL_internal.h + + + Console + false + false + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) + + + + + Use + false + ..\include;%(AdditionalIncludeDirectories) + DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + SDL_internal.h + + + Console + false + false + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) + + + + + Use + false + ..\include;%(AdditionalIncludeDirectories) + DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + SDL_internal.h + + + Console + false + false + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) + + + + + Use + false + ..\include;%(AdditionalIncludeDirectories) + DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + SDL_internal.h + + + Console + false + false + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.vcxproj.filters b/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.vcxproj.filters new file mode 100644 index 0000000..430babc --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-WinRT/SDL-UWP.vcxproj.filters @@ -0,0 +1,888 @@ + + + + + {fa0ff2df-c3d6-498a-96f1-1f88e7ce0da3} + + + {68e1b30b-19ed-4612-93e4-6260c5a979e5} + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + video + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + stdlib + + + Source Files + + + Source Files + + + diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/LockScreenLogo.scale-200.png b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 0000000..735f57a Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/LockScreenLogo.scale-200.png differ diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/SplashScreen.scale-200.png b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000..023e7f1 Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/SplashScreen.scale-200.png differ diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square150x150Logo.scale-200.png b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000..af49fec Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square150x150Logo.scale-200.png differ diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square44x44Logo.scale-200.png b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000..ce342a2 Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square44x44Logo.scale-200.png differ diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000..f6c02ce Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/StoreLogo.png b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/StoreLogo.png new file mode 100644 index 0000000..7385b56 Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/StoreLogo.png differ diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Wide310x150Logo.scale-200.png b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000..288995b Binary files /dev/null and b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Assets/Wide310x150Logo.scale-200.png differ diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Package.appxmanifest b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Package.appxmanifest new file mode 100644 index 0000000..05a4c57 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + testdraw + Daniel + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/testdraw.vcxproj b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/testdraw.vcxproj new file mode 100644 index 0000000..f612acf --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/testdraw.vcxproj @@ -0,0 +1,331 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + Debug + ARM64 + + + Release + ARM64 + + + + {95943bbe-f378-4068-a3fd-dae1b8309b6e} + DirectXApp + testdraw + en-US + 14.0 + true + Windows Store + 10.0.19041.0 + 10.0.17763.0 + 10.0 + false + + + + Application + true + v142 + + + Application + true + v142 + + + Application + true + v142 + true + + + Application + true + v142 + + + Application + false + true + v142 + true + + + Application + false + true + v142 + true + + + Application + false + true + v142 + true + + + Application + false + true + v142 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\include + /bigobj %(AdditionalOptions) + 4453;28204 + _DEBUG;%(PreprocessorDefinitions) + false + NotUsing + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\include + /bigobj %(AdditionalOptions) + 4453;28204 + NDEBUG;%(PreprocessorDefinitions) + false + NotUsing + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm64; $(VCInstallDir)\lib\arm64 + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\include + /bigobj %(AdditionalOptions) + 4453;28204 + _DEBUG;%(PreprocessorDefinitions) + false + NotUsing + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm64; $(VCInstallDir)\lib\arm64 + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\include + /bigobj %(AdditionalOptions) + 4453;28204 + NDEBUG;%(PreprocessorDefinitions) + false + NotUsing + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\include + /bigobj %(AdditionalOptions) + 4453;28204 + _DEBUG;%(PreprocessorDefinitions) + false + NotUsing + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\include + /bigobj %(AdditionalOptions) + 4453;28204 + NDEBUG;%(PreprocessorDefinitions) + false + NotUsing + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\include + /bigobj %(AdditionalOptions) + 4453;28204 + _DEBUG;%(PreprocessorDefinitions) + false + NotUsing + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\include + /bigobj %(AdditionalOptions) + 4453;28204 + NDEBUG;%(PreprocessorDefinitions) + false + NotUsing + + + + + + + + + + + + + + Designer + + + + + {89e9b32e-a86a-47c3-a948-d2b1622925ce} + + + + + + + + + + + + + + + + true + true + true + true + true + true + true + true + + + false + false + false + false + false + false + false + false + + + + + + + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/testdraw.vcxproj.filters b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/testdraw.vcxproj.filters new file mode 100644 index 0000000..d41d939 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC-WinRT/testdraw/testdraw.vcxproj.filters @@ -0,0 +1,88 @@ + + + + + 95943bbe-f378-4068-a3fd-dae1b8309b6e + + + dad3d573-ab33-428d-ae70-6098066c27e7 + bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + e4caa635-e149-44c2-8915-48ffa6ac48f7 + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + Assets + + + + + + + + Content + + + Content + + + Common + + + Common + + + Common + + + Common + + + Common + + + Common + + + Common + + + Common + + + Common + + + Common + + + Common + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC/SDL.sln b/vendor/sdl-3.0.0/VisualC/SDL.sln new file mode 100644 index 0000000..ff6a2b4 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/SDL.sln @@ -0,0 +1,284 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys.vcxproj", "{26828762-C95D-4637-9CB1-7F0979523813}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopwave", "tests\loopwave\loopwave.vcxproj", "{AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testatomic", "tests\testatomic\testatomic.vcxproj", "{66B32F7E-5716-48D0-B5B9-D832FD052DD5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testautomation", "tests\testautomation\testautomation.vcxproj", "{9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw", "tests\testdraw\testdraw.vcxproj", "{8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "tests\testfile\testfile.vcxproj", "{CAE4F1D0-314F-4B10-805B-0EFD670133A0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgl", "tests\testgl\testgl.vcxproj", "{8B5CFB38-CCBA-40A8-AD7A-89C57B070884}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testoverlay", "tests\testoverlay\testoverlay.vcxproj", "{B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testplatform", "tests\testplatform\testplatform.vcxproj", "{26932B24-EFC6-4E3A-B277-ED653DA37968}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpower", "tests\testpower\testpower.vcxproj", "{C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendertarget", "tests\testrendertarget\testrendertarget.vcxproj", "{2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrumble", "tests\testrumble\testrumble.vcxproj", "{BFF40245-E9A6-4297-A425-A554E5D767E8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testscale", "tests\testscale\testscale.vcxproj", "{5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshape", "tests\testshape\testshape.vcxproj", "{31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite", "tests\testsprite\testsprite.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3_test", "SDL_test\SDL_test.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testcontroller", "tests\testcontroller\testcontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgles2", "tests\testgles2\testgles2.vcxproj", "{E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testvulkan", "tests\testvulkan\testvulkan.vcxproj", "{0D604DFD-AAB6-442C-9368-F91A344146AB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testwm", "tests\testwm\testwm.vcxproj", "{C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testyuv", "tests\testyuv\testyuv.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C97635682}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsensor", "tests\testsensor\testsensor.vcxproj", "{C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsurround", "tests\testsurround\testsurround.vcxproj", "{70B894A9-E306-49E8-ABC2-932A952A5E5F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|Win32.ActiveCfg = Debug|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|Win32.Build.0 = Debug|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|x64.ActiveCfg = Debug|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|x64.Build.0 = Debug|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|Win32.ActiveCfg = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|Win32.Build.0 = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|x64.ActiveCfg = Release|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|x64.Build.0 = Release|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|Win32.ActiveCfg = Debug|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|Win32.Build.0 = Debug|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|x64.ActiveCfg = Debug|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|x64.Build.0 = Debug|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|Win32.ActiveCfg = Release|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|Win32.Build.0 = Release|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|x64.ActiveCfg = Release|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|x64.Build.0 = Release|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|Win32.ActiveCfg = Debug|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|Win32.Build.0 = Debug|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|x64.ActiveCfg = Debug|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|x64.Build.0 = Debug|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|Win32.ActiveCfg = Release|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|Win32.Build.0 = Release|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|x64.ActiveCfg = Release|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|x64.Build.0 = Release|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|Win32.Build.0 = Debug|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|x64.ActiveCfg = Debug|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|x64.Build.0 = Debug|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|Win32.ActiveCfg = Release|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|Win32.Build.0 = Release|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|x64.ActiveCfg = Release|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|x64.Build.0 = Release|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|Win32.Build.0 = Debug|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|x64.ActiveCfg = Debug|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|x64.Build.0 = Debug|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|Win32.ActiveCfg = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|Win32.Build.0 = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|x64.ActiveCfg = Release|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|x64.Build.0 = Release|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|Win32.ActiveCfg = Debug|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|Win32.Build.0 = Debug|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|x64.ActiveCfg = Debug|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|x64.Build.0 = Debug|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|Win32.ActiveCfg = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|Win32.Build.0 = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|x64.ActiveCfg = Release|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|x64.Build.0 = Release|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|Win32.ActiveCfg = Debug|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|Win32.Build.0 = Debug|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|x64.ActiveCfg = Debug|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|x64.Build.0 = Debug|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|Win32.ActiveCfg = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|Win32.Build.0 = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|x64.ActiveCfg = Release|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|x64.Build.0 = Release|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|Win32.ActiveCfg = Debug|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|Win32.Build.0 = Debug|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|x64.ActiveCfg = Debug|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|x64.Build.0 = Debug|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|Win32.ActiveCfg = Release|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|Win32.Build.0 = Release|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|x64.ActiveCfg = Release|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|x64.Build.0 = Release|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|Win32.ActiveCfg = Debug|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|Win32.Build.0 = Debug|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|x64.ActiveCfg = Debug|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|x64.Build.0 = Debug|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|Win32.ActiveCfg = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|Win32.Build.0 = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|x64.ActiveCfg = Release|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|x64.Build.0 = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|Win32.Build.0 = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|x64.ActiveCfg = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|x64.Build.0 = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|Win32.ActiveCfg = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|Win32.Build.0 = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|x64.ActiveCfg = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|x64.Build.0 = Release|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|Win32.ActiveCfg = Debug|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|Win32.Build.0 = Debug|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|x64.ActiveCfg = Debug|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|x64.Build.0 = Debug|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|Win32.ActiveCfg = Release|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|Win32.Build.0 = Release|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|x64.ActiveCfg = Release|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|x64.Build.0 = Release|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|Win32.ActiveCfg = Debug|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|Win32.Build.0 = Debug|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|x64.ActiveCfg = Debug|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|x64.Build.0 = Debug|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|Win32.ActiveCfg = Release|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|Win32.Build.0 = Release|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|x64.ActiveCfg = Release|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|x64.Build.0 = Release|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|Win32.Build.0 = Debug|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|x64.ActiveCfg = Debug|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|x64.Build.0 = Debug|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|Win32.ActiveCfg = Release|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|Win32.Build.0 = Release|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|x64.ActiveCfg = Release|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|x64.Build.0 = Release|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|Win32.Build.0 = Debug|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|x64.ActiveCfg = Debug|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|x64.Build.0 = Debug|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|Win32.ActiveCfg = Release|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|Win32.Build.0 = Release|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|x64.ActiveCfg = Release|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|x64.Build.0 = Release|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Win32.ActiveCfg = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Win32.Build.0 = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|x64.ActiveCfg = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|x64.Build.0 = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Win32.ActiveCfg = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Win32.Build.0 = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|x64.ActiveCfg = Release|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|x64.Build.0 = Release|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Win32.Build.0 = Debug|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|x64.ActiveCfg = Debug|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|x64.Build.0 = Debug|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Win32.ActiveCfg = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Win32.Build.0 = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|x64.ActiveCfg = Release|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|x64.Build.0 = Release|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|Win32.Build.0 = Debug|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|x64.ActiveCfg = Debug|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|x64.Build.0 = Debug|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|Win32.ActiveCfg = Release|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|Win32.Build.0 = Release|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|x64.ActiveCfg = Release|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|x64.Build.0 = Release|x64 + {0D604DFD-AAB6-442C-9368-F91A344146AB}.Debug|Win32.ActiveCfg = Debug|Win32 + {0D604DFD-AAB6-442C-9368-F91A344146AB}.Debug|Win32.Build.0 = Debug|Win32 + {0D604DFD-AAB6-442C-9368-F91A344146AB}.Debug|x64.ActiveCfg = Debug|x64 + {0D604DFD-AAB6-442C-9368-F91A344146AB}.Debug|x64.Build.0 = Debug|x64 + {0D604DFD-AAB6-442C-9368-F91A344146AB}.Release|Win32.ActiveCfg = Release|Win32 + {0D604DFD-AAB6-442C-9368-F91A344146AB}.Release|Win32.Build.0 = Release|Win32 + {0D604DFD-AAB6-442C-9368-F91A344146AB}.Release|x64.ActiveCfg = Release|x64 + {0D604DFD-AAB6-442C-9368-F91A344146AB}.Release|x64.Build.0 = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}.Debug|Win32.Build.0 = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}.Debug|x64.ActiveCfg = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}.Debug|x64.Build.0 = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}.Release|Win32.ActiveCfg = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}.Release|Win32.Build.0 = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}.Release|x64.ActiveCfg = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5}.Release|x64.Build.0 = Release|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C97635682}.Debug|Win32.ActiveCfg = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C97635682}.Debug|Win32.Build.0 = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C97635682}.Debug|x64.ActiveCfg = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C97635682}.Debug|x64.Build.0 = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C97635682}.Release|Win32.ActiveCfg = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C97635682}.Release|Win32.Build.0 = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C97635682}.Release|x64.ActiveCfg = Release|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C97635682}.Release|x64.Build.0 = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}.Debug|Win32.Build.0 = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}.Debug|x64.ActiveCfg = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}.Debug|x64.Build.0 = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}.Release|Win32.ActiveCfg = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}.Release|Win32.Build.0 = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}.Release|x64.ActiveCfg = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4}.Release|x64.Build.0 = Release|x64 + {70B894A9-E306-49E8-ABC2-932A952A5E5F}.Debug|Win32.ActiveCfg = Debug|Win32 + {70B894A9-E306-49E8-ABC2-932A952A5E5F}.Debug|Win32.Build.0 = Debug|Win32 + {70B894A9-E306-49E8-ABC2-932A952A5E5F}.Debug|x64.ActiveCfg = Debug|x64 + {70B894A9-E306-49E8-ABC2-932A952A5E5F}.Debug|x64.Build.0 = Debug|x64 + {70B894A9-E306-49E8-ABC2-932A952A5E5F}.Release|Win32.ActiveCfg = Release|Win32 + {70B894A9-E306-49E8-ABC2-932A952A5E5F}.Release|Win32.Build.0 = Release|Win32 + {70B894A9-E306-49E8-ABC2-932A952A5E5F}.Release|x64.ActiveCfg = Release|x64 + {70B894A9-E306-49E8-ABC2-932A952A5E5F}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {26828762-C95D-4637-9CB1-7F0979523813} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {66B32F7E-5716-48D0-B5B9-D832FD052DD5} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {CAE4F1D0-314F-4B10-805B-0EFD670133A0} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {26932B24-EFC6-4E3A-B277-ED653DA37968} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {BFF40245-E9A6-4297-A425-A554E5D767E8} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {55812185-D13C-4022-9C81-32E0F4A08305} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {0D604DFD-AAB6-442C-9368-F91A344146AB} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {40FB7794-D3C3-4CFE-BCF4-A80C97635682} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {70B894A9-E306-49E8-ABC2-932A952A5E5F} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C320C9F2-1A8F-41D7-B02B-6338F872BCAD} + EndGlobalSection +EndGlobal diff --git a/vendor/sdl-3.0.0/VisualC/SDL/SDL.vcxproj b/vendor/sdl-3.0.0/VisualC/SDL/SDL.vcxproj new file mode 100644 index 0000000..84e7745 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/SDL/SDL.vcxproj @@ -0,0 +1,678 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL3 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + SDL + 10.0 + + + + DynamicLibrary + $(DefaultPlatformToolset) + + + DynamicLibrary + $(DefaultPlatformToolset) + + + DynamicLibrary + $(DefaultPlatformToolset) + + + DynamicLibrary + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath) + + + $(ProjectDir)/../../src;$(IncludePath) + + + $(ProjectDir)/../../src;$(IncludePath) + + + $(ProjectDir)/../../src;$(IncludePath) + + + $(ProjectDir)/../../src;$(IncludePath) + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/SDL.tlb + + + Disabled + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + StreamingSIMDExtensions + Level3 + OldStyle + true + OnlyExplicitInline + Use + SDL_internal.h + true + + + _DEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/SDL.tlb + + + Disabled + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + Level3 + OldStyle + true + OnlyExplicitInline + Use + SDL_internal.h + true + + + _DEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/SDL.tlb + + + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + StreamingSIMDExtensions + Level3 + ProgramDatabase + true + OnlyExplicitInline + Use + SDL_internal.h + true + + + NDEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + true + true + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/SDL.tlb + + + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + Level3 + ProgramDatabase + true + OnlyExplicitInline + Use + SDL_internal.h + true + + + NDEBUG;%(PreprocessorDefinitions) + + + setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NotUsing + NotUsing + NotUsing + NotUsing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NotUsing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC/SDL/SDL.vcxproj.filters b/vendor/sdl-3.0.0/VisualC/SDL/SDL.vcxproj.filters new file mode 100644 index 0000000..23fa7b2 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/SDL/SDL.vcxproj.filters @@ -0,0 +1,1385 @@ + + + + + {395b3af0-33d0-411b-b153-de1676bf1ef8} + + + {5a3e3167-75be-414f-8947-a5306df372b2} + + + {546d9ed1-988e-49d3-b1a5-e5b3d19de6c1} + + + {a56247ff-5108-4960-ba6a-6814fd1554ec} + + + {8880dfad-2a06-4e84-ab6e-6583641ad2d1} + + + {2b996a7f-f3e9-4300-a97f-2c907bcd89a9} + + + {5713d682-2bc7-4da4-bcf0-262a98f142eb} + + + {5e27e19f-b3f8-4e2d-b323-b00b2040ec86} + + + {a3ab9cff-8495-4a5c-8af6-27e43199a712} + + + {377061e4-3856-4f05-b916-0d3b360df0f6} + + + {226a6643-1c65-4c7f-92aa-861313d974bb} + + + {ef859522-a7fe-4a00-a511-d6a9896adf5b} + + + {01fd2642-4493-4316-b548-fb829f4c9125} + + + {cce7558f-590a-4f0a-ac0d-e579f76e588e} + + + {7a53c9e4-d4bd-40ed-9265-1625df685121} + + + {4c7a051c-ce7c-426c-bf8c-9187827f9052} + + + {97e2f79f-311b-42ea-81b2-e801649fdd93} + + + {baf97c8c-7e90-41e5-bff8-14051b8d3956} + + + {45e50d3a-56c9-4352-b811-0c60c49a2431} + + + {9d86e0ef-d6f6-4db2-bfc5-b3529406fa8d} + + + {b35fa13c-6ed2-4680-8c56-c7d71b76ceab} + + + {61b61b31-9e26-4171-a3bb-b969f1889726} + + + {f63aa216-6ee7-4143-90d3-32be3787f276} + + + {90bee923-89df-417f-a6c3-3e260a7dd54d} + + + {4c8ad943-c2fb-4014-9ca3-041e0ad08426} + + + {3d68ae70-a9ff-46cf-be69-069f0b02aca0} + + + {ebc2fca3-3c26-45e3-815e-3e0581d5e226} + + + {47c445a2-7014-4e15-9660-7c89a27dddcf} + + + {d008487d-6ed0-4251-848b-79a68e3c1459} + + + {c9e8273e-13ae-47dc-bef8-8ad8e64c9a3d} + + + {0b8e136d-56ae-47e7-9981-e863a57ac616} + + + {bf3febd3-9328-43e8-b196-0fd3be8177dd} + + + {1a62dc68-52d2-4c07-9d81-d94dfe1d0d12} + + + {e9f01b22-34b3-4380-ade6-0e96c74e9c90} + + + {f674f22f-7841-4f3a-974e-c36b2d4823fc} + + + {d7ad92de-4e55-4202-9b2b-1bd9a35fe4dc} + + + {8311d79d-9ad5-4369-99fe-b2fb2659d402} + + + {6c4dfb80-fdf9-497c-a6ff-3cd8f22efde9} + + + {4810e35c-33cb-4da2-bfaf-452da20d3c9a} + + + {2cf93f1d-81fd-4bdc-998c-5e2fa43988bc} + + + {5752b7ab-2344-4f38-95ab-b5d3bc150315} + + + {7a0eae3d-f113-4914-b926-6816d1929250} + + + {ee602cbf-96a2-4b0b-92a9-51d38a727411} + + + {a812185b-9060-4a1c-8431-be4f66894626} + + + {31c16cdf-adc4-4950-8293-28ba530f3882} + + + {add61b53-8144-47d6-bd67-3420a87c4905} + + + {e7cdcf36-b462-49c7-98b7-07ea7b3687f4} + + + {82588eef-dcaa-4f69-b2a9-e675940ce54c} + + + {560239c3-8fa1-4d23-a81a-b8408b2f7d3f} + + + {81711059-7575-4ece-9e68-333b63e992c4} + + + {1e44970f-7535-4bfb-b8a5-ea0cea0349e0} + + + {1dd91224-1176-492b-a2cb-e26153394db0} + + + {e3ecfe50-cf22-41d3-8983-2fead5164b47} + + + {5521d22f-1e52-47a6-8c52-06a3b6bdefd7} + + + {4755f3a6-49ac-46d6-86be-21f5c21f2197} + + + {f48c2b17-1bee-4fec-a7c8-24cf619abe08} + + + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + + + + API Headers + + + API Headers + + + API Headers + + + audio + + + audio + + + audio + + + audio + + + audio + + + audio + + + core\windows + + + core\windows + + + core\windows + + + core\windows + + + core\windows + + + dynapi + + + dynapi + + + dynapi + + + dynapi + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + haptic + + + haptic + + + joystick + + + joystick + + + joystick + + + joystick + + + joystick + + + joystick + + + libm + + + libm + + + hidapi\hidapi + + + locale + + + misc + + + audio\directsound + + + audio\disk + + + audio\dummy + + + audio\wasapi + + + haptic\windows + + + haptic\windows + + + haptic\windows + + + joystick\hidapi + + + joystick\hidapi + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\virtual + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video\dummy + + + video\dummy + + + video\dummy + + + video\yuv2rgb + + + video\yuv2rgb + + + video\yuv2rgb + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + timer + + + thread + + + thread + + + thread\windows + + + thread\windows + + + thread\generic + + + sensor + + + sensor + + + sensor\dummy + + + sensor\windows + + + render + + + render + + + render + + + render\direct3d + + + render\direct3d11 + + + render\opengl + + + render\opengl + + + render\opengles2 + + + render\opengles2 + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + power + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + video\khronos\vulkan + + + + + + + + render\direct3d12 + + + + + + + + + + + + + + + + audio + + + audio + + + audio + + + audio + + + audio + + + audio + + + audio + + + audio + + + atomic + + + atomic + + + core + + + core + + + core\windows + + + core\windows + + + core\windows + + + core\windows + + + cpuinfo + + + dynapi + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + events + + + file + + + filesystem\windows + + + haptic + + + hidapi + + + joystick + + + joystick + + + joystick + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + libm + + + loadso\windows + + + misc + + + misc\windows + + + locale\windows + + + locale + + + audio\directsound + + + audio\disk + + + audio\dummy + + + audio\wasapi + + + audio\wasapi + + + haptic\windows + + + haptic\windows + + + haptic\windows + + + haptic\dummy + + + joystick\dummy + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\hidapi + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\windows + + + joystick\virtual + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video + + + video\dummy + + + video\dummy + + + video\dummy + + + video\yuv2rgb + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + video\windows + + + timer + + + timer\windows + + + thread + + + thread\windows + + + thread\windows + + + thread\windows + + + thread\windows + + + thread\windows + + + thread\windows + + + thread\generic + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + stdlib + + + sensor + + + sensor\dummy + + + sensor\windows + + + render + + + render + + + render + + + render + + + render\direct3d + + + render\direct3d + + + render\direct3d11 + + + render\direct3d11 + + + render\opengl + + + render\opengl + + + render\opengles2 + + + render\opengles2 + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + render\software + + + power + + + + power\windows + + + render\direct3d12 + + + render\direct3d12 + + + core\windows + + + stdlib + + + stdlib + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC/SDL_test/SDL_test.vcxproj b/vendor/sdl-3.0.0/VisualC/SDL_test/SDL_test.vcxproj new file mode 100644 index 0000000..f69b2e5 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/SDL_test/SDL_test.vcxproj @@ -0,0 +1,175 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL3_test + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + SDL_test + 10.0 + + + + StaticLibrary + $(DefaultPlatformToolset) + + + StaticLibrary + $(DefaultPlatformToolset) + + + StaticLibrary + $(DefaultPlatformToolset) + + + StaticLibrary + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + + + + + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + true + + + + + X64 + + + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + Level3 + OldStyle + true + true + + + + + + + + + Disabled + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + true + + + + + X64 + + + Disabled + $(ProjectDir)/../../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + Level3 + OldStyle + true + true + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/clean.sh b/vendor/sdl-3.0.0/VisualC/clean.sh new file mode 100644 index 0000000..fd16f9a --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/clean.sh @@ -0,0 +1,4 @@ +#!/bin/sh +find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete +find . -type f \( -name '*.bmp' -o -name '*.wav' -o -name '*.dat' \) -print -delete +find . -depth -type d \( -name Win32 -o -name x64 \) -exec rm -rv {} \; diff --git a/vendor/sdl-3.0.0/VisualC/pkg-support/cmake/sdl3-config-version.cmake b/vendor/sdl-3.0.0/VisualC/pkg-support/cmake/sdl3-config-version.cmake new file mode 100644 index 0000000..3c455dc --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/pkg-support/cmake/sdl3-config-version.cmake @@ -0,0 +1,54 @@ +# based on the files generated by CMake's write_basic_package_version_file + +# SDL CMake version configuration file: +# This file is meant to be placed in a cmake subfolder of SDL3-devel-3.x.y-VC + +if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../include/SDL3/SDL_version.h") + message(AUTHOR_WARNING "Could not find SDL3/SDL_version.h. This script is meant to be placed in the root of SDL3-devel-3.x.y-VC") + return() +endif() + +file(READ "${CMAKE_CURRENT_LIST_DIR}/../include/SDL3/SDL_version.h" _sdl_version_h) +string(REGEX MATCH "#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)" _sdl_major_re "${_sdl_version_h}") +set(_sdl_major "${CMAKE_MATCH_1}") +string(REGEX MATCH "#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)" _sdl_minor_re "${_sdl_version_h}") +set(_sdl_minor "${CMAKE_MATCH_1}") +string(REGEX MATCH "#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)" _sdl_patch_re "${_sdl_version_h}") +set(_sdl_patch "${CMAKE_MATCH_1}") +if(_sdl_major_re AND _sdl_minor_re AND _sdl_patch_re) + set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_patch}") +else() + message(AUTHOR_WARNING "Could not extract version from SDL3/SDL_version.h.") + return() +endif() + +if(PACKAGE_FIND_VERSION_RANGE) + # Package version must be in the requested version range + if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN) + OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX))) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + endif() +else() + if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() + endif() +endif() + +# if the using project doesn't have CMAKE_SIZEOF_VOID_P set, fail. +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT (CMAKE_SIZEOF_VOID_P STREQUAL "8" OR CMAKE_SIZEOF_VOID_P STREQUAL "4")) + set(PACKAGE_VERSION "${PACKAGE_VERSION} (32+64bit)") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() diff --git a/vendor/sdl-3.0.0/VisualC/pkg-support/cmake/sdl3-config.cmake b/vendor/sdl-3.0.0/VisualC/pkg-support/cmake/sdl3-config.cmake new file mode 100644 index 0000000..4a9b4ac --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/pkg-support/cmake/sdl3-config.cmake @@ -0,0 +1,129 @@ +# SDL CMake configuration file: +# This file is meant to be placed in a cmake subfolder of SDL3-devel-3.x.y-VC + +cmake_minimum_required(VERSION 3.0) + +include(FeatureSummary) +set_package_properties(SDL3 PROPERTIES + URL "https://www.libsdl.org/" + DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware" +) + +# Copied from `configure_package_config_file` +macro(set_and_check _var _file) + set(${_var} "${_file}") + if(NOT EXISTS "${_file}") + message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") + endif() +endmacro() + +# Copied from `configure_package_config_file` +macro(check_required_components _NAME) + foreach(comp ${${_NAME}_FIND_COMPONENTS}) + if(NOT ${_NAME}_${comp}_FOUND) + if(${_NAME}_FIND_REQUIRED_${comp}) + set(${_NAME}_FOUND FALSE) + endif() + endif() + endforeach() +endmacro() + +set(SDL3_FOUND TRUE) + +if(CMAKE_SIZEOF_VOID_P STREQUAL "4") + set(_sdl_arch_subdir "x86") +elseif(CMAKE_SIZEOF_VOID_P STREQUAL "8") + set(_sdl_arch_subdir "x64") +else() + set(SDL3_FOUND FALSE) + return() +endif() + +set_and_check(_sdl3_prefix "${CMAKE_CURRENT_LIST_DIR}/..") +set(_sdl3_include_dirs "${_sdl3_prefix}/include") +unset(_sdl3_prefix) + +set(SDL3_LIBRARIES SDL3::SDL3) +set(SDL3TEST_LIBRARY SDL3::SDL3_test) + + +# All targets are created, even when some might not be requested though COMPONENTS. +# This is done for compatibility with CMake generated SDL3-target.cmake files. + +if(NOT TARGET SDL3::Headers) + add_library(SDL3::Headers INTERFACE IMPORTED) + set_target_properties(SDL3::SDL3 + PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_sdl3_include_dirs}" + ) +endif() +set(SDL3_Headers_FOUND TRUE) +unset(_sdl3_include_dirs) + +set(_sdl3_library "${SDL3_LIBDIR}/SDL3.lib") +set(_sdl3_dll_library "${SDL3_BINDIR}/SDL3.dll") +if(EXISTS "${_sdl3_library}" AND EXISTS "${_sdl3_dll_library}") + if(NOT TARGET SDL3::SDL3-shared) + add_library(SDL3::SDL3-shared SHARED IMPORTED) + set_target_properties(SDL3::SDL3-shared + PROPERTIES + INTERFACE_LINK_LIBRARIES "SDL3::Headers" + IMPORTED_IMPLIB "${_sdl3_library}" + IMPORTED_LOCATION "${_sdl3_dll_library}" + COMPATIBLE_INTERFACE_BOOL "SDL3_SHARED" + INTERFACE_SDL3_SHARED "ON" + COMPATIBLE_INTERFACE_STRING "SDL_VERSION" + INTERFACE_SDL_VERSION "SDL3" + ) + endif() + set(SDL3_SDL3-shared_FOUND TRUE) +else() + set(SDL3_SDL3-shared_FOUND FALSE) +endif() +unset(_sdl3_library) +unset(_sdl3_dll_library) + +set(SDL3_SDL3-static_FOUND FALSE) + +set(_sdl3test_library "${SDL3_LIBDIR}/SDL3_test.lib") +if(EXISTS "${_sdl3test_library}") + if(NOT TARGET SDL3::SDL3_test) + add_library(SDL3::SDL3_test STATIC IMPORTED) + set_target_properties(SDL3::SDL3_test + PROPERTIES + INTERFACE_LINK_LIBRARIES "SDL3::Headers" + IMPORTED_LOCATION "${_sdl3test_library}" + COMPATIBLE_INTERFACE_STRING "SDL_VERSION" + INTERFACE_SDL_VERSION "SDL3" + ) + endif() + set(SDL3_SDL3_test_FOUND TRUE) +else() + set(SDL3_SDL3_test_FOUND FALSE) +endif() +unset(_sdl3test_library) + +if(SDL3_SDL3-shared_FOUND OR SDL3_SDL3-static_FOUND) + set(SDL3_SDL3_FOUND TRUE) +endif() + +function(_sdl_create_target_alias_compat NEW_TARGET TARGET) + if(CMAKE_VERSION VERSION_LESS "3.18") + # Aliasing local targets is not supported on CMake < 3.18, so make it global. + add_library(${NEW_TARGET} INTERFACE IMPORTED) + set_target_properties(${NEW_TARGET} PROPERTIES INTERFACE_LINK_LIBRARIES "${TARGET}") + else() + add_library(${NEW_TARGET} ALIAS ${TARGET}) + endif() +endfunction() + +# Make sure SDL3::SDL3 always exists +if(NOT TARGET SDL3::SDL3) + if(TARGET SDL3::SDL3-shared) + _sdl_create_target_alias_compat(SDL3::SDL3 SDL3::SDL3-shared) + else() + _sdl_create_target_alias_compat(SDL3::SDL3 SDL3::SDL3-static) + endif() +endif() + +check_required_components(SDL3) diff --git a/vendor/sdl-3.0.0/VisualC/tests/checkkeys/checkkeys.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/checkkeys/checkkeys.vcxproj new file mode 100644 index 0000000..cb3f0ee --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/checkkeys/checkkeys.vcxproj @@ -0,0 +1,219 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {26828762-C95D-4637-9CB1-7F0979523813} + checkkeys + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/checkkeys.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/checkkeys.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/checkkeys.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/checkkeys.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/checkkeys.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/checkkeys.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + $(SolutionDir)$(Platform)\$(Configuration);%(AdditionalIncludeDirectories) + $(Platform)\$(Configuration)\;%(AdditionalUsingDirectories) + %(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + $(SolutionDir)$(Platform)\$(Configuration);%(AdditionalIncludeDirectories) + $(Platform)\$(Configuration)\;%(AdditionalUsingDirectories) + $(SolutionDir)$(Platform)\$(Configuration);%(AdditionalIncludeDirectories) + $(Platform)\$(Configuration)\;%(AdditionalUsingDirectories) + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/loopwave/loopwave.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/loopwave/loopwave.vcxproj new file mode 100644 index 0000000..d755abe --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/loopwave/loopwave.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB} + loopwave + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/loopwave.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/loopwave.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/loopwave.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/loopwave.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/loopwave.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/loopwave.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testatomic/testatomic.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testatomic/testatomic.vcxproj new file mode 100644 index 0000000..d8b7bf9 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testatomic/testatomic.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {66B32F7E-5716-48D0-B5B9-D832FD052DD5} + testatomic + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testatomic.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testatomic.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testatomic.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testatomic.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testautomation/testautomation.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testautomation/testautomation.vcxproj new file mode 100644 index 0000000..fd1f86c --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testautomation/testautomation.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA} + testautomation + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testautomation.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testautomation.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testautomation.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testautomation.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC/tests/testcontroller/testcontroller.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testcontroller/testcontroller.vcxproj new file mode 100644 index 0000000..5bdcc3b --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testcontroller/testcontroller.vcxproj @@ -0,0 +1,206 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {55812185-D13C-4022-9C81-32E0F4A08305} + testcontroller + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testcontroller.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testcontroller.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testcontroller.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testcontroller.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + + + diff --git a/vendor/sdl-3.0.0/VisualC/tests/testdraw/testdraw.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testdraw/testdraw.vcxproj new file mode 100644 index 0000000..9e985c3 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testdraw/testdraw.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF} + testdraw + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testdraw.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testdraw.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testdraw.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testdraw.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testfile/testfile.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testfile/testfile.vcxproj new file mode 100644 index 0000000..f0e138e --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testfile/testfile.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {CAE4F1D0-314F-4B10-805B-0EFD670133A0} + testfile + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testfile.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testfile.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testfile.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testfile.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testgl/testgl.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testgl/testgl.vcxproj new file mode 100644 index 0000000..02dc5c6 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testgl/testgl.vcxproj @@ -0,0 +1,208 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} + testgl + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testgl.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testgl.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testgl.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testgl.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testgles2/testgles2.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testgles2/testgles2.vcxproj new file mode 100644 index 0000000..153b64f --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testgles2/testgles2.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315} + testgles2 + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testgles2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testgles2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testgles2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testgles2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testoverlay/testoverlay.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testoverlay/testoverlay.vcxproj new file mode 100644 index 0000000..851bc2f --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testoverlay/testoverlay.vcxproj @@ -0,0 +1,225 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A} + testoverlay + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testoverlay.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testoverlay.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testoverlay.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testoverlay.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testplatform/testplatform.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testplatform/testplatform.vcxproj new file mode 100644 index 0000000..b88aa4f --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testplatform/testplatform.vcxproj @@ -0,0 +1,232 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {26932B24-EFC6-4E3A-B277-ED653DA37968} + testplatform + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testplatform.tlb + + + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + .\Debug/testplatform.pch + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + true + .\Debug/testplatform.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testplatform.tlb + + + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + .\Debug/testplatform.pch + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + true + .\Debug/testplatform.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testplatform.tlb + + + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + .\Release/testplatform.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + true + .\Release/testplatform.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testplatform.tlb + + + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + .\Release/testplatform.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + true + .\Release/testplatform.bsc + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testpower/testpower.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testpower/testpower.vcxproj new file mode 100644 index 0000000..308555f --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testpower/testpower.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3} + testpower + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testpower.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testpower.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testpower.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testpower.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testrendertarget/testrendertarget.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testrendertarget/testrendertarget.vcxproj new file mode 100644 index 0000000..23f4466 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testrendertarget/testrendertarget.vcxproj @@ -0,0 +1,243 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E} + testrendertarget + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testrendertarget.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testrendertarget.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testrendertarget.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testrendertarget.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testrumble/testrumble.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testrumble/testrumble.vcxproj new file mode 100644 index 0000000..6fab2f9 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testrumble/testrumble.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {BFF40245-E9A6-4297-A425-A554E5D767E8} + testrumble + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testrumble.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testrumble.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testrumble.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testrumble.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testscale/testscale.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testscale/testscale.vcxproj new file mode 100644 index 0000000..4e4c6f5 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testscale/testscale.vcxproj @@ -0,0 +1,243 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6} + testscale + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testscale.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testscale.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testscale.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testscale.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testsensor/testsensor.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testsensor/testsensor.vcxproj new file mode 100644 index 0000000..cf480e5 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testsensor/testsensor.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4} + testsensor + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testsensor.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testsensor.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testsensor.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testsensor.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testshape/testshape.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testshape/testshape.vcxproj new file mode 100644 index 0000000..1c59aa4 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testshape/testshape.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2} + testshape + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testshape.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testshape.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testshape.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testshape.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testsprite/testsprite.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testsprite/testsprite.vcxproj new file mode 100644 index 0000000..fa00f8e --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testsprite/testsprite.vcxproj @@ -0,0 +1,225 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} + testsprite + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testsprite.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testsprite.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testsprite.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testsprite.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testsurround/testsurround.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testsurround/testsurround.vcxproj new file mode 100644 index 0000000..47c5cff --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testsurround/testsurround.vcxproj @@ -0,0 +1,210 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {70B894A9-E306-49E8-ABC2-932A952A5E5F} + testsurround + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testsurround.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/testsurround.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Console + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testsurround.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/testsurround.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Console + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testsurround.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Console + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testsurround.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Console + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testvulkan/testvulkan.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testvulkan/testvulkan.vcxproj new file mode 100644 index 0000000..3fb60d7 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testvulkan/testvulkan.vcxproj @@ -0,0 +1,200 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {0D604DFD-AAB6-442C-9368-F91A344146AB} + testvulkan + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testvulkan.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testvulkan.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testvulkan.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testvulkan.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testwm/testwm.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testwm/testwm.vcxproj new file mode 100644 index 0000000..cbff837 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testwm/testwm.vcxproj @@ -0,0 +1,204 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A5} + testwm + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testwm.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testwm.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testwm.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testwm.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/VisualC/tests/testyuv/testyuv.vcxproj b/vendor/sdl-3.0.0/VisualC/tests/testyuv/testyuv.vcxproj new file mode 100644 index 0000000..9df29c3 --- /dev/null +++ b/vendor/sdl-3.0.0/VisualC/tests/testyuv/testyuv.vcxproj @@ -0,0 +1,229 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {40FB7794-D3C3-4CFE-BCF4-A80C97635682} + testyuv + 10.0 + + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + Application + $(DefaultPlatformToolset) + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testyuv.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testyuv.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testyuv.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testyuv.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)\" + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/sdl-3.0.0/WhatsNew.txt b/vendor/sdl-3.0.0/WhatsNew.txt new file mode 100644 index 0000000..1b84c49 --- /dev/null +++ b/vendor/sdl-3.0.0/WhatsNew.txt @@ -0,0 +1,32 @@ + +This is a list of major changes in SDL's version history. + +--------------------------------------------------------------------------- +3.2.0: +--------------------------------------------------------------------------- + +General: +* SDL headers should now be included as `#include ` +* Many functions and symbols have changed since SDL 2.0, see the [migration guide](docs/README-migration.md) for details +* The preprocessor symbol __MACOSX__ has been renamed __MACOS__ +* The preprocessor symbol __IPHONEOS__ has been renamed __IOS__ +* SDL_stdinc.h no longer includes stdio.h, stdlib.h, etc., it only provides the SDL C runtime functionality +* SDL_intrin.h now includes the intrinsics headers that were in SDL_cpuinfo.h +* Added SDL_GetSystemTheme() to return whether the system is using a dark or light color theme, and SDL_EVENT_SYSTEM_THEME_CHANGED is sent when this changes +* Added SDL_GetDisplays() to return a list of connected displays +* Added SDL_GetPrimaryDisplay() to get the instance ID of the primary display +* Added SDL_GetWindowParent() to get the parent of popup windows +* Added SDL_CreateSurface() and SDL_CreateSurfaceFrom() which replace SDL_CreateRGBSurface*(), and can also be used to create YUV surfaces +* Added SDL_GetJoysticks(), SDL_GetJoystickInstanceName(), SDL_GetJoystickInstancePath(), SDL_GetJoystickInstancePlayerIndex(), SDL_GetJoystickInstanceGUID(), SDL_GetJoystickInstanceVendor(), SDL_GetJoystickInstanceProduct(), SDL_GetJoystickInstanceProductVersion(), and SDL_GetJoystickInstanceType() to directly query the list of available joysticks +* Added SDL_GetGamepads(), SDL_GetGamepadInstanceName(), SDL_GetGamepadInstancePath(), SDL_GetGamepadInstancePlayerIndex(), SDL_GetGamepadInstanceGUID(), SDL_GetGamepadInstanceVendor(), SDL_GetGamepadInstanceProduct(), SDL_GetGamepadInstanceProductVersion(), and SDL_GetGamepadInstanceType() to directly query the list of available gamepads +* Added SDL_GetSensors(), SDL_GetSensorInstanceName(), SDL_GetSensorInstanceType(), and SDL_GetSensorInstanceNonPortableType() to directly query the list of available sensors +* SDL_GetTicks() now returns a 64-bit value and the tick values should be directly compared instead of using the SDL_TICKS_PASSED macro +* Added SDL_GetTicksNS() to return the number of nanoseconds since the SDL library initialized +* Added SDL_DelayNS() to specify a delay in nanoseconds, to the highest precision the system will support +* The timestamp member of the SDL_Event structure is now in nanoseconds, filled in with the time the event was generated, or the time it was queued if that's not available +* Added SDL_modf() and SDL_modff() to separate the whole and fractional portions of a floating point number +* Added SDL_aligned_alloc() and SDL_aligned_free() to allocate and free memory with a given alignment +* Added SDL_GetRenderVSync() to get vsync of the given renderer +* Added SDL_PlayAudioDevice() to start audio playback +* Added SDL_ConvertAudioSamples() to convert audio samples from one format to another +* Added the hint SDL_HINT_ANDROID_ALLOW_RECREATE_ACTIVITY to control re-creation of Android SDL activity. diff --git a/vendor/sdl-3.0.0/Xcode/SDL/Info-Framework.plist b/vendor/sdl-3.0.0/Xcode/SDL/Info-Framework.plist new file mode 100644 index 0000000..65acdef --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDL/Info-Framework.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleGetInfoString + http://www.libsdl.org + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Simple DirectMedia Layer + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.0.0 + CFBundleSignature + SDLX + CFBundleVersion + 3.0.0 + + diff --git a/vendor/sdl-3.0.0/Xcode/SDL/SDL.xcodeproj/project.pbxproj b/vendor/sdl-3.0.0/Xcode/SDL/SDL.xcodeproj/project.pbxproj new file mode 100644 index 0000000..279a748 --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDL/SDL.xcodeproj/project.pbxproj @@ -0,0 +1,2811 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXAggregateTarget section */ + F3676F582A7885080091160D /* SDL3.dmg */ = { + isa = PBXAggregateTarget; + buildConfigurationList = F3676F592A7885080091160D /* Build configuration list for PBXAggregateTarget "SDL3.dmg" */; + buildPhases = ( + F3676F5E2A78852D0091160D /* ShellScript */, + ); + dependencies = ( + F3676F5D2A7885130091160D /* PBXTargetDependency */, + ); + name = SDL3.dmg; + productName = "Create DMG"; + }; + F3B38CEC296F63B6005DA6D3 /* SDL3.xcframework */ = { + isa = PBXAggregateTarget; + buildConfigurationList = F3B38CED296F63B6005DA6D3 /* Build configuration list for PBXAggregateTarget "SDL3.xcframework" */; + buildPhases = ( + F3B38CF0296F63D1005DA6D3 /* ShellScript */, + ); + dependencies = ( + ); + name = SDL3.xcframework; + productName = xcFramework; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 000040E76FDC6AE48CBF0000 /* SDL_hashtable.c in Sources */ = {isa = PBXBuildFile; fileRef = 000078E1881E857EBB6C0000 /* SDL_hashtable.c */; }; + 007317A40858DECD00B2BC32 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179D0858DECD00B2BC32 /* Cocoa.framework */; platformFilters = (macos, ); }; + 007317A60858DECD00B2BC32 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179F0858DECD00B2BC32 /* IOKit.framework */; platformFilters = (ios, maccatalyst, macos, ); }; + 00CFA89D106B4BA100758660 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00CFA89C106B4BA100758660 /* ForceFeedback.framework */; platformFilters = (macos, ); }; + 00D0D08410675DD9004B05EF /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00D0D08310675DD9004B05EF /* CoreFoundation.framework */; platformFilters = (ios, maccatalyst, macos, tvos, watchos, ); }; + 00D0D0D810675E46004B05EF /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007317C10858E15000B2BC32 /* Carbon.framework */; platformFilters = (macos, ); }; + 557D0CFA254586CA003913E3 /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */; platformFilters = (ios, maccatalyst, macos, tvos, ); }; + 557D0CFB254586D7003913E3 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDABD23E28B6200529352 /* GameController.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 5616CA4C252BB2A6005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA4D252BB2A6005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA4E252BB2A6005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; }; + 564624361FF821C20074AC87 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624351FF821B80074AC87 /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 564624381FF821DA0074AC87 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 566E26CF246274CC00718109 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 566E26D8246274CC00718109 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 566E26E1246274CC00718109 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 56A2373329F9C113003CCA5F /* SDL_sysrwlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 56A2373229F9C113003CCA5F /* SDL_sysrwlock.c */; }; + 75E0915A241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E09163241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 9846B07C287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + A1626A3E2617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A522617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1BB8B6327F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6C27F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A7381E961D8B69D600B177DD /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E951D8B69D600B177DD /* CoreAudio.framework */; platformFilters = (ios, maccatalyst, macos, tvos, watchos, ); }; + A7381E971D8B6A0300B177DD /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E931D8B69C300B177DD /* AudioToolbox.framework */; platformFilters = (ios, maccatalyst, macos, tvos, ); }; + A75FDB5823E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDBB723E4CBC700529352 /* License.txt in Resources */ = {isa = PBXBuildFile; fileRef = 00794D3F09D0C461003FC8A1 /* License.txt */; }; + A75FDBB823E4CBC700529352 /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F59C710300D5CB5801000001 /* ReadMe.txt */; }; + A75FDBC523EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBCE23EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A7D8A94B23E2514000DCD162 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A7D8A95123E2514000DCD162 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A7D8A95723E2514000DCD162 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A7D8A95D23E2514000DCD162 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A7D8A96323E2514000DCD162 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A7D8A96923E2514000DCD162 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A7D8A96F23E2514000DCD162 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A7D8A97523E2514000DCD162 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A7D8A97B23E2514000DCD162 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A7D8A98D23E2514000DCD162 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A7D8A99323E2514000DCD162 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A7D8A99923E2514000DCD162 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A7D8AA6523E2514000DCD162 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A7D8AAB023E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAB623E2514100DCD162 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A7D8AABC23E2514100DCD162 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A7D8AAD423E2514100DCD162 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A7D8AADA23E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAE023E2514100DCD162 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A7D8AB0A23E2514100DCD162 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A7D8AB1023E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A7D8AB1623E2514100DCD162 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A7D8AB1C23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A7D8AB2523E2514100DCD162 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A7D8AB2B23E2514100DCD162 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A7D8AB3123E2514100DCD162 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A7D8AB3723E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB4923E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB5B23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A7D8AB6123E2514100DCD162 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A7D8AB6723E2514100DCD162 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A7D8AB6D23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A7D8AB7323E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A7D8AB7F23E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A7D8AB8523E2514100DCD162 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A7D8AB8B23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A7D8ABCD23E2514100DCD162 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A7D8ABD323E2514100DCD162 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A7D8ABD923E2514100DCD162 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A7D8ABDF23E2514100DCD162 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A7D8ABE523E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A7D8ABEB23E2514100DCD162 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A7D8ABF123E2514100DCD162 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A7D8ABF723E2514100DCD162 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A7D8ABFD23E2514100DCD162 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A7D8AC0323E2514100DCD162 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A7D8AC0923E2514100DCD162 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A7D8AC0F23E2514100DCD162 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A7D8AC2D23E2514100DCD162 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A7D8AC3323E2514100DCD162 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A7D8AC3923E2514100DCD162 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A7D8AC3F23E2514100DCD162 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A7D8ACE723E2514100DCD162 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A7D8AD1D23E2514100DCD162 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A7D8AD2323E2514100DCD162 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A7D8AD2923E2514100DCD162 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A7D8AD3223E2514100DCD162 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A7D8AD6823E2514100DCD162 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A7D8AD6E23E2514100DCD162 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A7D8ADE623E2514100DCD162 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A7D8ADEC23E2514100DCD162 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A7D8ADF223E2514100DCD162 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A7D8AE7623E2514100DCD162 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A7D8AE7C23E2514100DCD162 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A7D8AE8223E2514100DCD162 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A7D8AE8823E2514100DCD162 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A7D8AE8E23E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A7D8AE9423E2514100DCD162 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A7D8AE9A23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A7D8AEA023E2514100DCD162 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A7D8AEA623E2514100DCD162 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A7D8AEAC23E2514100DCD162 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A7D8AEB223E2514100DCD162 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A7D8AEB823E2514100DCD162 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A7D8AEC423E2514100DCD162 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A7D8AECA23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A7D8AED023E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A7D8AED623E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A7D8AEDC23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A7D8AEE223E2514100DCD162 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A7D8AEE823E2514100DCD162 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A7D8AEEE23E2514100DCD162 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A7D8AEF423E2514100DCD162 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A7D8AEFA23E2514100DCD162 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A7D8AF0023E2514100DCD162 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A7D8AF0623E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A7D8AF0C23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A7D8AF1223E2514100DCD162 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A7D8AF1E23E2514100DCD162 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A7D8AF2423E2514100DCD162 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A7D8AFC023E2514200DCD162 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A7D8B14023E2514200DCD162 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A7D8B22423E2514200DCD162 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A7D8B22A23E2514200DCD162 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A7D8B23023E2514200DCD162 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A7D8B23623E2514200DCD162 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A7D8B23C23E2514200DCD162 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A7D8B24223E2514200DCD162 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A7D8B24823E2514200DCD162 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A7D8B24E23E2514200DCD162 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A7D8B25423E2514200DCD162 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A7D8B25A23E2514200DCD162 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A7D8B26023E2514200DCD162 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A7D8B26623E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A7D8B26C23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; }; + A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A7D8B27823E2514200DCD162 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A7D8B27E23E2514200DCD162 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A7D8B28423E2514200DCD162 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A7D8B28A23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A7D8B29023E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A7D8B29623E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; }; + A7D8B29C23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A7D8B2A223E2514200DCD162 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A7D8B2A823E2514200DCD162 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A7D8B2AE23E2514200DCD162 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A7D8B2B423E2514200DCD162 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A7D8B2BA23E2514200DCD162 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A7D8B2C023E2514200DCD162 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A7D8B39823E2514200DCD162 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A7D8B39E23E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A7D8B3A423E2514200DCD162 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A7D8B3AA23E2514200DCD162 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A7D8B3B023E2514200DCD162 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A7D8B3B623E2514200DCD162 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A7D8B3BF23E2514200DCD162 /* yuv_rgb.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76E23E2513E00DCD162 /* yuv_rgb.c */; }; + A7D8B3C823E2514200DCD162 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A7D8B3CE23E2514300DCD162 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A7D8B3D423E2514300DCD162 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A7D8B3DA23E2514300DCD162 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A7D8B3E023E2514300DCD162 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A7D8B3E623E2514300DCD162 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A7D8B3EC23E2514300DCD162 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A7D8B3F223E2514300DCD162 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A7D8B41C23E2514300DCD162 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A7D8B42223E2514300DCD162 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A7D8B42823E2514300DCD162 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A7D8B42E23E2514300DCD162 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A7D8B43423E2514300DCD162 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A7D8B43A23E2514300DCD162 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A7D8B44023E2514300DCD162 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A7D8B4AC23E2514300DCD162 /* SDL_gamepad_db.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamepad_db.h */; }; + A7D8B4B223E2514300DCD162 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A7D8B4DC23E2514300DCD162 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A7D8B4EE23E2514300DCD162 /* SDL_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamepad.c */; }; + A7D8B53923E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A7D8B53F23E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A7D8B54523E2514300DCD162 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A7D8B54B23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A7D8B55123E2514300DCD162 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A7D8B55723E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A7D8B55D23E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A7D8B56323E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A7D8B56F23E2514300DCD162 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A7D8B58123E2514300DCD162 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A7D8B58723E2514300DCD162 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A7D8B5B723E2514300DCD162 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A7D8B5BD23E2514300DCD162 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A7D8B5C323E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A7D8B5C923E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A7D8B5CF23E2514300DCD162 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A7D8B5D523E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B5E723E2514300DCD162 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A7D8B5F323E2514300DCD162 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A7D8B61123E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B61723E2514300DCD162 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A7D8B61D23E2514300DCD162 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A7D8B62F23E2514300DCD162 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A7D8B75223E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B75E23E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B76423E2514300DCD162 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A7D8B76A23E2514300DCD162 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A7D8B79423E2514400DCD162 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A7D8B79A23E2514400DCD162 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A7D8B7A023E2514400DCD162 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A7D8B7B223E2514400DCD162 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A7D8B81823E2514400DCD162 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A7D8B85A23E2514400DCD162 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A7D8B86023E2514400DCD162 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A7D8B86623E2514400DCD162 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A7D8B86C23E2514400DCD162 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A7D8B8A223E2514400DCD162 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A7D8B8A823E2514400DCD162 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A7D8B8C623E2514400DCD162 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A7D8B8CC23E2514400DCD162 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A7D8B8D223E2514400DCD162 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A7D8B8E423E2514400DCD162 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A7D8B94A23E2514400DCD162 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A7D8B95023E2514400DCD162 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A7D8B95623E2514400DCD162 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A7D8B95C23E2514400DCD162 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A7D8B96223E2514400DCD162 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A7D8B96823E2514400DCD162 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A7D8B96E23E2514400DCD162 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A7D8B97423E2514400DCD162 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A7D8B97A23E2514400DCD162 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A7D8B98023E2514400DCD162 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A7D8B98623E2514400DCD162 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A7D8B98C23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A7D8B99223E2514400DCD162 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A7D8B99B23E2514400DCD162 /* SDL_shaders_metal_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_macos.h */; }; + A7D8B9A123E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A7D8B9CB23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A7D8B9D123E2514400DCD162 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A7D8B9D723E2514400DCD162 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A7D8B9DD23E2514400DCD162 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A7D8B9E323E2514400DCD162 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A7D8B9E923E2514400DCD162 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A7D8B9EF23E2514400DCD162 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A7D8B9F523E2514400DCD162 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A7D8B9FB23E2514400DCD162 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A7D8BA0123E2514400DCD162 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A7D8BA0723E2514400DCD162 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A7D8BA0D23E2514400DCD162 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A7D8BA1323E2514400DCD162 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A7D8BA1923E2514400DCD162 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A7D8BA1F23E2514400DCD162 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A7D8BA2523E2514400DCD162 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A7D8BA2B23E2514400DCD162 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A7D8BA3123E2514400DCD162 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A7D8BA3723E2514400DCD162 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A7D8BA4923E2514400DCD162 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A7D8BA4F23E2514400DCD162 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A7D8BA5523E2514400DCD162 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A7D8BA5B23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A7D8BA7323E2514400DCD162 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A7D8BA7923E2514400DCD162 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A7D8BA7F23E2514400DCD162 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A7D8BA8523E2514400DCD162 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A7D8BA8B23E2514400DCD162 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A7D8BA9123E2514400DCD162 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A7D8BA9723E2514400DCD162 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A7D8BA9D23E2514400DCD162 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A7D8BAA323E2514400DCD162 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A7D8BAA923E2514400DCD162 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A7D8BAAF23E2514400DCD162 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A7D8BAB523E2514400DCD162 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A7D8BABB23E2514400DCD162 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A7D8BAC123E2514500DCD162 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A7D8BAC723E2514500DCD162 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A7D8BACD23E2514500DCD162 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A7D8BAD323E2514500DCD162 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A7D8BAD923E2514500DCD162 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A7D8BADF23E2514500DCD162 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A7D8BAE523E2514500DCD162 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A7D8BAEB23E2514500DCD162 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A7D8BAF123E2514500DCD162 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A7D8BAF723E2514500DCD162 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A7D8BAFD23E2514500DCD162 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A7D8BB0323E2514500DCD162 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A7D8BB0923E2514500DCD162 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A7D8BB1523E2514500DCD162 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A7D8BB1B23E2514500DCD162 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A7D8BB2123E2514500DCD162 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A7D8BB2723E2514500DCD162 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A7D8BB2D23E2514500DCD162 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A7D8BB3323E2514500DCD162 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A7D8BB3F23E2514500DCD162 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A7D8BB4523E2514500DCD162 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A7D8BB4B23E2514500DCD162 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A7D8BB5123E2514500DCD162 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A7D8BB5723E2514500DCD162 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A7D8BB5D23E2514500DCD162 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A7D8BB6323E2514500DCD162 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A7D8BB6923E2514500DCD162 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A7D8BB6F23E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A7D8BB7523E2514500DCD162 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A7D8BB7B23E2514500DCD162 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A7D8BB8123E2514500DCD162 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A7D8BB8723E2514500DCD162 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A7D8BB8D23E2514500DCD162 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A7D8BB9F23E2514500DCD162 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A7D8BBA523E2514500DCD162 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A7D8BBAB23E2514500DCD162 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A7D8BBB123E2514500DCD162 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A7D8BBC523E2561500DCD162 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A7D8BBC723E2561500DCD162 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A7D8BBD223E2574800DCD162 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A7D8BBD323E2574800DCD162 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A7D8BBD423E2574800DCD162 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A7D8BBD523E2574800DCD162 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A7D8BBD623E2574800DCD162 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A7D8BBD723E2574800DCD162 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A7D8BBD823E2574800DCD162 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A7D8BBD923E2574800DCD162 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A7D8BBDA23E2574800DCD162 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A7D8BBDB23E2574800DCD162 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A7D8BBDC23E2574800DCD162 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A7D8BBDD23E2574800DCD162 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A7D8BBDE23E2574800DCD162 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A7D8BBDF23E2574800DCD162 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A7D8BBE023E2574800DCD162 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A7D8BBE123E2574800DCD162 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A7D8BBE223E2574800DCD162 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A7D8BBE323E2574800DCD162 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A7D8BBE423E2574800DCD162 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A7D8BBE523E2574800DCD162 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A7D8BBE623E2574800DCD162 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A7D8BBE723E2574800DCD162 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A7D8BBE823E2574800DCD162 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A7D8BBE923E2574800DCD162 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A7D8BBEA23E2574800DCD162 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A7D8BBEB23E2574800DCD162 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + E4F7981A2AD8D84800669F54 /* SDL_core_unsupported.c in Sources */ = {isa = PBXBuildFile; fileRef = E4F798192AD8D84800669F54 /* SDL_core_unsupported.c */; }; + E4F7981C2AD8D85500669F54 /* SDL_dynapi_unsupported.h in Headers */ = {isa = PBXBuildFile; fileRef = E4F7981B2AD8D85500669F54 /* SDL_dynapi_unsupported.h */; }; + E4F7981E2AD8D86A00669F54 /* SDL_render_unsupported.c in Sources */ = {isa = PBXBuildFile; fileRef = E4F7981D2AD8D86A00669F54 /* SDL_render_unsupported.c */; }; + E4F798202AD8D87F00669F54 /* SDL_video_unsupported.c in Sources */ = {isa = PBXBuildFile; fileRef = E4F7981F2AD8D87F00669F54 /* SDL_video_unsupported.c */; }; + F31A92C828D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92D228D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F32305FF28939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F32DDACF2AB795A30041EAA5 /* SDL_audio_channel_converters.h in Headers */ = {isa = PBXBuildFile; fileRef = F32DDAC92AB795A30041EAA5 /* SDL_audio_channel_converters.h */; }; + F32DDAD02AB795A30041EAA5 /* SDL_audioresample.h in Headers */ = {isa = PBXBuildFile; fileRef = F32DDACA2AB795A30041EAA5 /* SDL_audioresample.h */; }; + F32DDAD12AB795A30041EAA5 /* SDL_audioqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = F32DDACB2AB795A30041EAA5 /* SDL_audioqueue.c */; }; + F32DDAD22AB795A30041EAA5 /* SDL_audio_resampler_filter.h in Headers */ = {isa = PBXBuildFile; fileRef = F32DDACC2AB795A30041EAA5 /* SDL_audio_resampler_filter.h */; }; + F32DDAD32AB795A30041EAA5 /* SDL_audioqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = F32DDACD2AB795A30041EAA5 /* SDL_audioqueue.h */; }; + F32DDAD42AB795A30041EAA5 /* SDL_audioresample.c in Sources */ = {isa = PBXBuildFile; fileRef = F32DDACE2AB795A30041EAA5 /* SDL_audioresample.c */; }; + F34B9895291DEFF500AAC96E /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + F36C7AD1294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; }; + F376F6552559B4E300CFC0BC /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F37A8E1A28405AA100C38E95 /* CMake in Resources */ = {isa = PBXBuildFile; fileRef = F37A8E1928405AA100C38E95 /* CMake */; }; + F3820713284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F382071D284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F386F6E72884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6F02884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F92884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F388C95528B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F395BF6525633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395C1932569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C19C2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C1B12569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1BA2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F3973FA228A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FAB28A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3984CD025BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3990DF52A787C10000D8759 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; }; + F3990E042A788303000D8759 /* SDL_hidapi_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3990E012A788303000D8759 /* SDL_hidapi_c.h */; }; + F3990E052A788303000D8759 /* SDL_hidapi_mac.h in Headers */ = {isa = PBXBuildFile; fileRef = F3990E022A788303000D8759 /* SDL_hidapi_mac.h */; }; + F3990E062A788303000D8759 /* SDL_hidapi_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = F3990E032A788303000D8759 /* SDL_hidapi_ios.h */; }; + F3990E072A78833C000D8759 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAA523E2792500529352 /* hid.m */; }; + F3A4909E2554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3B38CCF296E2E52005DA6D3 /* SDL_main_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = F3B38CCA296E2E52005DA6D3 /* SDL_main_impl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3B38CD3296E2E52005DA6D3 /* SDL_platform_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = F3B38CCB296E2E52005DA6D3 /* SDL_platform_defines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3B38CD7296E2E52005DA6D3 /* SDL_init.h in Headers */ = {isa = PBXBuildFile; fileRef = F3B38CCC296E2E52005DA6D3 /* SDL_init.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3B38CDB296E2E52005DA6D3 /* SDL_oldnames.h in Headers */ = {isa = PBXBuildFile; fileRef = F3B38CCD296E2E52005DA6D3 /* SDL_oldnames.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3B38CDF296E2E52005DA6D3 /* SDL_intrin.h in Headers */ = {isa = PBXBuildFile; fileRef = F3B38CCE296E2E52005DA6D3 /* SDL_intrin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3D60A8328C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3E5A6EB2AD5E0E600293D83 /* SDL_properties.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E5A6EA2AD5E0E600293D83 /* SDL_properties.c */; }; + F3E5A6ED2AD5E10800293D83 /* SDL_properties.h in Headers */ = {isa = PBXBuildFile; fileRef = F3E5A6EC2AD5E10800293D83 /* SDL_properties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F07D5A269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F7D8ED2933074E00816151 /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8AA2933074900816151 /* SDL_audio.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D8F12933074E00816151 /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8AB2933074900816151 /* SDL_platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D8F52933074E00816151 /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8AC2933074900816151 /* SDL_stdinc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D8F92933074E00816151 /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8AD2933074900816151 /* SDL_haptic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D8FD2933074E00816151 /* SDL_opengles2_gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8AE2933074900816151 /* SDL_opengles2_gl2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9012933074E00816151 /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8AF2933074900816151 /* SDL_touch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9052933074E00816151 /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B02933074900816151 /* SDL_main.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9092933074E00816151 /* SDL_opengles2_khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B12933074900816151 /* SDL_opengles2_khrplatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D90D2933074E00816151 /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B22933074900816151 /* SDL_timer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9112933074E00816151 /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B32933074900816151 /* SDL_hints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9152933074E00816151 /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B42933074900816151 /* SDL_revision.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9192933074E00816151 /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B52933074A00816151 /* SDL_pixels.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D91D2933074E00816151 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B62933074A00816151 /* SDL_messagebox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9212933074E00816151 /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B72933074A00816151 /* SDL_log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9252933074E00816151 /* SDL_egl.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B82933074A00816151 /* SDL_egl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9292933074E00816151 /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8B92933074A00816151 /* SDL_atomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D92D2933074E00816151 /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8BA2933074A00816151 /* SDL_shape.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9312933074E00816151 /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8BB2933074A00816151 /* SDL_surface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9352933074E00816151 /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8BC2933074A00816151 /* SDL_error.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9392933074E00816151 /* SDL_opengles2_gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8BD2933074A00816151 /* SDL_opengles2_gl2ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D93D2933074E00816151 /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8BE2933074A00816151 /* SDL_endian.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9412933074E00816151 /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8BF2933074A00816151 /* SDL_syswm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9452933074E00816151 /* SDL_opengl_glext.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C02933074A00816151 /* SDL_opengl_glext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9492933074E00816151 /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C12933074B00816151 /* SDL_scancode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D94D2933074E00816151 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C22933074B00816151 /* SDL_sensor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9512933074E00816151 /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C32933074B00816151 /* SDL_keyboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9552933074E00816151 /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C42933074B00816151 /* SDL_locale.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9592933074E00816151 /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C52933074B00816151 /* SDL_video.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D95D2933074E00816151 /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C62933074B00816151 /* SDL_opengles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9612933074E00816151 /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C72933074B00816151 /* SDL_opengles2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9652933074E00816151 /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C82933074B00816151 /* SDL_rwops.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9692933074E00816151 /* SDL_opengles2_gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8C92933074B00816151 /* SDL_opengles2_gl2platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D96D2933074E00816151 /* SDL_hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8CA2933074B00816151 /* SDL_hidapi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9712933074E00816151 /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8CB2933074B00816151 /* SDL_events.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9752933074E00816151 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8CC2933074B00816151 /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9792933074E00816151 /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8CD2933074C00816151 /* SDL_thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D97D2933074E00816151 /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8CE2933074C00816151 /* SDL_blendmode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9812933074E00816151 /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8CF2933074C00816151 /* SDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9852933074E00816151 /* SDL_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D02933074C00816151 /* SDL_gamepad.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9892933074E00816151 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D12933074C00816151 /* SDL_guid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D98D2933074E00816151 /* SDL_metal.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D22933074C00816151 /* SDL_metal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9912933074E00816151 /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D32933074C00816151 /* SDL_joystick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9952933074E00816151 /* SDL_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D42933074C00816151 /* SDL_vulkan.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9992933074E00816151 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D52933074C00816151 /* SDL_misc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D99D2933074E00816151 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D62933074C00816151 /* SDL_filesystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9A12933074E00816151 /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D72933074C00816151 /* SDL_clipboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9A52933074E00816151 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D82933074C00816151 /* SDL_bits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9A92933074E00816151 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8D92933074C00816151 /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9AD2933074E00816151 /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8DA2933074D00816151 /* SDL_mouse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9B12933074E00816151 /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8DB2933074D00816151 /* SDL_power.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9B92933074E00816151 /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8DD2933074D00816151 /* SDL_cpuinfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9BD2933074E00816151 /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8DE2933074D00816151 /* SDL_render.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9C12933074E00816151 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8DF2933074D00816151 /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9C52933074E00816151 /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E02933074D00816151 /* SDL_assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9C92933074E00816151 /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E12933074D00816151 /* SDL_opengl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9CD2933074E00816151 /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E22933074D00816151 /* SDL_rect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9D12933074E00816151 /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E32933074D00816151 /* SDL_copying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9D52933074E00816151 /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E42933074D00816151 /* SDL_version.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9D92933074E00816151 /* SDL_close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E52933074D00816151 /* SDL_close_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9DD2933074E00816151 /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E62933074E00816151 /* SDL_mutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9E12933074E00816151 /* SDL_begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E72933074E00816151 /* SDL_begin_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7D9E52933074E00816151 /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F7D8E82933074E00816151 /* SDL_system.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA73671D19A540EF004122E4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA73671C19A540EF004122E4 /* CoreVideo.framework */; platformFilters = (ios, maccatalyst, macos, tvos, watchos, ); }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + F3676F5C2A7885130091160D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F3B38CEC296F63B6005DA6D3; + remoteInfo = SDL.xcframework; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + A75FDB9C23E4CAEF00529352 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 000078E1881E857EBB6C0000 /* SDL_hashtable.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hashtable.c; sourceTree = ""; }; + 0000B6ADCD88CAD6610F0000 /* SDL_hashtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hashtable.h; sourceTree = ""; }; + 0073179D0858DECD00B2BC32 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 0073179F0858DECD00B2BC32 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 007317C10858E15000B2BC32 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 00794D3F09D0C461003FC8A1 /* License.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = License.txt; sourceTree = ""; }; + 00CFA89C106B4BA100758660 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = System/Library/Frameworks/ForceFeedback.framework; sourceTree = SDKROOT; }; + 00D0D08310675DD9004B05EF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; + 5616CA49252BB2A5005D5928 /* SDL_url.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_url.c; sourceTree = ""; }; + 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysurl.h; sourceTree = ""; }; + 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_sysurl.m; sourceTree = ""; }; + 564624351FF821B80074AC87 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 564624371FF821CB0074AC87 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; + 566E26CC246274CB00718109 /* SDL_syslocale.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_syslocale.m; path = locale/macos/SDL_syslocale.m; sourceTree = ""; }; + 566E26CD246274CB00718109 /* SDL_locale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_locale.c; path = locale/SDL_locale.c; sourceTree = ""; }; + 566E26CE246274CC00718109 /* SDL_syslocale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_syslocale.h; path = locale/SDL_syslocale.h; sourceTree = ""; }; + 56A2373229F9C113003CCA5F /* SDL_sysrwlock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysrwlock.c; sourceTree = ""; }; + 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_virtualjoystick.c; sourceTree = ""; }; + 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_virtualjoystick_c.h; sourceTree = ""; }; + 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_shield.c; sourceTree = ""; }; + A1626A3D2617006A003F1973 /* SDL_triangle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_triangle.c; sourceTree = ""; }; + A1626A512617008C003F1973 /* SDL_triangle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_triangle.h; sourceTree = ""; }; + A1BB8B6127F6CF320057CFA8 /* SDL_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_list.c; sourceTree = ""; }; + A1BB8B6227F6CF330057CFA8 /* SDL_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_list.h; sourceTree = ""; }; + A7381E931D8B69C300B177DD /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + A7381E951D8B69D600B177DD /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + A75FDAA523E2792500529352 /* hid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = hid.m; sourceTree = ""; }; + A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_steam.c; sourceTree = ""; }; + A75FDAB923E28A7A00529352 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + A75FDABD23E28B6200529352 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; + A75FDABF23E28B8000529352 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + A75FDAC123E28B9600529352 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + A75FDAC323E28BA700529352 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; }; + A75FDB5723E39E6100529352 /* hidapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hidapi.h; path = hidapi/hidapi.h; sourceTree = ""; }; + A75FDB9223E4C8DB00529352 /* hid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hid.c; sourceTree = ""; }; + A75FDBA323E4CB6F00529352 /* LICENSE-bsd.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-bsd.txt"; sourceTree = ""; }; + A75FDBA423E4CB6F00529352 /* AUTHORS.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AUTHORS.txt; sourceTree = ""; }; + A75FDBA523E4CB6F00529352 /* LICENSE-orig.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-orig.txt"; sourceTree = ""; }; + A75FDBA623E4CB6F00529352 /* LICENSE-gpl3.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-gpl3.txt"; sourceTree = ""; }; + A75FDBA723E4CB6F00529352 /* LICENSE.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE.txt; sourceTree = ""; }; + A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi_rumble.h; sourceTree = ""; }; + A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_rumble.c; sourceTree = ""; }; + A7D8A57123E2513D00DCD162 /* SDL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL.c; sourceTree = ""; }; + A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_spinlock.c; sourceTree = ""; }; + A7D8A57423E2513D00DCD162 /* SDL_atomic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_atomic.c; sourceTree = ""; }; + A7D8A57523E2513D00DCD162 /* SDL_error_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_error_c.h; sourceTree = ""; }; + A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dummysensor.h; sourceTree = ""; }; + A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dummysensor.c; sourceTree = ""; }; + A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_coremotionsensor.h; sourceTree = ""; }; + A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_coremotionsensor.m; sourceTree = ""; }; + A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syssensor.h; sourceTree = ""; }; + A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sensor_c.h; sourceTree = ""; }; + A7D8A58223E2513D00DCD162 /* SDL_sensor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sensor.c; sourceTree = ""; }; + A7D8A58323E2513D00DCD162 /* SDL_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_internal.h; sourceTree = ""; }; + A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hints.c; sourceTree = ""; }; + A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syshaptic.c; sourceTree = ""; }; + A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_haptic.c; sourceTree = ""; }; + A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_haptic_c.h; sourceTree = ""; }; + A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syshaptic.h; sourceTree = ""; }; + A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syshaptic.c; sourceTree = ""; }; + A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syshaptic_c.h; sourceTree = ""; }; + A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi.h; sourceTree = ""; }; + A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_overrides.h; sourceTree = ""; }; + A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dynapi.c; sourceTree = ""; }; + A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_procs.h; sourceTree = ""; }; + A7D8A5DD23E2513D00DCD162 /* SDL_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_log.c; sourceTree = ""; }; + A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_timer.c; sourceTree = ""; }; + A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_timer_c.h; sourceTree = ""; }; + A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systimer.c; sourceTree = ""; }; + A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systimer.c; sourceTree = ""; }; + A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenevents_c.h; sourceTree = ""; }; + A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenwindow.c; sourceTree = ""; }; + A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenevents.c; sourceTree = ""; }; + A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenvideo.h; sourceTree = ""; }; + A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenframebuffer.c; sourceTree = ""; }; + A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenframebuffer_c.h; sourceTree = ""; }; + A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenwindow.h; sourceTree = ""; }; + A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenvideo.c; sourceTree = ""; }; + A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_slow.c; sourceTree = ""; }; + A7D8A60323E2513D00DCD162 /* SDL_stretch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_stretch.c; sourceTree = ""; }; + A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_egl_c.h; sourceTree = ""; }; + A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullframebuffer.c; sourceTree = ""; }; + A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullframebuffer_c.h; sourceTree = ""; }; + A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullvideo.c; sourceTree = ""; }; + A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullevents.c; sourceTree = ""; }; + A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullvideo.h; sourceTree = ""; }; + A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullevents_c.h; sourceTree = ""; }; + A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rect_c.h; sourceTree = ""; }; + A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shape_internals.h; sourceTree = ""; }; + A7D8A60E23E2513D00DCD162 /* SDL_video.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_video.c; sourceTree = ""; }; + A7D8A61423E2513D00DCD162 /* SDL_surface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_surface.c; sourceTree = ""; }; + A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_RLEaccel.c; sourceTree = ""; }; + A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_copy.c; sourceTree = ""; }; + A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysvideo.h; sourceTree = ""; }; + A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitview.h; sourceTree = ""; }; + A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitwindow.m; sourceTree = ""; }; + A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmessagebox.m; sourceTree = ""; }; + A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitevents.m; sourceTree = ""; }; + A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmetalview.h; sourceTree = ""; }; + A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitappdelegate.m; sourceTree = ""; }; + A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmodes.h; sourceTree = ""; }; + A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitopenglview.m; sourceTree = ""; }; + A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitclipboard.h; sourceTree = ""; }; + A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitvideo.h; sourceTree = ""; }; + A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitopengles.m; sourceTree = ""; }; + A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitviewcontroller.h; sourceTree = ""; }; + A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitvulkan.m; sourceTree = ""; }; + A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmessagebox.h; sourceTree = ""; }; + A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitwindow.h; sourceTree = ""; }; + A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitview.m; sourceTree = ""; }; + A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitclipboard.m; sourceTree = ""; }; + A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitopenglview.h; sourceTree = ""; }; + A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmodes.m; sourceTree = ""; }; + A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitevents.h; sourceTree = ""; }; + A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmetalview.m; sourceTree = ""; }; + A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitappdelegate.h; sourceTree = ""; }; + A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitviewcontroller.m; sourceTree = ""; }; + A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitopengles.h; sourceTree = ""; }; + A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitvideo.m; sourceTree = ""; }; + A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitvulkan.h; sourceTree = ""; }; + A7D8A63423E2513D00DCD162 /* SDL_rect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rect.c; sourceTree = ""; }; + A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan_internal.h; sourceTree = ""; }; + A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_auto.c; sourceTree = ""; }; + A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_vulkan_utils.c; sourceTree = ""; }; + A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_N.c; sourceTree = ""; }; + A7D8A64C23E2513D00DCD162 /* SDL_blit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit.c; sourceTree = ""; }; + A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_pixels.c; sourceTree = ""; }; + A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_0.c; sourceTree = ""; }; + A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_slow.h; sourceTree = ""; }; + A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_A.c; sourceTree = ""; }; + A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_clipboard.c; sourceTree = ""; }; + A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_yuv.c; sourceTree = ""; }; + A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoashape.h; sourceTree = ""; }; + A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoaopengl.m; sourceTree = ""; }; + A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoakeyboard.h; sourceTree = ""; }; + A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoamodes.m; sourceTree = ""; }; + A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoaopengles.m; sourceTree = ""; }; + A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoavulkan.m; sourceTree = ""; }; + A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoawindow.m; sourceTree = ""; }; + A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoavideo.m; sourceTree = ""; }; + A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoametalview.h; sourceTree = ""; }; + A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoamouse.m; sourceTree = ""; }; + A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoaevents.m; sourceTree = ""; }; + A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoaclipboard.h; sourceTree = ""; }; + A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoamessagebox.m; sourceTree = ""; }; + A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoakeyboard.m; sourceTree = ""; }; + A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoaopengl.h; sourceTree = ""; }; + A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoashape.m; sourceTree = ""; }; + A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoavulkan.h; sourceTree = ""; }; + A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoaopengles.h; sourceTree = ""; }; + A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoamodes.h; sourceTree = ""; }; + A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoawindow.h; sourceTree = ""; }; + A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoavideo.h; sourceTree = ""; }; + A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoamessagebox.h; sourceTree = ""; }; + A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoaclipboard.m; sourceTree = ""; }; + A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoaevents.h; sourceTree = ""; }; + A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoamouse.h; sourceTree = ""; }; + A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoametalview.m; sourceTree = ""; }; + A7D8A6B623E2513E00DCD162 /* SDL_egl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_egl.c; sourceTree = ""; }; + A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_1.c; sourceTree = ""; }; + A7D8A72323E2513E00DCD162 /* gl2ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gl2ext.h; sourceTree = ""; }; + A7D8A72423E2513E00DCD162 /* gl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gl2.h; sourceTree = ""; }; + A7D8A72523E2513E00DCD162 /* gl2platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gl2platform.h; sourceTree = ""; }; + A7D8A72723E2513E00DCD162 /* khrplatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = khrplatform.h; sourceTree = ""; }; + A7D8A72923E2513E00DCD162 /* egl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = egl.h; sourceTree = ""; }; + A7D8A72A23E2513E00DCD162 /* eglext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eglext.h; sourceTree = ""; }; + A7D8A72B23E2513E00DCD162 /* eglplatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eglplatform.h; sourceTree = ""; }; + A7D8A72D23E2513E00DCD162 /* vk_layer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_layer.h; sourceTree = ""; }; + A7D8A72E23E2513E00DCD162 /* vk_icd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_icd.h; sourceTree = ""; }; + A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_vi.h; sourceTree = ""; }; + A7D8A73023E2513E00DCD162 /* vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan.h; sourceTree = ""; }; + A7D8A73123E2513E00DCD162 /* vk_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_platform.h; sourceTree = ""; }; + A7D8A73223E2513E00DCD162 /* vulkan.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = vulkan.hpp; sourceTree = ""; }; + A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_fuchsia.h; sourceTree = ""; }; + A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_wayland.h; sourceTree = ""; }; + A7D8A73523E2513E00DCD162 /* vulkan_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_win32.h; sourceTree = ""; }; + A7D8A73623E2513E00DCD162 /* vulkan_macos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_macos.h; sourceTree = ""; }; + A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib_xrandr.h; sourceTree = ""; }; + A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xcb.h; sourceTree = ""; }; + A7D8A73923E2513E00DCD162 /* vulkan_mir.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_mir.h; sourceTree = ""; }; + A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib.h; sourceTree = ""; }; + A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_ios.h; sourceTree = ""; }; + A7D8A73C23E2513E00DCD162 /* vulkan_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_core.h; sourceTree = ""; }; + A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_sdk_platform.h; sourceTree = ""; }; + A7D8A73E23E2513E00DCD162 /* vulkan_android.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_android.h; sourceTree = ""; }; + A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_auto.h; sourceTree = ""; }; + A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_pixels_c.h; sourceTree = ""; }; + A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_copy.h; sourceTree = ""; }; + A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_RLEaccel_c.h; sourceTree = ""; }; + A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_fillrect.c; sourceTree = ""; }; + A7D8A76923E2513E00DCD162 /* SDL_shape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_shape.c; sourceTree = ""; }; + A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_yuv_c.h; sourceTree = ""; }; + A7D8A76B23E2513E00DCD162 /* SDL_blit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit.h; sourceTree = ""; }; + A7D8A76E23E2513E00DCD162 /* yuv_rgb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = yuv_rgb.c; sourceTree = ""; }; + A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_sse_func.h; sourceTree = ""; }; + A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_std_func.h; sourceTree = ""; }; + A7D8A77223E2513E00DCD162 /* yuv_rgb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb.h; sourceTree = ""; }; + A7D8A77323E2513E00DCD162 /* SDL_bmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_bmp.c; sourceTree = ""; }; + A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_cpuinfo.c; sourceTree = ""; }; + A7D8A77723E2513E00DCD162 /* SDL_systhread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_systhread.h; sourceTree = ""; }; + A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_thread_c.h; sourceTree = ""; }; + A7D8A77923E2513E00DCD162 /* SDL_thread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_thread.c; sourceTree = ""; }; + A7D8A78223E2513E00DCD162 /* SDL_systls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systls.c; sourceTree = ""; }; + A7D8A78323E2513E00DCD162 /* SDL_syssem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syssem.c; sourceTree = ""; }; + A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_systhread_c.h; sourceTree = ""; }; + A7D8A78523E2513E00DCD162 /* SDL_syscond.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syscond.c; sourceTree = ""; }; + A7D8A78623E2513E00DCD162 /* SDL_systhread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systhread.c; sourceTree = ""; }; + A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysmutex.c; sourceTree = ""; }; + A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysmutex_c.h; sourceTree = ""; }; + A7D8A79E23E2513E00DCD162 /* SDL_gamepad_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gamepad_db.h; sourceTree = ""; }; + A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysjoystick.c; sourceTree = ""; }; + A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_steamcontroller.h; sourceTree = ""; }; + A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_steamcontroller.c; sourceTree = ""; }; + A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_joystick.c; sourceTree = ""; }; + A7D8A7AD23E2513E00DCD162 /* SDL_gamepad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_gamepad.c; sourceTree = ""; }; + A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xbox360.c; sourceTree = ""; }; + A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_ps4.c; sourceTree = ""; }; + A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapijoystick.c; sourceTree = ""; }; + A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xboxone.c; sourceTree = ""; }; + A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_switch.c; sourceTree = ""; }; + A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapijoystick_c.h; sourceTree = ""; }; + A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xbox360w.c; sourceTree = ""; }; + A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_gamecube.c; sourceTree = ""; }; + A7D8A7CB23E2513E00DCD162 /* usb_ids.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = usb_ids.h; sourceTree = ""; }; + A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysjoystick.h; sourceTree = ""; }; + A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_joystick_c.h; sourceTree = ""; }; + A7D8A7D923E2513E00DCD162 /* controller_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controller_type.h; sourceTree = ""; }; + A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rwops.c; sourceTree = ""; }; + A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rwopsbundlesupport.h; sourceTree = ""; }; + A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_rwopsbundlesupport.m; sourceTree = ""; }; + A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_syspower.m; sourceTree = ""; }; + A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syspower.h; sourceTree = ""; }; + A7D8A7E723E2513F00DCD162 /* SDL_power.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_power.c; sourceTree = ""; }; + A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syspower.c; sourceTree = ""; }; + A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syspower.h; sourceTree = ""; }; + A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_assert_c.h; sourceTree = ""; }; + A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysfilesystem.c; sourceTree = ""; }; + A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_sysfilesystem.m; sourceTree = ""; }; + A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi.c; sourceTree = ""; }; + A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysloadso.c; sourceTree = ""; }; + A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysloadso.c; sourceTree = ""; }; + A7D8A86523E2513F00DCD162 /* SDL_mixer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_mixer.c; sourceTree = ""; }; + A7D8A86623E2513F00DCD162 /* SDL_wave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_wave.c; sourceTree = ""; }; + A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dummyaudio.h; sourceTree = ""; }; + A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dummyaudio.c; sourceTree = ""; }; + A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audio_c.h; sourceTree = ""; }; + A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audiodev_c.h; sourceTree = ""; }; + A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audiodev.c; sourceTree = ""; }; + A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysaudio.h; sourceTree = ""; }; + A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audiotypecvt.c; sourceTree = ""; }; + A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audiocvt.c; sourceTree = ""; }; + A7D8A8A223E2513F00DCD162 /* SDL_wave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_wave.h; sourceTree = ""; }; + A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_diskaudio.h; sourceTree = ""; }; + A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_diskaudio.c; sourceTree = ""; }; + A7D8A8B823E2513F00DCD162 /* SDL_audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audio.c; sourceTree = ""; }; + A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_coreaudio.h; sourceTree = ""; }; + A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_coreaudio.m; sourceTree = ""; }; + A7D8A8BF23E2513F00DCD162 /* SDL_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_error.c; sourceTree = ""; }; + A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hints_c.h; sourceTree = ""; }; + A7D8A8D323E2514000DCD162 /* SDL_iconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_iconv.c; sourceTree = ""; }; + A7D8A8D423E2514000DCD162 /* SDL_getenv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_getenv.c; sourceTree = ""; }; + A7D8A8D523E2514000DCD162 /* SDL_string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_string.c; sourceTree = ""; }; + A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_strtokr.c; sourceTree = ""; }; + A7D8A8D723E2514000DCD162 /* SDL_qsort.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_qsort.c; sourceTree = ""; }; + A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_stdlib.c; sourceTree = ""; }; + A7D8A8D923E2514000DCD162 /* SDL_malloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_malloc.c; sourceTree = ""; }; + A7D8A8DB23E2514000DCD162 /* SDL_render.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render.c; sourceTree = ""; }; + A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_d3dmath.h; sourceTree = ""; }; + A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_render_metal.m; sourceTree = ""; }; + A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_metal_ios.h; sourceTree = ""; }; + A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = SDL_shaders_metal.metal; sourceTree = ""; }; + A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_macos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_metal_macos.h; sourceTree = ""; }; + A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_metal_tvos.h; sourceTree = ""; }; + A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_yuv_sw_c.h; sourceTree = ""; }; + A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_yuv_sw.c; sourceTree = ""; }; + A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysrender.h; sourceTree = ""; }; + A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendpoint.c; sourceTree = ""; }; + A7D8A8F123E2514000DCD162 /* SDL_drawline.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_drawline.c; sourceTree = ""; }; + A7D8A8F223E2514000DCD162 /* SDL_blendline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendline.h; sourceTree = ""; }; + A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_drawpoint.h; sourceTree = ""; }; + A7D8A8F423E2514000DCD162 /* SDL_rotate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rotate.c; sourceTree = ""; }; + A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_render_sw_c.h; sourceTree = ""; }; + A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendfillrect.h; sourceTree = ""; }; + A7D8A8F723E2514000DCD162 /* SDL_drawline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_drawline.h; sourceTree = ""; }; + A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendpoint.h; sourceTree = ""; }; + A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_sw.c; sourceTree = ""; }; + A7D8A8FA23E2514000DCD162 /* SDL_draw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_draw.h; sourceTree = ""; }; + A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendline.c; sourceTree = ""; }; + A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_drawpoint.c; sourceTree = ""; }; + A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendfillrect.c; sourceTree = ""; }; + A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rotate.h; sourceTree = ""; }; + A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_d3dmath.c; sourceTree = ""; }; + A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gles2.c; sourceTree = ""; }; + A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_gles2.h; sourceTree = ""; }; + A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gles2funcs.h; sourceTree = ""; }; + A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_shaders_gles2.c; sourceTree = ""; }; + A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_gl.h; sourceTree = ""; }; + A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_glfuncs.h; sourceTree = ""; }; + A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gl.c; sourceTree = ""; }; + A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_shaders_gl.c; sourceTree = ""; }; + A7D8A91223E2514000DCD162 /* s_sin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_sin.c; sourceTree = ""; }; + A7D8A91323E2514000DCD162 /* s_cos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_cos.c; sourceTree = ""; }; + A7D8A91423E2514000DCD162 /* s_copysign.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_copysign.c; sourceTree = ""; }; + A7D8A91523E2514000DCD162 /* s_fabs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_fabs.c; sourceTree = ""; }; + A7D8A91623E2514000DCD162 /* k_rem_pio2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k_rem_pio2.c; sourceTree = ""; }; + A7D8A91723E2514000DCD162 /* k_sin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k_sin.c; sourceTree = ""; }; + A7D8A91823E2514000DCD162 /* s_atan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_atan.c; sourceTree = ""; }; + A7D8A91923E2514000DCD162 /* k_cos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k_cos.c; sourceTree = ""; }; + A7D8A91A23E2514000DCD162 /* s_scalbn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_scalbn.c; sourceTree = ""; }; + A7D8A91B23E2514000DCD162 /* math_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = math_private.h; sourceTree = ""; }; + A7D8A91C23E2514000DCD162 /* e_pow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_pow.c; sourceTree = ""; }; + A7D8A91D23E2514000DCD162 /* e_atan2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_atan2.c; sourceTree = ""; }; + A7D8A91E23E2514000DCD162 /* s_tan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_tan.c; sourceTree = ""; }; + A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_rem_pio2.c; sourceTree = ""; }; + A7D8A92023E2514000DCD162 /* e_fmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_fmod.c; sourceTree = ""; }; + A7D8A92123E2514000DCD162 /* e_exp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_exp.c; sourceTree = ""; }; + A7D8A92223E2514000DCD162 /* e_log10.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_log10.c; sourceTree = ""; }; + A7D8A92323E2514000DCD162 /* e_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_log.c; sourceTree = ""; }; + A7D8A92423E2514000DCD162 /* e_sqrt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_sqrt.c; sourceTree = ""; }; + A7D8A92523E2514000DCD162 /* s_floor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_floor.c; sourceTree = ""; }; + A7D8A92623E2514000DCD162 /* math_libm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = math_libm.h; sourceTree = ""; }; + A7D8A92723E2514000DCD162 /* k_tan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k_tan.c; sourceTree = ""; }; + A7D8A92A23E2514000DCD162 /* SDL_mouse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_mouse.c; sourceTree = ""; }; + A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mouse_c.h; sourceTree = ""; }; + A7D8A92C23E2514000DCD162 /* scancodes_windows.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_windows.h; sourceTree = ""; }; + A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_displayevents.c; sourceTree = ""; }; + A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dropevents_c.h; sourceTree = ""; }; + A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_windowevents.c; sourceTree = ""; }; + A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_displayevents_c.h; sourceTree = ""; }; + A7D8A93223E2514000DCD162 /* blank_cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blank_cursor.h; sourceTree = ""; }; + A7D8A93323E2514000DCD162 /* default_cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = default_cursor.h; sourceTree = ""; }; + A7D8A93423E2514000DCD162 /* scancodes_darwin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_darwin.h; sourceTree = ""; }; + A7D8A93523E2514000DCD162 /* SDL_events.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_events.c; sourceTree = ""; }; + A7D8A93623E2514000DCD162 /* scancodes_linux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_linux.h; sourceTree = ""; }; + A7D8A93723E2514000DCD162 /* SDL_touch_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_touch_c.h; sourceTree = ""; }; + A7D8A93823E2514000DCD162 /* SDL_keyboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_keyboard.c; sourceTree = ""; }; + A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_clipboardevents_c.h; sourceTree = ""; }; + A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_clipboardevents.c; sourceTree = ""; }; + A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dropevents.c; sourceTree = ""; }; + A7D8A93C23E2514000DCD162 /* SDL_quit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_quit.c; sourceTree = ""; }; + A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_keyboard_c.h; sourceTree = ""; }; + A7D8A93E23E2514000DCD162 /* SDL_touch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_touch.c; sourceTree = ""; }; + A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_xfree86.h; sourceTree = ""; }; + A7D8A94223E2514000DCD162 /* SDL_events_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_events_c.h; sourceTree = ""; }; + A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_windowevents_c.h; sourceTree = ""; }; + A7D8A94423E2514000DCD162 /* SDL_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_assert.c; sourceTree = ""; }; + BECDF66B0761BA81005FE872 /* Info-Framework.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Framework.plist"; sourceTree = ""; }; + BECDF66C0761BA81005FE872 /* SDL3.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDL3.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E2D187D228A5673500D2B4F1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E4F798192AD8D84800669F54 /* SDL_core_unsupported.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_core_unsupported.c; sourceTree = ""; }; + E4F7981B2AD8D85500669F54 /* SDL_dynapi_unsupported.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_unsupported.h; sourceTree = ""; }; + E4F7981D2AD8D86A00669F54 /* SDL_render_unsupported.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_unsupported.c; sourceTree = ""; }; + E4F7981F2AD8D87F00669F54 /* SDL_video_unsupported.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_video_unsupported.c; sourceTree = ""; }; + F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenopengles.h; sourceTree = ""; }; + F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenopengles.c; sourceTree = ""; }; + F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_combined.c; sourceTree = ""; }; + F32DDAC92AB795A30041EAA5 /* SDL_audio_channel_converters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audio_channel_converters.h; sourceTree = ""; }; + F32DDACA2AB795A30041EAA5 /* SDL_audioresample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audioresample.h; sourceTree = ""; }; + F32DDACB2AB795A30041EAA5 /* SDL_audioqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audioqueue.c; sourceTree = ""; }; + F32DDACC2AB795A30041EAA5 /* SDL_audio_resampler_filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audio_resampler_filter.h; sourceTree = ""; }; + F32DDACD2AB795A30041EAA5 /* SDL_audioqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audioqueue.h; sourceTree = ""; }; + F32DDACE2AB795A30041EAA5 /* SDL_audioresample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audioresample.c; sourceTree = ""; }; + F36C7AD0294BA009004D61C3 /* SDL_runapp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_runapp.c; sourceTree = ""; }; + F376F6182559B29300CFC0BC /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.1.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; }; + F376F61A2559B2AF00CFC0BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/iOSSupport/System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + F376F6312559B31D00CFC0BC /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/iOSSupport/System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; + F376F6CC2559B54500CFC0BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + F376F6D82559B59600CFC0BC /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/AudioToolbox.framework; sourceTree = DEVELOPER_DIR; }; + F376F6DA2559B5A000CFC0BC /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; }; + F376F6DC2559B5A900CFC0BC /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; }; + F376F6DE2559B5BA00CFC0BC /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; }; + F376F6E02559B5CA00CFC0BC /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreVideo.framework; sourceTree = DEVELOPER_DIR; }; + F376F6F72559B5EC00CFC0BC /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + F376F71E2559B73A00CFC0BC /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + F376F7212559B74900CFC0BC /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; }; + F376F7252559B76800CFC0BC /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; }; + F376F7272559B77100CFC0BC /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreAudio.framework; sourceTree = DEVELOPER_DIR; }; + F37A8E1928405AA100C38E95 /* CMake */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CMake; sourceTree = ""; }; + F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = System/Library/Frameworks/CoreHaptics.framework; sourceTree = SDKROOT; }; + F37DC5F425350ECC0002E6F7 /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreHaptics.framework; sourceTree = DEVELOPER_DIR; }; + F3820712284F3609004DD584 /* controller_type.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = controller_type.c; sourceTree = ""; }; + F382071C284F362F004DD584 /* SDL_guid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_guid.c; sourceTree = ""; }; + F382339B2738ED6600F7F527 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS15.0.sdk/System/Library/Frameworks/CoreBluetooth.framework; sourceTree = DEVELOPER_DIR; }; + F386F6E42884663E001840AA /* SDL_log_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_log_c.h; sourceTree = ""; }; + F386F6E52884663E001840AA /* SDL_utils_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_utils_c.h; sourceTree = ""; }; + F386F6E62884663E001840AA /* SDL_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_utils.c; sourceTree = ""; }; + F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_ps3.c; sourceTree = ""; }; + F395BF6425633B2400942BFF /* SDL_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_crc32.c; sourceTree = ""; }; + F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_iokitjoystick_c.h; sourceTree = ""; }; + F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_iokitjoystick.c; sourceTree = ""; }; + F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_mfijoystick.m; sourceTree = ""; }; + F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mfijoystick_c.h; sourceTree = ""; }; + F3973FA028A59BDD00B84553 /* SDL_vacopy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_vacopy.h; sourceTree = ""; }; + F3973FA128A59BDD00B84553 /* SDL_crc16.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_crc16.c; sourceTree = ""; }; + F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_stadia.c; sourceTree = ""; }; + F3990E012A788303000D8759 /* SDL_hidapi_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi_c.h; sourceTree = ""; }; + F3990E022A788303000D8759 /* SDL_hidapi_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi_mac.h; sourceTree = ""; }; + F3990E032A788303000D8759 /* SDL_hidapi_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi_ios.h; sourceTree = ""; }; + F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_ps5.c; sourceTree = ""; }; + F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_sysurl.m; sourceTree = ""; }; + F3B38CCA296E2E52005DA6D3 /* SDL_main_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_main_impl.h; path = SDL3/SDL_main_impl.h; sourceTree = ""; }; + F3B38CCB296E2E52005DA6D3 /* SDL_platform_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_platform_defines.h; path = SDL3/SDL_platform_defines.h; sourceTree = ""; }; + F3B38CCC296E2E52005DA6D3 /* SDL_init.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_init.h; path = SDL3/SDL_init.h; sourceTree = ""; }; + F3B38CCD296E2E52005DA6D3 /* SDL_oldnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_oldnames.h; path = SDL3/SDL_oldnames.h; sourceTree = ""; }; + F3B38CCE296E2E52005DA6D3 /* SDL_intrin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_intrin.h; path = SDL3/SDL_intrin.h; sourceTree = ""; }; + F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_wii.c; sourceTree = ""; }; + F3E5A6EA2AD5E0E600293D83 /* SDL_properties.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_properties.c; sourceTree = ""; }; + F3E5A6EC2AD5E10800293D83 /* SDL_properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_properties.h; path = SDL3/SDL_properties.h; sourceTree = ""; }; + F3F07D59269640160074468B /* SDL_hidapi_luna.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_luna.c; sourceTree = ""; }; + F3F7D8AA2933074900816151 /* SDL_audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_audio.h; path = SDL3/SDL_audio.h; sourceTree = ""; }; + F3F7D8AB2933074900816151 /* SDL_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_platform.h; path = SDL3/SDL_platform.h; sourceTree = ""; }; + F3F7D8AC2933074900816151 /* SDL_stdinc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_stdinc.h; path = SDL3/SDL_stdinc.h; sourceTree = ""; }; + F3F7D8AD2933074900816151 /* SDL_haptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_haptic.h; path = SDL3/SDL_haptic.h; sourceTree = ""; }; + F3F7D8AE2933074900816151 /* SDL_opengles2_gl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_opengles2_gl2.h; path = SDL3/SDL_opengles2_gl2.h; sourceTree = ""; }; + F3F7D8AF2933074900816151 /* SDL_touch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_touch.h; path = SDL3/SDL_touch.h; sourceTree = ""; }; + F3F7D8B02933074900816151 /* SDL_main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_main.h; path = SDL3/SDL_main.h; sourceTree = ""; }; + F3F7D8B12933074900816151 /* SDL_opengles2_khrplatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_opengles2_khrplatform.h; path = SDL3/SDL_opengles2_khrplatform.h; sourceTree = ""; }; + F3F7D8B22933074900816151 /* SDL_timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_timer.h; path = SDL3/SDL_timer.h; sourceTree = ""; }; + F3F7D8B32933074900816151 /* SDL_hints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_hints.h; path = SDL3/SDL_hints.h; sourceTree = ""; }; + F3F7D8B42933074900816151 /* SDL_revision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_revision.h; path = SDL3/SDL_revision.h; sourceTree = ""; }; + F3F7D8B52933074A00816151 /* SDL_pixels.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_pixels.h; path = SDL3/SDL_pixels.h; sourceTree = ""; }; + F3F7D8B62933074A00816151 /* SDL_messagebox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_messagebox.h; path = SDL3/SDL_messagebox.h; sourceTree = ""; }; + F3F7D8B72933074A00816151 /* SDL_log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_log.h; path = SDL3/SDL_log.h; sourceTree = ""; }; + F3F7D8B82933074A00816151 /* SDL_egl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_egl.h; path = SDL3/SDL_egl.h; sourceTree = ""; }; + F3F7D8B92933074A00816151 /* SDL_atomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_atomic.h; path = SDL3/SDL_atomic.h; sourceTree = ""; }; + F3F7D8BA2933074A00816151 /* SDL_shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_shape.h; path = SDL3/SDL_shape.h; sourceTree = ""; }; + F3F7D8BB2933074A00816151 /* SDL_surface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_surface.h; path = SDL3/SDL_surface.h; sourceTree = ""; }; + F3F7D8BC2933074A00816151 /* SDL_error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_error.h; path = SDL3/SDL_error.h; sourceTree = ""; }; + F3F7D8BD2933074A00816151 /* SDL_opengles2_gl2ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_opengles2_gl2ext.h; path = SDL3/SDL_opengles2_gl2ext.h; sourceTree = ""; }; + F3F7D8BE2933074A00816151 /* SDL_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_endian.h; path = SDL3/SDL_endian.h; sourceTree = ""; }; + F3F7D8BF2933074A00816151 /* SDL_syswm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_syswm.h; path = SDL3/SDL_syswm.h; sourceTree = ""; }; + F3F7D8C02933074A00816151 /* SDL_opengl_glext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_opengl_glext.h; path = SDL3/SDL_opengl_glext.h; sourceTree = ""; }; + F3F7D8C12933074B00816151 /* SDL_scancode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_scancode.h; path = SDL3/SDL_scancode.h; sourceTree = ""; }; + F3F7D8C22933074B00816151 /* SDL_sensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_sensor.h; path = SDL3/SDL_sensor.h; sourceTree = ""; }; + F3F7D8C32933074B00816151 /* SDL_keyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_keyboard.h; path = SDL3/SDL_keyboard.h; sourceTree = ""; }; + F3F7D8C42933074B00816151 /* SDL_locale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_locale.h; path = SDL3/SDL_locale.h; sourceTree = ""; }; + F3F7D8C52933074B00816151 /* SDL_video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_video.h; path = SDL3/SDL_video.h; sourceTree = ""; }; + F3F7D8C62933074B00816151 /* SDL_opengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_opengles.h; path = SDL3/SDL_opengles.h; sourceTree = ""; }; + F3F7D8C72933074B00816151 /* SDL_opengles2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_opengles2.h; path = SDL3/SDL_opengles2.h; sourceTree = ""; }; + F3F7D8C82933074B00816151 /* SDL_rwops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_rwops.h; path = SDL3/SDL_rwops.h; sourceTree = ""; }; + F3F7D8C92933074B00816151 /* SDL_opengles2_gl2platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_opengles2_gl2platform.h; path = SDL3/SDL_opengles2_gl2platform.h; sourceTree = ""; }; + F3F7D8CA2933074B00816151 /* SDL_hidapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_hidapi.h; path = SDL3/SDL_hidapi.h; sourceTree = ""; }; + F3F7D8CB2933074B00816151 /* SDL_events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_events.h; path = SDL3/SDL_events.h; sourceTree = ""; }; + F3F7D8CC2933074B00816151 /* SDL_keycode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_keycode.h; path = SDL3/SDL_keycode.h; sourceTree = ""; }; + F3F7D8CD2933074C00816151 /* SDL_thread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_thread.h; path = SDL3/SDL_thread.h; sourceTree = ""; }; + F3F7D8CE2933074C00816151 /* SDL_blendmode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_blendmode.h; path = SDL3/SDL_blendmode.h; sourceTree = ""; }; + F3F7D8CF2933074C00816151 /* SDL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL.h; path = SDL3/SDL.h; sourceTree = ""; }; + F3F7D8D02933074C00816151 /* SDL_gamepad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_gamepad.h; path = SDL3/SDL_gamepad.h; sourceTree = ""; }; + F3F7D8D12933074C00816151 /* SDL_guid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_guid.h; path = SDL3/SDL_guid.h; sourceTree = ""; }; + F3F7D8D22933074C00816151 /* SDL_metal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_metal.h; path = SDL3/SDL_metal.h; sourceTree = ""; }; + F3F7D8D32933074C00816151 /* SDL_joystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_joystick.h; path = SDL3/SDL_joystick.h; sourceTree = ""; }; + F3F7D8D42933074C00816151 /* SDL_vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_vulkan.h; path = SDL3/SDL_vulkan.h; sourceTree = ""; }; + F3F7D8D52933074C00816151 /* SDL_misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_misc.h; path = SDL3/SDL_misc.h; sourceTree = ""; }; + F3F7D8D62933074C00816151 /* SDL_filesystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_filesystem.h; path = SDL3/SDL_filesystem.h; sourceTree = ""; }; + F3F7D8D72933074C00816151 /* SDL_clipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_clipboard.h; path = SDL3/SDL_clipboard.h; sourceTree = ""; }; + F3F7D8D82933074C00816151 /* SDL_bits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_bits.h; path = SDL3/SDL_bits.h; sourceTree = ""; }; + F3F7D8D92933074C00816151 /* SDL_loadso.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_loadso.h; path = SDL3/SDL_loadso.h; sourceTree = ""; }; + F3F7D8DA2933074D00816151 /* SDL_mouse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_mouse.h; path = SDL3/SDL_mouse.h; sourceTree = ""; }; + F3F7D8DB2933074D00816151 /* SDL_power.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_power.h; path = SDL3/SDL_power.h; sourceTree = ""; }; + F3F7D8DD2933074D00816151 /* SDL_cpuinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_cpuinfo.h; path = SDL3/SDL_cpuinfo.h; sourceTree = ""; }; + F3F7D8DE2933074D00816151 /* SDL_render.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_render.h; path = SDL3/SDL_render.h; sourceTree = ""; }; + F3F7D8DF2933074D00816151 /* SDL_quit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_quit.h; path = SDL3/SDL_quit.h; sourceTree = ""; }; + F3F7D8E02933074D00816151 /* SDL_assert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_assert.h; path = SDL3/SDL_assert.h; sourceTree = ""; }; + F3F7D8E12933074D00816151 /* SDL_opengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_opengl.h; path = SDL3/SDL_opengl.h; sourceTree = ""; }; + F3F7D8E22933074D00816151 /* SDL_rect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_rect.h; path = SDL3/SDL_rect.h; sourceTree = ""; }; + F3F7D8E32933074D00816151 /* SDL_copying.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_copying.h; path = SDL3/SDL_copying.h; sourceTree = ""; }; + F3F7D8E42933074D00816151 /* SDL_version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_version.h; path = SDL3/SDL_version.h; sourceTree = ""; }; + F3F7D8E52933074D00816151 /* SDL_close_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_close_code.h; path = SDL3/SDL_close_code.h; sourceTree = ""; }; + F3F7D8E62933074E00816151 /* SDL_mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_mutex.h; path = SDL3/SDL_mutex.h; sourceTree = ""; }; + F3F7D8E72933074E00816151 /* SDL_begin_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_begin_code.h; path = SDL3/SDL_begin_code.h; sourceTree = ""; }; + F3F7D8E82933074E00816151 /* SDL_system.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_system.h; path = SDL3/SDL_system.h; sourceTree = ""; }; + F59C710300D5CB5801000001 /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ReadMe.txt; sourceTree = ""; }; + F59C710600D5CB5801000001 /* SDL.info */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SDL.info; sourceTree = ""; }; + F5A2EF3900C6A39A01000001 /* BUGS.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = BUGS.txt; path = ../../BUGS.txt; sourceTree = SOURCE_ROOT; }; + FA73671C19A540EF004122E4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + BECDF6680761BA81005FE872 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A7381E971D8B6A0300B177DD /* AudioToolbox.framework in Frameworks */, + 00D0D0D810675E46004B05EF /* Carbon.framework in Frameworks */, + 007317A40858DECD00B2BC32 /* Cocoa.framework in Frameworks */, + A7381E961D8B69D600B177DD /* CoreAudio.framework in Frameworks */, + 557D0CFA254586CA003913E3 /* CoreHaptics.framework in Frameworks */, + 00D0D08410675DD9004B05EF /* CoreFoundation.framework in Frameworks */, + FA73671D19A540EF004122E4 /* CoreVideo.framework in Frameworks */, + 00CFA89D106B4BA100758660 /* ForceFeedback.framework in Frameworks */, + 557D0CFB254586D7003913E3 /* GameController.framework in Frameworks */, + 007317A60858DECD00B2BC32 /* IOKit.framework in Frameworks */, + 564624381FF821DA0074AC87 /* Metal.framework in Frameworks */, + 564624361FF821C20074AC87 /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0153844A006D81B07F000001 /* Public Headers */ = { + isa = PBXGroup; + children = ( + F3F7D8E02933074D00816151 /* SDL_assert.h */, + F3F7D8B92933074A00816151 /* SDL_atomic.h */, + F3F7D8AA2933074900816151 /* SDL_audio.h */, + F3F7D8E72933074E00816151 /* SDL_begin_code.h */, + F3F7D8D82933074C00816151 /* SDL_bits.h */, + F3F7D8CE2933074C00816151 /* SDL_blendmode.h */, + F3F7D8D72933074C00816151 /* SDL_clipboard.h */, + F3F7D8E52933074D00816151 /* SDL_close_code.h */, + F3F7D8E32933074D00816151 /* SDL_copying.h */, + F3F7D8DD2933074D00816151 /* SDL_cpuinfo.h */, + F3F7D8B82933074A00816151 /* SDL_egl.h */, + F3F7D8BE2933074A00816151 /* SDL_endian.h */, + F3F7D8BC2933074A00816151 /* SDL_error.h */, + F3F7D8CB2933074B00816151 /* SDL_events.h */, + F3F7D8D62933074C00816151 /* SDL_filesystem.h */, + F3F7D8D02933074C00816151 /* SDL_gamepad.h */, + F3F7D8D12933074C00816151 /* SDL_guid.h */, + F3F7D8AD2933074900816151 /* SDL_haptic.h */, + F3F7D8CA2933074B00816151 /* SDL_hidapi.h */, + F3F7D8B32933074900816151 /* SDL_hints.h */, + F3B38CCC296E2E52005DA6D3 /* SDL_init.h */, + F3B38CCE296E2E52005DA6D3 /* SDL_intrin.h */, + F3F7D8D32933074C00816151 /* SDL_joystick.h */, + F3F7D8C32933074B00816151 /* SDL_keyboard.h */, + F3F7D8CC2933074B00816151 /* SDL_keycode.h */, + F3F7D8D92933074C00816151 /* SDL_loadso.h */, + F3F7D8C42933074B00816151 /* SDL_locale.h */, + F3F7D8B72933074A00816151 /* SDL_log.h */, + F3B38CCA296E2E52005DA6D3 /* SDL_main_impl.h */, + F3F7D8B02933074900816151 /* SDL_main.h */, + F3F7D8B62933074A00816151 /* SDL_messagebox.h */, + F3F7D8D22933074C00816151 /* SDL_metal.h */, + F3F7D8D52933074C00816151 /* SDL_misc.h */, + F3F7D8DA2933074D00816151 /* SDL_mouse.h */, + F3F7D8E62933074E00816151 /* SDL_mutex.h */, + F3B38CCD296E2E52005DA6D3 /* SDL_oldnames.h */, + F3F7D8C02933074A00816151 /* SDL_opengl_glext.h */, + F3F7D8E12933074D00816151 /* SDL_opengl.h */, + F3F7D8C62933074B00816151 /* SDL_opengles.h */, + F3F7D8AE2933074900816151 /* SDL_opengles2_gl2.h */, + F3F7D8BD2933074A00816151 /* SDL_opengles2_gl2ext.h */, + F3F7D8C92933074B00816151 /* SDL_opengles2_gl2platform.h */, + F3F7D8B12933074900816151 /* SDL_opengles2_khrplatform.h */, + F3F7D8C72933074B00816151 /* SDL_opengles2.h */, + F3F7D8B52933074A00816151 /* SDL_pixels.h */, + F3B38CCB296E2E52005DA6D3 /* SDL_platform_defines.h */, + F3F7D8AB2933074900816151 /* SDL_platform.h */, + F3F7D8DB2933074D00816151 /* SDL_power.h */, + F3E5A6EC2AD5E10800293D83 /* SDL_properties.h */, + F3F7D8DF2933074D00816151 /* SDL_quit.h */, + F3F7D8E22933074D00816151 /* SDL_rect.h */, + F3F7D8DE2933074D00816151 /* SDL_render.h */, + F3F7D8B42933074900816151 /* SDL_revision.h */, + F3F7D8C82933074B00816151 /* SDL_rwops.h */, + F3F7D8C12933074B00816151 /* SDL_scancode.h */, + F3F7D8C22933074B00816151 /* SDL_sensor.h */, + F3F7D8BA2933074A00816151 /* SDL_shape.h */, + F3F7D8AC2933074900816151 /* SDL_stdinc.h */, + F3F7D8BB2933074A00816151 /* SDL_surface.h */, + F3F7D8E82933074E00816151 /* SDL_system.h */, + F3F7D8BF2933074A00816151 /* SDL_syswm.h */, + F3F7D8CD2933074C00816151 /* SDL_thread.h */, + F3F7D8B22933074900816151 /* SDL_timer.h */, + F3F7D8AF2933074900816151 /* SDL_touch.h */, + F3F7D8E42933074D00816151 /* SDL_version.h */, + F3F7D8C52933074B00816151 /* SDL_video.h */, + F3F7D8D42933074C00816151 /* SDL_vulkan.h */, + F3F7D8CF2933074C00816151 /* SDL.h */, + ); + name = "Public Headers"; + path = ../../include; + sourceTree = ""; + }; + 034768DDFF38A45A11DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + BECDF66C0761BA81005FE872 /* SDL3.framework */, + ); + name = Products; + sourceTree = ""; + }; + 0867D691FE84028FC02AAC07 /* SDLFramework */ = { + isa = PBXGroup; + children = ( + F5A2EF3900C6A39A01000001 /* BUGS.txt */, + F59C70FC00D5CB5801000001 /* pkg-support */, + 0153844A006D81B07F000001 /* Public Headers */, + 08FB77ACFE841707C02AAC07 /* Library Source */, + E2D187D028A5673500D2B4F1 /* SDL3 */, + 034768DDFF38A45A11DB9C8B /* Products */, + BECDF66B0761BA81005FE872 /* Info-Framework.plist */, + 564624341FF821B70074AC87 /* Frameworks */, + ); + comments = "To build Universal Binaries, we have experimented with a variety of different options.\nThe complication is that we must retain compatibility with at least 10.2. \nThe Universal Binary defaults only work for > 10.3.9\n\nSo far, we have found:\ngcc 4.0.0 with Xcode 2.1 always links against libgcc_s. gcc 4.0.1 from Xcode 2.2 fixes this problem.\n\nBut gcc 4.0 will not work with < 10.3.9 because we continue to get an undefined symbol to _fprintf$LDBL128.\nSo we must use gcc 3.3 on PPC to accomplish 10.2 support. (But 4.0 is required for i386.)\n\nSetting the deployment target to 10.4 will disable prebinding, so for PPC, we set it less than 10.4 to preserve prebinding for legacy support.\n\nSetting the PPC SDKROOT to /Developers/SDKs/MacOSX10.2.8.sdk will link to 63.0.0 libSystem.B.dylib. Leaving it at current or 10.4u links to 88.1.2. However, as long as we are using gcc 3.3, it doesn't seem to matter as testing has demonstrated both will run. We have decided not to invoke the 10.2.8 SDK because it is not a default installed component with Xcode which will probably cause most people problems. However, rather than deleting the SDKROOT_ppc entry entirely, we have mapped it to 10.4u in case we decide we need to change this setting.\n\nTo use Altivec or SSE, we needed architecture specific flags:\nOTHER_CFLAGS_ppc\nOTHER_CFLAGS_i386\nOTHER_CFLAGS=$(OTHER_CFLAGS_($CURRENT_ARCH))\n\nThe general OTHER_CFLAGS needed to be manually mapped to architecture specific options because Xcode didn't do this automatically for us.\n\n\n"; + indentWidth = 4; + name = SDLFramework; + sourceTree = ""; + tabWidth = 4; + usesTabs = 0; + }; + 08FB77ACFE841707C02AAC07 /* Library Source */ = { + isa = PBXGroup; + children = ( + A7D8A57223E2513D00DCD162 /* atomic */, + A7D8A86423E2513F00DCD162 /* audio */, + F36C7ACF294B9F5E004D61C3 /* core */, + A7D8A77423E2513E00DCD162 /* cpuinfo */, + A7D8A5D723E2513D00DCD162 /* dynapi */, + A7D8A92923E2514000DCD162 /* events */, + A7D8A7DA23E2513E00DCD162 /* file */, + A7D8A7F623E2513F00DCD162 /* filesystem */, + A7D8A5C223E2513D00DCD162 /* haptic */, + A7D8A80923E2513F00DCD162 /* hidapi */, + A7D8A79D23E2513E00DCD162 /* joystick */, + A7D8A91123E2514000DCD162 /* libm */, + A7D8A85D23E2513F00DCD162 /* loadso */, + 566E26CB246274AE00718109 /* locale */, + 5616CA47252BB278005D5928 /* misc */, + A7D8A7DF23E2513F00DCD162 /* power */, + A7D8A8DA23E2514000DCD162 /* render */, + A7D8A57623E2513D00DCD162 /* sensor */, + A7D8A8D223E2514000DCD162 /* stdlib */, + A7D8A77623E2513E00DCD162 /* thread */, + A7D8A5DE23E2513D00DCD162 /* timer */, + A7D8A5EB23E2513D00DCD162 /* video */, + A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */, + A7D8A94423E2514000DCD162 /* SDL_assert.c */, + A7D8A57523E2513D00DCD162 /* SDL_error_c.h */, + A7D8A8BF23E2513F00DCD162 /* SDL_error.c */, + F382071C284F362F004DD584 /* SDL_guid.c */, + 000078E1881E857EBB6C0000 /* SDL_hashtable.c */, + 0000B6ADCD88CAD6610F0000 /* SDL_hashtable.h */, + A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */, + A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */, + A7D8A58323E2513D00DCD162 /* SDL_internal.h */, + A1BB8B6127F6CF320057CFA8 /* SDL_list.c */, + A1BB8B6227F6CF330057CFA8 /* SDL_list.h */, + F386F6E42884663E001840AA /* SDL_log_c.h */, + A7D8A5DD23E2513D00DCD162 /* SDL_log.c */, + F3E5A6EA2AD5E0E600293D83 /* SDL_properties.c */, + F386F6E52884663E001840AA /* SDL_utils_c.h */, + F386F6E62884663E001840AA /* SDL_utils.c */, + A7D8A57123E2513D00DCD162 /* SDL.c */, + ); + name = "Library Source"; + path = ../../src; + sourceTree = ""; + }; + 5616CA47252BB278005D5928 /* misc */ = { + isa = PBXGroup; + children = ( + F3ADAB8C2576F08500A6B1D9 /* ios */, + 5616CA48252BB285005D5928 /* macos */, + 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */, + 5616CA49252BB2A5005D5928 /* SDL_url.c */, + ); + path = misc; + sourceTree = ""; + }; + 5616CA48252BB285005D5928 /* macos */ = { + isa = PBXGroup; + children = ( + 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */, + ); + path = macos; + sourceTree = ""; + }; + 564624341FF821B70074AC87 /* Frameworks */ = { + isa = PBXGroup; + children = ( + F382339B2738ED6600F7F527 /* CoreBluetooth.framework */, + F376F7272559B77100CFC0BC /* CoreAudio.framework */, + F376F7252559B76800CFC0BC /* CoreFoundation.framework */, + F376F7212559B74900CFC0BC /* Metal.framework */, + F376F71E2559B73A00CFC0BC /* QuartzCore.framework */, + F376F6F72559B5EC00CFC0BC /* CoreGraphics.framework */, + F376F6E02559B5CA00CFC0BC /* CoreVideo.framework */, + F376F6DE2559B5BA00CFC0BC /* GameController.framework */, + F376F6DC2559B5A900CFC0BC /* OpenGLES.framework */, + F376F6DA2559B5A000CFC0BC /* AVFoundation.framework */, + F376F6D82559B59600CFC0BC /* AudioToolbox.framework */, + F376F6CC2559B54500CFC0BC /* UIKit.framework */, + F376F6312559B31D00CFC0BC /* GameController.framework */, + F376F61A2559B2AF00CFC0BC /* UIKit.framework */, + F376F6182559B29300CFC0BC /* OpenGLES.framework */, + F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */, + F37DC5F425350ECC0002E6F7 /* CoreHaptics.framework */, + A75FDAC323E28BA700529352 /* CoreBluetooth.framework */, + A75FDAC123E28B9600529352 /* CoreGraphics.framework */, + A75FDABF23E28B8000529352 /* CoreMotion.framework */, + A75FDABD23E28B6200529352 /* GameController.framework */, + A75FDAB923E28A7A00529352 /* AVFoundation.framework */, + A7381E931D8B69C300B177DD /* AudioToolbox.framework */, + 007317C10858E15000B2BC32 /* Carbon.framework */, + 0073179D0858DECD00B2BC32 /* Cocoa.framework */, + A7381E951D8B69D600B177DD /* CoreAudio.framework */, + 00D0D08310675DD9004B05EF /* CoreFoundation.framework */, + FA73671C19A540EF004122E4 /* CoreVideo.framework */, + 00CFA89C106B4BA100758660 /* ForceFeedback.framework */, + 0073179F0858DECD00B2BC32 /* IOKit.framework */, + 564624371FF821CB0074AC87 /* Metal.framework */, + 564624351FF821B80074AC87 /* QuartzCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 566E26CB246274AE00718109 /* locale */ = { + isa = PBXGroup; + children = ( + 566E26EA246274E800718109 /* macos */, + 566E26CD246274CB00718109 /* SDL_locale.c */, + 566E26CE246274CC00718109 /* SDL_syslocale.h */, + ); + name = locale; + sourceTree = ""; + }; + 566E26EA246274E800718109 /* macos */ = { + isa = PBXGroup; + children = ( + 566E26CC246274CB00718109 /* SDL_syslocale.m */, + ); + name = macos; + sourceTree = ""; + }; + 75E09157241EA924004729E1 /* virtual */ = { + isa = PBXGroup; + children = ( + 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */, + 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */, + ); + path = virtual; + sourceTree = ""; + }; + A75FDAA423E2790500529352 /* ios */ = { + isa = PBXGroup; + children = ( + A75FDAA523E2792500529352 /* hid.m */, + ); + path = ios; + sourceTree = ""; + }; + A75FDB9123E4C8B800529352 /* mac */ = { + isa = PBXGroup; + children = ( + A75FDB9223E4C8DB00529352 /* hid.c */, + ); + path = mac; + sourceTree = ""; + }; + A7D8A57223E2513D00DCD162 /* atomic */ = { + isa = PBXGroup; + children = ( + A7D8A57423E2513D00DCD162 /* SDL_atomic.c */, + A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */, + ); + path = atomic; + sourceTree = ""; + }; + A7D8A57623E2513D00DCD162 /* sensor */ = { + isa = PBXGroup; + children = ( + A7D8A57A23E2513D00DCD162 /* coremotion */, + A7D8A57723E2513D00DCD162 /* dummy */, + A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */, + A7D8A58223E2513D00DCD162 /* SDL_sensor.c */, + A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */, + ); + path = sensor; + sourceTree = ""; + }; + A7D8A57723E2513D00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */, + A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A57A23E2513D00DCD162 /* coremotion */ = { + isa = PBXGroup; + children = ( + A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */, + A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */, + ); + path = coremotion; + sourceTree = ""; + }; + A7D8A5C223E2513D00DCD162 /* haptic */ = { + isa = PBXGroup; + children = ( + A7D8A5CD23E2513D00DCD162 /* darwin */, + A7D8A5C323E2513D00DCD162 /* dummy */, + A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */, + A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */, + A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */, + ); + path = haptic; + sourceTree = ""; + }; + A7D8A5C323E2513D00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A5CD23E2513D00DCD162 /* darwin */ = { + isa = PBXGroup; + children = ( + A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */, + A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */, + ); + path = darwin; + sourceTree = ""; + }; + A7D8A5D723E2513D00DCD162 /* dynapi */ = { + isa = PBXGroup; + children = ( + A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */, + A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */, + A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */, + A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */, + E4F7981B2AD8D85500669F54 /* SDL_dynapi_unsupported.h */, + ); + path = dynapi; + sourceTree = ""; + }; + A7D8A5DE23E2513D00DCD162 /* timer */ = { + isa = PBXGroup; + children = ( + A7D8A5E123E2513D00DCD162 /* dummy */, + A7D8A5E723E2513D00DCD162 /* unix */, + A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */, + A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */, + ); + path = timer; + sourceTree = ""; + }; + A7D8A5E123E2513D00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A5E723E2513D00DCD162 /* unix */ = { + isa = PBXGroup; + children = ( + A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */, + ); + path = unix; + sourceTree = ""; + }; + A7D8A5EB23E2513D00DCD162 /* video */ = { + isa = PBXGroup; + children = ( + A7D8A67D23E2513E00DCD162 /* cocoa */, + A7D8A60523E2513D00DCD162 /* dummy */, + A7D8A72123E2513E00DCD162 /* khronos */, + A7D8A5EC23E2513D00DCD162 /* offscreen */, + A7D8A61823E2513D00DCD162 /* uikit */, + A7D8A76C23E2513E00DCD162 /* yuv2rgb */, + A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */, + A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */, + A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */, + A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */, + A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */, + A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */, + A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */, + A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */, + A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */, + A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */, + A7D8A64C23E2513D00DCD162 /* SDL_blit.c */, + A7D8A76B23E2513E00DCD162 /* SDL_blit.h */, + A7D8A77323E2513E00DCD162 /* SDL_bmp.c */, + A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */, + A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */, + A7D8A6B623E2513E00DCD162 /* SDL_egl.c */, + A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */, + A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */, + A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */, + A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */, + A7D8A63423E2513D00DCD162 /* SDL_rect.c */, + A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */, + A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */, + A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */, + A7D8A76923E2513E00DCD162 /* SDL_shape.c */, + A7D8A60323E2513D00DCD162 /* SDL_stretch.c */, + A7D8A61423E2513D00DCD162 /* SDL_surface.c */, + A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */, + A7D8A60E23E2513D00DCD162 /* SDL_video.c */, + E4F7981F2AD8D87F00669F54 /* SDL_video_unsupported.c */, + A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */, + A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */, + A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */, + A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */, + ); + path = video; + sourceTree = ""; + }; + A7D8A5EC23E2513D00DCD162 /* offscreen */ = { + isa = PBXGroup; + children = ( + A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */, + A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */, + A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */, + A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */, + F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */, + F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */, + A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */, + A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */, + A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */, + A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */, + ); + path = offscreen; + sourceTree = ""; + }; + A7D8A60523E2513D00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */, + A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */, + A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */, + A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */, + A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */, + A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A61823E2513D00DCD162 /* uikit */ = { + isa = PBXGroup; + children = ( + A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */, + A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */, + A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */, + A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */, + A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */, + A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */, + A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */, + A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */, + A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */, + A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */, + A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */, + A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */, + A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */, + A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */, + A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */, + A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */, + A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */, + A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */, + A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */, + A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */, + A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */, + A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */, + A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */, + A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */, + A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */, + A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */, + ); + path = uikit; + sourceTree = ""; + }; + A7D8A67D23E2513E00DCD162 /* cocoa */ = { + isa = PBXGroup; + children = ( + A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */, + A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */, + A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */, + A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */, + A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */, + A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */, + A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */, + A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */, + A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */, + A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */, + A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */, + A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */, + A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */, + A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */, + A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */, + A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */, + A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */, + A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */, + A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */, + A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */, + A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */, + A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */, + A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */, + A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */, + A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */, + A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */, + ); + path = cocoa; + sourceTree = ""; + }; + A7D8A72123E2513E00DCD162 /* khronos */ = { + isa = PBXGroup; + children = ( + A7D8A72823E2513E00DCD162 /* EGL */, + A7D8A72223E2513E00DCD162 /* GLES2 */, + A7D8A72623E2513E00DCD162 /* KHR */, + A7D8A72C23E2513E00DCD162 /* vulkan */, + ); + path = khronos; + sourceTree = ""; + }; + A7D8A72223E2513E00DCD162 /* GLES2 */ = { + isa = PBXGroup; + children = ( + A7D8A72423E2513E00DCD162 /* gl2.h */, + A7D8A72323E2513E00DCD162 /* gl2ext.h */, + A7D8A72523E2513E00DCD162 /* gl2platform.h */, + ); + path = GLES2; + sourceTree = ""; + }; + A7D8A72623E2513E00DCD162 /* KHR */ = { + isa = PBXGroup; + children = ( + A7D8A72723E2513E00DCD162 /* khrplatform.h */, + ); + path = KHR; + sourceTree = ""; + }; + A7D8A72823E2513E00DCD162 /* EGL */ = { + isa = PBXGroup; + children = ( + A7D8A72923E2513E00DCD162 /* egl.h */, + A7D8A72A23E2513E00DCD162 /* eglext.h */, + A7D8A72B23E2513E00DCD162 /* eglplatform.h */, + ); + path = EGL; + sourceTree = ""; + }; + A7D8A72C23E2513E00DCD162 /* vulkan */ = { + isa = PBXGroup; + children = ( + A7D8A72E23E2513E00DCD162 /* vk_icd.h */, + A7D8A72D23E2513E00DCD162 /* vk_layer.h */, + A7D8A73123E2513E00DCD162 /* vk_platform.h */, + A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */, + A7D8A73E23E2513E00DCD162 /* vulkan_android.h */, + A7D8A73C23E2513E00DCD162 /* vulkan_core.h */, + A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */, + A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */, + A7D8A73623E2513E00DCD162 /* vulkan_macos.h */, + A7D8A73923E2513E00DCD162 /* vulkan_mir.h */, + A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */, + A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */, + A7D8A73523E2513E00DCD162 /* vulkan_win32.h */, + A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */, + A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */, + A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */, + A7D8A73023E2513E00DCD162 /* vulkan.h */, + A7D8A73223E2513E00DCD162 /* vulkan.hpp */, + ); + path = vulkan; + sourceTree = ""; + }; + A7D8A76C23E2513E00DCD162 /* yuv2rgb */ = { + isa = PBXGroup; + children = ( + A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */, + A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */, + A7D8A76E23E2513E00DCD162 /* yuv_rgb.c */, + A7D8A77223E2513E00DCD162 /* yuv_rgb.h */, + ); + path = yuv2rgb; + sourceTree = ""; + }; + A7D8A77423E2513E00DCD162 /* cpuinfo */ = { + isa = PBXGroup; + children = ( + A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */, + ); + path = cpuinfo; + sourceTree = ""; + }; + A7D8A77623E2513E00DCD162 /* thread */ = { + isa = PBXGroup; + children = ( + A7D8A78123E2513E00DCD162 /* pthread */, + A7D8A77723E2513E00DCD162 /* SDL_systhread.h */, + A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */, + A7D8A77923E2513E00DCD162 /* SDL_thread.c */, + ); + path = thread; + sourceTree = ""; + }; + A7D8A78123E2513E00DCD162 /* pthread */ = { + isa = PBXGroup; + children = ( + 56A2373229F9C113003CCA5F /* SDL_sysrwlock.c */, + A7D8A78523E2513E00DCD162 /* SDL_syscond.c */, + A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */, + A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */, + A7D8A78323E2513E00DCD162 /* SDL_syssem.c */, + A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */, + A7D8A78623E2513E00DCD162 /* SDL_systhread.c */, + A7D8A78223E2513E00DCD162 /* SDL_systls.c */, + ); + path = pthread; + sourceTree = ""; + }; + A7D8A79D23E2513E00DCD162 /* joystick */ = { + isa = PBXGroup; + children = ( + A7D8A7AA23E2513E00DCD162 /* apple */, + A7D8A7CC23E2513E00DCD162 /* darwin */, + A7D8A79F23E2513E00DCD162 /* dummy */, + A7D8A7BE23E2513E00DCD162 /* hidapi */, + A7D8A7A123E2513E00DCD162 /* steam */, + 75E09157241EA924004729E1 /* virtual */, + A7D8A7AD23E2513E00DCD162 /* SDL_gamepad.c */, + A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */, + F3820712284F3609004DD584 /* controller_type.c */, + A7D8A7D923E2513E00DCD162 /* controller_type.h */, + A7D8A79E23E2513E00DCD162 /* SDL_gamepad_db.h */, + A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */, + A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */, + A7D8A7CB23E2513E00DCD162 /* usb_ids.h */, + ); + path = joystick; + sourceTree = ""; + }; + A7D8A79F23E2513E00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A7A123E2513E00DCD162 /* steam */ = { + isa = PBXGroup; + children = ( + A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */, + A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */, + ); + path = steam; + sourceTree = ""; + }; + A7D8A7AA23E2513E00DCD162 /* apple */ = { + isa = PBXGroup; + children = ( + F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */, + F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */, + ); + path = apple; + sourceTree = ""; + }; + A7D8A7BE23E2513E00DCD162 /* hidapi */ = { + isa = PBXGroup; + children = ( + F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */, + A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */, + F3F07D59269640160074468B /* SDL_hidapi_luna.c */, + F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */, + A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */, + F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */, + A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */, + A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */, + 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */, + F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */, + A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */, + A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */, + F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */, + A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */, + A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */, + A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */, + A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */, + A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */, + ); + path = hidapi; + sourceTree = ""; + }; + A7D8A7CC23E2513E00DCD162 /* darwin */ = { + isa = PBXGroup; + children = ( + F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */, + F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */, + ); + path = darwin; + sourceTree = ""; + }; + A7D8A7DA23E2513E00DCD162 /* file */ = { + isa = PBXGroup; + children = ( + A7D8A7DC23E2513F00DCD162 /* cocoa */, + A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */, + ); + path = file; + sourceTree = ""; + }; + A7D8A7DC23E2513F00DCD162 /* cocoa */ = { + isa = PBXGroup; + children = ( + A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */, + A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */, + ); + path = cocoa; + sourceTree = ""; + }; + A7D8A7DF23E2513F00DCD162 /* power */ = { + isa = PBXGroup; + children = ( + A7D8A7EA23E2513F00DCD162 /* macos */, + A7D8A7E023E2513F00DCD162 /* uikit */, + A7D8A7E723E2513F00DCD162 /* SDL_power.c */, + A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */, + ); + path = power; + sourceTree = ""; + }; + A7D8A7E023E2513F00DCD162 /* uikit */ = { + isa = PBXGroup; + children = ( + A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */, + A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */, + ); + path = uikit; + sourceTree = ""; + }; + A7D8A7EA23E2513F00DCD162 /* macos */ = { + isa = PBXGroup; + children = ( + A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */, + ); + path = macos; + sourceTree = ""; + }; + A7D8A7F623E2513F00DCD162 /* filesystem */ = { + isa = PBXGroup; + children = ( + A7D8A7FD23E2513F00DCD162 /* cocoa */, + A7D8A7F723E2513F00DCD162 /* dummy */, + ); + path = filesystem; + sourceTree = ""; + }; + A7D8A7F723E2513F00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A7FD23E2513F00DCD162 /* cocoa */ = { + isa = PBXGroup; + children = ( + A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */, + ); + path = cocoa; + sourceTree = ""; + }; + A7D8A80923E2513F00DCD162 /* hidapi */ = { + isa = PBXGroup; + children = ( + A75FDAA423E2790500529352 /* ios */, + A75FDB9123E4C8B800529352 /* mac */, + A75FDBA423E4CB6F00529352 /* AUTHORS.txt */, + A75FDB5723E39E6100529352 /* hidapi.h */, + A75FDBA323E4CB6F00529352 /* LICENSE-bsd.txt */, + A75FDBA623E4CB6F00529352 /* LICENSE-gpl3.txt */, + A75FDBA523E4CB6F00529352 /* LICENSE-orig.txt */, + A75FDBA723E4CB6F00529352 /* LICENSE.txt */, + F3990E012A788303000D8759 /* SDL_hidapi_c.h */, + F3990E032A788303000D8759 /* SDL_hidapi_ios.h */, + F3990E022A788303000D8759 /* SDL_hidapi_mac.h */, + A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */, + ); + path = hidapi; + sourceTree = ""; + }; + A7D8A85D23E2513F00DCD162 /* loadso */ = { + isa = PBXGroup; + children = ( + A7D8A86223E2513F00DCD162 /* dlopen */, + A7D8A85E23E2513F00DCD162 /* dummy */, + ); + path = loadso; + sourceTree = ""; + }; + A7D8A85E23E2513F00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A86223E2513F00DCD162 /* dlopen */ = { + isa = PBXGroup; + children = ( + A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */, + ); + path = dlopen; + sourceTree = ""; + }; + A7D8A86423E2513F00DCD162 /* audio */ = { + isa = PBXGroup; + children = ( + A7D8A8B923E2513F00DCD162 /* coreaudio */, + A7D8A8AF23E2513F00DCD162 /* disk */, + A7D8A87023E2513F00DCD162 /* dummy */, + A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */, + F32DDAC92AB795A30041EAA5 /* SDL_audio_channel_converters.h */, + F32DDACC2AB795A30041EAA5 /* SDL_audio_resampler_filter.h */, + A7D8A8B823E2513F00DCD162 /* SDL_audio.c */, + A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */, + A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */, + A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */, + F32DDACB2AB795A30041EAA5 /* SDL_audioqueue.c */, + F32DDACD2AB795A30041EAA5 /* SDL_audioqueue.h */, + F32DDACE2AB795A30041EAA5 /* SDL_audioresample.c */, + F32DDACA2AB795A30041EAA5 /* SDL_audioresample.h */, + A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */, + A7D8A86523E2513F00DCD162 /* SDL_mixer.c */, + A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */, + A7D8A86623E2513F00DCD162 /* SDL_wave.c */, + A7D8A8A223E2513F00DCD162 /* SDL_wave.h */, + ); + path = audio; + sourceTree = ""; + }; + A7D8A87023E2513F00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */, + A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A8AF23E2513F00DCD162 /* disk */ = { + isa = PBXGroup; + children = ( + A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */, + A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */, + ); + path = disk; + sourceTree = ""; + }; + A7D8A8B923E2513F00DCD162 /* coreaudio */ = { + isa = PBXGroup; + children = ( + A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */, + A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */, + ); + path = coreaudio; + sourceTree = ""; + }; + A7D8A8D223E2514000DCD162 /* stdlib */ = { + isa = PBXGroup; + children = ( + F3973FA128A59BDD00B84553 /* SDL_crc16.c */, + F395BF6425633B2400942BFF /* SDL_crc32.c */, + A7D8A8D423E2514000DCD162 /* SDL_getenv.c */, + A7D8A8D323E2514000DCD162 /* SDL_iconv.c */, + A7D8A8D923E2514000DCD162 /* SDL_malloc.c */, + A7D8A8D723E2514000DCD162 /* SDL_qsort.c */, + A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */, + A7D8A8D523E2514000DCD162 /* SDL_string.c */, + A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */, + F3973FA028A59BDD00B84553 /* SDL_vacopy.h */, + ); + path = stdlib; + sourceTree = ""; + }; + A7D8A8DA23E2514000DCD162 /* render */ = { + isa = PBXGroup; + children = ( + A7D8A8DD23E2514000DCD162 /* metal */, + A7D8A90C23E2514000DCD162 /* opengl */, + A7D8A90323E2514000DCD162 /* opengles2 */, + A7D8A8EF23E2514000DCD162 /* software */, + A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */, + A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */, + A7D8A8DB23E2514000DCD162 /* SDL_render.c */, + E4F7981D2AD8D86A00669F54 /* SDL_render_unsupported.c */, + A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */, + A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */, + A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */, + ); + path = render; + sourceTree = ""; + }; + A7D8A8DD23E2514000DCD162 /* metal */ = { + isa = PBXGroup; + children = ( + A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */, + A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */, + A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_macos.h */, + A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */, + A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */, + ); + path = metal; + sourceTree = ""; + }; + A7D8A8EF23E2514000DCD162 /* software */ = { + isa = PBXGroup; + children = ( + A1626A512617008C003F1973 /* SDL_triangle.h */, + A1626A3D2617006A003F1973 /* SDL_triangle.c */, + A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */, + A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */, + A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */, + A7D8A8F223E2514000DCD162 /* SDL_blendline.h */, + A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */, + A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */, + A7D8A8FA23E2514000DCD162 /* SDL_draw.h */, + A7D8A8F123E2514000DCD162 /* SDL_drawline.c */, + A7D8A8F723E2514000DCD162 /* SDL_drawline.h */, + A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */, + A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */, + A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */, + A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */, + A7D8A8F423E2514000DCD162 /* SDL_rotate.c */, + A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */, + ); + path = software; + sourceTree = ""; + }; + A7D8A90323E2514000DCD162 /* opengles2 */ = { + isa = PBXGroup; + children = ( + A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */, + A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */, + A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */, + A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */, + ); + path = opengles2; + sourceTree = ""; + }; + A7D8A90C23E2514000DCD162 /* opengl */ = { + isa = PBXGroup; + children = ( + A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */, + A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */, + A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */, + A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */, + ); + path = opengl; + sourceTree = ""; + }; + A7D8A91123E2514000DCD162 /* libm */ = { + isa = PBXGroup; + children = ( + A7D8A91D23E2514000DCD162 /* e_atan2.c */, + A7D8A92123E2514000DCD162 /* e_exp.c */, + A7D8A92023E2514000DCD162 /* e_fmod.c */, + A7D8A92323E2514000DCD162 /* e_log.c */, + A7D8A92223E2514000DCD162 /* e_log10.c */, + A7D8A91C23E2514000DCD162 /* e_pow.c */, + A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */, + A7D8A92423E2514000DCD162 /* e_sqrt.c */, + A7D8A91923E2514000DCD162 /* k_cos.c */, + A7D8A91623E2514000DCD162 /* k_rem_pio2.c */, + A7D8A91723E2514000DCD162 /* k_sin.c */, + A7D8A92723E2514000DCD162 /* k_tan.c */, + A7D8A92623E2514000DCD162 /* math_libm.h */, + A7D8A91B23E2514000DCD162 /* math_private.h */, + A7D8A91823E2514000DCD162 /* s_atan.c */, + A7D8A91423E2514000DCD162 /* s_copysign.c */, + A7D8A91323E2514000DCD162 /* s_cos.c */, + A7D8A91523E2514000DCD162 /* s_fabs.c */, + A7D8A92523E2514000DCD162 /* s_floor.c */, + A7D8A91A23E2514000DCD162 /* s_scalbn.c */, + A7D8A91223E2514000DCD162 /* s_sin.c */, + A7D8A91E23E2514000DCD162 /* s_tan.c */, + ); + path = libm; + sourceTree = ""; + }; + A7D8A92923E2514000DCD162 /* events */ = { + isa = PBXGroup; + children = ( + A7D8A93223E2514000DCD162 /* blank_cursor.h */, + A7D8A93323E2514000DCD162 /* default_cursor.h */, + A7D8A93423E2514000DCD162 /* scancodes_darwin.h */, + A7D8A93623E2514000DCD162 /* scancodes_linux.h */, + A7D8A92C23E2514000DCD162 /* scancodes_windows.h */, + A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */, + A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */, + A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */, + A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */, + A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */, + A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */, + A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */, + A7D8A94223E2514000DCD162 /* SDL_events_c.h */, + A7D8A93523E2514000DCD162 /* SDL_events.c */, + A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */, + A7D8A93823E2514000DCD162 /* SDL_keyboard.c */, + A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */, + A7D8A92A23E2514000DCD162 /* SDL_mouse.c */, + A7D8A93C23E2514000DCD162 /* SDL_quit.c */, + A7D8A93723E2514000DCD162 /* SDL_touch_c.h */, + A7D8A93E23E2514000DCD162 /* SDL_touch.c */, + A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */, + A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */, + ); + path = events; + sourceTree = ""; + }; + E2D187D028A5673500D2B4F1 /* SDL3 */ = { + isa = PBXGroup; + children = ( + E2D187D228A5673500D2B4F1 /* Info.plist */, + ); + path = SDL3; + sourceTree = ""; + }; + F36C7ACF294B9F5E004D61C3 /* core */ = { + isa = PBXGroup; + children = ( + E4F798192AD8D84800669F54 /* SDL_core_unsupported.c */, + F36C7AD0294BA009004D61C3 /* SDL_runapp.c */, + ); + path = core; + sourceTree = ""; + }; + F3ADAB8C2576F08500A6B1D9 /* ios */ = { + isa = PBXGroup; + children = ( + F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */, + ); + path = ios; + sourceTree = ""; + }; + F59C70FC00D5CB5801000001 /* pkg-support */ = { + isa = PBXGroup; + children = ( + F59C710100D5CB5801000001 /* resources */, + F59C710600D5CB5801000001 /* SDL.info */, + ); + path = "pkg-support"; + sourceTree = SOURCE_ROOT; + }; + F59C710100D5CB5801000001 /* resources */ = { + isa = PBXGroup; + children = ( + F37A8E1928405AA100C38E95 /* CMake */, + 00794D3F09D0C461003FC8A1 /* License.txt */, + F59C710300D5CB5801000001 /* ReadMe.txt */, + ); + path = resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + BECDF5FF0761BA81005FE872 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F3F7D9812933074E00816151 /* SDL.h in Headers */, + A7D8B39E23E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */, + F3F7D9C52933074E00816151 /* SDL_assert.h in Headers */, + A7D8B61723E2514300DCD162 /* SDL_assert_c.h in Headers */, + F3F7D9292933074E00816151 /* SDL_atomic.h in Headers */, + F3F7D8ED2933074E00816151 /* SDL_audio.h in Headers */, + A7D8B7A023E2514400DCD162 /* SDL_audio_c.h in Headers */, + A7D8B7B223E2514400DCD162 /* SDL_audiodev_c.h in Headers */, + F3F7D9E12933074E00816151 /* SDL_begin_code.h in Headers */, + F3F7D9A52933074E00816151 /* SDL_bits.h in Headers */, + A7D8BA0123E2514400DCD162 /* SDL_blendfillrect.h in Headers */, + A7D8B9E923E2514400DCD162 /* SDL_blendline.h in Headers */, + F3F7D97D2933074E00816151 /* SDL_blendmode.h in Headers */, + A7D8BA0D23E2514400DCD162 /* SDL_blendpoint.h in Headers */, + A7D8B3B623E2514200DCD162 /* SDL_blit.h in Headers */, + A7D8B2BA23E2514200DCD162 /* SDL_blit_auto.h in Headers */, + A7D8B39823E2514200DCD162 /* SDL_blit_copy.h in Headers */, + A7D8ADEC23E2514100DCD162 /* SDL_blit_slow.h in Headers */, + F3F7D9A12933074E00816151 /* SDL_clipboard.h in Headers */, + A7D8BB6F23E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */, + F3F7D9D92933074E00816151 /* SDL_close_code.h in Headers */, + A7D8AECA23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */, + A7D8AF1223E2514100DCD162 /* SDL_cocoaevents.h in Headers */, + A7D8AE8E23E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */, + A7D8AF0623E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */, + A7D8AEB223E2514100DCD162 /* SDL_cocoametalview.h in Headers */, + A7D8AEF423E2514100DCD162 /* SDL_cocoamodes.h in Headers */, + A7D8AF1E23E2514100DCD162 /* SDL_cocoamouse.h in Headers */, + A7D8AEDC23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */, + A7D8AEEE23E2514100DCD162 /* SDL_cocoaopengles.h in Headers */, + A7D8AE8223E2514100DCD162 /* SDL_cocoashape.h in Headers */, + A7D8AF0023E2514100DCD162 /* SDL_cocoavideo.h in Headers */, + A7D8AEE823E2514100DCD162 /* SDL_cocoavulkan.h in Headers */, + A7D8AEFA23E2514100DCD162 /* SDL_cocoawindow.h in Headers */, + F32DDACF2AB795A30041EAA5 /* SDL_audio_channel_converters.h in Headers */, + F3F7D9D12933074E00816151 /* SDL_copying.h in Headers */, + A7D8B8CC23E2514400DCD162 /* SDL_coreaudio.h in Headers */, + A7D8A96F23E2514000DCD162 /* SDL_coremotionsensor.h in Headers */, + F3F7D9B92933074E00816151 /* SDL_cpuinfo.h in Headers */, + F3990E062A788303000D8759 /* SDL_hidapi_ios.h in Headers */, + A7D8B98023E2514400DCD162 /* SDL_d3dmath.h in Headers */, + A7D8B8A223E2514400DCD162 /* SDL_diskaudio.h in Headers */, + A7D8BB3F23E2514500DCD162 /* SDL_displayevents_c.h in Headers */, + A7D8BA1923E2514400DCD162 /* SDL_draw.h in Headers */, + A7D8BA0723E2514400DCD162 /* SDL_drawline.h in Headers */, + A7D8B9EF23E2514400DCD162 /* SDL_drawpoint.h in Headers */, + A7D8BB2D23E2514500DCD162 /* SDL_dropevents_c.h in Headers */, + A7D8B79423E2514400DCD162 /* SDL_dummyaudio.h in Headers */, + A7D8A96323E2514000DCD162 /* SDL_dummysensor.h in Headers */, + A7D8AB0A23E2514100DCD162 /* SDL_dynapi.h in Headers */, + F32DDAD02AB795A30041EAA5 /* SDL_audioresample.h in Headers */, + A7D8AB1023E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */, + A7D8AB1C23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */, + F3F7D9252933074E00816151 /* SDL_egl.h in Headers */, + A7D8ABD923E2514100DCD162 /* SDL_egl_c.h in Headers */, + F3F7D93D2933074E00816151 /* SDL_endian.h in Headers */, + F3F7D9352933074E00816151 /* SDL_error.h in Headers */, + A7D8A95D23E2514000DCD162 /* SDL_error_c.h in Headers */, + F3F7D9712933074E00816151 /* SDL_events.h in Headers */, + A7D8BBA523E2514500DCD162 /* SDL_events_c.h in Headers */, + F3F7D99D2933074E00816151 /* SDL_filesystem.h in Headers */, + F3F7D9852933074E00816151 /* SDL_gamepad.h in Headers */, + A7D8B4AC23E2514300DCD162 /* SDL_gamepad_db.h in Headers */, + A7D8BA5523E2514400DCD162 /* SDL_gles2funcs.h in Headers */, + A7D8BA7923E2514400DCD162 /* SDL_glfuncs.h in Headers */, + F3F7D9892933074E00816151 /* SDL_guid.h in Headers */, + F3F7D8F92933074E00816151 /* SDL_haptic.h in Headers */, + A7D8AABC23E2514100DCD162 /* SDL_haptic_c.h in Headers */, + F3F7D96D2933074E00816151 /* SDL_hidapi.h in Headers */, + A75FDBC523EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A7D8B55723E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */, + F3F7D9112933074E00816151 /* SDL_hints.h in Headers */, + A7D8B94A23E2514400DCD162 /* SDL_hints_c.h in Headers */, + F3B38CD7296E2E52005DA6D3 /* SDL_init.h in Headers */, + A7D8A99923E2514000DCD162 /* SDL_internal.h in Headers */, + F3B38CDF296E2E52005DA6D3 /* SDL_intrin.h in Headers */, + F395C1932569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + F3990E052A788303000D8759 /* SDL_hidapi_mac.h in Headers */, + F3F7D9912933074E00816151 /* SDL_joystick.h in Headers */, + A7D8B58723E2514300DCD162 /* SDL_joystick_c.h in Headers */, + F3F7D9512933074E00816151 /* SDL_keyboard.h in Headers */, + A7D8BB8723E2514500DCD162 /* SDL_keyboard_c.h in Headers */, + F3F7D9752933074E00816151 /* SDL_keycode.h in Headers */, + A1BB8B6C27F6CF330057CFA8 /* SDL_list.h in Headers */, + F3F7D9A92933074E00816151 /* SDL_loadso.h in Headers */, + F3F7D9552933074E00816151 /* SDL_locale.h in Headers */, + F3F7D9212933074E00816151 /* SDL_log.h in Headers */, + F386F6E72884663E001840AA /* SDL_log_c.h in Headers */, + F3F7D9052933074E00816151 /* SDL_main.h in Headers */, + F3B38CCF296E2E52005DA6D3 /* SDL_main_impl.h in Headers */, + F3F7D91D2933074E00816151 /* SDL_messagebox.h in Headers */, + F3F7D98D2933074E00816151 /* SDL_metal.h in Headers */, + F395C1BA2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + F3F7D9992933074E00816151 /* SDL_misc.h in Headers */, + F3F7D9AD2933074E00816151 /* SDL_mouse.h in Headers */, + A7D8BB1B23E2514500DCD162 /* SDL_mouse_c.h in Headers */, + F3F7D9DD2933074E00816151 /* SDL_mutex.h in Headers */, + A7D8ABFD23E2514100DCD162 /* SDL_nullevents_c.h in Headers */, + A7D8ABE523E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */, + A7D8ABF723E2514100DCD162 /* SDL_nullvideo.h in Headers */, + A7D8AB5B23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */, + A7D8AB7F23E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */, + F31A92C828D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A7D8AB6D23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */, + A7D8AB8523E2514100DCD162 /* SDL_offscreenwindow.h in Headers */, + F3B38CDB296E2E52005DA6D3 /* SDL_oldnames.h in Headers */, + F3F7D9C92933074E00816151 /* SDL_opengl.h in Headers */, + F3F7D9452933074E00816151 /* SDL_opengl_glext.h in Headers */, + F3E5A6ED2AD5E10800293D83 /* SDL_properties.h in Headers */, + E4F7981C2AD8D85500669F54 /* SDL_dynapi_unsupported.h in Headers */, + F3F7D95D2933074E00816151 /* SDL_opengles.h in Headers */, + F3F7D9612933074E00816151 /* SDL_opengles2.h in Headers */, + F3F7D8FD2933074E00816151 /* SDL_opengles2_gl2.h in Headers */, + F3F7D9392933074E00816151 /* SDL_opengles2_gl2ext.h in Headers */, + F3F7D9692933074E00816151 /* SDL_opengles2_gl2platform.h in Headers */, + F3F7D9092933074E00816151 /* SDL_opengles2_khrplatform.h in Headers */, + F32DDAD22AB795A30041EAA5 /* SDL_audio_resampler_filter.h in Headers */, + F3F7D9192933074E00816151 /* SDL_pixels.h in Headers */, + A7D8B2C023E2514200DCD162 /* SDL_pixels_c.h in Headers */, + F3F7D8F12933074E00816151 /* SDL_platform.h in Headers */, + F3B38CD3296E2E52005DA6D3 /* SDL_platform_defines.h in Headers */, + F3F7D9B12933074E00816151 /* SDL_power.h in Headers */, + F3F7D9C12933074E00816151 /* SDL_quit.h in Headers */, + F3F7D9CD2933074E00816151 /* SDL_rect.h in Headers */, + A7D8AC0323E2514100DCD162 /* SDL_rect_c.h in Headers */, + F3F7D9BD2933074E00816151 /* SDL_render.h in Headers */, + A7D8B9FB23E2514400DCD162 /* SDL_render_sw_c.h in Headers */, + F3F7D9152933074E00816151 /* SDL_revision.h in Headers */, + A7D8BA3123E2514400DCD162 /* SDL_rotate.h in Headers */, + F3F7D9652933074E00816151 /* SDL_rwops.h in Headers */, + A7D8B5C323E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */, + F3F7D9492933074E00816151 /* SDL_scancode.h in Headers */, + F3F7D94D2933074E00816151 /* SDL_sensor.h in Headers */, + A7D8A98D23E2514000DCD162 /* SDL_sensor_c.h in Headers */, + A7D8BA7323E2514400DCD162 /* SDL_shaders_gl.h in Headers */, + A7D8BA4F23E2514400DCD162 /* SDL_shaders_gles2.h in Headers */, + A7D8B98C23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */, + A7D8B99B23E2514400DCD162 /* SDL_shaders_metal_macos.h in Headers */, + A7D8B9A123E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */, + F3F7D92D2933074E00816151 /* SDL_shape.h in Headers */, + A7D8AC0923E2514100DCD162 /* SDL_shape_internals.h in Headers */, + F3F7D8F52933074E00816151 /* SDL_stdinc.h in Headers */, + A7D8BBC723E2561500DCD162 /* SDL_steamcontroller.h in Headers */, + F3F7D9312933074E00816151 /* SDL_surface.h in Headers */, + A7D8B85A23E2514400DCD162 /* SDL_sysaudio.h in Headers */, + A7D8AAD423E2514100DCD162 /* SDL_syshaptic.h in Headers */, + A7D8AAE023E2514100DCD162 /* SDL_syshaptic_c.h in Headers */, + A7D8B58123E2514300DCD162 /* SDL_sysjoystick.h in Headers */, + 566E26E1246274CC00718109 /* SDL_syslocale.h in Headers */, + A7D8B44023E2514300DCD162 /* SDL_sysmutex_c.h in Headers */, + A7D8B5D523E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B61123E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B9D723E2514400DCD162 /* SDL_sysrender.h in Headers */, + A7D8A97B23E2514000DCD162 /* SDL_syssensor.h in Headers */, + F3F7D9E52933074E00816151 /* SDL_system.h in Headers */, + A7D8B3E623E2514300DCD162 /* SDL_systhread.h in Headers */, + A7D8B42823E2514300DCD162 /* SDL_systhread_c.h in Headers */, + 5616CA4D252BB2A6005D5928 /* SDL_sysurl.h in Headers */, + A7D8AC3F23E2514100DCD162 /* SDL_sysvideo.h in Headers */, + F3F7D9412933074E00816151 /* SDL_syswm.h in Headers */, + F3F7D9792933074E00816151 /* SDL_thread.h in Headers */, + A7D8B3EC23E2514300DCD162 /* SDL_thread_c.h in Headers */, + F3F7D90D2933074E00816151 /* SDL_timer.h in Headers */, + A7D8AB3123E2514100DCD162 /* SDL_timer_c.h in Headers */, + F3F7D9012933074E00816151 /* SDL_touch.h in Headers */, + A7D8BB6323E2514500DCD162 /* SDL_touch_c.h in Headers */, + A1626A522617008D003F1973 /* SDL_triangle.h in Headers */, + A7D8BBD223E2574800DCD162 /* SDL_uikitappdelegate.h in Headers */, + A7D8BBD423E2574800DCD162 /* SDL_uikitclipboard.h in Headers */, + A7D8BBD623E2574800DCD162 /* SDL_uikitevents.h in Headers */, + A7D8BBD823E2574800DCD162 /* SDL_uikitmessagebox.h in Headers */, + A7D8BBDA23E2574800DCD162 /* SDL_uikitmetalview.h in Headers */, + F3990E042A788303000D8759 /* SDL_hidapi_c.h in Headers */, + A7D8BBDC23E2574800DCD162 /* SDL_uikitmodes.h in Headers */, + A7D8BBDE23E2574800DCD162 /* SDL_uikitopengles.h in Headers */, + A7D8BBE023E2574800DCD162 /* SDL_uikitopenglview.h in Headers */, + A7D8BBE223E2574800DCD162 /* SDL_uikitvideo.h in Headers */, + A7D8BBE423E2574800DCD162 /* SDL_uikitview.h in Headers */, + A7D8BBE623E2574800DCD162 /* SDL_uikitviewcontroller.h in Headers */, + A7D8BBE823E2574800DCD162 /* SDL_uikitvulkan.h in Headers */, + A7D8BBEA23E2574800DCD162 /* SDL_uikitwindow.h in Headers */, + F386F6F02884663E001840AA /* SDL_utils_c.h in Headers */, + F3973FA228A59BDD00B84553 /* SDL_vacopy.h in Headers */, + F3F7D9D52933074E00816151 /* SDL_version.h in Headers */, + F3F7D9592933074E00816151 /* SDL_video.h in Headers */, + 75E09163241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + F3F7D9952933074E00816151 /* SDL_vulkan.h in Headers */, + A7D8AD1D23E2514100DCD162 /* SDL_vulkan_internal.h in Headers */, + A7D8B86C23E2514400DCD162 /* SDL_wave.h in Headers */, + A7D8BBAB23E2514500DCD162 /* SDL_windowevents_c.h in Headers */, + A7D8B3B023E2514200DCD162 /* SDL_yuv_c.h in Headers */, + A7D8B9CB23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */, + A7D8BB4523E2514500DCD162 /* blank_cursor.h in Headers */, + A7D8B5B723E2514300DCD162 /* controller_type.h in Headers */, + A7D8BB4B23E2514500DCD162 /* default_cursor.h in Headers */, + A7D8B23C23E2514200DCD162 /* egl.h in Headers */, + A7D8B24223E2514200DCD162 /* eglext.h in Headers */, + A7D8B24823E2514200DCD162 /* eglplatform.h in Headers */, + A7D8B22A23E2514200DCD162 /* gl2.h in Headers */, + A7D8B22423E2514200DCD162 /* gl2ext.h in Headers */, + A7D8B23023E2514200DCD162 /* gl2platform.h in Headers */, + A75FDB5823E39E6100529352 /* hidapi.h in Headers */, + A7D8B23623E2514200DCD162 /* khrplatform.h in Headers */, + A7D8BB0323E2514500DCD162 /* math_libm.h in Headers */, + A7D8BAC123E2514500DCD162 /* math_private.h in Headers */, + A7D8BB5123E2514500DCD162 /* scancodes_darwin.h in Headers */, + A7D8BB5D23E2514500DCD162 /* scancodes_linux.h in Headers */, + A7D8BB2123E2514500DCD162 /* scancodes_windows.h in Headers */, + A7D8BB9F23E2514500DCD162 /* scancodes_xfree86.h in Headers */, + A7D8B56F23E2514300DCD162 /* usb_ids.h in Headers */, + A7D8B25423E2514200DCD162 /* vk_icd.h in Headers */, + A7D8B24E23E2514200DCD162 /* vk_layer.h in Headers */, + A7D8B26623E2514200DCD162 /* vk_platform.h in Headers */, + A7D8B2AE23E2514200DCD162 /* vk_sdk_platform.h in Headers */, + A7D8B26023E2514200DCD162 /* vulkan.h in Headers */, + A7D8B26C23E2514200DCD162 /* vulkan.hpp in Headers */, + A7D8B2B423E2514200DCD162 /* vulkan_android.h in Headers */, + A7D8B2A823E2514200DCD162 /* vulkan_core.h in Headers */, + A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */, + A7D8B2A223E2514200DCD162 /* vulkan_ios.h in Headers */, + A7D8B28423E2514200DCD162 /* vulkan_macos.h in Headers */, + A7D8B29623E2514200DCD162 /* vulkan_mir.h in Headers */, + A7D8B25A23E2514200DCD162 /* vulkan_vi.h in Headers */, + F32DDAD32AB795A30041EAA5 /* SDL_audioqueue.h in Headers */, + A7D8B27823E2514200DCD162 /* vulkan_wayland.h in Headers */, + A7D8B27E23E2514200DCD162 /* vulkan_win32.h in Headers */, + A7D8B29023E2514200DCD162 /* vulkan_xcb.h in Headers */, + A7D8B29C23E2514200DCD162 /* vulkan_xlib.h in Headers */, + A7D8B28A23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */, + A7D8B3D423E2514300DCD162 /* yuv_rgb.h in Headers */, + A7D8B3C823E2514200DCD162 /* yuv_rgb_sse_func.h in Headers */, + A7D8B3CE23E2514300DCD162 /* yuv_rgb_std_func.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + BECDF5FE0761BA81005FE872 /* SDL3 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0073177A0858DB0500B2BC32 /* Build configuration list for PBXNativeTarget "SDL3" */; + buildPhases = ( + BECDF5FF0761BA81005FE872 /* Headers */, + BECDF62A0761BA81005FE872 /* Resources */, + BECDF62C0761BA81005FE872 /* Sources */, + BECDF6680761BA81005FE872 /* Frameworks */, + A75FDB9C23E4CAEF00529352 /* Embed Frameworks */, + ); + buildRules = ( + ); + comments = "We recommend installing to /Library/Frameworks\nAn alternative is $(HOME)/Library/Frameworks for per-user if permissions are an issue.\n\nAdd the framework to the Groups & Files panel (under Linked Frameworks is a good place) and enable the check box for the targets that need to link to it. You can also manually add \"-framework SDL\" to your linker flags if you don't like the check box system.\n\nAdd /Library/Frameworks/SDL.framework/Headers to your header search path\nAdd /Library/Frameworks to your library search path\n(Adjust the two above if installed in $(HOME)/Library/Frameworks. You can also list both paths if you want robustness.)\n\nWe used to use an exports file. It was becoming a maintenance issue we kept neglecting, so we have removed it.\n\n"; + dependencies = ( + ); + name = SDL3; + productInstallPath = "@executable_path/../Frameworks"; + productName = SDL; + productReference = BECDF66C0761BA81005FE872 /* SDL3.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1130; + TargetAttributes = { + F3676F582A7885080091160D = { + CreatedOnToolsVersion = 14.3.1; + }; + F3B38CEC296F63B6005DA6D3 = { + CreatedOnToolsVersion = 14.2; + }; + }; + }; + buildConfigurationList = 0073178E0858DB0500B2BC32 /* Build configuration list for PBXProject "SDL" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + en, + Base, + ); + mainGroup = 0867D691FE84028FC02AAC07 /* SDLFramework */; + productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BECDF5FE0761BA81005FE872 /* SDL3 */, + F3B38CEC296F63B6005DA6D3 /* SDL3.xcframework */, + F3676F582A7885080091160D /* SDL3.dmg */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + BECDF62A0761BA81005FE872 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F37A8E1A28405AA100C38E95 /* CMake in Resources */, + A75FDBB823E4CBC700529352 /* ReadMe.txt in Resources */, + A75FDBB723E4CBC700529352 /* License.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + F3676F5E2A78852D0091160D /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "mkdir -p build/dmg-tmp\ncp -a build/SDL3.xcframework build/dmg-tmp/\n\ncp pkg-support/resources/License.txt build/dmg-tmp\ncp pkg-support/resources/ReadMe.txt build/dmg-tmp\n\n# remove the .DS_Store files if any (we may want to provide one in the future for fancy .dmgs)\nfind build/dmg-tmp -name .DS_Store -exec rm -f \"{}\" \\;\n\n# for fancy .dmg\nmkdir -p build/dmg-tmp/.logo\ncp pkg-support/resources/SDL_DS_Store build/dmg-tmp/.DS_Store\ncp pkg-support/sdl_logo.pdf build/dmg-tmp/.logo\n\n# create the dmg\nhdiutil create -ov -fs HFS+ -volname SDL3 -srcfolder build/dmg-tmp build/SDL3.dmg\n\n# clean up\nrm -rf build/dmg-tmp\n"; + }; + F3B38CF0296F63D1005DA6D3 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Build an xcframework with both device and simulator files for all platforms.\n# Adapted from an answer in\n# https://developer.apple.com/forums/thread/666335?answerId=685927022#685927022\n\nif [ \"$XCODE_VERSION_ACTUAL\" -lt 1100 ]\nthen\n echo \"error: Building an xcframework requires Xcode 11 minimum.\"\n exit 1\nfi\n\nFRAMEWORK_NAME=\"SDL3\"\nPROJECT_NAME=\"SDL\"\nSCHEME=\"SDL3\"\n\nMACOS_ARCHIVE_PATH=\"${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-macosx.xcarchive\"\nIOS_SIMULATOR_ARCHIVE_PATH=\"${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-iphonesimulator.xcarchive\"\nIOS_DEVICE_ARCHIVE_PATH=\"${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-iphoneos.xcarchive\"\nTVOS_SIMULATOR_ARCHIVE_PATH=\"${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-appletvsimulator.xcarchive\"\nTVOS_DEVICE_ARCHIVE_PATH=\"${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-appletvos.xcarchive\"\n\nOUTPUT_DIR=\"./build/\"\n\n# macOS\nxcodebuild archive \\\n ONLY_ACTIVE_ARCH=NO \\\n -scheme \"${SCHEME}\" \\\n -project \"${PROJECT_NAME}.xcodeproj\" \\\n -archivePath ${MACOS_ARCHIVE_PATH} \\\n -destination 'generic/platform=macOS,name=Any Mac' \\\n BUILD_LIBRARY_FOR_DISTRIBUTION=YES \\\n SKIP_INSTALL=NO || exit $?\n \n# iOS simulator\nxcodebuild archive \\\n ONLY_ACTIVE_ARCH=NO \\\n -scheme \"${SCHEME}\" \\\n -project \"${PROJECT_NAME}.xcodeproj\" \\\n -archivePath ${IOS_SIMULATOR_ARCHIVE_PATH} \\\n -destination 'generic/platform=iOS Simulator' \\\n BUILD_LIBRARY_FOR_DISTRIBUTION=YES \\\n SKIP_INSTALL=NO || exit $?\n\n# iOS device\nxcodebuild archive \\\n -scheme \"${SCHEME}\" \\\n -project \"${PROJECT_NAME}.xcodeproj\" \\\n -archivePath ${IOS_DEVICE_ARCHIVE_PATH} \\\n -destination 'generic/platform=iOS' \\\n BUILD_LIBRARY_FOR_DISTRIBUTION=YES \\\n SKIP_INSTALL=NO || exit $?\n\n# tvOS simulator\nxcodebuild archive \\\n ONLY_ACTIVE_ARCH=NO \\\n -scheme \"${SCHEME}\" \\\n -project \"${PROJECT_NAME}.xcodeproj\" \\\n -archivePath ${TVOS_SIMULATOR_ARCHIVE_PATH} \\\n -destination 'generic/platform=tvOS Simulator' \\\n BUILD_LIBRARY_FOR_DISTRIBUTION=YES \\\n SKIP_INSTALL=NO || exit $?\n\n# tvOS device\nxcodebuild archive \\\n -scheme \"${SCHEME}\" \\\n -project \"${PROJECT_NAME}.xcodeproj\" \\\n -archivePath ${TVOS_DEVICE_ARCHIVE_PATH} \\\n -destination 'generic/platform=tvOS' \\\n BUILD_LIBRARY_FOR_DISTRIBUTION=YES \\\n SKIP_INSTALL=NO || exit $?\n\n# Clean-up any existing instance of this xcframework from the Products directory\nrm -rf \"${OUTPUT_DIR}${FRAMEWORK_NAME}.xcframework\"\n\n# Create final xcframework\nxcodebuild -create-xcframework \\\n -framework \"${MACOS_ARCHIVE_PATH}\"/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework \\\n -framework \"${IOS_DEVICE_ARCHIVE_PATH}\"/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework \\\n -framework \"${IOS_SIMULATOR_ARCHIVE_PATH}\"/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework \\\n -framework \"${TVOS_DEVICE_ARCHIVE_PATH}\"/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework \\\n -framework \"${TVOS_SIMULATOR_ARCHIVE_PATH}\"/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework \\\n -output ${OUTPUT_DIR}/${FRAMEWORK_NAME}.xcframework\n\n# Ensure git doesn't pick up on our Products folder. \nrm -rf ${OUTPUT_DIR}/.gitignore\necho \"*\" >> ${OUTPUT_DIR}/.gitignore\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + BECDF62C0761BA81005FE872 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9E323E2514400DCD162 /* SDL_drawline.c in Sources */, + A7D8AE7C23E2514100DCD162 /* SDL_yuv.c in Sources */, + A7D8B62F23E2514300DCD162 /* SDL_sysfilesystem.m in Sources */, + A7D8BAC723E2514500DCD162 /* e_pow.c in Sources */, + A7D8B41C23E2514300DCD162 /* SDL_systls.c in Sources */, + 9846B07C287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A7D8BBD923E2574800DCD162 /* SDL_uikitmessagebox.m in Sources */, + F32DDAD42AB795A30041EAA5 /* SDL_audioresample.c in Sources */, + A7D8AD2923E2514100DCD162 /* SDL_vulkan_utils.c in Sources */, + A7D8A95123E2514000DCD162 /* SDL_spinlock.c in Sources */, + F34B9895291DEFF500AAC96E /* SDL_hidapi_steam.c in Sources */, + A7D8BAAF23E2514400DCD162 /* s_atan.c in Sources */, + A7D8B75223E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8BBE123E2574800DCD162 /* SDL_uikitopenglview.m in Sources */, + A7D8B98623E2514400DCD162 /* SDL_render_metal.m in Sources */, + A7D8AE7623E2514100DCD162 /* SDL_clipboard.c in Sources */, + A7D8AEC423E2514100DCD162 /* SDL_cocoaevents.m in Sources */, + A7D8B86623E2514400DCD162 /* SDL_audiocvt.c in Sources */, + A7D8B3AA23E2514200DCD162 /* SDL_shape.c in Sources */, + A7D8B9F523E2514400DCD162 /* SDL_rotate.c in Sources */, + A7D8BBE323E2574800DCD162 /* SDL_uikitvideo.m in Sources */, + 5616CA4E252BB2A6005D5928 /* SDL_sysurl.m in Sources */, + A7D8A97523E2514000DCD162 /* SDL_coremotionsensor.m in Sources */, + F382071D284F362F004DD584 /* SDL_guid.c in Sources */, + A7D8BB8D23E2514500DCD162 /* SDL_touch.c in Sources */, + F31A92D228D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A1626A3E2617006A003F1973 /* SDL_triangle.c in Sources */, + A7D8B3F223E2514300DCD162 /* SDL_thread.c in Sources */, + A7D8B55D23E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */, + A7D8A95723E2514000DCD162 /* SDL_atomic.c in Sources */, + A75FDBCE23EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + A7D8BB2723E2514500DCD162 /* SDL_displayevents.c in Sources */, + A7D8AB2523E2514100DCD162 /* SDL_log.c in Sources */, + A7D8AE8823E2514100DCD162 /* SDL_cocoaopengl.m in Sources */, + A7D8AB7323E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */, + A7D8B3BF23E2514200DCD162 /* yuv_rgb.c in Sources */, + A7D8B43423E2514300DCD162 /* SDL_systhread.c in Sources */, + A7D8BB3323E2514500DCD162 /* SDL_windowevents.c in Sources */, + A7D8BABB23E2514400DCD162 /* s_scalbn.c in Sources */, + F3973FAB28A59BDD00B84553 /* SDL_crc16.c in Sources */, + A7D8AB2B23E2514100DCD162 /* SDL_timer.c in Sources */, + F3D60A8328C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + A7D8B9DD23E2514400DCD162 /* SDL_blendpoint.c in Sources */, + A7D8B4EE23E2514300DCD162 /* SDL_gamepad.c in Sources */, + A7D8AB3723E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA1323E2514400DCD162 /* SDL_render_sw.c in Sources */, + A7D8B42223E2514300DCD162 /* SDL_syssem.c in Sources */, + A7D8B53923E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */, + A7D8B8D223E2514400DCD162 /* SDL_coreaudio.m in Sources */, + A7D8BA1F23E2514400DCD162 /* SDL_blendline.c in Sources */, + A7D8BBE723E2574800DCD162 /* SDL_uikitviewcontroller.m in Sources */, + A7D8ADF223E2514100DCD162 /* SDL_blit_A.c in Sources */, + A7D8BBDD23E2574800DCD162 /* SDL_uikitmodes.m in Sources */, + A7D8BA3723E2514400DCD162 /* SDL_d3dmath.c in Sources */, + 75E0915A241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A7D8ABEB23E2514100DCD162 /* SDL_nullvideo.c in Sources */, + F3990E072A78833C000D8759 /* hid.m in Sources */, + A7D8AB6723E2514100DCD162 /* SDL_offscreenevents.c in Sources */, + A7D8ABF123E2514100DCD162 /* SDL_nullevents.c in Sources */, + A7D8B81823E2514400DCD162 /* SDL_audiodev.c in Sources */, + A7D8AF0C23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */, + A7D8BBE523E2574800DCD162 /* SDL_uikitview.m in Sources */, + A7D8BBE923E2574800DCD162 /* SDL_uikitvulkan.m in Sources */, + A7D8ABCD23E2514100DCD162 /* SDL_blit_slow.c in Sources */, + A7D8BA9723E2514400DCD162 /* s_copysign.c in Sources */, + F3984CD025BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + A7D8AAB623E2514100DCD162 /* SDL_haptic.c in Sources */, + A7D8AF2423E2514100DCD162 /* SDL_cocoametalview.m in Sources */, + A7D8B86023E2514400DCD162 /* SDL_audiotypecvt.c in Sources */, + A7D8BBC523E2561500DCD162 /* SDL_steamcontroller.c in Sources */, + A7D8AD3223E2514100DCD162 /* SDL_blit_N.c in Sources */, + A7D8BB7B23E2514500DCD162 /* SDL_dropevents.c in Sources */, + A7D8BACD23E2514500DCD162 /* e_atan2.c in Sources */, + A7D8BA8B23E2514400DCD162 /* s_sin.c in Sources */, + A7D8BBEB23E2574800DCD162 /* SDL_uikitwindow.m in Sources */, + F395BF6525633B2400942BFF /* SDL_crc32.c in Sources */, + A7D8B5E723E2514300DCD162 /* SDL_power.c in Sources */, + A7D8AED623E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */, + A7D8AB1623E2514100DCD162 /* SDL_dynapi.c in Sources */, + A7D8BA8523E2514400DCD162 /* SDL_shaders_gl.c in Sources */, + A7D8BAF123E2514500DCD162 /* e_log.c in Sources */, + A7D8AED023E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */, + F376F6552559B4E300CFC0BC /* SDL_hidapi.c in Sources */, + A7D8BA2B23E2514400DCD162 /* SDL_blendfillrect.c in Sources */, + A7D8AEE223E2514100DCD162 /* SDL_cocoashape.m in Sources */, + A7D8BBD323E2574800DCD162 /* SDL_uikitappdelegate.m in Sources */, + A7D8AEB823E2514100DCD162 /* SDL_cocoamouse.m in Sources */, + F32DDAD12AB795A30041EAA5 /* SDL_audioqueue.c in Sources */, + A7D8B8E423E2514400DCD162 /* SDL_error.c in Sources */, + A7D8AD6823E2514100DCD162 /* SDL_blit.c in Sources */, + A7D8B5BD23E2514300DCD162 /* SDL_rwops.c in Sources */, + A7D8BA9123E2514400DCD162 /* s_cos.c in Sources */, + A7D8B9D123E2514400DCD162 /* SDL_yuv_sw.c in Sources */, + A7D8B76A23E2514300DCD162 /* SDL_wave.c in Sources */, + 5616CA4C252BB2A6005D5928 /* SDL_url.c in Sources */, + A7D8BAD323E2514500DCD162 /* s_tan.c in Sources */, + A7D8AA6523E2514000DCD162 /* SDL_hints.c in Sources */, + A7D8B53F23E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */, + A7D8AD6E23E2514100DCD162 /* SDL_pixels.c in Sources */, + A7D8B75E23E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8BBD723E2574800DCD162 /* SDL_uikitevents.m in Sources */, + A7D8B5F323E2514300DCD162 /* SDL_syspower.c in Sources */, + A7D8B95023E2514400DCD162 /* SDL_iconv.c in Sources */, + F3E5A6EB2AD5E0E600293D83 /* SDL_properties.c in Sources */, + A7D8BA9D23E2514400DCD162 /* s_fabs.c in Sources */, + F395C1B12569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A7D8B99223E2514400DCD162 /* SDL_shaders_metal.metal in Sources */, + F3990DF52A787C10000D8759 /* SDL_sysurl.m in Sources */, + A7D8B97A23E2514400DCD162 /* SDL_render.c in Sources */, + A7D8ABD323E2514100DCD162 /* SDL_stretch.c in Sources */, + A7D8BAFD23E2514500DCD162 /* s_floor.c in Sources */, + A7D8AC3923E2514100DCD162 /* SDL_blit_copy.c in Sources */, + A7D8BADF23E2514500DCD162 /* e_fmod.c in Sources */, + A7D8B5CF23E2514300DCD162 /* SDL_syspower.m in Sources */, + A7D8BAEB23E2514500DCD162 /* e_log10.c in Sources */, + A7D8B76423E2514300DCD162 /* SDL_mixer.c in Sources */, + A7D8BB5723E2514500DCD162 /* SDL_events.c in Sources */, + A7D8ADE623E2514100DCD162 /* SDL_blit_0.c in Sources */, + A7D8BB0923E2514500DCD162 /* k_tan.c in Sources */, + A7D8B8A823E2514400DCD162 /* SDL_diskaudio.c in Sources */, + 56A2373329F9C113003CCA5F /* SDL_sysrwlock.c in Sources */, + 566E26CF246274CC00718109 /* SDL_syslocale.m in Sources */, + A7D8AFC023E2514200DCD162 /* SDL_egl.c in Sources */, + A7D8AC3323E2514100DCD162 /* SDL_RLEaccel.c in Sources */, + A7D8BBB123E2514500DCD162 /* SDL_assert.c in Sources */, + A7D8B3DA23E2514300DCD162 /* SDL_bmp.c in Sources */, + A7D8B96E23E2514400DCD162 /* SDL_stdlib.c in Sources */, + A7D8BBDF23E2574800DCD162 /* SDL_uikitopengles.m in Sources */, + F32305FF28939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + A7D8B79A23E2514400DCD162 /* SDL_dummyaudio.c in Sources */, + A7D8B3A423E2514200DCD162 /* SDL_fillrect.c in Sources */, + A7D8ABDF23E2514100DCD162 /* SDL_nullframebuffer.c in Sources */, + E4F7981A2AD8D84800669F54 /* SDL_core_unsupported.c in Sources */, + A7D8A96923E2514000DCD162 /* SDL_dummysensor.c in Sources */, + A7D8B95C23E2514400DCD162 /* SDL_string.c in Sources */, + A7D8BA7F23E2514400DCD162 /* SDL_render_gl.c in Sources */, + A7D8AE9423E2514100DCD162 /* SDL_cocoamodes.m in Sources */, + A7D8BAA323E2514400DCD162 /* k_rem_pio2.c in Sources */, + A7D8B95623E2514400DCD162 /* SDL_getenv.c in Sources */, + A7D8B56323E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */, + A7D8B4DC23E2514300DCD162 /* SDL_joystick.c in Sources */, + A7D8BA4923E2514400DCD162 /* SDL_render_gles2.c in Sources */, + A7D8AC2D23E2514100DCD162 /* SDL_surface.c in Sources */, + A7D8B54B23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */, + A7D8AD2323E2514100DCD162 /* SDL_blit_auto.c in Sources */, + F3A4909E2554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A7D8BB6923E2514500DCD162 /* SDL_keyboard.c in Sources */, + A7D8ACE723E2514100DCD162 /* SDL_rect.c in Sources */, + A7D8AE9A23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */, + A7D8B96823E2514400DCD162 /* SDL_qsort.c in Sources */, + A7D8B55123E2514300DCD162 /* SDL_hidapi_switch.c in Sources */, + A7D8B96223E2514400DCD162 /* SDL_strtokr.c in Sources */, + A7D8BB7523E2514500DCD162 /* SDL_clipboardevents.c in Sources */, + E4F798202AD8D87F00669F54 /* SDL_video_unsupported.c in Sources */, + A1BB8B6327F6CF330057CFA8 /* SDL_list.c in Sources */, + A7D8BAB523E2514400DCD162 /* k_cos.c in Sources */, + A7D8B54523E2514300DCD162 /* SDL_hidapijoystick.c in Sources */, + A7D8B97423E2514400DCD162 /* SDL_malloc.c in Sources */, + A7D8B8C623E2514400DCD162 /* SDL_audio.c in Sources */, + A7D8B61D23E2514300DCD162 /* SDL_sysfilesystem.c in Sources */, + F3820713284F3609004DD584 /* controller_type.c in Sources */, + A7D8AB8B23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */, + A7D8B42E23E2514300DCD162 /* SDL_syscond.c in Sources */, + A7D8AADA23E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8BAE523E2514500DCD162 /* e_exp.c in Sources */, + A7D8BB8123E2514500DCD162 /* SDL_quit.c in Sources */, + A7D8AEA623E2514100DCD162 /* SDL_cocoawindow.m in Sources */, + A7D8B43A23E2514300DCD162 /* SDL_sysmutex.c in Sources */, + A7D8AAB023E2514100DCD162 /* SDL_syshaptic.c in Sources */, + F3F07D5A269640160074468B /* SDL_hidapi_luna.c in Sources */, + A7D8BBD523E2574800DCD162 /* SDL_uikitclipboard.m in Sources */, + A7D8B5C923E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */, + F386F6F92884663E001840AA /* SDL_utils.c in Sources */, + E4F7981E2AD8D86A00669F54 /* SDL_render_unsupported.c in Sources */, + A7D8AC0F23E2514100DCD162 /* SDL_video.c in Sources */, + A7D8BA5B23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */, + A7D8B14023E2514200DCD162 /* SDL_blit_1.c in Sources */, + A7D8BBDB23E2574800DCD162 /* SDL_uikitmetalview.m in Sources */, + A7D8BB1523E2514500DCD162 /* SDL_mouse.c in Sources */, + A7D8BAD923E2514500DCD162 /* e_rem_pio2.c in Sources */, + F395C19C2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A7D8B4B223E2514300DCD162 /* SDL_sysjoystick.c in Sources */, + A7D8B3E023E2514300DCD162 /* SDL_cpuinfo.c in Sources */, + A7D8A99323E2514000DCD162 /* SDL_sensor.c in Sources */, + A7D8BAA923E2514400DCD162 /* k_sin.c in Sources */, + A7D8AB4923E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA2523E2514400DCD162 /* SDL_drawpoint.c in Sources */, + F388C95528B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A7D8BAF723E2514500DCD162 /* e_sqrt.c in Sources */, + F36C7AD1294BA009004D61C3 /* SDL_runapp.c in Sources */, + A7D8AEAC23E2514100DCD162 /* SDL_cocoavideo.m in Sources */, + A7D8A94B23E2514000DCD162 /* SDL.c in Sources */, + A7D8AEA023E2514100DCD162 /* SDL_cocoavulkan.m in Sources */, + A7D8AB6123E2514100DCD162 /* SDL_offscreenwindow.c in Sources */, + 566E26D8246274CC00718109 /* SDL_locale.c in Sources */, + 000040E76FDC6AE48CBF0000 /* SDL_hashtable.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + F3676F5D2A7885130091160D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F3B38CEC296F63B6005DA6D3 /* SDL3.xcframework */; + targetProxy = F3676F5C2A7885130091160D /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 00CFA621106A567900758660 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + DEPLOYMENT_POSTPROCESSING = YES; + DYLIB_COMPATIBILITY_VERSION = 1.0.0; + DYLIB_CURRENT_VERSION = 1.0.0; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../src, + ../../src/hidapi/hidapi, + ../../src/video/khronos, + "$(VULKAN_SDK)/include", + /usr/X11R6/include, + ); + INFOPLIST_FILE = "Info-Framework.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + MARKETING_VERSION = 3.0.0; + PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL3; + PRODUCT_NAME = SDL3; + STRIP_STYLE = "non-global"; + SUPPORTED_PLATFORMS = "watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = YES; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Release; + }; + 00CFA622106A567900758660 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_LINK_OBJC_RUNTIME = NO; + OTHER_LDFLAGS = "-liconv"; + SUPPORTS_MACCATALYST = YES; + }; + name = Release; + }; + 00CFA627106A568900758660 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + DYLIB_COMPATIBILITY_VERSION = 1.0.0; + DYLIB_CURRENT_VERSION = 1.0.0; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../src, + ../../src/hidapi/hidapi, + ../../src/video/khronos, + "$(VULKAN_SDK)/include", + /usr/X11R6/include, + ); + INFOPLIST_FILE = "Info-Framework.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + MARKETING_VERSION = 3.0.0; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL3; + PRODUCT_NAME = SDL3; + STRIP_INSTALLED_PRODUCT = NO; + SUPPORTED_PLATFORMS = "watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = YES; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + 00CFA628106A568900758660 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_LINK_OBJC_RUNTIME = NO; + OTHER_LDFLAGS = "-liconv"; + SUPPORTS_MACCATALYST = YES; + }; + name = Debug; + }; + F3676F5A2A7885080091160D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + F3676F5B2A7885080091160D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + F3B38CEE296F63B6005DA6D3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + F3B38CEF296F63B6005DA6D3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0073177A0858DB0500B2BC32 /* Build configuration list for PBXNativeTarget "SDL3" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00CFA628106A568900758660 /* Debug */, + 00CFA622106A567900758660 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0073178E0858DB0500B2BC32 /* Build configuration list for PBXProject "SDL" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00CFA627106A568900758660 /* Debug */, + 00CFA621106A567900758660 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + F3676F592A7885080091160D /* Build configuration list for PBXAggregateTarget "SDL3.dmg" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F3676F5A2A7885080091160D /* Debug */, + F3676F5B2A7885080091160D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + F3B38CED296F63B6005DA6D3 /* Build configuration list for PBXAggregateTarget "SDL3.xcframework" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F3B38CEE296F63B6005DA6D3 /* Debug */, + F3B38CEF296F63B6005DA6D3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/vendor/sdl-3.0.0/Xcode/SDL/SDL3/Info.plist b/vendor/sdl-3.0.0/Xcode/SDL/SDL3/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDL/SDL3/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/SDL.info b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/SDL.info new file mode 100644 index 0000000..66ba170 --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/SDL.info @@ -0,0 +1,15 @@ +Title SDL 3.0.0 +Version 1 +Description SDL Library for macOS (http://www.libsdl.org) +DefaultLocation /Library/Frameworks +Diskname (null) +DeleteWarning +NeedsAuthorization NO +DisableStop NO +UseUserMask NO +Application NO +Relocatable YES +Required NO +InstallOnly NO +RequiresReboot NO +InstallFat NO diff --git a/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/CMake/sdl3-config-version.cmake b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/CMake/sdl3-config-version.cmake new file mode 100644 index 0000000..6dbcf12 --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/CMake/sdl3-config-version.cmake @@ -0,0 +1,48 @@ +# based on the files generated by CMake's write_basic_package_version_file + +# SDL CMake version configuration file: +# This file is meant to be placed in Resources/CMake of a SDL3 framework + +if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../../Headers/SDL_version.h") + message(AUTHOR_WARNING "Could not find SDL_version.h. This script is meant to be placed in the Resources/CMake directory of SDL3.framework") + return() +endif() + +file(READ "${CMAKE_CURRENT_LIST_DIR}/../../Headers/SDL_version.h" _sdl_version_h) +string(REGEX MATCH "#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)" _sdl_major_re "${_sdl_version_h}") +set(_sdl_major "${CMAKE_MATCH_1}") +string(REGEX MATCH "#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)" _sdl_minor_re "${_sdl_version_h}") +set(_sdl_minor "${CMAKE_MATCH_1}") +string(REGEX MATCH "#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)" _sdl_patch_re "${_sdl_version_h}") +set(_sdl_patch "${CMAKE_MATCH_1}") +if(_sdl_major_re AND _sdl_minor_re AND _sdl_patch_re) + set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_patch}") +else() + message(AUTHOR_WARNING "Could not extract version from SDL_version.h.") + return() +endif() + +if(PACKAGE_FIND_VERSION_RANGE) + # Package version must be in the requested version range + if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN) + OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX))) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + endif() +else() + if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() + endif() +endif() + +# if the using project doesn't have CMAKE_SIZEOF_VOID_P set, fail. +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() diff --git a/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/CMake/sdl3-config.cmake b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/CMake/sdl3-config.cmake new file mode 100644 index 0000000..5a4e7b4 --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/CMake/sdl3-config.cmake @@ -0,0 +1,104 @@ +# SDL CMake configuration file: +# This file is meant to be placed in Resources/CMake of a SDL3 framework + +# INTERFACE_LINK_OPTIONS needs CMake 3.12 +cmake_minimum_required(VERSION 3.12) + +include(FeatureSummary) +set_package_properties(SDL3 PROPERTIES + URL "https://www.libsdl.org/" + DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware" +) + +# Copied from `configure_package_config_file` +macro(set_and_check _var _file) + set(${_var} "${_file}") + if(NOT EXISTS "${_file}") + message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") + endif() +endmacro() + +# Copied from `configure_package_config_file` +macro(check_required_components _NAME) + foreach(comp ${${_NAME}_FIND_COMPONENTS}) + if(NOT ${_NAME}_${comp}_FOUND) + if(${_NAME}_FIND_REQUIRED_${comp}) + set(${_NAME}_FOUND FALSE) + endif() + endif() + endforeach() +endmacro() + +set(SDL3_FOUND TRUE) + +# Compute the installation prefix relative to this file. +get_filename_component(_sdl3_framework_path "${CMAKE_CURRENT_LIST_FILE}" PATH) # /SDL3.framework/Resources/CMake/ +get_filename_component(_sdl3_framework_path "${_IMPORT_PREFIX}" PATH) # /SDL3.framework/Resources/ +get_filename_component(_sdl3_framework_path "${_IMPORT_PREFIX}" PATH) # /SDL3.framework/ +get_filename_component(_sdl3_framework_parent_path "${_sdl3_framework_path}" PATH) # / + +set_and_check(_sdl3_include_dirs "${_sdl3_framework_path}/Headers") + +set(SDL3_LIBRARIES "SDL3::SDL3") + +# All targets are created, even when some might not be requested though COMPONENTS. +# This is done for compatibility with CMake generated SDL3-target.cmake files. + +if(NOT TARGET SDL3::Headers) + add_library(SDL3::Headers INTERFACE IMPORTED) + set_target_properties(SDL3::Headers + PROPERTIES + INTERFACE_COMPILE_OPTIONS "SHELL:-F \"${_sdl3_framework_parent_path}\"" + INTERFACE_INCLUDE_DIRECTORIES "${_sdl3_include_dirs}" + ) +endif() +set(SDL3_Headers_FOUND TRUE) +unset(_sdl3_include_dirs) + +if(NOT TARGET SDL3::SDL3-shared) + add_library(SDL3::SDL3-shared SHARED IMPORTED) + set_target_properties(SDL3::SDL3-shared + PROPERTIES + FRAMEWORK "TRUE" + INTERFACE_LINK_LIBRARIES "SDL3::Headers" + IMPORTED_LOCATION "${_sdl3_framework_path}/SDL3" + IMPORTED_SONAME "${_sdl3_framework_path}/SDL3" + COMPATIBLE_INTERFACE_BOOL "SDL3_SHARED" + INTERFACE_SDL3_SHARED "ON" + COMPATIBLE_INTERFACE_STRING "SDL_VERSION" + INTERFACE_SDL_VERSION "SDL3" + ) +endif() +set(SDL3_SDL3-shared_FOUND TRUE) + +set(SDL3_SDL3-static FALSE) + +set(SDL3_SDL3_test FALSE) + +unset(_sdl3_framework_parent_path) +unset(_sdl3_framework_path) + +if(SDL3_SDL3-shared_FOUND OR SDL3_SDL3-static_FOUND) + set(SDL3_SDL3_FOUND TRUE) +endif() + +function(_sdl_create_target_alias_compat NEW_TARGET TARGET) + if(CMAKE_VERSION VERSION_LESS "3.18") + # Aliasing local targets is not supported on CMake < 3.18, so make it global. + add_library(${NEW_TARGET} INTERFACE IMPORTED) + set_target_properties(${NEW_TARGET} PROPERTIES INTERFACE_LINK_LIBRARIES "${TARGET}") + else() + add_library(${NEW_TARGET} ALIAS ${TARGET}) + endif() +endfunction() + +# Make sure SDL3::SDL3 always exists +if(NOT TARGET SDL3::SDL3) + if(TARGET SDL3::SDL3-shared) + _sdl_create_target_alias_compat(SDL3::SDL3 SDL3::SDL3-shared) + else() + _sdl_create_target_alias_compat(SDL3::SDL3 SDL3::SDL3-static) + endif() +endif() + +check_required_components(SDL3) diff --git a/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/License.txt b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/License.txt new file mode 100644 index 0000000..523c51e --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/License.txt @@ -0,0 +1,19 @@ + +Simple DirectMedia Layer +Copyright (C) 1997-2023 Sam Lantinga + +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. diff --git a/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/ReadMe.txt b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/ReadMe.txt new file mode 100644 index 0000000..2713088 --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/ReadMe.txt @@ -0,0 +1,44 @@ +The Simple DirectMedia Layer (SDL for short) is a cross-platform +library designed to make it easy to write multi-media software, +such as games and emulators. + +The Simple DirectMedia Layer library source code is available from: +http://www.libsdl.org/ + +This library is distributed under the terms of the zlib license: +http://zlib.net/zlib_license.html + + +This packages contains the SDL framework for macOS. +Conforming with Apple guidelines, this framework +contains both the SDL runtime component and development header files. + + +To Install: +Copy the SDL3.framework to /Library/Frameworks + +You may alternatively install it in /Library/Frameworks +if your access privileges are not high enough. + + +Use in CMake projects: +SDL3.framework can be used in CMake projects using the following pattern: +``` +find_package(SDL3 REQUIRED COMPONENTS SDL3) +add_executable(my_game ${MY_SOURCES}) +target_link_libraries(my_game PRIVATE SDL3::SDL3) +``` +If SDL3.framework is installed in a non-standard location, +please refer to the following link for ways to configure CMake: +https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure + + +Additional References: + + - Screencast tutorials for getting started with OpenSceneGraph/macOS are + available at: + http://www.openscenegraph.org/projects/osg/wiki/Support/Tutorials/MacOSXTips + Though these are OpenSceneGraph centric, the same exact concepts apply to + SDL, thus the videos are recommended for everybody getting started with + developing on macOS. (You can skim over the PlugIns stuff since SDL + doesn't have any PlugIns to worry about.) diff --git a/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/SDL_DS_Store b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/SDL_DS_Store new file mode 100644 index 0000000..1551933 Binary files /dev/null and b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/resources/SDL_DS_Store differ diff --git a/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/sdl_logo.pdf b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/sdl_logo.pdf new file mode 100644 index 0000000..a172f97 Binary files /dev/null and b/vendor/sdl-3.0.0/Xcode/SDL/pkg-support/sdl_logo.pdf differ diff --git a/vendor/sdl-3.0.0/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj b/vendor/sdl-3.0.0/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2642bca --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj @@ -0,0 +1,5069 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXAggregateTarget section */ + BEC566920761D90300A33029 /* All */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 001B599808BDB826006539E9 /* Build configuration list for PBXAggregateTarget "All" */; + buildPhases = ( + ); + dependencies = ( + F3E1F8032A78C3C500AC76D3 /* PBXTargetDependency */, + F3E1F8012A78C3BE00AC76D3 /* PBXTargetDependency */, + F3E1F7FF2A78C3AD00AC76D3 /* PBXTargetDependency */, + F35E56E72983133F00A43A5F /* PBXTargetDependency */, + DB0F490517CA5249008798C5 /* PBXTargetDependency */, + DB0F490717CA5249008798C5 /* PBXTargetDependency */, + DB166E9816A1D7CF00A1396C /* PBXTargetDependency */, + DB166E9616A1D7CD00A1396C /* PBXTargetDependency */, + DB166E6C16A1D72000A1396C /* PBXTargetDependency */, + DB166E5616A1D6B800A1396C /* PBXTargetDependency */, + DB166E3B16A1D65A00A1396C /* PBXTargetDependency */, + DB166E2016A1D5D000A1396C /* PBXTargetDependency */, + DB166E0916A1D5A400A1396C /* PBXTargetDependency */, + DB166DF216A1D53700A1396C /* PBXTargetDependency */, + DB166DD916A1D38900A1396C /* PBXTargetDependency */, + 001799481074403E00F5D044 /* PBXTargetDependency */, + 0017994C1074403E00F5D044 /* PBXTargetDependency */, + 001799501074403E00F5D044 /* PBXTargetDependency */, + 001799521074403E00F5D044 /* PBXTargetDependency */, + 0017995A1074403E00F5D044 /* PBXTargetDependency */, + 0017995E1074403E00F5D044 /* PBXTargetDependency */, + 001799601074403E00F5D044 /* PBXTargetDependency */, + 001799661074403E00F5D044 /* PBXTargetDependency */, + 001799681074403E00F5D044 /* PBXTargetDependency */, + 0017996A1074403E00F5D044 /* PBXTargetDependency */, + 0017996C1074403E00F5D044 /* PBXTargetDependency */, + 0017996E1074403E00F5D044 /* PBXTargetDependency */, + 001799701074403E00F5D044 /* PBXTargetDependency */, + 001799741074403E00F5D044 /* PBXTargetDependency */, + 001799761074403E00F5D044 /* PBXTargetDependency */, + 001799781074403E00F5D044 /* PBXTargetDependency */, + 0017997C1074403E00F5D044 /* PBXTargetDependency */, + 001799801074403E00F5D044 /* PBXTargetDependency */, + 001799841074403E00F5D044 /* PBXTargetDependency */, + 001799881074403E00F5D044 /* PBXTargetDependency */, + 0017998A1074403E00F5D044 /* PBXTargetDependency */, + 0017998C1074403E00F5D044 /* PBXTargetDependency */, + 0017998E1074403E00F5D044 /* PBXTargetDependency */, + 001799921074403E00F5D044 /* PBXTargetDependency */, + 001799941074403E00F5D044 /* PBXTargetDependency */, + 001799961074403E00F5D044 /* PBXTargetDependency */, + 0017999E1074403E00F5D044 /* PBXTargetDependency */, + 001799A21074403E00F5D044 /* PBXTargetDependency */, + DB166D7016A1CEAF00A1396C /* PBXTargetDependency */, + DB166D6E16A1CEAA00A1396C /* PBXTargetDependency */, + ); + name = All; + productName = "Build All"; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 001795901074216E00F5D044 /* testatomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017958F1074216E00F5D044 /* testatomic.c */; }; + 001795B11074222D00F5D044 /* testaudioinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 001795B01074222D00F5D044 /* testaudioinfo.c */; }; + 0017972810742FB900F5D044 /* testgl.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017972710742FB900F5D044 /* testgl.c */; }; + 0017974F1074315700F5D044 /* testhaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017974E1074315700F5D044 /* testhaptic.c */; }; + 001797721074320D00F5D044 /* testdraw.c in Sources */ = {isa = PBXBuildFile; fileRef = 001797711074320D00F5D044 /* testdraw.c */; }; + 00179792107432FA00F5D044 /* testime.c in Sources */ = {isa = PBXBuildFile; fileRef = 00179791107432FA00F5D044 /* testime.c */; }; + 001797B41074339C00F5D044 /* testintersections.c in Sources */ = {isa = PBXBuildFile; fileRef = 001797B31074339C00F5D044 /* testintersections.c */; }; + 001797D41074343E00F5D044 /* testloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 001797D31074343E00F5D044 /* testloadso.c */; }; + 001798161074359B00F5D044 /* testmultiaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 001798151074359B00F5D044 /* testmultiaudio.c */; }; + 0017987F1074392D00F5D044 /* testnative.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017985A107436ED00F5D044 /* testnative.c */; }; + 001798801074392D00F5D044 /* testnativecocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 0017985C107436ED00F5D044 /* testnativecocoa.m */; }; + 001798BA10743A4900F5D044 /* testpower.c in Sources */ = {isa = PBXBuildFile; fileRef = 001798B910743A4900F5D044 /* testpower.c */; }; + 001798FA10743E9200F5D044 /* testresample.c in Sources */ = {isa = PBXBuildFile; fileRef = 001798F910743E9200F5D044 /* testresample.c */; }; + 0017991A10743F5300F5D044 /* testsprite.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017991910743F5300F5D044 /* testsprite.c */; }; + 0017993C10743FEF00F5D044 /* testwm.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017993B10743FEF00F5D044 /* testwm.c */; }; + 002F341809CA1C5B00EBEB88 /* testfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 002F341709CA1C5B00EBEB88 /* testfile.c */; }; + 002F343709CA1F6F00EBEB88 /* testiconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 002F343609CA1F6F00EBEB88 /* testiconv.c */; }; + 002F345409CA202000EBEB88 /* testoverlay.c in Sources */ = {isa = PBXBuildFile; fileRef = 002F345209CA201C00EBEB88 /* testoverlay.c */; }; + 002F347009CA20A600EBEB88 /* testplatform.c in Sources */ = {isa = PBXBuildFile; fileRef = 002F346F09CA20A600EBEB88 /* testplatform.c */; }; + 00794E6609D20865003FC8A1 /* sample.wav in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6209D20839003FC8A1 /* sample.wav */; }; + 00794EF009D23739003FC8A1 /* utf8.txt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6309D20839003FC8A1 /* utf8.txt */; }; + 00794EF709D237DE003FC8A1 /* moose.dat in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5E09D20839003FC8A1 /* moose.dat */; }; + 453774A5120915E3002F0F45 /* testshape.c in Sources */ = {isa = PBXBuildFile; fileRef = 453774A4120915E3002F0F45 /* testshape.c */; }; + 66E88E8B203B778F0004D44E /* testyuv_cvt.c in Sources */ = {isa = PBXBuildFile; fileRef = 66E88E8A203B778F0004D44E /* testyuv_cvt.c */; }; + AAF02FFA1F90092700B9A9FB /* SDL_test_memory.c in Sources */ = {isa = PBXBuildFile; fileRef = AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */; }; + BBFC08D0164C6876003E6A99 /* testcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = BBFC088E164C6820003E6A99 /* testcontroller.c */; }; + BEC566B10761D90300A33029 /* checkkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D10FFB30A2C7F000001 /* checkkeys.c */; }; + BEC566CB0761D90300A33029 /* loopwave.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4872006D84C97F000001 /* loopwave.c */; }; + BEC567010761D90300A33029 /* testerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4878006D85357F000001 /* testerror.c */; }; + BEC567290761D90400A33029 /* testthread.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D58FFB311A97F000001 /* testthread.c */; }; + BEC567430761D90400A33029 /* testkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D6CFFB313437F000001 /* testkeys.c */; }; + BEC567500761D90400A33029 /* testlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D75FFB313BB7F000001 /* testlock.c */; }; + BEC567780761D90500A33029 /* testsem.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E487E006D86A17F000001 /* testsem.c */; }; + BEC567930761D90500A33029 /* testtimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4880006D86A17F000001 /* testtimer.c */; }; + BEC567AD0761D90500A33029 /* testver.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4882006D86A17F000001 /* testver.c */; }; + BEC567F00761D90600A33029 /* torturethread.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4887006D86A17F000001 /* torturethread.c */; }; + DB0F48EE17CA51F8008798C5 /* testdrawchessboard.c in Sources */ = {isa = PBXBuildFile; fileRef = DB0F48D717CA51D2008798C5 /* testdrawchessboard.c */; }; + DB0F490317CA5225008798C5 /* testfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = DB0F48D817CA51D2008798C5 /* testfilesystem.c */; }; + DB166D9316A1D1A500A1396C /* SDL_test_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8416A1D1A500A1396C /* SDL_test_assert.c */; }; + DB166D9416A1D1A500A1396C /* SDL_test_common.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8516A1D1A500A1396C /* SDL_test_common.c */; }; + DB166D9516A1D1A500A1396C /* SDL_test_compare.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8616A1D1A500A1396C /* SDL_test_compare.c */; }; + DB166D9616A1D1A500A1396C /* SDL_test_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8716A1D1A500A1396C /* SDL_test_crc32.c */; }; + DB166D9716A1D1A500A1396C /* SDL_test_font.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8816A1D1A500A1396C /* SDL_test_font.c */; }; + DB166D9816A1D1A500A1396C /* SDL_test_fuzzer.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8916A1D1A500A1396C /* SDL_test_fuzzer.c */; }; + DB166D9916A1D1A500A1396C /* SDL_test_harness.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */; }; + DB166D9F16A1D1A500A1396C /* SDL_test_log.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9016A1D1A500A1396C /* SDL_test_log.c */; }; + DB166DA016A1D1A500A1396C /* SDL_test_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9116A1D1A500A1396C /* SDL_test_md5.c */; }; + DB166DA116A1D1A500A1396C /* SDL_test_random.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9216A1D1A500A1396C /* SDL_test_random.c */; }; + DB166DD716A1D37800A1396C /* testmessage.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CBD16A1C74100A1396C /* testmessage.c */; }; + DB166DDB16A1D42F00A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166DF016A1D52500A1396C /* testrelative.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CBF16A1C74100A1396C /* testrelative.c */; }; + DB166E0716A1D59400A1396C /* testrendercopyex.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC016A1C74100A1396C /* testrendercopyex.c */; }; + DB166E1E16A1D5C300A1396C /* testrendertarget.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC116A1C74100A1396C /* testrendertarget.c */; }; + DB166E2216A1D5EC00A1396C /* sample.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6109D20839003FC8A1 /* sample.bmp */; }; + DB166E2316A1D60B00A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166E2516A1D61900A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166E2616A1D61900A1396C /* sample.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6109D20839003FC8A1 /* sample.bmp */; }; + DB166E3C16A1D66500A1396C /* testrumble.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC216A1C74100A1396C /* testrumble.c */; }; + DB166E4D16A1D69000A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166E4E16A1D69000A1396C /* sample.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6109D20839003FC8A1 /* sample.bmp */; }; + DB166E5416A1D6A300A1396C /* testscale.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC316A1C74100A1396C /* testscale.c */; }; + DB166E6A16A1D70C00A1396C /* testshader.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC416A1C74100A1396C /* testshader.c */; }; + DB166E9316A1D7BC00A1396C /* testspriteminimal.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC516A1C74100A1396C /* testspriteminimal.c */; }; + DB166E9416A1D7C700A1396C /* teststreaming.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC616A1C74100A1396C /* teststreaming.c */; }; + DB166E9A16A1D7F700A1396C /* moose.dat in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5E09D20839003FC8A1 /* moose.dat */; }; + DB166E9C16A1D80900A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166ED016A1D88100A1396C /* shapes in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB166ECF16A1D87000A1396C /* shapes */; }; + DB445EFB18184BB600B306B0 /* testdropfile.c in Sources */ = {isa = PBXBuildFile; fileRef = DB445EFA18184BB600B306B0 /* testdropfile.c */; }; + DB89958418A19B130092407C /* testhotplug.c in Sources */ = {isa = PBXBuildFile; fileRef = DB89958318A19B130092407C /* testhotplug.c */; }; + F35E56CF2983130F00A43A5F /* testautomation_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56B62983130A00A43A5F /* testautomation_main.c */; }; + F35E56D02983130F00A43A5F /* testautomation_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56B72983130A00A43A5F /* testautomation_hints.c */; }; + F35E56D12983130F00A43A5F /* testautomation_render.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56B82983130A00A43A5F /* testautomation_render.c */; }; + F35E56D22983130F00A43A5F /* testautomation_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56B92983130B00A43A5F /* testautomation_rwops.c */; }; + F35E56D32983130F00A43A5F /* testautomation_math.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56BA2983130B00A43A5F /* testautomation_math.c */; }; + F35E56D42983130F00A43A5F /* testautomation_events.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56BB2983130B00A43A5F /* testautomation_events.c */; }; + F35E56D52983130F00A43A5F /* testautomation_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56BC2983130B00A43A5F /* testautomation_clipboard.c */; }; + F35E56D62983130F00A43A5F /* testautomation_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56BD2983130B00A43A5F /* testautomation_timer.c */; }; + F35E56D72983130F00A43A5F /* testautomation_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56BE2983130C00A43A5F /* testautomation_stdlib.c */; }; + F35E56D82983130F00A43A5F /* testautomation_images.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56BF2983130C00A43A5F /* testautomation_images.c */; }; + F35E56D92983130F00A43A5F /* testautomation_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C02983130C00A43A5F /* testautomation_pixels.c */; }; + F35E56DA2983130F00A43A5F /* testautomation_video.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C12983130C00A43A5F /* testautomation_video.c */; }; + F35E56DB2983130F00A43A5F /* testautomation_platform.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C32983130D00A43A5F /* testautomation_platform.c */; }; + F35E56DC2983130F00A43A5F /* testautomation_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C42983130D00A43A5F /* testautomation_audio.c */; }; + F35E56DD2983130F00A43A5F /* testautomation_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C52983130D00A43A5F /* testautomation_rect.c */; }; + F35E56DE2983130F00A43A5F /* testautomation_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C62983130D00A43A5F /* testautomation_joystick.c */; }; + F35E56DF2983130F00A43A5F /* testautomation_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C72983130E00A43A5F /* testautomation_keyboard.c */; }; + F35E56E02983130F00A43A5F /* testautomation_sdltest.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C82983130E00A43A5F /* testautomation_sdltest.c */; }; + F35E56E12983130F00A43A5F /* testautomation_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56C92983130E00A43A5F /* testautomation_guid.c */; }; + F35E56E22983130F00A43A5F /* testautomation_syswm.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56CA2983130E00A43A5F /* testautomation_syswm.c */; }; + F35E56E32983130F00A43A5F /* testautomation_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56CB2983130F00A43A5F /* testautomation_surface.c */; }; + F35E56E42983130F00A43A5F /* testautomation.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56CC2983130F00A43A5F /* testautomation.c */; }; + F35E56E52983130F00A43A5F /* testautomation_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = F35E56CD2983130F00A43A5F /* testautomation_mouse.c */; }; + F399C64E2A78929400C86979 /* gamepadutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F399C6492A78929400C86979 /* gamepadutils.c */; }; + F399C64F2A78929400C86979 /* gamepadutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F399C6492A78929400C86979 /* gamepadutils.c */; }; + F399C6512A7892D800C86979 /* testautomation_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = F399C6502A7892D800C86979 /* testautomation_intrinsics.c */; }; + F399C6522A7892D800C86979 /* testautomation_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = F399C6502A7892D800C86979 /* testautomation_intrinsics.c */; }; + F399C6552A78933100C86979 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F399C6542A78933000C86979 /* Cocoa.framework */; }; + F3C17C7728E40BC800E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7928E40C6E00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7B28E40D4E00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7C28E40D7400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7D28E40F9D00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7E28E40FDD00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7F28E4101000E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8028E410A400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8128E410C900E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8228E4112900E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8328E4124400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8428E4126400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8528E4127D00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17CEB28E4177600E1A26D /* testgeometry.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CD628E416AC00E1A26D /* testgeometry.c */; }; + F3C17CEC28E417EB00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17D3928E424B800E1A26D /* sample.wav in Resources */ = {isa = PBXBuildFile; fileRef = 00794E6209D20839003FC8A1 /* sample.wav */; }; + F3C17D3B28E4252900E1A26D /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + F3CB56892A7895F800766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB568A2A7895F800766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB568C2A7896BF00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB568D2A7896BF00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56902A7896F900766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56912A7896F900766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56932A78971600766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56942A78971600766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56962A78971F00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56972A78971F00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56992A78972700766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB569A2A78972700766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB569C2A78972F00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB569D2A78972F00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB569F2A78973700766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56A02A78973700766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56A22A78974000766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56A32A78974000766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56A52A78974800766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56A62A78974800766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56A82A78975100766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56A92A78975100766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56AB2A78975A00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56AC2A78975A00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56AE2A78976200766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56AF2A78976200766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56B12A78976800766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56B22A78976800766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56B42A78977000766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56B52A78977000766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56B72A78977D00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56B82A78977D00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56BA2A78978700766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56BB2A78978700766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56BD2A78979000766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56BE2A78979000766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56C02A78979600766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56C12A78979600766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56C32A78979C00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56C42A78979C00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56C62A7897A500766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56C72A7897A500766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56C92A7897AE00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56CA2A7897AE00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56CC2A7897B500766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56CD2A7897B500766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56CF2A7897BE00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56D02A7897BE00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56D22A7897C600766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56D32A7897C600766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56D52A7897CD00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56D62A7897CD00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56D92A7897E200766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56DA2A7897E200766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56DC2A7897E900766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56DD2A7897E900766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56DF2A7897F000766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56E02A7897F000766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56E22A7897F800766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56E32A7897F800766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56E52A7897FE00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56E62A7897FE00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56E82A78980600766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56E92A78980600766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56EB2A78980D00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56EC2A78980D00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56EE2A78981500766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56EF2A78981500766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56F12A78981C00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56F22A78981C00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56F42A78982300766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56F52A78982300766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56F72A78982B00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56F82A78982B00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56FA2A78983200766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56FB2A78983200766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB56FD2A78983C00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB56FE2A78983C00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB57002A78984300766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB57012A78984300766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB57032A78984A00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB57042A78984A00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB57062A78985400766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB57072A78985400766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB57092A78985A00766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB570A2A78985A00766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB570C2A78986000766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB570D2A78986000766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3CB570F2A78986700766177 /* SDL3.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; }; + F3CB57102A78986700766177 /* SDL3.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL3.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 001799471074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC566AB0761D90300A33029; + remoteInfo = checkkeys; + }; + 0017994B1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC566C50761D90300A33029; + remoteInfo = loopwave; + }; + 0017994F1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0017957410741F7900F5D044; + remoteInfo = testatomic; + }; + 001799511074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00179595107421BF00F5D044; + remoteInfo = testaudioinfo; + }; + 001799591074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00179756107431B300F5D044; + remoteInfo = testdraw; + }; + 0017995D1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC566FB0761D90300A33029; + remoteInfo = testerror; + }; + 0017995F1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 002F340109CA1BFF00EBEB88; + remoteInfo = testfile; + }; + 001799651074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0017970910742F3200F5D044; + remoteInfo = testgl; + }; + 001799671074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00179730107430D600F5D044; + remoteInfo = testhaptic; + }; + 001799691074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567230761D90400A33029; + remoteInfo = testthread; + }; + 0017996B1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 002F342009CA1F0300EBEB88; + remoteInfo = testiconv; + }; + 0017996D1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00179776107432AE00F5D044; + remoteInfo = testime; + }; + 0017996F1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001797961074334C00F5D044; + remoteInfo = testintersections; + }; + 001799731074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC5673D0761D90400A33029; + remoteInfo = testkeys; + }; + 001799751074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001797B8107433C600F5D044; + remoteInfo = testloadso; + }; + 001799771074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC5674A0761D90400A33029; + remoteInfo = testlock; + }; + 0017997B1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001797FA1074355200F5D044; + remoteInfo = testmultiaudio; + }; + 0017997F1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001798781074392D00F5D044; + remoteInfo = testnativex11; + }; + 001799831074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 002F343C09CA1FB300EBEB88; + remoteInfo = testoverlay; + }; + 001799871074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 002F345909CA204F00EBEB88; + remoteInfo = testplatform; + }; + 001799891074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0017989D107439DF00F5D044; + remoteInfo = testpower; + }; + 0017998B1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001798DA10743BEC00F5D044; + remoteInfo = testresample; + }; + 0017998D1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567720761D90500A33029; + remoteInfo = testsem; + }; + 001799911074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001798FE10743F1000F5D044; + remoteInfo = testsprite; + }; + 001799931074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC5678D0761D90500A33029; + remoteInfo = testtimer; + }; + 001799951074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567A70761D90500A33029; + remoteInfo = testversion; + }; + 0017999D1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0017992010743FB700F5D044; + remoteInfo = testwm; + }; + 001799A11074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567EA0761D90600A33029; + remoteInfo = torturethread; + }; + 003FA642093FFD41000C53B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BECDF66C0761BA81005FE872; + remoteInfo = Framework; + }; + DB0F490417CA5249008798C5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB0F48D917CA51E5008798C5; + remoteInfo = testdrawchessboard; + }; + DB0F490617CA5249008798C5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB0F48EF17CA5212008798C5; + remoteInfo = testfilesystem; + }; + DB166D6D16A1CEAA00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBFC08B7164C6862003E6A99; + remoteInfo = testcontroller; + }; + DB166D6F16A1CEAF00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4537749112091504002F0F45; + remoteInfo = testshape; + }; + DB166DD816A1D38900A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166DC416A1D36A00A1396C; + remoteInfo = testmessage; + }; + DB166DF116A1D53700A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166DDC16A1D50C00A1396C; + remoteInfo = testrelative; + }; + DB166E0816A1D5A400A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166DF316A1D57C00A1396C; + remoteInfo = testrendercopyex; + }; + DB166E1F16A1D5D000A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E0A16A1D5AD00A1396C; + remoteInfo = testrendertarget; + }; + DB166E3A16A1D65A00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E2716A1D64D00A1396C; + remoteInfo = testrumble; + }; + DB166E5516A1D6B800A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E3D16A1D69000A1396C; + remoteInfo = testscale; + }; + DB166E6B16A1D72000A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E5716A1D6F300A1396C; + remoteInfo = testshader; + }; + DB166E9516A1D7CD00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E6D16A1D78400A1396C; + remoteInfo = testspriteminimal; + }; + DB166E9716A1D7CF00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E8016A1D78C00A1396C; + remoteInfo = teststreaming; + }; + F35E56E62983133F00A43A5F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F35E56A2298312CB00A43A5F; + remoteInfo = testautomation; + }; + F3E1F7FE2A78C3AD00AC76D3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB89956D18A19ABA0092407C; + remoteInfo = testhotplug; + }; + F3E1F8002A78C3BE00AC76D3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB445EE618184B7000B306B0; + remoteInfo = testdropfile; + }; + F3E1F8022A78C3C500AC76D3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F3C17CDB28E416CF00E1A26D; + remoteInfo = testgeometry; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 00794E6409D2084F003FC8A1 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + 00794E6609D20865003FC8A1 /* sample.wav in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 00794EEC09D2371F003FC8A1 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + 00794EF009D23739003FC8A1 /* utf8.txt in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 00794EF409D237C7003FC8A1 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + 00794EF709D237DE003FC8A1 /* moose.dat in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DDA16A1D40F00A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166DDB16A1D42F00A1396C /* icon.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E2116A1D5DF00A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E2316A1D60B00A1396C /* icon.bmp in CopyFiles */, + DB166E2216A1D5EC00A1396C /* sample.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E2416A1D61000A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E2516A1D61900A1396C /* icon.bmp in CopyFiles */, + DB166E2616A1D61900A1396C /* sample.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E4C16A1D69000A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E4D16A1D69000A1396C /* icon.bmp in CopyFiles */, + DB166E4E16A1D69000A1396C /* sample.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E9916A1D7EE00A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E9A16A1D7F700A1396C /* moose.dat in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E9B16A1D7FC00A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E9C16A1D80900A1396C /* icon.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166ECE16A1D85400A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166ED016A1D88100A1396C /* shapes in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB568B2A7895F800766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB568A2A7895F800766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB568E2A7896BF00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB568D2A7896BF00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56922A7896F900766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56912A7896F900766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56952A78971600766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56942A78971600766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56982A78971F00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56972A78971F00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB569B2A78972700766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB569A2A78972700766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB569E2A78973000766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB569D2A78972F00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56A12A78973700766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56A02A78973700766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56A42A78974000766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56A32A78974000766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56A72A78974800766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56A62A78974800766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56AA2A78975100766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56A92A78975100766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56AD2A78975A00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56AC2A78975A00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56B02A78976200766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56AF2A78976200766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56B32A78976900766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56B22A78976800766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56B62A78977000766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56B52A78977000766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56B92A78977D00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56B82A78977D00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56BC2A78978800766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56BB2A78978700766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56BF2A78979000766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56BE2A78979000766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56C22A78979600766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56C12A78979600766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56C52A78979C00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56C42A78979C00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56C82A7897A500766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56C72A7897A500766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56CB2A7897AE00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56CA2A7897AE00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56CE2A7897B500766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56CD2A7897B500766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56D12A7897BE00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56D02A7897BE00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56D42A7897C600766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56D32A7897C600766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56D72A7897CE00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56D62A7897CD00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56DB2A7897E200766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56DA2A7897E200766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56DE2A7897E900766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56DD2A7897E900766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56E12A7897F000766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56E02A7897F000766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56E42A7897F800766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56E32A7897F800766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56E72A7897FE00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56E62A7897FE00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56EA2A78980600766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56E92A78980600766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56ED2A78980D00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56EC2A78980D00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56F02A78981500766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56EF2A78981500766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56F32A78981C00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56F22A78981C00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56F62A78982400766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56F52A78982300766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56F92A78982B00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56F82A78982B00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56FC2A78983200766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56FB2A78983200766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB56FF2A78983C00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB56FE2A78983C00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB57022A78984300766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB57012A78984300766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB57052A78984A00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB57042A78984A00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB57082A78985400766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB57072A78985400766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB570B2A78985A00766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB570A2A78985A00766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB570E2A78986000766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB570D2A78986000766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3CB57112A78986700766177 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3CB57102A78986700766177 /* SDL3.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0017958C10741F7900F5D044 /* testatomic.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testatomic.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017958F1074216E00F5D044 /* testatomic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testatomic.c; sourceTree = ""; }; + 001795AD107421BF00F5D044 /* testaudioinfo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testaudioinfo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001795B01074222D00F5D044 /* testaudioinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testaudioinfo.c; sourceTree = ""; }; + 0017972110742F3200F5D044 /* testgl.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgl.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017972710742FB900F5D044 /* testgl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgl.c; sourceTree = ""; }; + 00179748107430D600F5D044 /* testhaptic.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testhaptic.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017974E1074315700F5D044 /* testhaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testhaptic.c; sourceTree = ""; }; + 0017976E107431B300F5D044 /* testdraw.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testdraw.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001797711074320D00F5D044 /* testdraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdraw.c; sourceTree = ""; }; + 0017978E107432AE00F5D044 /* testime.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testime.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 00179791107432FA00F5D044 /* testime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testime.c; sourceTree = ""; }; + 001797AE1074334C00F5D044 /* testintersections.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testintersections.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001797B31074339C00F5D044 /* testintersections.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testintersections.c; sourceTree = ""; }; + 001797D0107433C600F5D044 /* testloadso.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testloadso.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001797D31074343E00F5D044 /* testloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testloadso.c; sourceTree = ""; }; + 001798121074355200F5D044 /* testmultiaudio.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testmultiaudio.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001798151074359B00F5D044 /* testmultiaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testmultiaudio.c; sourceTree = ""; }; + 0017985A107436ED00F5D044 /* testnative.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testnative.c; sourceTree = ""; }; + 0017985B107436ED00F5D044 /* testnative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = testnative.h; sourceTree = ""; }; + 0017985C107436ED00F5D044 /* testnativecocoa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = testnativecocoa.m; sourceTree = ""; }; + 00179872107438D000F5D044 /* testnativex11.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testnativex11.c; sourceTree = ""; }; + 001798941074392D00F5D044 /* testnative.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testnative.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001798B5107439DF00F5D044 /* testpower.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testpower.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001798B910743A4900F5D044 /* testpower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testpower.c; sourceTree = ""; }; + 001798F210743BEC00F5D044 /* testresample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testresample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001798F910743E9200F5D044 /* testresample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testresample.c; sourceTree = ""; }; + 0017991610743F1000F5D044 /* testsprite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testsprite.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017991910743F5300F5D044 /* testsprite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testsprite.c; sourceTree = ""; }; + 0017993810743FB700F5D044 /* testwm.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testwm.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017993B10743FEF00F5D044 /* testwm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testwm.c; sourceTree = ""; }; + 002F341209CA1BFF00EBEB88 /* testfile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testfile.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 002F341709CA1C5B00EBEB88 /* testfile.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testfile.c; sourceTree = ""; }; + 002F343109CA1F0300EBEB88 /* testiconv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testiconv.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 002F343609CA1F6F00EBEB88 /* testiconv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testiconv.c; sourceTree = ""; }; + 002F344D09CA1FB300EBEB88 /* testoverlay.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testoverlay.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 002F345209CA201C00EBEB88 /* testoverlay.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testoverlay.c; sourceTree = ""; }; + 002F346A09CA204F00EBEB88 /* testplatform.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testplatform.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 002F346F09CA20A600EBEB88 /* testplatform.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testplatform.c; sourceTree = ""; }; + 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../SDL/SDL.xcodeproj; sourceTree = SOURCE_ROOT; }; + 00794E5D09D20839003FC8A1 /* icon.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = icon.bmp; sourceTree = ""; }; + 00794E5E09D20839003FC8A1 /* moose.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = moose.dat; sourceTree = ""; }; + 00794E5F09D20839003FC8A1 /* picture.xbm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = picture.xbm; sourceTree = ""; }; + 00794E6109D20839003FC8A1 /* sample.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = sample.bmp; sourceTree = ""; }; + 00794E6209D20839003FC8A1 /* sample.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = sample.wav; sourceTree = ""; }; + 00794E6309D20839003FC8A1 /* utf8.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = utf8.txt; sourceTree = ""; }; + 083E4872006D84C97F000001 /* loopwave.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = loopwave.c; sourceTree = ""; }; + 083E4878006D85357F000001 /* testerror.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testerror.c; sourceTree = ""; }; + 083E487E006D86A17F000001 /* testsem.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testsem.c; sourceTree = ""; }; + 083E4880006D86A17F000001 /* testtimer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testtimer.c; sourceTree = ""; }; + 083E4882006D86A17F000001 /* testver.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testver.c; sourceTree = ""; }; + 083E4887006D86A17F000001 /* torturethread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = torturethread.c; sourceTree = ""; }; + 092D6D10FFB30A2C7F000001 /* checkkeys.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = checkkeys.c; sourceTree = ""; }; + 092D6D58FFB311A97F000001 /* testthread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testthread.c; sourceTree = ""; }; + 092D6D6CFFB313437F000001 /* testkeys.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testkeys.c; sourceTree = ""; }; + 092D6D75FFB313BB7F000001 /* testlock.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testlock.c; sourceTree = ""; }; + 4537749212091504002F0F45 /* testshape.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testshape.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 453774A4120915E3002F0F45 /* testshape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testshape.c; sourceTree = ""; }; + 66E88E8A203B778F0004D44E /* testyuv_cvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testyuv_cvt.c; sourceTree = ""; }; + AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_memory.c; sourceTree = ""; }; + BBFC088E164C6820003E6A99 /* testcontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testcontroller.c; sourceTree = ""; }; + BBFC08CD164C6862003E6A99 /* testcontroller.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testcontroller.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC566B60761D90300A33029 /* checkkeys.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = checkkeys.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC566D10761D90300A33029 /* loopwave.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = loopwave.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567060761D90400A33029 /* testerror.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testerror.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC5672E0761D90400A33029 /* testthread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testthread.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567480761D90400A33029 /* testkeys.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testkeys.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567550761D90400A33029 /* testlock.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testlock.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC5677D0761D90500A33029 /* testsem.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testsem.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567980761D90500A33029 /* testtimer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testtimer.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567B20761D90500A33029 /* testversion.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testversion.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567F50761D90600A33029 /* torturethread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = torturethread.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB0F48D717CA51D2008798C5 /* testdrawchessboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testdrawchessboard.c; sourceTree = ""; }; + DB0F48D817CA51D2008798C5 /* testfilesystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testfilesystem.c; sourceTree = ""; }; + DB0F48EC17CA51E5008798C5 /* testdrawchessboard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testdrawchessboard.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB0F490117CA5212008798C5 /* testfilesystem.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testfilesystem.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166CBC16A1C74100A1396C /* testgles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testgles.c; sourceTree = ""; }; + DB166CBD16A1C74100A1396C /* testmessage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testmessage.c; sourceTree = ""; }; + DB166CBF16A1C74100A1396C /* testrelative.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrelative.c; sourceTree = ""; }; + DB166CC016A1C74100A1396C /* testrendercopyex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrendercopyex.c; sourceTree = ""; }; + DB166CC116A1C74100A1396C /* testrendertarget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrendertarget.c; sourceTree = ""; }; + DB166CC216A1C74100A1396C /* testrumble.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrumble.c; sourceTree = ""; }; + DB166CC316A1C74100A1396C /* testscale.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testscale.c; sourceTree = ""; }; + DB166CC416A1C74100A1396C /* testshader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testshader.c; sourceTree = ""; }; + DB166CC516A1C74100A1396C /* testspriteminimal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testspriteminimal.c; sourceTree = ""; }; + DB166CC616A1C74100A1396C /* teststreaming.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = teststreaming.c; sourceTree = ""; }; + DB166D7F16A1D12400A1396C /* libSDL3_test.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL3_test.a; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166D8416A1D1A500A1396C /* SDL_test_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_assert.c; sourceTree = ""; }; + DB166D8516A1D1A500A1396C /* SDL_test_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_common.c; sourceTree = ""; }; + DB166D8616A1D1A500A1396C /* SDL_test_compare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_compare.c; sourceTree = ""; }; + DB166D8716A1D1A500A1396C /* SDL_test_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_crc32.c; sourceTree = ""; }; + DB166D8816A1D1A500A1396C /* SDL_test_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_font.c; sourceTree = ""; }; + DB166D8916A1D1A500A1396C /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_fuzzer.c; sourceTree = ""; }; + DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_harness.c; sourceTree = ""; }; + DB166D9016A1D1A500A1396C /* SDL_test_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_log.c; sourceTree = ""; }; + DB166D9116A1D1A500A1396C /* SDL_test_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_md5.c; sourceTree = ""; }; + DB166D9216A1D1A500A1396C /* SDL_test_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_random.c; sourceTree = ""; }; + DB166DD516A1D36A00A1396C /* testmessage.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testmessage.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166DEE16A1D50C00A1396C /* testrelative.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrelative.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E0516A1D57C00A1396C /* testrendercopyex.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrendercopyex.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E1C16A1D5AD00A1396C /* testrendertarget.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrendertarget.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E3816A1D64D00A1396C /* testrumble.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrumble.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E5216A1D69000A1396C /* testscale.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testscale.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E6816A1D6F300A1396C /* testshader.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testshader.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E7E16A1D78400A1396C /* testspriteminimal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testspriteminimal.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E9116A1D78C00A1396C /* teststreaming.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = teststreaming.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166ECF16A1D87000A1396C /* shapes */ = {isa = PBXFileReference; lastKnownFileType = folder; path = shapes; sourceTree = ""; }; + DB445EF818184B7000B306B0 /* testdropfile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testdropfile.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB445EFA18184BB600B306B0 /* testdropfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdropfile.c; sourceTree = ""; }; + DB89957E18A19ABA0092407C /* testhotplug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testhotplug.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB89958318A19B130092407C /* testhotplug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testhotplug.c; sourceTree = ""; }; + F35E56AA298312CB00A43A5F /* testautomation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testautomation.app; sourceTree = BUILT_PRODUCTS_DIR; }; + F35E56B62983130A00A43A5F /* testautomation_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_main.c; sourceTree = ""; }; + F35E56B72983130A00A43A5F /* testautomation_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_hints.c; sourceTree = ""; }; + F35E56B82983130A00A43A5F /* testautomation_render.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_render.c; sourceTree = ""; }; + F35E56B92983130B00A43A5F /* testautomation_rwops.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_rwops.c; sourceTree = ""; }; + F35E56BA2983130B00A43A5F /* testautomation_math.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_math.c; sourceTree = ""; }; + F35E56BB2983130B00A43A5F /* testautomation_events.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_events.c; sourceTree = ""; }; + F35E56BC2983130B00A43A5F /* testautomation_clipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_clipboard.c; sourceTree = ""; }; + F35E56BD2983130B00A43A5F /* testautomation_timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_timer.c; sourceTree = ""; }; + F35E56BE2983130C00A43A5F /* testautomation_stdlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_stdlib.c; sourceTree = ""; }; + F35E56BF2983130C00A43A5F /* testautomation_images.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_images.c; sourceTree = ""; }; + F35E56C02983130C00A43A5F /* testautomation_pixels.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_pixels.c; sourceTree = ""; }; + F35E56C12983130C00A43A5F /* testautomation_video.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_video.c; sourceTree = ""; }; + F35E56C32983130D00A43A5F /* testautomation_platform.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_platform.c; sourceTree = ""; }; + F35E56C42983130D00A43A5F /* testautomation_audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_audio.c; sourceTree = ""; }; + F35E56C52983130D00A43A5F /* testautomation_rect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_rect.c; sourceTree = ""; }; + F35E56C62983130D00A43A5F /* testautomation_joystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_joystick.c; sourceTree = ""; }; + F35E56C72983130E00A43A5F /* testautomation_keyboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_keyboard.c; sourceTree = ""; }; + F35E56C82983130E00A43A5F /* testautomation_sdltest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_sdltest.c; sourceTree = ""; }; + F35E56C92983130E00A43A5F /* testautomation_guid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_guid.c; sourceTree = ""; }; + F35E56CA2983130E00A43A5F /* testautomation_syswm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_syswm.c; sourceTree = ""; }; + F35E56CB2983130F00A43A5F /* testautomation_surface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_surface.c; sourceTree = ""; }; + F35E56CC2983130F00A43A5F /* testautomation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation.c; sourceTree = ""; }; + F35E56CD2983130F00A43A5F /* testautomation_mouse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_mouse.c; sourceTree = ""; }; + F399C6492A78929400C86979 /* gamepadutils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gamepadutils.c; sourceTree = ""; }; + F399C6502A7892D800C86979 /* testautomation_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testautomation_intrinsics.c; sourceTree = ""; }; + F399C6542A78933000C86979 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + F3C17C6A28E3FD4400E1A26D /* config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; + F3C17C7328E40ADE00E1A26D /* testutils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testutils.c; sourceTree = ""; }; + F3C17CD628E416AC00E1A26D /* testgeometry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgeometry.c; sourceTree = ""; }; + F3C17CDC28E416CF00E1A26D /* testgeometry.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgeometry.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0017957A10741F7900F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56932A78971600766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017959B107421BF00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56962A78971F00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017970F10742F3200F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56B42A78977000766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 00179736107430D600F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56B72A78977D00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017975C107431B300F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB569F2A78973700766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017977C107432AE00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56C02A78979600766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017979C1074334C00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56C32A78979C00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001797BE107433C600F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56C92A7897AE00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798001074355200F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56D22A7897C600766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798821074392D00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56D52A7897CD00766177 /* SDL3.framework in Frameworks */, + F399C6552A78933100C86979 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798A3107439DF00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56DF2A7897F000766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798E010743BEC00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56EB2A78980D00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017990410743F1000F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56892A7895F800766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017992610743FB700F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB570C2A78986000766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F340809CA1BFF00EBEB88 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56AB2A78975A00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F342709CA1F0300EBEB88 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56BD2A78979000766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F344309CA1FB300EBEB88 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56D92A7897E200766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F346009CA204F00EBEB88 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56DC2A7897E900766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4537749012091504002F0F45 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56FA2A78983200766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBFC08BE164C6862003E6A99 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB569C2A78972F00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC566B20761D90300A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB568C2A7896BF00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC566CC0761D90300A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56902A7896F900766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567020761D90300A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56A82A78975100766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC5672A0761D90400A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB57032A78984A00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567440761D90400A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56C62A7897A500766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567510761D90400A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56CC2A7897B500766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567790761D90500A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56F42A78982300766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567940761D90500A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB57062A78985400766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567AE0761D90500A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB57092A78985A00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567F10761D90600A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB570F2A78986700766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB0F48DC17CA51E5008798C5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56A22A78974000766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB0F48F217CA5212008798C5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56AE2A78976200766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166D7C16A1D12400A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DC716A1D36A00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56CF2A7897BE00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DDF16A1D50C00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56E22A7897F800766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DF616A1D57C00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56E52A7897FE00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E0D16A1D5AD00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56E82A78980600766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E2A16A1D64D00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56EE2A78981500766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E4016A1D69000A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56F12A78981C00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E5A16A1D6F300A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56F72A78982B00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E7016A1D78400A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56FD2A78983C00766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E8316A1D78C00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB57002A78984300766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB445EE918184B7000B306B0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56A52A78974800766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB89957018A19ABA0092407C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56BA2A78978700766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F35E56A5298312CB00A43A5F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56992A78972700766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3C17CD928E416CF00E1A26D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3CB56B12A78976800766177 /* SDL3.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 003FA63B093FFD41000C53B3 /* Products */ = { + isa = PBXGroup; + children = ( + 003FA643093FFD41000C53B3 /* SDL3.framework */, + ); + name = Products; + sourceTree = ""; + }; + 00794E4609D207B4003FC8A1 /* Resources */ = { + isa = PBXGroup; + children = ( + 00794E5D09D20839003FC8A1 /* icon.bmp */, + 00794E5E09D20839003FC8A1 /* moose.dat */, + 00794E5F09D20839003FC8A1 /* picture.xbm */, + 00794E6109D20839003FC8A1 /* sample.bmp */, + 00794E6209D20839003FC8A1 /* sample.wav */, + DB166ECF16A1D87000A1396C /* shapes */, + 00794E6309D20839003FC8A1 /* utf8.txt */, + ); + name = Resources; + path = ../../test; + sourceTree = ""; + }; + 08FB7794FE84155DC02AAC07 /* SDLTest */ = { + isa = PBXGroup; + children = ( + F3C17C6A28E3FD4400E1A26D /* config.xcconfig */, + 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */, + 08FB7795FE84155DC02AAC07 /* Source */, + DB166D8316A1D17E00A1396C /* SDL_Test */, + 00794E4609D207B4003FC8A1 /* Resources */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + F399C6532A78933000C86979 /* Frameworks */, + ); + comments = "I made these tests link against our \"default\" framework which includes X11 stuff. If you didn't install the X11 headers with Xcode, you might have problems building the SDL.framework (which is a dependency). You can swap the dependencies around to get around this, or you can modify the default SDL.framework target to not include X11 stuff. (Go into its target build options and remove all the Preprocessor macros.)\n\n\n\nWe are sort of in a half-way state at the moment. Going \"all-the-way\" means we copy the SDL.framework inside the app bundle so we can run the test without the step of the user \"installing\" the framework. But there is an oversight/bug in Xcode that doesn't correctly find the location of the framework when in an embedded/nested Xcode project. We could probably try to hack this with a shell script that checks multiple directories for existence, but this is messier and more work than I prefer, so I rather just wait for Apple to fix this. In the meantime...\n\nThe \"All\" target will build the SDL framework from the Xcode project. The other targets do not have this dependency set (for flexibility reasons in case we make changes). If you have not built the framework, you will probably be unable to link. You will either need to build the framework, or you need to add \"-framework SDL\" to the link options and make sure you have the SDL.framework installed somewhere where it can be seen (like /Library/Frameworks...I think we already set this one up.) \n\nTo run though, you should have a copy of the SDL.framework in /Library/Frameworks or ~/Library/Frameworks.\n\n\n\n\ntestgl and testdyngl need -DHAVE_OPENGL\ntestgl needs to link against OpenGL.framework\n\n"; + name = SDLTest; + sourceTree = ""; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 092D6D10FFB30A2C7F000001 /* checkkeys.c */, + F399C6492A78929400C86979 /* gamepadutils.c */, + 083E4872006D84C97F000001 /* loopwave.c */, + 0017958F1074216E00F5D044 /* testatomic.c */, + 001795B01074222D00F5D044 /* testaudioinfo.c */, + F35E56C42983130D00A43A5F /* testautomation_audio.c */, + F35E56BC2983130B00A43A5F /* testautomation_clipboard.c */, + F35E56BB2983130B00A43A5F /* testautomation_events.c */, + F35E56C92983130E00A43A5F /* testautomation_guid.c */, + F35E56B72983130A00A43A5F /* testautomation_hints.c */, + F35E56BF2983130C00A43A5F /* testautomation_images.c */, + F399C6502A7892D800C86979 /* testautomation_intrinsics.c */, + F35E56C62983130D00A43A5F /* testautomation_joystick.c */, + F35E56C72983130E00A43A5F /* testautomation_keyboard.c */, + F35E56B62983130A00A43A5F /* testautomation_main.c */, + F35E56BA2983130B00A43A5F /* testautomation_math.c */, + F35E56CD2983130F00A43A5F /* testautomation_mouse.c */, + F35E56C02983130C00A43A5F /* testautomation_pixels.c */, + F35E56C32983130D00A43A5F /* testautomation_platform.c */, + F35E56C52983130D00A43A5F /* testautomation_rect.c */, + F35E56B82983130A00A43A5F /* testautomation_render.c */, + F35E56B92983130B00A43A5F /* testautomation_rwops.c */, + F35E56C82983130E00A43A5F /* testautomation_sdltest.c */, + F35E56BE2983130C00A43A5F /* testautomation_stdlib.c */, + F35E56CB2983130F00A43A5F /* testautomation_surface.c */, + F35E56CA2983130E00A43A5F /* testautomation_syswm.c */, + F35E56BD2983130B00A43A5F /* testautomation_timer.c */, + F35E56C12983130C00A43A5F /* testautomation_video.c */, + F35E56CC2983130F00A43A5F /* testautomation.c */, + BBFC088E164C6820003E6A99 /* testcontroller.c */, + 001797711074320D00F5D044 /* testdraw.c */, + DB0F48D717CA51D2008798C5 /* testdrawchessboard.c */, + DB445EFA18184BB600B306B0 /* testdropfile.c */, + 083E4878006D85357F000001 /* testerror.c */, + 002F341709CA1C5B00EBEB88 /* testfile.c */, + DB0F48D817CA51D2008798C5 /* testfilesystem.c */, + F3C17CD628E416AC00E1A26D /* testgeometry.c */, + 0017972710742FB900F5D044 /* testgl.c */, + DB166CBC16A1C74100A1396C /* testgles.c */, + 0017974E1074315700F5D044 /* testhaptic.c */, + DB89958318A19B130092407C /* testhotplug.c */, + 002F343609CA1F6F00EBEB88 /* testiconv.c */, + 00179791107432FA00F5D044 /* testime.c */, + 001797B31074339C00F5D044 /* testintersections.c */, + 092D6D6CFFB313437F000001 /* testkeys.c */, + 001797D31074343E00F5D044 /* testloadso.c */, + 092D6D75FFB313BB7F000001 /* testlock.c */, + DB166CBD16A1C74100A1396C /* testmessage.c */, + 001798151074359B00F5D044 /* testmultiaudio.c */, + 0017985A107436ED00F5D044 /* testnative.c */, + 0017985B107436ED00F5D044 /* testnative.h */, + 0017985C107436ED00F5D044 /* testnativecocoa.m */, + 00179872107438D000F5D044 /* testnativex11.c */, + 002F345209CA201C00EBEB88 /* testoverlay.c */, + 002F346F09CA20A600EBEB88 /* testplatform.c */, + 001798B910743A4900F5D044 /* testpower.c */, + DB166CBF16A1C74100A1396C /* testrelative.c */, + DB166CC016A1C74100A1396C /* testrendercopyex.c */, + DB166CC116A1C74100A1396C /* testrendertarget.c */, + 001798F910743E9200F5D044 /* testresample.c */, + DB166CC216A1C74100A1396C /* testrumble.c */, + DB166CC316A1C74100A1396C /* testscale.c */, + 083E487E006D86A17F000001 /* testsem.c */, + DB166CC416A1C74100A1396C /* testshader.c */, + 453774A4120915E3002F0F45 /* testshape.c */, + 0017991910743F5300F5D044 /* testsprite.c */, + DB166CC516A1C74100A1396C /* testspriteminimal.c */, + DB166CC616A1C74100A1396C /* teststreaming.c */, + 092D6D58FFB311A97F000001 /* testthread.c */, + 083E4880006D86A17F000001 /* testtimer.c */, + F3C17C7328E40ADE00E1A26D /* testutils.c */, + 083E4882006D86A17F000001 /* testver.c */, + 0017993B10743FEF00F5D044 /* testwm.c */, + 66E88E8A203B778F0004D44E /* testyuv_cvt.c */, + 083E4887006D86A17F000001 /* torturethread.c */, + ); + name = Source; + path = ../../test; + sourceTree = ""; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + BEC566B60761D90300A33029 /* checkkeys.app */, + BEC566D10761D90300A33029 /* loopwave.app */, + BEC567060761D90400A33029 /* testerror.app */, + BEC5672E0761D90400A33029 /* testthread.app */, + BEC567480761D90400A33029 /* testkeys.app */, + BEC567550761D90400A33029 /* testlock.app */, + BEC5677D0761D90500A33029 /* testsem.app */, + BEC567980761D90500A33029 /* testtimer.app */, + BEC567B20761D90500A33029 /* testversion.app */, + BEC567F50761D90600A33029 /* torturethread.app */, + 002F341209CA1BFF00EBEB88 /* testfile.app */, + 002F343109CA1F0300EBEB88 /* testiconv.app */, + 002F344D09CA1FB300EBEB88 /* testoverlay.app */, + 002F346A09CA204F00EBEB88 /* testplatform.app */, + 0017958C10741F7900F5D044 /* testatomic.app */, + 001795AD107421BF00F5D044 /* testaudioinfo.app */, + 0017972110742F3200F5D044 /* testgl.app */, + 00179748107430D600F5D044 /* testhaptic.app */, + 0017976E107431B300F5D044 /* testdraw.app */, + 0017978E107432AE00F5D044 /* testime.app */, + 001797AE1074334C00F5D044 /* testintersections.app */, + 001797D0107433C600F5D044 /* testloadso.app */, + 001798121074355200F5D044 /* testmultiaudio.app */, + 001798941074392D00F5D044 /* testnative.app */, + 001798B5107439DF00F5D044 /* testpower.app */, + 001798F210743BEC00F5D044 /* testresample.app */, + 0017991610743F1000F5D044 /* testsprite.app */, + 0017993810743FB700F5D044 /* testwm.app */, + 4537749212091504002F0F45 /* testshape.app */, + BBFC08CD164C6862003E6A99 /* testcontroller.app */, + DB166D7F16A1D12400A1396C /* libSDL3_test.a */, + DB166DD516A1D36A00A1396C /* testmessage.app */, + DB166DEE16A1D50C00A1396C /* testrelative.app */, + DB166E0516A1D57C00A1396C /* testrendercopyex.app */, + DB166E1C16A1D5AD00A1396C /* testrendertarget.app */, + DB166E3816A1D64D00A1396C /* testrumble.app */, + DB166E5216A1D69000A1396C /* testscale.app */, + DB166E6816A1D6F300A1396C /* testshader.app */, + DB166E7E16A1D78400A1396C /* testspriteminimal.app */, + DB166E9116A1D78C00A1396C /* teststreaming.app */, + DB0F48EC17CA51E5008798C5 /* testdrawchessboard.app */, + DB0F490117CA5212008798C5 /* testfilesystem.app */, + DB89957E18A19ABA0092407C /* testhotplug.app */, + DB445EF818184B7000B306B0 /* testdropfile.app */, + F3C17CDC28E416CF00E1A26D /* testgeometry.app */, + F35E56AA298312CB00A43A5F /* testautomation.app */, + ); + name = Products; + sourceTree = ""; + }; + DB166D8316A1D17E00A1396C /* SDL_Test */ = { + isa = PBXGroup; + children = ( + DB166D8416A1D1A500A1396C /* SDL_test_assert.c */, + DB166D8516A1D1A500A1396C /* SDL_test_common.c */, + DB166D8616A1D1A500A1396C /* SDL_test_compare.c */, + DB166D8716A1D1A500A1396C /* SDL_test_crc32.c */, + DB166D8816A1D1A500A1396C /* SDL_test_font.c */, + DB166D8916A1D1A500A1396C /* SDL_test_fuzzer.c */, + DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */, + DB166D9016A1D1A500A1396C /* SDL_test_log.c */, + DB166D9116A1D1A500A1396C /* SDL_test_md5.c */, + AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */, + DB166D9216A1D1A500A1396C /* SDL_test_random.c */, + ); + name = SDL_Test; + path = ../../src/test; + sourceTree = ""; + }; + F399C6532A78933000C86979 /* Frameworks */ = { + isa = PBXGroup; + children = ( + F399C6542A78933000C86979 /* Cocoa.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + DB166D7D16A1D12400A1396C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0017957410741F7900F5D044 /* testatomic */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017958610741F7900F5D044 /* Build configuration list for PBXNativeTarget "testatomic" */; + buildPhases = ( + 0017957910741F7900F5D044 /* Sources */, + 0017957A10741F7900F5D044 /* Frameworks */, + F3CB56952A78971600766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testatomic; + productName = testalpha; + productReference = 0017958C10741F7900F5D044 /* testatomic.app */; + productType = "com.apple.product-type.application"; + }; + 00179595107421BF00F5D044 /* testaudioinfo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001795A7107421BF00F5D044 /* Build configuration list for PBXNativeTarget "testaudioinfo" */; + buildPhases = ( + 0017959A107421BF00F5D044 /* Sources */, + 0017959B107421BF00F5D044 /* Frameworks */, + F3CB56982A78971F00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testaudioinfo; + productName = testalpha; + productReference = 001795AD107421BF00F5D044 /* testaudioinfo.app */; + productType = "com.apple.product-type.application"; + }; + 0017970910742F3200F5D044 /* testgl */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017971B10742F3200F5D044 /* Build configuration list for PBXNativeTarget "testgl" */; + buildPhases = ( + 0017970E10742F3200F5D044 /* Sources */, + 0017970F10742F3200F5D044 /* Frameworks */, + F3CB56B62A78977000766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testgl; + productName = testalpha; + productReference = 0017972110742F3200F5D044 /* testgl.app */; + productType = "com.apple.product-type.application"; + }; + 00179730107430D600F5D044 /* testhaptic */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00179742107430D600F5D044 /* Build configuration list for PBXNativeTarget "testhaptic" */; + buildPhases = ( + 00179735107430D600F5D044 /* Sources */, + 00179736107430D600F5D044 /* Frameworks */, + F3CB56B92A78977D00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testhaptic; + productName = testalpha; + productReference = 00179748107430D600F5D044 /* testhaptic.app */; + productType = "com.apple.product-type.application"; + }; + 00179756107431B300F5D044 /* testdraw */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00179768107431B300F5D044 /* Build configuration list for PBXNativeTarget "testdraw" */; + buildPhases = ( + 0017975B107431B300F5D044 /* Sources */, + 0017975C107431B300F5D044 /* Frameworks */, + F3CB56A12A78973700766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testdraw; + productName = testalpha; + productReference = 0017976E107431B300F5D044 /* testdraw.app */; + productType = "com.apple.product-type.application"; + }; + 00179776107432AE00F5D044 /* testime */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00179788107432AE00F5D044 /* Build configuration list for PBXNativeTarget "testime" */; + buildPhases = ( + 0017977B107432AE00F5D044 /* Sources */, + 0017977C107432AE00F5D044 /* Frameworks */, + F3CB56C22A78979600766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testime; + productName = testalpha; + productReference = 0017978E107432AE00F5D044 /* testime.app */; + productType = "com.apple.product-type.application"; + }; + 001797961074334C00F5D044 /* testintersections */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001797A81074334C00F5D044 /* Build configuration list for PBXNativeTarget "testintersections" */; + buildPhases = ( + 0017979B1074334C00F5D044 /* Sources */, + 0017979C1074334C00F5D044 /* Frameworks */, + F3CB56C52A78979C00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testintersections; + productName = testalpha; + productReference = 001797AE1074334C00F5D044 /* testintersections.app */; + productType = "com.apple.product-type.application"; + }; + 001797B8107433C600F5D044 /* testloadso */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001797CA107433C600F5D044 /* Build configuration list for PBXNativeTarget "testloadso" */; + buildPhases = ( + 001797BD107433C600F5D044 /* Sources */, + 001797BE107433C600F5D044 /* Frameworks */, + F3CB56CB2A7897AE00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testloadso; + productName = testalpha; + productReference = 001797D0107433C600F5D044 /* testloadso.app */; + productType = "com.apple.product-type.application"; + }; + 001797FA1074355200F5D044 /* testmultiaudio */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017980C1074355200F5D044 /* Build configuration list for PBXNativeTarget "testmultiaudio" */; + buildPhases = ( + 001797FF1074355200F5D044 /* Sources */, + 001798001074355200F5D044 /* Frameworks */, + F3C17D3828E424B100E1A26D /* Resources */, + F3CB56D42A7897C600766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testmultiaudio; + productName = testalpha; + productReference = 001798121074355200F5D044 /* testmultiaudio.app */; + productType = "com.apple.product-type.application"; + }; + 001798781074392D00F5D044 /* testnative */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017988E1074392D00F5D044 /* Build configuration list for PBXNativeTarget "testnative" */; + buildPhases = ( + 0017987E1074392D00F5D044 /* Sources */, + 001798821074392D00F5D044 /* Frameworks */, + DB166DDA16A1D40F00A1396C /* CopyFiles */, + F3CB56D72A7897CE00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testnative; + productName = testalpha; + productReference = 001798941074392D00F5D044 /* testnative.app */; + productType = "com.apple.product-type.application"; + }; + 0017989D107439DF00F5D044 /* testpower */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001798AF107439DF00F5D044 /* Build configuration list for PBXNativeTarget "testpower" */; + buildPhases = ( + 001798A2107439DF00F5D044 /* Sources */, + 001798A3107439DF00F5D044 /* Frameworks */, + F3CB56E12A7897F000766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testpower; + productName = testalpha; + productReference = 001798B5107439DF00F5D044 /* testpower.app */; + productType = "com.apple.product-type.application"; + }; + 001798DA10743BEC00F5D044 /* testresample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001798EC10743BEC00F5D044 /* Build configuration list for PBXNativeTarget "testresample" */; + buildPhases = ( + 001798DF10743BEC00F5D044 /* Sources */, + 001798E010743BEC00F5D044 /* Frameworks */, + F3CB56ED2A78980D00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testresample; + productName = testalpha; + productReference = 001798F210743BEC00F5D044 /* testresample.app */; + productType = "com.apple.product-type.application"; + }; + 001798FE10743F1000F5D044 /* testsprite */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017991010743F1000F5D044 /* Build configuration list for PBXNativeTarget "testsprite" */; + buildPhases = ( + 0017990310743F1000F5D044 /* Sources */, + 0017990410743F1000F5D044 /* Frameworks */, + F3C17D3A28E4252200E1A26D /* Resources */, + F3CB568B2A7895F800766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testsprite; + productName = testalpha; + productReference = 0017991610743F1000F5D044 /* testsprite.app */; + productType = "com.apple.product-type.application"; + }; + 0017992010743FB700F5D044 /* testwm */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017993210743FB700F5D044 /* Build configuration list for PBXNativeTarget "testwm" */; + buildPhases = ( + 0017992510743FB700F5D044 /* Sources */, + 0017992610743FB700F5D044 /* Frameworks */, + F3CB570E2A78986000766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testwm; + productName = testalpha; + productReference = 0017993810743FB700F5D044 /* testwm.app */; + productType = "com.apple.product-type.application"; + }; + 002F340109CA1BFF00EBEB88 /* testfile */ = { + isa = PBXNativeTarget; + buildConfigurationList = 002F340E09CA1BFF00EBEB88 /* Build configuration list for PBXNativeTarget "testfile" */; + buildPhases = ( + 002F340709CA1BFF00EBEB88 /* Sources */, + 002F340809CA1BFF00EBEB88 /* Frameworks */, + F3CB56AD2A78975A00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testfile; + productName = testalpha; + productReference = 002F341209CA1BFF00EBEB88 /* testfile.app */; + productType = "com.apple.product-type.application"; + }; + 002F342009CA1F0300EBEB88 /* testiconv */ = { + isa = PBXNativeTarget; + buildConfigurationList = 002F342D09CA1F0300EBEB88 /* Build configuration list for PBXNativeTarget "testiconv" */; + buildPhases = ( + 002F342609CA1F0300EBEB88 /* Sources */, + 002F342709CA1F0300EBEB88 /* Frameworks */, + 00794EEC09D2371F003FC8A1 /* CopyFiles */, + F3CB56BF2A78979000766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testiconv; + productName = testalpha; + productReference = 002F343109CA1F0300EBEB88 /* testiconv.app */; + productType = "com.apple.product-type.application"; + }; + 002F343C09CA1FB300EBEB88 /* testoverlay */ = { + isa = PBXNativeTarget; + buildConfigurationList = 002F344909CA1FB300EBEB88 /* Build configuration list for PBXNativeTarget "testoverlay" */; + buildPhases = ( + 002F344209CA1FB300EBEB88 /* Sources */, + 002F344309CA1FB300EBEB88 /* Frameworks */, + 00794EF409D237C7003FC8A1 /* CopyFiles */, + F3CB56DB2A7897E200766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testoverlay; + productName = testalpha; + productReference = 002F344D09CA1FB300EBEB88 /* testoverlay.app */; + productType = "com.apple.product-type.application"; + }; + 002F345909CA204F00EBEB88 /* testplatform */ = { + isa = PBXNativeTarget; + buildConfigurationList = 002F346609CA204F00EBEB88 /* Build configuration list for PBXNativeTarget "testplatform" */; + buildPhases = ( + 002F345F09CA204F00EBEB88 /* Sources */, + 002F346009CA204F00EBEB88 /* Frameworks */, + F3CB56DE2A7897E900766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testplatform; + productName = testalpha; + productReference = 002F346A09CA204F00EBEB88 /* testplatform.app */; + productType = "com.apple.product-type.application"; + }; + 4537749112091504002F0F45 /* testshape */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4537749A1209150C002F0F45 /* Build configuration list for PBXNativeTarget "testshape" */; + buildPhases = ( + 4537748F12091504002F0F45 /* Sources */, + 4537749012091504002F0F45 /* Frameworks */, + DB166ECE16A1D85400A1396C /* CopyFiles */, + F3CB56FC2A78983200766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testshape; + productName = testshape; + productReference = 4537749212091504002F0F45 /* testshape.app */; + productType = "com.apple.product-type.application"; + }; + BBFC08B7164C6862003E6A99 /* testcontroller */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBFC08CA164C6862003E6A99 /* Build configuration list for PBXNativeTarget "testcontroller" */; + buildPhases = ( + BBFC08BC164C6862003E6A99 /* Sources */, + BBFC08BE164C6862003E6A99 /* Frameworks */, + F3CB569E2A78973000766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testcontroller; + productName = testjoystick; + productReference = BBFC08CD164C6862003E6A99 /* testcontroller.app */; + productType = "com.apple.product-type.application"; + }; + BEC566AB0761D90300A33029 /* checkkeys */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B593808BDB826006539E9 /* Build configuration list for PBXNativeTarget "checkkeys" */; + buildPhases = ( + BEC566B00761D90300A33029 /* Sources */, + BEC566B20761D90300A33029 /* Frameworks */, + F3CB568E2A7896BF00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = checkkeys; + productName = checkkeys; + productReference = BEC566B60761D90300A33029 /* checkkeys.app */; + productType = "com.apple.product-type.application"; + }; + BEC566C50761D90300A33029 /* loopwave */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B594008BDB826006539E9 /* Build configuration list for PBXNativeTarget "loopwave" */; + buildPhases = ( + BEC566CA0761D90300A33029 /* Sources */, + BEC566CC0761D90300A33029 /* Frameworks */, + 00794E6409D2084F003FC8A1 /* CopyFiles */, + F3CB56922A7896F900766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = loopwave; + productName = loopwave; + productReference = BEC566D10761D90300A33029 /* loopwave.app */; + productType = "com.apple.product-type.application"; + }; + BEC566FB0761D90300A33029 /* testerror */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B595008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testerror" */; + buildPhases = ( + BEC567000761D90300A33029 /* Sources */, + BEC567020761D90300A33029 /* Frameworks */, + F3CB56AA2A78975100766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testerror; + productName = testerror; + productReference = BEC567060761D90400A33029 /* testerror.app */; + productType = "com.apple.product-type.application"; + }; + BEC567230761D90400A33029 /* testthread */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B595C08BDB826006539E9 /* Build configuration list for PBXNativeTarget "testthread" */; + buildPhases = ( + BEC567280761D90400A33029 /* Sources */, + BEC5672A0761D90400A33029 /* Frameworks */, + F3CB57052A78984A00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testthread; + productName = testthread; + productReference = BEC5672E0761D90400A33029 /* testthread.app */; + productType = "com.apple.product-type.application"; + }; + BEC5673D0761D90400A33029 /* testkeys */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B596408BDB826006539E9 /* Build configuration list for PBXNativeTarget "testkeys" */; + buildPhases = ( + BEC567420761D90400A33029 /* Sources */, + BEC567440761D90400A33029 /* Frameworks */, + F3CB56C82A7897A500766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testkeys; + productName = testkeys; + productReference = BEC567480761D90400A33029 /* testkeys.app */; + productType = "com.apple.product-type.application"; + }; + BEC5674A0761D90400A33029 /* testlock */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B596808BDB826006539E9 /* Build configuration list for PBXNativeTarget "testlock" */; + buildPhases = ( + BEC5674F0761D90400A33029 /* Sources */, + BEC567510761D90400A33029 /* Frameworks */, + F3CB56CE2A7897B500766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testlock; + productName = testlock; + productReference = BEC567550761D90400A33029 /* testlock.app */; + productType = "com.apple.product-type.application"; + }; + BEC567720761D90500A33029 /* testsem */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B597008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testsem" */; + buildPhases = ( + BEC567770761D90500A33029 /* Sources */, + BEC567790761D90500A33029 /* Frameworks */, + F3CB56F62A78982400766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testsem; + productName = testsem; + productReference = BEC5677D0761D90500A33029 /* testsem.app */; + productType = "com.apple.product-type.application"; + }; + BEC5678D0761D90500A33029 /* testtimer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B597808BDB826006539E9 /* Build configuration list for PBXNativeTarget "testtimer" */; + buildPhases = ( + BEC567920761D90500A33029 /* Sources */, + BEC567940761D90500A33029 /* Frameworks */, + F3CB57082A78985400766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testtimer; + productName = testtimer; + productReference = BEC567980761D90500A33029 /* testtimer.app */; + productType = "com.apple.product-type.application"; + }; + BEC567A70761D90500A33029 /* testversion */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B598008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testversion" */; + buildPhases = ( + BEC567AC0761D90500A33029 /* Sources */, + BEC567AE0761D90500A33029 /* Frameworks */, + F3CB570B2A78985A00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testversion; + productName = testversion; + productReference = BEC567B20761D90500A33029 /* testversion.app */; + productType = "com.apple.product-type.application"; + }; + BEC567EA0761D90600A33029 /* torturethread */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B599408BDB826006539E9 /* Build configuration list for PBXNativeTarget "torturethread" */; + buildPhases = ( + BEC567EF0761D90600A33029 /* Sources */, + BEC567F10761D90600A33029 /* Frameworks */, + F3CB57112A78986700766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = torturethread; + productName = torturethread; + productReference = BEC567F50761D90600A33029 /* torturethread.app */; + productType = "com.apple.product-type.application"; + }; + DB0F48D917CA51E5008798C5 /* testdrawchessboard */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB0F48E917CA51E5008798C5 /* Build configuration list for PBXNativeTarget "testdrawchessboard" */; + buildPhases = ( + DB0F48DA17CA51E5008798C5 /* Sources */, + DB0F48DC17CA51E5008798C5 /* Frameworks */, + F3CB56A42A78974000766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testdrawchessboard; + productName = testalpha; + productReference = DB0F48EC17CA51E5008798C5 /* testdrawchessboard.app */; + productType = "com.apple.product-type.application"; + }; + DB0F48EF17CA5212008798C5 /* testfilesystem */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB0F48FE17CA5212008798C5 /* Build configuration list for PBXNativeTarget "testfilesystem" */; + buildPhases = ( + DB0F48F017CA5212008798C5 /* Sources */, + DB0F48F217CA5212008798C5 /* Frameworks */, + F3CB56B02A78976200766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testfilesystem; + productName = testalpha; + productReference = DB0F490117CA5212008798C5 /* testfilesystem.app */; + productType = "com.apple.product-type.application"; + }; + DB166D7E16A1D12400A1396C /* SDL3_test */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166D8016A1D12400A1396C /* Build configuration list for PBXNativeTarget "SDL3_test" */; + buildPhases = ( + DB166D7B16A1D12400A1396C /* Sources */, + DB166D7C16A1D12400A1396C /* Frameworks */, + DB166D7D16A1D12400A1396C /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SDL3_test; + productName = SDL_test; + productReference = DB166D7F16A1D12400A1396C /* libSDL3_test.a */; + productType = "com.apple.product-type.library.static"; + }; + DB166DC416A1D36A00A1396C /* testmessage */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166DD216A1D36A00A1396C /* Build configuration list for PBXNativeTarget "testmessage" */; + buildPhases = ( + DB166DC516A1D36A00A1396C /* Sources */, + DB166DC716A1D36A00A1396C /* Frameworks */, + F3CB56D12A7897BE00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testmessage; + productName = testalpha; + productReference = DB166DD516A1D36A00A1396C /* testmessage.app */; + productType = "com.apple.product-type.application"; + }; + DB166DDC16A1D50C00A1396C /* testrelative */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166DEB16A1D50C00A1396C /* Build configuration list for PBXNativeTarget "testrelative" */; + buildPhases = ( + DB166DDD16A1D50C00A1396C /* Sources */, + DB166DDF16A1D50C00A1396C /* Frameworks */, + F3CB56E42A7897F800766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testrelative; + productName = testalpha; + productReference = DB166DEE16A1D50C00A1396C /* testrelative.app */; + productType = "com.apple.product-type.application"; + }; + DB166DF316A1D57C00A1396C /* testrendercopyex */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E0216A1D57C00A1396C /* Build configuration list for PBXNativeTarget "testrendercopyex" */; + buildPhases = ( + DB166DF416A1D57C00A1396C /* Sources */, + DB166DF616A1D57C00A1396C /* Frameworks */, + DB166E2116A1D5DF00A1396C /* CopyFiles */, + F3CB56E72A7897FE00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testrendercopyex; + productName = testalpha; + productReference = DB166E0516A1D57C00A1396C /* testrendercopyex.app */; + productType = "com.apple.product-type.application"; + }; + DB166E0A16A1D5AD00A1396C /* testrendertarget */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E1916A1D5AD00A1396C /* Build configuration list for PBXNativeTarget "testrendertarget" */; + buildPhases = ( + DB166E0B16A1D5AD00A1396C /* Sources */, + DB166E0D16A1D5AD00A1396C /* Frameworks */, + DB166E2416A1D61000A1396C /* CopyFiles */, + F3CB56EA2A78980600766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testrendertarget; + productName = testalpha; + productReference = DB166E1C16A1D5AD00A1396C /* testrendertarget.app */; + productType = "com.apple.product-type.application"; + }; + DB166E2716A1D64D00A1396C /* testrumble */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E3516A1D64D00A1396C /* Build configuration list for PBXNativeTarget "testrumble" */; + buildPhases = ( + DB166E2816A1D64D00A1396C /* Sources */, + DB166E2A16A1D64D00A1396C /* Frameworks */, + F3CB56F02A78981500766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testrumble; + productName = testalpha; + productReference = DB166E3816A1D64D00A1396C /* testrumble.app */; + productType = "com.apple.product-type.application"; + }; + DB166E3D16A1D69000A1396C /* testscale */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E4F16A1D69000A1396C /* Build configuration list for PBXNativeTarget "testscale" */; + buildPhases = ( + DB166E3E16A1D69000A1396C /* Sources */, + DB166E4016A1D69000A1396C /* Frameworks */, + DB166E4C16A1D69000A1396C /* CopyFiles */, + F3CB56F32A78981C00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testscale; + productName = testalpha; + productReference = DB166E5216A1D69000A1396C /* testscale.app */; + productType = "com.apple.product-type.application"; + }; + DB166E5716A1D6F300A1396C /* testshader */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E6516A1D6F300A1396C /* Build configuration list for PBXNativeTarget "testshader" */; + buildPhases = ( + DB166E5816A1D6F300A1396C /* Sources */, + DB166E5A16A1D6F300A1396C /* Frameworks */, + F3CB56F92A78982B00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testshader; + productName = testsem; + productReference = DB166E6816A1D6F300A1396C /* testshader.app */; + productType = "com.apple.product-type.application"; + }; + DB166E6D16A1D78400A1396C /* testspriteminimal */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E7B16A1D78400A1396C /* Build configuration list for PBXNativeTarget "testspriteminimal" */; + buildPhases = ( + DB166E6E16A1D78400A1396C /* Sources */, + DB166E7016A1D78400A1396C /* Frameworks */, + DB166E9B16A1D7FC00A1396C /* CopyFiles */, + F3CB56FF2A78983C00766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testspriteminimal; + productName = testspriteminimal; + productReference = DB166E7E16A1D78400A1396C /* testspriteminimal.app */; + productType = "com.apple.product-type.application"; + }; + DB166E8016A1D78C00A1396C /* teststreaming */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E8E16A1D78C00A1396C /* Build configuration list for PBXNativeTarget "teststreaming" */; + buildPhases = ( + DB166E8116A1D78C00A1396C /* Sources */, + DB166E8316A1D78C00A1396C /* Frameworks */, + DB166E9916A1D7EE00A1396C /* CopyFiles */, + F3CB57022A78984300766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = teststreaming; + productName = teststreaming; + productReference = DB166E9116A1D78C00A1396C /* teststreaming.app */; + productType = "com.apple.product-type.application"; + }; + DB445EE618184B7000B306B0 /* testdropfile */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB445EF518184B7000B306B0 /* Build configuration list for PBXNativeTarget "testdropfile" */; + buildPhases = ( + DB445EE718184B7000B306B0 /* Sources */, + DB445EE918184B7000B306B0 /* Frameworks */, + F3CB56A72A78974800766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testdropfile; + productName = testdropfile; + productReference = DB445EF818184B7000B306B0 /* testdropfile.app */; + productType = "com.apple.product-type.application"; + }; + DB89956D18A19ABA0092407C /* testhotplug */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB89957B18A19ABA0092407C /* Build configuration list for PBXNativeTarget "testhotplug" */; + buildPhases = ( + DB89956E18A19ABA0092407C /* Sources */, + DB89957018A19ABA0092407C /* Frameworks */, + F3CB56BC2A78978800766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testhotplug; + productName = testalpha; + productReference = DB89957E18A19ABA0092407C /* testhotplug.app */; + productType = "com.apple.product-type.application"; + }; + F35E56A2298312CB00A43A5F /* testautomation */ = { + isa = PBXNativeTarget; + buildConfigurationList = F35E56A7298312CB00A43A5F /* Build configuration list for PBXNativeTarget "testautomation" */; + buildPhases = ( + F35E56A3298312CB00A43A5F /* Sources */, + F35E56A5298312CB00A43A5F /* Frameworks */, + F3CB569B2A78972700766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testautomation; + productName = testalpha; + productReference = F35E56AA298312CB00A43A5F /* testautomation.app */; + productType = "com.apple.product-type.application"; + }; + F3C17CDB28E416CF00E1A26D /* testgeometry */ = { + isa = PBXNativeTarget; + buildConfigurationList = F3C17CE828E416D000E1A26D /* Build configuration list for PBXNativeTarget "testgeometry" */; + buildPhases = ( + F3C17CD828E416CF00E1A26D /* Sources */, + F3C17CD928E416CF00E1A26D /* Frameworks */, + F3CB56B32A78976900766177 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testgeometry; + productName = testgeometry; + productReference = F3C17CDC28E416CF00E1A26D /* testgeometry.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1400; + LastUpgradeCheck = 0420; + TargetAttributes = { + 0017957410741F7900F5D044 = { + ProvisioningStyle = Automatic; + }; + 00179595107421BF00F5D044 = { + ProvisioningStyle = Automatic; + }; + 0017970910742F3200F5D044 = { + ProvisioningStyle = Automatic; + }; + 00179730107430D600F5D044 = { + ProvisioningStyle = Automatic; + }; + 00179756107431B300F5D044 = { + ProvisioningStyle = Automatic; + }; + 00179776107432AE00F5D044 = { + ProvisioningStyle = Automatic; + }; + 001797961074334C00F5D044 = { + ProvisioningStyle = Automatic; + }; + 001797B8107433C600F5D044 = { + ProvisioningStyle = Automatic; + }; + 001797FA1074355200F5D044 = { + ProvisioningStyle = Automatic; + }; + 001798781074392D00F5D044 = { + ProvisioningStyle = Automatic; + }; + 0017989D107439DF00F5D044 = { + ProvisioningStyle = Automatic; + }; + 001798DA10743BEC00F5D044 = { + ProvisioningStyle = Automatic; + }; + 001798FE10743F1000F5D044 = { + ProvisioningStyle = Automatic; + }; + 0017992010743FB700F5D044 = { + ProvisioningStyle = Automatic; + }; + 002F340109CA1BFF00EBEB88 = { + ProvisioningStyle = Automatic; + }; + 002F342009CA1F0300EBEB88 = { + ProvisioningStyle = Automatic; + }; + 002F343C09CA1FB300EBEB88 = { + ProvisioningStyle = Automatic; + }; + 002F345909CA204F00EBEB88 = { + ProvisioningStyle = Automatic; + }; + 4537749112091504002F0F45 = { + ProvisioningStyle = Automatic; + }; + BBFC08B7164C6862003E6A99 = { + ProvisioningStyle = Automatic; + }; + BEC566AB0761D90300A33029 = { + ProvisioningStyle = Automatic; + }; + BEC566C50761D90300A33029 = { + ProvisioningStyle = Automatic; + }; + BEC566FB0761D90300A33029 = { + ProvisioningStyle = Automatic; + }; + BEC567230761D90400A33029 = { + ProvisioningStyle = Automatic; + }; + BEC5673D0761D90400A33029 = { + ProvisioningStyle = Automatic; + }; + BEC5674A0761D90400A33029 = { + ProvisioningStyle = Automatic; + }; + BEC567720761D90500A33029 = { + ProvisioningStyle = Automatic; + }; + BEC5678D0761D90500A33029 = { + ProvisioningStyle = Automatic; + }; + BEC567A70761D90500A33029 = { + ProvisioningStyle = Automatic; + }; + BEC567EA0761D90600A33029 = { + ProvisioningStyle = Automatic; + }; + DB0F48D917CA51E5008798C5 = { + ProvisioningStyle = Automatic; + }; + DB0F48EF17CA5212008798C5 = { + ProvisioningStyle = Automatic; + }; + DB166DC416A1D36A00A1396C = { + ProvisioningStyle = Automatic; + }; + DB166DDC16A1D50C00A1396C = { + ProvisioningStyle = Automatic; + }; + DB166DF316A1D57C00A1396C = { + ProvisioningStyle = Automatic; + }; + DB166E0A16A1D5AD00A1396C = { + ProvisioningStyle = Automatic; + }; + DB166E2716A1D64D00A1396C = { + ProvisioningStyle = Automatic; + }; + DB166E3D16A1D69000A1396C = { + ProvisioningStyle = Automatic; + }; + DB166E5716A1D6F300A1396C = { + ProvisioningStyle = Automatic; + }; + DB166E6D16A1D78400A1396C = { + ProvisioningStyle = Automatic; + }; + DB166E8016A1D78C00A1396C = { + ProvisioningStyle = Automatic; + }; + DB445EE618184B7000B306B0 = { + ProvisioningStyle = Automatic; + }; + DB89956D18A19ABA0092407C = { + ProvisioningStyle = Automatic; + }; + F35E56A2298312CB00A43A5F = { + ProvisioningStyle = Automatic; + }; + F3C17CDB28E416CF00E1A26D = { + CreatedOnToolsVersion = 14.0.1; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 001B5A0C08BDB826006539E9 /* Build configuration list for PBXProject "SDLTest" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + en, + Base, + ); + mainGroup = 08FB7794FE84155DC02AAC07 /* SDLTest */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 003FA63B093FFD41000C53B3 /* Products */; + ProjectRef = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + BEC566920761D90300A33029 /* All */, + DB166D7E16A1D12400A1396C /* SDL3_test */, + BEC566AB0761D90300A33029 /* checkkeys */, + BEC566C50761D90300A33029 /* loopwave */, + 0017957410741F7900F5D044 /* testatomic */, + 00179595107421BF00F5D044 /* testaudioinfo */, + F35E56A2298312CB00A43A5F /* testautomation */, + BBFC08B7164C6862003E6A99 /* testcontroller */, + 00179756107431B300F5D044 /* testdraw */, + DB0F48D917CA51E5008798C5 /* testdrawchessboard */, + DB445EE618184B7000B306B0 /* testdropfile */, + BEC566FB0761D90300A33029 /* testerror */, + 002F340109CA1BFF00EBEB88 /* testfile */, + DB0F48EF17CA5212008798C5 /* testfilesystem */, + F3C17CDB28E416CF00E1A26D /* testgeometry */, + 0017970910742F3200F5D044 /* testgl */, + 00179730107430D600F5D044 /* testhaptic */, + DB89956D18A19ABA0092407C /* testhotplug */, + 002F342009CA1F0300EBEB88 /* testiconv */, + 00179776107432AE00F5D044 /* testime */, + 001797961074334C00F5D044 /* testintersections */, + BEC5673D0761D90400A33029 /* testkeys */, + 001797B8107433C600F5D044 /* testloadso */, + BEC5674A0761D90400A33029 /* testlock */, + DB166DC416A1D36A00A1396C /* testmessage */, + 001797FA1074355200F5D044 /* testmultiaudio */, + 001798781074392D00F5D044 /* testnative */, + 002F343C09CA1FB300EBEB88 /* testoverlay */, + 002F345909CA204F00EBEB88 /* testplatform */, + 0017989D107439DF00F5D044 /* testpower */, + DB166DDC16A1D50C00A1396C /* testrelative */, + DB166DF316A1D57C00A1396C /* testrendercopyex */, + DB166E0A16A1D5AD00A1396C /* testrendertarget */, + 001798DA10743BEC00F5D044 /* testresample */, + DB166E2716A1D64D00A1396C /* testrumble */, + DB166E3D16A1D69000A1396C /* testscale */, + BEC567720761D90500A33029 /* testsem */, + DB166E5716A1D6F300A1396C /* testshader */, + 4537749112091504002F0F45 /* testshape */, + 001798FE10743F1000F5D044 /* testsprite */, + DB166E6D16A1D78400A1396C /* testspriteminimal */, + DB166E8016A1D78C00A1396C /* teststreaming */, + BEC567230761D90400A33029 /* testthread */, + BEC5678D0761D90500A33029 /* testtimer */, + BEC567A70761D90500A33029 /* testversion */, + 0017992010743FB700F5D044 /* testwm */, + BEC567EA0761D90600A33029 /* torturethread */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 003FA643093FFD41000C53B3 /* SDL3.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = SDL3.framework; + remoteRef = 003FA642093FFD41000C53B3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + F3C17D3828E424B100E1A26D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D3928E424B800E1A26D /* sample.wav in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3C17D3A28E4252200E1A26D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D3B28E4252900E1A26D /* icon.bmp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0017957910741F7900F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 001795901074216E00F5D044 /* testatomic.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017959A107421BF00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 001795B11074222D00F5D044 /* testaudioinfo.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017970E10742F3200F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0017972810742FB900F5D044 /* testgl.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 00179735107430D600F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0017974F1074315700F5D044 /* testhaptic.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017975B107431B300F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 001797721074320D00F5D044 /* testdraw.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017977B107432AE00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00179792107432FA00F5D044 /* testime.c in Sources */, + F3C17C7C28E40D7400E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017979B1074334C00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 001797B41074339C00F5D044 /* testintersections.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001797BD107433C600F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 001797D41074343E00F5D044 /* testloadso.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001797FF1074355200F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 001798161074359B00F5D044 /* testmultiaudio.c in Sources */, + F3C17C7D28E40F9D00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017987E1074392D00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0017987F1074392D00F5D044 /* testnative.c in Sources */, + 001798801074392D00F5D044 /* testnativecocoa.m in Sources */, + F3C17C7E28E40FDD00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798A2107439DF00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 001798BA10743A4900F5D044 /* testpower.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798DF10743BEC00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 001798FA10743E9200F5D044 /* testresample.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017990310743F1000F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0017991A10743F5300F5D044 /* testsprite.c in Sources */, + F3C17C8328E4124400E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017992510743FB700F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0017993C10743FEF00F5D044 /* testwm.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F340709CA1BFF00EBEB88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 002F341809CA1C5B00EBEB88 /* testfile.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F342609CA1F0300EBEB88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 002F343709CA1F6F00EBEB88 /* testiconv.c in Sources */, + F3C17C7B28E40D4E00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F344209CA1FB300EBEB88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 002F345409CA202000EBEB88 /* testoverlay.c in Sources */, + 66E88E8B203B778F0004D44E /* testyuv_cvt.c in Sources */, + F3C17C7F28E4101000E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F345F09CA204F00EBEB88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 002F347009CA20A600EBEB88 /* testplatform.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4537748F12091504002F0F45 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 453774A5120915E3002F0F45 /* testshape.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBFC08BC164C6862003E6A99 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BBFC08D0164C6876003E6A99 /* testcontroller.c in Sources */, + F3C17C7928E40C6E00E1A26D /* testutils.c in Sources */, + F399C64E2A78929400C86979 /* gamepadutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC566B00761D90300A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC566B10761D90300A33029 /* checkkeys.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC566CA0761D90300A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC566CB0761D90300A33029 /* loopwave.c in Sources */, + F3C17C7728E40BC800E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567000761D90300A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC567010761D90300A33029 /* testerror.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567280761D90400A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC567290761D90400A33029 /* testthread.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567420761D90400A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC567430761D90400A33029 /* testkeys.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC5674F0761D90400A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC567500761D90400A33029 /* testlock.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567770761D90500A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC567780761D90500A33029 /* testsem.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567920761D90500A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC567930761D90500A33029 /* testtimer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567AC0761D90500A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC567AD0761D90500A33029 /* testver.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567EF0761D90600A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BEC567F00761D90600A33029 /* torturethread.c in Sources */, + F399C64F2A78929400C86979 /* gamepadutils.c in Sources */, + F399C6522A7892D800C86979 /* testautomation_intrinsics.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB0F48DA17CA51E5008798C5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB0F48EE17CA51F8008798C5 /* testdrawchessboard.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB0F48F017CA5212008798C5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB0F490317CA5225008798C5 /* testfilesystem.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166D7B16A1D12400A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166D9316A1D1A500A1396C /* SDL_test_assert.c in Sources */, + DB166D9416A1D1A500A1396C /* SDL_test_common.c in Sources */, + DB166D9516A1D1A500A1396C /* SDL_test_compare.c in Sources */, + DB166D9616A1D1A500A1396C /* SDL_test_crc32.c in Sources */, + DB166D9716A1D1A500A1396C /* SDL_test_font.c in Sources */, + DB166D9816A1D1A500A1396C /* SDL_test_fuzzer.c in Sources */, + DB166D9916A1D1A500A1396C /* SDL_test_harness.c in Sources */, + DB166D9F16A1D1A500A1396C /* SDL_test_log.c in Sources */, + DB166DA016A1D1A500A1396C /* SDL_test_md5.c in Sources */, + AAF02FFA1F90092700B9A9FB /* SDL_test_memory.c in Sources */, + DB166DA116A1D1A500A1396C /* SDL_test_random.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DC516A1D36A00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DD716A1D37800A1396C /* testmessage.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DDD16A1D50C00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DF016A1D52500A1396C /* testrelative.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DF416A1D57C00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E0716A1D59400A1396C /* testrendercopyex.c in Sources */, + F3C17C8028E410A400E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E0B16A1D5AD00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E1E16A1D5C300A1396C /* testrendertarget.c in Sources */, + F3C17C8128E410C900E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E2816A1D64D00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E3C16A1D66500A1396C /* testrumble.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E3E16A1D69000A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E5416A1D6A300A1396C /* testscale.c in Sources */, + F3C17C8228E4112900E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E5816A1D6F300A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E6A16A1D70C00A1396C /* testshader.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E6E16A1D78400A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E9316A1D7BC00A1396C /* testspriteminimal.c in Sources */, + F3C17C8428E4126400E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E8116A1D78C00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E9416A1D7C700A1396C /* teststreaming.c in Sources */, + F3C17C8528E4127D00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB445EE718184B7000B306B0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB445EFB18184BB600B306B0 /* testdropfile.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB89956E18A19ABA0092407C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB89958418A19B130092407C /* testhotplug.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F35E56A3298312CB00A43A5F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F35E56D12983130F00A43A5F /* testautomation_render.c in Sources */, + F35E56E22983130F00A43A5F /* testautomation_syswm.c in Sources */, + F399C6512A7892D800C86979 /* testautomation_intrinsics.c in Sources */, + F35E56D22983130F00A43A5F /* testautomation_rwops.c in Sources */, + F35E56E32983130F00A43A5F /* testautomation_surface.c in Sources */, + F35E56DB2983130F00A43A5F /* testautomation_platform.c in Sources */, + F35E56DD2983130F00A43A5F /* testautomation_rect.c in Sources */, + F35E56D52983130F00A43A5F /* testautomation_clipboard.c in Sources */, + F35E56E52983130F00A43A5F /* testautomation_mouse.c in Sources */, + F35E56D72983130F00A43A5F /* testautomation_stdlib.c in Sources */, + F35E56D92983130F00A43A5F /* testautomation_pixels.c in Sources */, + F35E56E42983130F00A43A5F /* testautomation.c in Sources */, + F35E56CF2983130F00A43A5F /* testautomation_main.c in Sources */, + F35E56DE2983130F00A43A5F /* testautomation_joystick.c in Sources */, + F35E56D82983130F00A43A5F /* testautomation_images.c in Sources */, + F35E56DC2983130F00A43A5F /* testautomation_audio.c in Sources */, + F35E56D32983130F00A43A5F /* testautomation_math.c in Sources */, + F35E56E02983130F00A43A5F /* testautomation_sdltest.c in Sources */, + F35E56D42983130F00A43A5F /* testautomation_events.c in Sources */, + F35E56E12983130F00A43A5F /* testautomation_guid.c in Sources */, + F35E56D62983130F00A43A5F /* testautomation_timer.c in Sources */, + F35E56DA2983130F00A43A5F /* testautomation_video.c in Sources */, + F35E56D02983130F00A43A5F /* testautomation_hints.c in Sources */, + F35E56DF2983130F00A43A5F /* testautomation_keyboard.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3C17CD828E416CF00E1A26D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17CEB28E4177600E1A26D /* testgeometry.c in Sources */, + F3C17CEC28E417EB00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 001799481074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC566AB0761D90300A33029 /* checkkeys */; + targetProxy = 001799471074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017994C1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC566C50761D90300A33029 /* loopwave */; + targetProxy = 0017994B1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799501074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0017957410741F7900F5D044 /* testatomic */; + targetProxy = 0017994F1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799521074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 00179595107421BF00F5D044 /* testaudioinfo */; + targetProxy = 001799511074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017995A1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 00179756107431B300F5D044 /* testdraw */; + targetProxy = 001799591074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017995E1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC566FB0761D90300A33029 /* testerror */; + targetProxy = 0017995D1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799601074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 002F340109CA1BFF00EBEB88 /* testfile */; + targetProxy = 0017995F1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799661074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + platformFilters = ( + macos, + ); + target = 0017970910742F3200F5D044 /* testgl */; + targetProxy = 001799651074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799681074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 00179730107430D600F5D044 /* testhaptic */; + targetProxy = 001799671074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017996A1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567230761D90400A33029 /* testthread */; + targetProxy = 001799691074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017996C1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 002F342009CA1F0300EBEB88 /* testiconv */; + targetProxy = 0017996B1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017996E1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 00179776107432AE00F5D044 /* testime */; + targetProxy = 0017996D1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799701074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001797961074334C00F5D044 /* testintersections */; + targetProxy = 0017996F1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799741074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC5673D0761D90400A33029 /* testkeys */; + targetProxy = 001799731074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799761074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001797B8107433C600F5D044 /* testloadso */; + targetProxy = 001799751074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799781074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC5674A0761D90400A33029 /* testlock */; + targetProxy = 001799771074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017997C1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001797FA1074355200F5D044 /* testmultiaudio */; + targetProxy = 0017997B1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799801074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + platformFilters = ( + macos, + ); + target = 001798781074392D00F5D044 /* testnative */; + targetProxy = 0017997F1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799841074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 002F343C09CA1FB300EBEB88 /* testoverlay */; + targetProxy = 001799831074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799881074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 002F345909CA204F00EBEB88 /* testplatform */; + targetProxy = 001799871074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017998A1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0017989D107439DF00F5D044 /* testpower */; + targetProxy = 001799891074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017998C1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001798DA10743BEC00F5D044 /* testresample */; + targetProxy = 0017998B1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017998E1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567720761D90500A33029 /* testsem */; + targetProxy = 0017998D1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799921074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001798FE10743F1000F5D044 /* testsprite */; + targetProxy = 001799911074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799941074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC5678D0761D90500A33029 /* testtimer */; + targetProxy = 001799931074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799961074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567A70761D90500A33029 /* testversion */; + targetProxy = 001799951074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017999E1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0017992010743FB700F5D044 /* testwm */; + targetProxy = 0017999D1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799A21074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567EA0761D90600A33029 /* torturethread */; + targetProxy = 001799A11074403E00F5D044 /* PBXContainerItemProxy */; + }; + DB0F490517CA5249008798C5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB0F48D917CA51E5008798C5 /* testdrawchessboard */; + targetProxy = DB0F490417CA5249008798C5 /* PBXContainerItemProxy */; + }; + DB0F490717CA5249008798C5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB0F48EF17CA5212008798C5 /* testfilesystem */; + targetProxy = DB0F490617CA5249008798C5 /* PBXContainerItemProxy */; + }; + DB166D6E16A1CEAA00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBFC08B7164C6862003E6A99 /* testcontroller */; + targetProxy = DB166D6D16A1CEAA00A1396C /* PBXContainerItemProxy */; + }; + DB166D7016A1CEAF00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4537749112091504002F0F45 /* testshape */; + targetProxy = DB166D6F16A1CEAF00A1396C /* PBXContainerItemProxy */; + }; + DB166DD916A1D38900A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166DC416A1D36A00A1396C /* testmessage */; + targetProxy = DB166DD816A1D38900A1396C /* PBXContainerItemProxy */; + }; + DB166DF216A1D53700A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166DDC16A1D50C00A1396C /* testrelative */; + targetProxy = DB166DF116A1D53700A1396C /* PBXContainerItemProxy */; + }; + DB166E0916A1D5A400A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166DF316A1D57C00A1396C /* testrendercopyex */; + targetProxy = DB166E0816A1D5A400A1396C /* PBXContainerItemProxy */; + }; + DB166E2016A1D5D000A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E0A16A1D5AD00A1396C /* testrendertarget */; + targetProxy = DB166E1F16A1D5D000A1396C /* PBXContainerItemProxy */; + }; + DB166E3B16A1D65A00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E2716A1D64D00A1396C /* testrumble */; + targetProxy = DB166E3A16A1D65A00A1396C /* PBXContainerItemProxy */; + }; + DB166E5616A1D6B800A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E3D16A1D69000A1396C /* testscale */; + targetProxy = DB166E5516A1D6B800A1396C /* PBXContainerItemProxy */; + }; + DB166E6C16A1D72000A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E5716A1D6F300A1396C /* testshader */; + targetProxy = DB166E6B16A1D72000A1396C /* PBXContainerItemProxy */; + }; + DB166E9616A1D7CD00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E6D16A1D78400A1396C /* testspriteminimal */; + targetProxy = DB166E9516A1D7CD00A1396C /* PBXContainerItemProxy */; + }; + DB166E9816A1D7CF00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E8016A1D78C00A1396C /* teststreaming */; + targetProxy = DB166E9716A1D7CF00A1396C /* PBXContainerItemProxy */; + }; + F35E56E72983133F00A43A5F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F35E56A2298312CB00A43A5F /* testautomation */; + targetProxy = F35E56E62983133F00A43A5F /* PBXContainerItemProxy */; + }; + F3E1F7FF2A78C3AD00AC76D3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB89956D18A19ABA0092407C /* testhotplug */; + targetProxy = F3E1F7FE2A78C3AD00AC76D3 /* PBXContainerItemProxy */; + }; + F3E1F8012A78C3BE00AC76D3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB445EE618184B7000B306B0 /* testdropfile */; + targetProxy = F3E1F8002A78C3BE00AC76D3 /* PBXContainerItemProxy */; + }; + F3E1F8032A78C3C500AC76D3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F3C17CDB28E416CF00E1A26D /* testgeometry */; + targetProxy = F3E1F8022A78C3C500AC76D3 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0017958910741F7900F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testatomic; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 0017958A10741F7900F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testatomic; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 001795AA107421BF00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testaudioinfo; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 001795AB107421BF00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testaudioinfo; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 0017971E10742F3200F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_OPENGL; + PRODUCT_NAME = testgl; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = macosx; + }; + name = Debug; + }; + 0017971F10742F3200F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_OPENGL; + PRODUCT_NAME = testgl; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = macosx; + }; + name = Release; + }; + 00179745107430D600F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testhaptic; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 00179746107430D600F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testhaptic; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 0017976B107431B300F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testdraw; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 0017976C107431B300F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testdraw; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 0017978B107432AE00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testime; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 0017978C107432AE00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testime; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 001797AB1074334C00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testintersections; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 001797AC1074334C00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testintersections; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 001797CD107433C600F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testloadso; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 001797CE107433C600F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testloadso; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 0017980F1074355200F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testmultiaudio; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 001798101074355200F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testmultiaudio; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 001798911074392D00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testnative; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = macosx; + }; + name = Debug; + }; + 001798921074392D00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testnative; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = macosx; + }; + name = Release; + }; + 001798B2107439DF00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testpower; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 001798B3107439DF00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testpower; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 001798EF10743BEC00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testresample; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 001798F010743BEC00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testresample; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 0017991310743F1000F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testsprite; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 0017991410743F1000F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testsprite; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 0017993510743FB700F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testwm; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 0017993610743FB700F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testwm; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85B21073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F3C17C6A28E3FD4400E1A26D /* config.xcconfig */; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = ../../include; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MARKETING_VERSION = 1.0; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = "$(CONFIG_FRAMEWORK_LDFLAGS)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.libsdl.$(PRODUCT_NAME)"; + SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = NO; + TARGETED_DEVICE_FAMILY = "1,2,3"; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + 002A85B31073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "Build All"; + }; + name = Debug; + }; + 002A85B41073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = checkkeys; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85B61073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = loopwave; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85BC1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testerror; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85BD1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testfile; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85C01073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testiconv; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85C21073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testkeys; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85C31073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testlock; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85C51073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testoverlay; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85C71073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testplatform; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85C81073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testsem; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85CA1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testthread; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85CB1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testtimer; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85CC1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testversion; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85D11073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = torturethread; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 002A85D41073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F3C17C6A28E3FD4400E1A26D /* config.xcconfig */; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEPLOYMENT_POSTPROCESSING = YES; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = ../../include; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = "$(CONFIG_FRAMEWORK_LDFLAGS)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.libsdl.$(PRODUCT_NAME)"; + SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = NO; + TARGETED_DEVICE_FAMILY = "1,2,3"; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Release; + }; + 002A85D51073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "Build All"; + }; + name = Release; + }; + 002A85D61073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = checkkeys; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85D81073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = loopwave; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85DE1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testerror; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85DF1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testfile; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85E21073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testiconv; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85E41073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testkeys; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85E51073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testlock; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85E71073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testoverlay; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85E91073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testplatform; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85EA1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testsem; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85EC1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testthread; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85ED1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testtimer; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85EE1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testversion; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 002A85F31073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = torturethread; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + 4537749712091509002F0F45 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testshape; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + 4537749812091509002F0F45 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testshape; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + BBFC08CB164C6862003E6A99 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Steam Controller support"; + PRODUCT_NAME = testcontroller; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + BBFC08CC164C6862003E6A99 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Steam Controller support"; + PRODUCT_NAME = testcontroller; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB0F48EA17CA51E5008798C5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testdrawchessboard; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB0F48EB17CA51E5008798C5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testdrawchessboard; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB0F48FF17CA5212008798C5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testfilesystem; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB0F490017CA5212008798C5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testfilesystem; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166D8116A1D12400A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + EXECUTABLE_PREFIX = lib; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = YES; + }; + name = Debug; + }; + DB166D8216A1D12400A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + EXECUTABLE_PREFIX = lib; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = YES; + }; + name = Release; + }; + DB166DD316A1D36A00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testmessage; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166DD416A1D36A00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testmessage; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166DEC16A1D50C00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testrelative; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166DED16A1D50C00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testrelative; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166E0316A1D57C00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testrendercopyex; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166E0416A1D57C00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testrendercopyex; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166E1A16A1D5AD00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testrendertarget; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166E1B16A1D5AD00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testrendertarget; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166E3616A1D64D00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testrumble; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166E3716A1D64D00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testrumble; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166E5016A1D69000A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testscale; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166E5116A1D69000A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testscale; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166E6616A1D6F300A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testshader; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166E6716A1D6F300A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testshader; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166E7C16A1D78400A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testspriteminimal; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166E7D16A1D78400A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testspriteminimal; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB166E8F16A1D78C00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = teststreaming; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB166E9016A1D78C00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = teststreaming; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB445EF618184B7000B306B0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testdropfile; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB445EF718184B7000B306B0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testdropfile; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + DB89957C18A19ABA0092407C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testhotplug; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + DB89957D18A19ABA0092407C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = testhotplug; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + F35E56A8298312CB00A43A5F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + F35E56A9298312CB00A43A5F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; + F3C17CE928E416D000E1A26D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Debug; + }; + F3C17CEA28E416D000E1A26D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0017958610741F7900F5D044 /* Build configuration list for PBXNativeTarget "testatomic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017958910741F7900F5D044 /* Debug */, + 0017958A10741F7900F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001795A7107421BF00F5D044 /* Build configuration list for PBXNativeTarget "testaudioinfo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001795AA107421BF00F5D044 /* Debug */, + 001795AB107421BF00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017971B10742F3200F5D044 /* Build configuration list for PBXNativeTarget "testgl" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017971E10742F3200F5D044 /* Debug */, + 0017971F10742F3200F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 00179742107430D600F5D044 /* Build configuration list for PBXNativeTarget "testhaptic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00179745107430D600F5D044 /* Debug */, + 00179746107430D600F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 00179768107431B300F5D044 /* Build configuration list for PBXNativeTarget "testdraw" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017976B107431B300F5D044 /* Debug */, + 0017976C107431B300F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 00179788107432AE00F5D044 /* Build configuration list for PBXNativeTarget "testime" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017978B107432AE00F5D044 /* Debug */, + 0017978C107432AE00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001797A81074334C00F5D044 /* Build configuration list for PBXNativeTarget "testintersections" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001797AB1074334C00F5D044 /* Debug */, + 001797AC1074334C00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001797CA107433C600F5D044 /* Build configuration list for PBXNativeTarget "testloadso" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001797CD107433C600F5D044 /* Debug */, + 001797CE107433C600F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017980C1074355200F5D044 /* Build configuration list for PBXNativeTarget "testmultiaudio" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017980F1074355200F5D044 /* Debug */, + 001798101074355200F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017988E1074392D00F5D044 /* Build configuration list for PBXNativeTarget "testnative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001798911074392D00F5D044 /* Debug */, + 001798921074392D00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001798AF107439DF00F5D044 /* Build configuration list for PBXNativeTarget "testpower" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001798B2107439DF00F5D044 /* Debug */, + 001798B3107439DF00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001798EC10743BEC00F5D044 /* Build configuration list for PBXNativeTarget "testresample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001798EF10743BEC00F5D044 /* Debug */, + 001798F010743BEC00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017991010743F1000F5D044 /* Build configuration list for PBXNativeTarget "testsprite" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017991310743F1000F5D044 /* Debug */, + 0017991410743F1000F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017993210743FB700F5D044 /* Build configuration list for PBXNativeTarget "testwm" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017993510743FB700F5D044 /* Debug */, + 0017993610743FB700F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B593808BDB826006539E9 /* Build configuration list for PBXNativeTarget "checkkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85B41073008E007319AE /* Debug */, + 002A85D61073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B594008BDB826006539E9 /* Build configuration list for PBXNativeTarget "loopwave" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85B61073008E007319AE /* Debug */, + 002A85D81073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B595008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testerror" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85BC1073008E007319AE /* Debug */, + 002A85DE1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B595C08BDB826006539E9 /* Build configuration list for PBXNativeTarget "testthread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85CA1073008E007319AE /* Debug */, + 002A85EC1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B596408BDB826006539E9 /* Build configuration list for PBXNativeTarget "testkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C21073008E007319AE /* Debug */, + 002A85E41073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B596808BDB826006539E9 /* Build configuration list for PBXNativeTarget "testlock" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C31073008E007319AE /* Debug */, + 002A85E51073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B597008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testsem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C81073008E007319AE /* Debug */, + 002A85EA1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B597808BDB826006539E9 /* Build configuration list for PBXNativeTarget "testtimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85CB1073008E007319AE /* Debug */, + 002A85ED1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B598008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testversion" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85CC1073008E007319AE /* Debug */, + 002A85EE1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B599408BDB826006539E9 /* Build configuration list for PBXNativeTarget "torturethread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85D11073008E007319AE /* Debug */, + 002A85F31073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B599808BDB826006539E9 /* Build configuration list for PBXAggregateTarget "All" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85B31073008E007319AE /* Debug */, + 002A85D51073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B5A0C08BDB826006539E9 /* Build configuration list for PBXProject "SDLTest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85B21073008E007319AE /* Debug */, + 002A85D41073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 002F340E09CA1BFF00EBEB88 /* Build configuration list for PBXNativeTarget "testfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85BD1073008E007319AE /* Debug */, + 002A85DF1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 002F342D09CA1F0300EBEB88 /* Build configuration list for PBXNativeTarget "testiconv" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C01073008E007319AE /* Debug */, + 002A85E21073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 002F344909CA1FB300EBEB88 /* Build configuration list for PBXNativeTarget "testoverlay" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C51073008E007319AE /* Debug */, + 002A85E71073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 002F346609CA204F00EBEB88 /* Build configuration list for PBXNativeTarget "testplatform" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C71073008E007319AE /* Debug */, + 002A85E91073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 4537749A1209150C002F0F45 /* Build configuration list for PBXNativeTarget "testshape" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4537749712091509002F0F45 /* Debug */, + 4537749812091509002F0F45 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + BBFC08CA164C6862003E6A99 /* Build configuration list for PBXNativeTarget "testcontroller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBFC08CB164C6862003E6A99 /* Debug */, + BBFC08CC164C6862003E6A99 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB0F48E917CA51E5008798C5 /* Build configuration list for PBXNativeTarget "testdrawchessboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB0F48EA17CA51E5008798C5 /* Debug */, + DB0F48EB17CA51E5008798C5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB0F48FE17CA5212008798C5 /* Build configuration list for PBXNativeTarget "testfilesystem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB0F48FF17CA5212008798C5 /* Debug */, + DB0F490017CA5212008798C5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166D8016A1D12400A1396C /* Build configuration list for PBXNativeTarget "SDL3_test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166D8116A1D12400A1396C /* Debug */, + DB166D8216A1D12400A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166DD216A1D36A00A1396C /* Build configuration list for PBXNativeTarget "testmessage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166DD316A1D36A00A1396C /* Debug */, + DB166DD416A1D36A00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166DEB16A1D50C00A1396C /* Build configuration list for PBXNativeTarget "testrelative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166DEC16A1D50C00A1396C /* Debug */, + DB166DED16A1D50C00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E0216A1D57C00A1396C /* Build configuration list for PBXNativeTarget "testrendercopyex" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E0316A1D57C00A1396C /* Debug */, + DB166E0416A1D57C00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E1916A1D5AD00A1396C /* Build configuration list for PBXNativeTarget "testrendertarget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E1A16A1D5AD00A1396C /* Debug */, + DB166E1B16A1D5AD00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E3516A1D64D00A1396C /* Build configuration list for PBXNativeTarget "testrumble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E3616A1D64D00A1396C /* Debug */, + DB166E3716A1D64D00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E4F16A1D69000A1396C /* Build configuration list for PBXNativeTarget "testscale" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E5016A1D69000A1396C /* Debug */, + DB166E5116A1D69000A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E6516A1D6F300A1396C /* Build configuration list for PBXNativeTarget "testshader" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E6616A1D6F300A1396C /* Debug */, + DB166E6716A1D6F300A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E7B16A1D78400A1396C /* Build configuration list for PBXNativeTarget "testspriteminimal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E7C16A1D78400A1396C /* Debug */, + DB166E7D16A1D78400A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E8E16A1D78C00A1396C /* Build configuration list for PBXNativeTarget "teststreaming" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E8F16A1D78C00A1396C /* Debug */, + DB166E9016A1D78C00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB445EF518184B7000B306B0 /* Build configuration list for PBXNativeTarget "testdropfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB445EF618184B7000B306B0 /* Debug */, + DB445EF718184B7000B306B0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB89957B18A19ABA0092407C /* Build configuration list for PBXNativeTarget "testhotplug" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB89957C18A19ABA0092407C /* Debug */, + DB89957D18A19ABA0092407C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + F35E56A7298312CB00A43A5F /* Build configuration list for PBXNativeTarget "testautomation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F35E56A8298312CB00A43A5F /* Debug */, + F35E56A9298312CB00A43A5F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + F3C17CE828E416D000E1A26D /* Build configuration list for PBXNativeTarget "testgeometry" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F3C17CE928E416D000E1A26D /* Debug */, + F3C17CEA28E416D000E1A26D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/vendor/sdl-3.0.0/Xcode/SDLTest/config.xcconfig b/vendor/sdl-3.0.0/Xcode/SDLTest/config.xcconfig new file mode 100644 index 0000000..6447922 --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/SDLTest/config.xcconfig @@ -0,0 +1,14 @@ +// +// config.xcconfig +// SDL tests +// + +// Configuration settings file format documentation can be found at: +// https://help.apple.com/xcode/#/dev745c5c974 + +// Include any optional config for this build +// This allows you to set DEVELOPMENT_TEAM for all targets, for example. +#include? "build.xcconfig" + +CONFIG_FRAMEWORK_LDFLAGS = -lSDL3_test + diff --git a/vendor/sdl-3.0.0/Xcode/XcodeDocSet/Doxyfile b/vendor/sdl-3.0.0/Xcode/XcodeDocSet/Doxyfile new file mode 100644 index 0000000..961ac98 --- /dev/null +++ b/vendor/sdl-3.0.0/Xcode/XcodeDocSet/Doxyfile @@ -0,0 +1,1558 @@ +# Doxyfile 1.6.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = SDL + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1.3.0 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it parses. +# With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this tag. +# The format is ext=language, where ext is a file extension, and language is one of +# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, +# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. Note that for custom extensions you also need to set +# FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen to replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = YES + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = NO + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by +# doxygen. The layout file controls the global structure of the generated output files +# in an output format independent way. The create the layout file that represents +# doxygen's defaults, run doxygen with the -l option. You can optionally specify a +# file name after the option, if omitted DoxygenLayout.xml will be used as the name +# of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../../include + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.d \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.m \ + *.mm \ + *.dox \ + *.py \ + *.f90 \ + *.f \ + *.vhd \ + *.vhdl + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. + +GENERATE_DOCSET = YES + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs for SDL" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.libsdl.sdl + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = SDL.chm + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = "C:/Program Files/HTML Help Workshop/hhc.exe" + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = YES + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER +# are set, an additional index file will be generated that can be used as input for +# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated +# HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. +# For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's +# filter section matches. +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# When the SEARCHENGINE tag is enable doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP) +# there is already a search function so this one should typically +# be disabled. + +SEARCHENGINE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = YES + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = NO + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = DECLSPEC \ + SDLCALL + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = NO + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = FreeSans + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = /Applications/Graphviz.app/Contents/MacOS + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 67 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 2 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/vendor/sdl-3.0.0/android-project/app/build.gradle b/vendor/sdl-3.0.0/android-project/app/build.gradle new file mode 100644 index 0000000..a158bbf --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/build.gradle @@ -0,0 +1,76 @@ +def buildAsLibrary = project.hasProperty('BUILD_AS_LIBRARY'); +def buildAsApplication = !buildAsLibrary +if (buildAsApplication) { + apply plugin: 'com.android.application' +} +else { + apply plugin: 'com.android.library' +} + +android { + if (buildAsApplication) { + namespace "org.libsdl.app" + } + compileSdkVersion 34 + defaultConfig { + minSdkVersion 19 + targetSdkVersion 34 + versionCode 1 + versionName "1.0" + externalNativeBuild { + ndkBuild { + arguments "APP_PLATFORM=android-19" + // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' + abiFilters 'arm64-v8a' + } + cmake { + arguments "-DANDROID_APP_PLATFORM=android-19", "-DANDROID_STL=c++_static" + // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' + abiFilters 'arm64-v8a' + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + applicationVariants.all { variant -> + tasks["merge${variant.name.capitalize()}Assets"] + .dependsOn("externalNativeBuild${variant.name.capitalize()}") + } + if (!project.hasProperty('EXCLUDE_NATIVE_LIBS')) { + sourceSets.main { + jniLibs.srcDir 'libs' + } + externalNativeBuild { + ndkBuild { + path 'jni/Android.mk' + } + // cmake { + // path 'jni/CMakeLists.txt' + // } + } + + } + lint { + abortOnError false + } + + if (buildAsLibrary) { + libraryVariants.all { variant -> + variant.outputs.each { output -> + def outputFile = output.outputFile + if (outputFile != null && outputFile.name.endsWith(".aar")) { + def fileName = "org.libsdl.app.aar"; + output.outputFile = new File(outputFile.parent, fileName); + } + } + } + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') +} diff --git a/vendor/sdl-3.0.0/android-project/app/jni/Android.mk b/vendor/sdl-3.0.0/android-project/app/jni/Android.mk new file mode 100644 index 0000000..5053e7d --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/jni/Android.mk @@ -0,0 +1 @@ +include $(call all-subdir-makefiles) diff --git a/vendor/sdl-3.0.0/android-project/app/jni/Application.mk b/vendor/sdl-3.0.0/android-project/app/jni/Application.mk new file mode 100644 index 0000000..023bc20 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/jni/Application.mk @@ -0,0 +1,10 @@ + +# Uncomment this if you're using STL in your project +# You can find more information here: +# https://developer.android.com/ndk/guides/cpp-support +# APP_STL := c++_shared + +APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 + +# Min runtime API level +APP_PLATFORM=android-16 diff --git a/vendor/sdl-3.0.0/android-project/app/jni/CMakeLists.txt b/vendor/sdl-3.0.0/android-project/app/jni/CMakeLists.txt new file mode 100644 index 0000000..3d49cf3 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/jni/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.6) + +project(GAME) + +# armeabi-v7a requires cpufeatures library +# include(AndroidNdkModules) +# android_ndk_import_module_cpufeatures() + + +# SDL sources are in a subfolder named "SDL" +add_subdirectory(SDL) + +# Compilation of companion libraries +#add_subdirectory(SDL_image) +#add_subdirectory(SDL_mixer) +#add_subdirectory(SDL_ttf) + +# Your game and its CMakeLists.txt are in a subfolder named "src" +add_subdirectory(src) + diff --git a/vendor/sdl-3.0.0/android-project/app/jni/src/Android.mk b/vendor/sdl-3.0.0/android-project/app/jni/src/Android.mk new file mode 100644 index 0000000..982f661 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/jni/src/Android.mk @@ -0,0 +1,18 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := main + +SDL_PATH := ../SDL + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include + +# Add your application source files here... +LOCAL_SRC_FILES := YourSourceHere.c + +LOCAL_SHARED_LIBRARIES := SDL3 + +LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid + +include $(BUILD_SHARED_LIBRARY) diff --git a/vendor/sdl-3.0.0/android-project/app/jni/src/CMakeLists.txt b/vendor/sdl-3.0.0/android-project/app/jni/src/CMakeLists.txt new file mode 100644 index 0000000..aaac0c8 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/jni/src/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.6) + +project(MY_APP) + +find_library(SDL3 SDL3) + +add_library(main SHARED) + +target_sources(main PRIVATE YourSourceHere.c) + +target_link_libraries(main SDL3) + + diff --git a/vendor/sdl-3.0.0/android-project/app/proguard-rules.pro b/vendor/sdl-3.0.0/android-project/app/proguard-rules.pro new file mode 100644 index 0000000..eaf0e91 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in [sdk]/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/vendor/sdl-3.0.0/android-project/app/src/main/AndroidManifest.xml b/vendor/sdl-3.0.0/android-project/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..e0d0334 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/src/main/AndroidManifest.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java new file mode 100644 index 0000000..f960953 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java @@ -0,0 +1,21 @@ +package org.libsdl.app; + +import android.hardware.usb.UsbDevice; + +interface HIDDevice +{ + public int getId(); + public int getVendorId(); + public int getProductId(); + public String getSerialNumber(); + public int getVersion(); + public String getManufacturerName(); + public String getProductName(); + public UsbDevice getDevice(); + public boolean open(); + public int writeReport(byte[] report, boolean feature); + public boolean readReport(byte[] report, boolean feature); + public void setFrozen(boolean frozen); + public void close(); + public void shutdown(); +} diff --git a/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceBLESteamController.java b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceBLESteamController.java new file mode 100644 index 0000000..a7b85d0 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceBLESteamController.java @@ -0,0 +1,645 @@ +package org.libsdl.app; + +import android.content.Context; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCallback; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothManager; +import android.bluetooth.BluetoothProfile; +import android.bluetooth.BluetoothGattService; +import android.hardware.usb.UsbDevice; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; +import android.os.*; + +//import com.android.internal.util.HexDump; + +import java.lang.Runnable; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.UUID; + +class HIDDeviceBLESteamController extends BluetoothGattCallback implements HIDDevice { + + private static final String TAG = "hidapi"; + private HIDDeviceManager mManager; + private BluetoothDevice mDevice; + private int mDeviceId; + private BluetoothGatt mGatt; + private boolean mIsRegistered = false; + private boolean mIsConnected = false; + private boolean mIsChromebook = false; + private boolean mIsReconnecting = false; + private boolean mFrozen = false; + private LinkedList mOperations; + GattOperation mCurrentOperation = null; + private Handler mHandler; + + private static final int TRANSPORT_AUTO = 0; + private static final int TRANSPORT_BREDR = 1; + private static final int TRANSPORT_LE = 2; + + private static final int CHROMEBOOK_CONNECTION_CHECK_INTERVAL = 10000; + + static public final UUID steamControllerService = UUID.fromString("100F6C32-1735-4313-B402-38567131E5F3"); + static public final UUID inputCharacteristic = UUID.fromString("100F6C33-1735-4313-B402-38567131E5F3"); + static public final UUID reportCharacteristic = UUID.fromString("100F6C34-1735-4313-B402-38567131E5F3"); + static private final byte[] enterValveMode = new byte[] { (byte)0xC0, (byte)0x87, 0x03, 0x08, 0x07, 0x00 }; + + static class GattOperation { + private enum Operation { + CHR_READ, + CHR_WRITE, + ENABLE_NOTIFICATION + } + + Operation mOp; + UUID mUuid; + byte[] mValue; + BluetoothGatt mGatt; + boolean mResult = true; + + private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUID uuid) { + mGatt = gatt; + mOp = operation; + mUuid = uuid; + } + + private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUID uuid, byte[] value) { + mGatt = gatt; + mOp = operation; + mUuid = uuid; + mValue = value; + } + + public void run() { + // This is executed in main thread + BluetoothGattCharacteristic chr; + + switch (mOp) { + case CHR_READ: + chr = getCharacteristic(mUuid); + //Log.v(TAG, "Reading characteristic " + chr.getUuid()); + if (!mGatt.readCharacteristic(chr)) { + Log.e(TAG, "Unable to read characteristic " + mUuid.toString()); + mResult = false; + break; + } + mResult = true; + break; + case CHR_WRITE: + chr = getCharacteristic(mUuid); + //Log.v(TAG, "Writing characteristic " + chr.getUuid() + " value=" + HexDump.toHexString(value)); + chr.setValue(mValue); + if (!mGatt.writeCharacteristic(chr)) { + Log.e(TAG, "Unable to write characteristic " + mUuid.toString()); + mResult = false; + break; + } + mResult = true; + break; + case ENABLE_NOTIFICATION: + chr = getCharacteristic(mUuid); + //Log.v(TAG, "Writing descriptor of " + chr.getUuid()); + if (chr != null) { + BluetoothGattDescriptor cccd = chr.getDescriptor(UUID.fromString("00002902-0000-1000-8000-00805f9b34fb")); + if (cccd != null) { + int properties = chr.getProperties(); + byte[] value; + if ((properties & BluetoothGattCharacteristic.PROPERTY_NOTIFY) == BluetoothGattCharacteristic.PROPERTY_NOTIFY) { + value = BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE; + } else if ((properties & BluetoothGattCharacteristic.PROPERTY_INDICATE) == BluetoothGattCharacteristic.PROPERTY_INDICATE) { + value = BluetoothGattDescriptor.ENABLE_INDICATION_VALUE; + } else { + Log.e(TAG, "Unable to start notifications on input characteristic"); + mResult = false; + return; + } + + mGatt.setCharacteristicNotification(chr, true); + cccd.setValue(value); + if (!mGatt.writeDescriptor(cccd)) { + Log.e(TAG, "Unable to write descriptor " + mUuid.toString()); + mResult = false; + return; + } + mResult = true; + } + } + } + } + + public boolean finish() { + return mResult; + } + + private BluetoothGattCharacteristic getCharacteristic(UUID uuid) { + BluetoothGattService valveService = mGatt.getService(steamControllerService); + if (valveService == null) + return null; + return valveService.getCharacteristic(uuid); + } + + static public GattOperation readCharacteristic(BluetoothGatt gatt, UUID uuid) { + return new GattOperation(gatt, Operation.CHR_READ, uuid); + } + + static public GattOperation writeCharacteristic(BluetoothGatt gatt, UUID uuid, byte[] value) { + return new GattOperation(gatt, Operation.CHR_WRITE, uuid, value); + } + + static public GattOperation enableNotification(BluetoothGatt gatt, UUID uuid) { + return new GattOperation(gatt, Operation.ENABLE_NOTIFICATION, uuid); + } + } + + public HIDDeviceBLESteamController(HIDDeviceManager manager, BluetoothDevice device) { + mManager = manager; + mDevice = device; + mDeviceId = mManager.getDeviceIDForIdentifier(getIdentifier()); + mIsRegistered = false; + mIsChromebook = mManager.getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + mOperations = new LinkedList(); + mHandler = new Handler(Looper.getMainLooper()); + + mGatt = connectGatt(); + // final HIDDeviceBLESteamController finalThis = this; + // mHandler.postDelayed(new Runnable() { + // @Override + // public void run() { + // finalThis.checkConnectionForChromebookIssue(); + // } + // }, CHROMEBOOK_CONNECTION_CHECK_INTERVAL); + } + + public String getIdentifier() { + return String.format("SteamController.%s", mDevice.getAddress()); + } + + public BluetoothGatt getGatt() { + return mGatt; + } + + // Because on Chromebooks we show up as a dual-mode device, it will attempt to connect TRANSPORT_AUTO, which will use TRANSPORT_BREDR instead + // of TRANSPORT_LE. Let's force ourselves to connect low energy. + private BluetoothGatt connectGatt(boolean managed) { + if (Build.VERSION.SDK_INT >= 23 /* Android 6.0 (M) */) { + try { + return mDevice.connectGatt(mManager.getContext(), managed, this, TRANSPORT_LE); + } catch (Exception e) { + return mDevice.connectGatt(mManager.getContext(), managed, this); + } + } else { + return mDevice.connectGatt(mManager.getContext(), managed, this); + } + } + + private BluetoothGatt connectGatt() { + return connectGatt(false); + } + + protected int getConnectionState() { + + Context context = mManager.getContext(); + if (context == null) { + // We are lacking any context to get our Bluetooth information. We'll just assume disconnected. + return BluetoothProfile.STATE_DISCONNECTED; + } + + BluetoothManager btManager = (BluetoothManager)context.getSystemService(Context.BLUETOOTH_SERVICE); + if (btManager == null) { + // This device doesn't support Bluetooth. We should never be here, because how did + // we instantiate a device to start with? + return BluetoothProfile.STATE_DISCONNECTED; + } + + return btManager.getConnectionState(mDevice, BluetoothProfile.GATT); + } + + public void reconnect() { + + if (getConnectionState() != BluetoothProfile.STATE_CONNECTED) { + mGatt.disconnect(); + mGatt = connectGatt(); + } + + } + + protected void checkConnectionForChromebookIssue() { + if (!mIsChromebook) { + // We only do this on Chromebooks, because otherwise it's really annoying to just attempt + // over and over. + return; + } + + int connectionState = getConnectionState(); + + switch (connectionState) { + case BluetoothProfile.STATE_CONNECTED: + if (!mIsConnected) { + // We are in the Bad Chromebook Place. We can force a disconnect + // to try to recover. + Log.v(TAG, "Chromebook: We are in a very bad state; the controller shows as connected in the underlying Bluetooth layer, but we never received a callback. Forcing a reconnect."); + mIsReconnecting = true; + mGatt.disconnect(); + mGatt = connectGatt(false); + break; + } + else if (!isRegistered()) { + if (mGatt.getServices().size() > 0) { + Log.v(TAG, "Chromebook: We are connected to a controller, but never got our registration. Trying to recover."); + probeService(this); + } + else { + Log.v(TAG, "Chromebook: We are connected to a controller, but never discovered services. Trying to recover."); + mIsReconnecting = true; + mGatt.disconnect(); + mGatt = connectGatt(false); + break; + } + } + else { + Log.v(TAG, "Chromebook: We are connected, and registered. Everything's good!"); + return; + } + break; + + case BluetoothProfile.STATE_DISCONNECTED: + Log.v(TAG, "Chromebook: We have either been disconnected, or the Chromebook BtGatt.ContextMap bug has bitten us. Attempting a disconnect/reconnect, but we may not be able to recover."); + + mIsReconnecting = true; + mGatt.disconnect(); + mGatt = connectGatt(false); + break; + + case BluetoothProfile.STATE_CONNECTING: + Log.v(TAG, "Chromebook: We're still trying to connect. Waiting a bit longer."); + break; + } + + final HIDDeviceBLESteamController finalThis = this; + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finalThis.checkConnectionForChromebookIssue(); + } + }, CHROMEBOOK_CONNECTION_CHECK_INTERVAL); + } + + private boolean isRegistered() { + return mIsRegistered; + } + + private void setRegistered() { + mIsRegistered = true; + } + + private boolean probeService(HIDDeviceBLESteamController controller) { + + if (isRegistered()) { + return true; + } + + if (!mIsConnected) { + return false; + } + + Log.v(TAG, "probeService controller=" + controller); + + for (BluetoothGattService service : mGatt.getServices()) { + if (service.getUuid().equals(steamControllerService)) { + Log.v(TAG, "Found Valve steam controller service " + service.getUuid()); + + for (BluetoothGattCharacteristic chr : service.getCharacteristics()) { + if (chr.getUuid().equals(inputCharacteristic)) { + Log.v(TAG, "Found input characteristic"); + // Start notifications + BluetoothGattDescriptor cccd = chr.getDescriptor(UUID.fromString("00002902-0000-1000-8000-00805f9b34fb")); + if (cccd != null) { + enableNotification(chr.getUuid()); + } + } + } + return true; + } + } + + if ((mGatt.getServices().size() == 0) && mIsChromebook && !mIsReconnecting) { + Log.e(TAG, "Chromebook: Discovered services were empty; this almost certainly means the BtGatt.ContextMap bug has bitten us."); + mIsConnected = false; + mIsReconnecting = true; + mGatt.disconnect(); + mGatt = connectGatt(false); + } + + return false; + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + private void finishCurrentGattOperation() { + GattOperation op = null; + synchronized (mOperations) { + if (mCurrentOperation != null) { + op = mCurrentOperation; + mCurrentOperation = null; + } + } + if (op != null) { + boolean result = op.finish(); // TODO: Maybe in main thread as well? + + // Our operation failed, let's add it back to the beginning of our queue. + if (!result) { + mOperations.addFirst(op); + } + } + executeNextGattOperation(); + } + + private void executeNextGattOperation() { + synchronized (mOperations) { + if (mCurrentOperation != null) + return; + + if (mOperations.isEmpty()) + return; + + mCurrentOperation = mOperations.removeFirst(); + } + + // Run in main thread + mHandler.post(new Runnable() { + @Override + public void run() { + synchronized (mOperations) { + if (mCurrentOperation == null) { + Log.e(TAG, "Current operation null in executor?"); + return; + } + + mCurrentOperation.run(); + // now wait for the GATT callback and when it comes, finish this operation + } + } + }); + } + + private void queueGattOperation(GattOperation op) { + synchronized (mOperations) { + mOperations.add(op); + } + executeNextGattOperation(); + } + + private void enableNotification(UUID chrUuid) { + GattOperation op = HIDDeviceBLESteamController.GattOperation.enableNotification(mGatt, chrUuid); + queueGattOperation(op); + } + + public void writeCharacteristic(UUID uuid, byte[] value) { + GattOperation op = HIDDeviceBLESteamController.GattOperation.writeCharacteristic(mGatt, uuid, value); + queueGattOperation(op); + } + + public void readCharacteristic(UUID uuid) { + GattOperation op = HIDDeviceBLESteamController.GattOperation.readCharacteristic(mGatt, uuid); + queueGattOperation(op); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////// BluetoothGattCallback overridden methods + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + public void onConnectionStateChange(BluetoothGatt g, int status, int newState) { + //Log.v(TAG, "onConnectionStateChange status=" + status + " newState=" + newState); + mIsReconnecting = false; + if (newState == 2) { + mIsConnected = true; + // Run directly, without GattOperation + if (!isRegistered()) { + mHandler.post(new Runnable() { + @Override + public void run() { + mGatt.discoverServices(); + } + }); + } + } + else if (newState == 0) { + mIsConnected = false; + } + + // Disconnection is handled in SteamLink using the ACTION_ACL_DISCONNECTED Intent. + } + + public void onServicesDiscovered(BluetoothGatt gatt, int status) { + //Log.v(TAG, "onServicesDiscovered status=" + status); + if (status == 0) { + if (gatt.getServices().size() == 0) { + Log.v(TAG, "onServicesDiscovered returned zero services; something has gone horribly wrong down in Android's Bluetooth stack."); + mIsReconnecting = true; + mIsConnected = false; + gatt.disconnect(); + mGatt = connectGatt(false); + } + else { + probeService(this); + } + } + } + + public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { + //Log.v(TAG, "onCharacteristicRead status=" + status + " uuid=" + characteristic.getUuid()); + + if (characteristic.getUuid().equals(reportCharacteristic) && !mFrozen) { + mManager.HIDDeviceReportResponse(getId(), characteristic.getValue()); + } + + finishCurrentGattOperation(); + } + + public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { + //Log.v(TAG, "onCharacteristicWrite status=" + status + " uuid=" + characteristic.getUuid()); + + if (characteristic.getUuid().equals(reportCharacteristic)) { + // Only register controller with the native side once it has been fully configured + if (!isRegistered()) { + Log.v(TAG, "Registering Steam Controller with ID: " + getId()); + mManager.HIDDeviceConnected(getId(), getIdentifier(), getVendorId(), getProductId(), getSerialNumber(), getVersion(), getManufacturerName(), getProductName(), 0, 0, 0, 0); + setRegistered(); + } + } + + finishCurrentGattOperation(); + } + + public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { + // Enable this for verbose logging of controller input reports + //Log.v(TAG, "onCharacteristicChanged uuid=" + characteristic.getUuid() + " data=" + HexDump.dumpHexString(characteristic.getValue())); + + if (characteristic.getUuid().equals(inputCharacteristic) && !mFrozen) { + mManager.HIDDeviceInputReport(getId(), characteristic.getValue()); + } + } + + public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) { + //Log.v(TAG, "onDescriptorRead status=" + status); + } + + public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) { + BluetoothGattCharacteristic chr = descriptor.getCharacteristic(); + //Log.v(TAG, "onDescriptorWrite status=" + status + " uuid=" + chr.getUuid() + " descriptor=" + descriptor.getUuid()); + + if (chr.getUuid().equals(inputCharacteristic)) { + boolean hasWrittenInputDescriptor = true; + BluetoothGattCharacteristic reportChr = chr.getService().getCharacteristic(reportCharacteristic); + if (reportChr != null) { + Log.v(TAG, "Writing report characteristic to enter valve mode"); + reportChr.setValue(enterValveMode); + gatt.writeCharacteristic(reportChr); + } + } + + finishCurrentGattOperation(); + } + + public void onReliableWriteCompleted(BluetoothGatt gatt, int status) { + //Log.v(TAG, "onReliableWriteCompleted status=" + status); + } + + public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) { + //Log.v(TAG, "onReadRemoteRssi status=" + status); + } + + public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) { + //Log.v(TAG, "onMtuChanged status=" + status); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + //////// Public API + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public int getId() { + return mDeviceId; + } + + @Override + public int getVendorId() { + // Valve Corporation + final int VALVE_USB_VID = 0x28DE; + return VALVE_USB_VID; + } + + @Override + public int getProductId() { + // We don't have an easy way to query from the Bluetooth device, but we know what it is + final int D0G_BLE2_PID = 0x1106; + return D0G_BLE2_PID; + } + + @Override + public String getSerialNumber() { + // This will be read later via feature report by Steam + return "12345"; + } + + @Override + public int getVersion() { + return 0; + } + + @Override + public String getManufacturerName() { + return "Valve Corporation"; + } + + @Override + public String getProductName() { + return "Steam Controller"; + } + + @Override + public UsbDevice getDevice() { + return null; + } + + @Override + public boolean open() { + return true; + } + + @Override + public int writeReport(byte[] report, boolean feature) { + if (!isRegistered()) { + Log.e(TAG, "Attempted writeReport before Steam Controller is registered!"); + if (mIsConnected) { + probeService(this); + } + return -1; + } + + if (feature) { + // We need to skip the first byte, as that doesn't go over the air + byte[] actual_report = Arrays.copyOfRange(report, 1, report.length - 1); + //Log.v(TAG, "writeFeatureReport " + HexDump.dumpHexString(actual_report)); + writeCharacteristic(reportCharacteristic, actual_report); + return report.length; + } else { + //Log.v(TAG, "writeOutputReport " + HexDump.dumpHexString(report)); + writeCharacteristic(reportCharacteristic, report); + return report.length; + } + } + + @Override + public boolean readReport(byte[] report, boolean feature) { + if (!isRegistered()) { + Log.e(TAG, "Attempted readReport before Steam Controller is registered!"); + if (mIsConnected) { + probeService(this); + } + return false; + } + + if (feature) { + readCharacteristic(reportCharacteristic); + return true; + } else { + // Not implemented + return false; + } + } + + @Override + public void close() { + } + + @Override + public void setFrozen(boolean frozen) { + mFrozen = frozen; + } + + @Override + public void shutdown() { + close(); + + BluetoothGatt g = mGatt; + if (g != null) { + g.disconnect(); + g.close(); + mGatt = null; + } + mManager = null; + mIsRegistered = false; + mIsConnected = false; + mOperations.clear(); + } + +} + diff --git a/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java new file mode 100644 index 0000000..42e6694 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java @@ -0,0 +1,668 @@ +package org.libsdl.app; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.PendingIntent; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.bluetooth.BluetoothProfile; +import android.os.Build; +import android.util.Log; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.hardware.usb.*; +import android.os.Handler; +import android.os.Looper; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +public class HIDDeviceManager { + private static final String TAG = "hidapi"; + private static final String ACTION_USB_PERMISSION = "org.libsdl.app.USB_PERMISSION"; + + private static HIDDeviceManager sManager; + private static int sManagerRefCount = 0; + + public static HIDDeviceManager acquire(Context context) { + if (sManagerRefCount == 0) { + sManager = new HIDDeviceManager(context); + } + ++sManagerRefCount; + return sManager; + } + + public static void release(HIDDeviceManager manager) { + if (manager == sManager) { + --sManagerRefCount; + if (sManagerRefCount == 0) { + sManager.close(); + sManager = null; + } + } + } + + private Context mContext; + private HashMap mDevicesById = new HashMap(); + private HashMap mBluetoothDevices = new HashMap(); + private int mNextDeviceId = 0; + private SharedPreferences mSharedPreferences = null; + private boolean mIsChromebook = false; + private UsbManager mUsbManager; + private Handler mHandler; + private BluetoothManager mBluetoothManager; + private List mLastBluetoothDevices; + + private final BroadcastReceiver mUsbBroadcast = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action.equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) { + UsbDevice usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); + handleUsbDeviceAttached(usbDevice); + } else if (action.equals(UsbManager.ACTION_USB_DEVICE_DETACHED)) { + UsbDevice usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); + handleUsbDeviceDetached(usbDevice); + } else if (action.equals(HIDDeviceManager.ACTION_USB_PERMISSION)) { + UsbDevice usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); + handleUsbDevicePermission(usbDevice, intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)); + } + } + }; + + private final BroadcastReceiver mBluetoothBroadcast = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + // Bluetooth device was connected. If it was a Steam Controller, handle it + if (action.equals(BluetoothDevice.ACTION_ACL_CONNECTED)) { + BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + Log.d(TAG, "Bluetooth device connected: " + device); + + if (isSteamController(device)) { + connectBluetoothDevice(device); + } + } + + // Bluetooth device was disconnected, remove from controller manager (if any) + if (action.equals(BluetoothDevice.ACTION_ACL_DISCONNECTED)) { + BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + Log.d(TAG, "Bluetooth device disconnected: " + device); + + disconnectBluetoothDevice(device); + } + } + }; + + private HIDDeviceManager(final Context context) { + mContext = context; + + HIDDeviceRegisterCallback(); + + mSharedPreferences = mContext.getSharedPreferences("hidapi", Context.MODE_PRIVATE); + mIsChromebook = mContext.getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + +// if (shouldClear) { +// SharedPreferences.Editor spedit = mSharedPreferences.edit(); +// spedit.clear(); +// spedit.commit(); +// } +// else + { + mNextDeviceId = mSharedPreferences.getInt("next_device_id", 0); + } + } + + public Context getContext() { + return mContext; + } + + public int getDeviceIDForIdentifier(String identifier) { + SharedPreferences.Editor spedit = mSharedPreferences.edit(); + + int result = mSharedPreferences.getInt(identifier, 0); + if (result == 0) { + result = mNextDeviceId++; + spedit.putInt("next_device_id", mNextDeviceId); + } + + spedit.putInt(identifier, result); + spedit.commit(); + return result; + } + + private void initializeUSB() { + mUsbManager = (UsbManager)mContext.getSystemService(Context.USB_SERVICE); + if (mUsbManager == null) { + return; + } + + /* + // Logging + for (UsbDevice device : mUsbManager.getDeviceList().values()) { + Log.i(TAG,"Path: " + device.getDeviceName()); + Log.i(TAG,"Manufacturer: " + device.getManufacturerName()); + Log.i(TAG,"Product: " + device.getProductName()); + Log.i(TAG,"ID: " + device.getDeviceId()); + Log.i(TAG,"Class: " + device.getDeviceClass()); + Log.i(TAG,"Protocol: " + device.getDeviceProtocol()); + Log.i(TAG,"Vendor ID " + device.getVendorId()); + Log.i(TAG,"Product ID: " + device.getProductId()); + Log.i(TAG,"Interface count: " + device.getInterfaceCount()); + Log.i(TAG,"---------------------------------------"); + + // Get interface details + for (int index = 0; index < device.getInterfaceCount(); index++) { + UsbInterface mUsbInterface = device.getInterface(index); + Log.i(TAG," ***** *****"); + Log.i(TAG," Interface index: " + index); + Log.i(TAG," Interface ID: " + mUsbInterface.getId()); + Log.i(TAG," Interface class: " + mUsbInterface.getInterfaceClass()); + Log.i(TAG," Interface subclass: " + mUsbInterface.getInterfaceSubclass()); + Log.i(TAG," Interface protocol: " + mUsbInterface.getInterfaceProtocol()); + Log.i(TAG," Endpoint count: " + mUsbInterface.getEndpointCount()); + + // Get endpoint details + for (int epi = 0; epi < mUsbInterface.getEndpointCount(); epi++) + { + UsbEndpoint mEndpoint = mUsbInterface.getEndpoint(epi); + Log.i(TAG," ++++ ++++ ++++"); + Log.i(TAG," Endpoint index: " + epi); + Log.i(TAG," Attributes: " + mEndpoint.getAttributes()); + Log.i(TAG," Direction: " + mEndpoint.getDirection()); + Log.i(TAG," Number: " + mEndpoint.getEndpointNumber()); + Log.i(TAG," Interval: " + mEndpoint.getInterval()); + Log.i(TAG," Packet size: " + mEndpoint.getMaxPacketSize()); + Log.i(TAG," Type: " + mEndpoint.getType()); + } + } + } + Log.i(TAG," No more devices connected."); + */ + + // Register for USB broadcasts and permission completions + IntentFilter filter = new IntentFilter(); + filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED); + filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED); + filter.addAction(HIDDeviceManager.ACTION_USB_PERMISSION); + mContext.registerReceiver(mUsbBroadcast, filter); + + for (UsbDevice usbDevice : mUsbManager.getDeviceList().values()) { + handleUsbDeviceAttached(usbDevice); + } + } + + UsbManager getUSBManager() { + return mUsbManager; + } + + private void shutdownUSB() { + try { + mContext.unregisterReceiver(mUsbBroadcast); + } catch (Exception e) { + // We may not have registered, that's okay + } + } + + private boolean isHIDDeviceInterface(UsbDevice usbDevice, UsbInterface usbInterface) { + if (usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_HID) { + return true; + } + if (isXbox360Controller(usbDevice, usbInterface) || isXboxOneController(usbDevice, usbInterface)) { + return true; + } + return false; + } + + private boolean isXbox360Controller(UsbDevice usbDevice, UsbInterface usbInterface) { + final int XB360_IFACE_SUBCLASS = 93; + final int XB360_IFACE_PROTOCOL = 1; // Wired + final int XB360W_IFACE_PROTOCOL = 129; // Wireless + final int[] SUPPORTED_VENDORS = { + 0x0079, // GPD Win 2 + 0x044f, // Thrustmaster + 0x045e, // Microsoft + 0x046d, // Logitech + 0x056e, // Elecom + 0x06a3, // Saitek + 0x0738, // Mad Catz + 0x07ff, // Mad Catz + 0x0e6f, // PDP + 0x0f0d, // Hori + 0x1038, // SteelSeries + 0x11c9, // Nacon + 0x12ab, // Unknown + 0x1430, // RedOctane + 0x146b, // BigBen + 0x1532, // Razer Sabertooth + 0x15e4, // Numark + 0x162e, // Joytech + 0x1689, // Razer Onza + 0x1949, // Lab126, Inc. + 0x1bad, // Harmonix + 0x20d6, // PowerA + 0x24c6, // PowerA + 0x2c22, // Qanba + 0x2dc8, // 8BitDo + 0x9886, // ASTRO Gaming + }; + + if (usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_VENDOR_SPEC && + usbInterface.getInterfaceSubclass() == XB360_IFACE_SUBCLASS && + (usbInterface.getInterfaceProtocol() == XB360_IFACE_PROTOCOL || + usbInterface.getInterfaceProtocol() == XB360W_IFACE_PROTOCOL)) { + int vendor_id = usbDevice.getVendorId(); + for (int supportedVid : SUPPORTED_VENDORS) { + if (vendor_id == supportedVid) { + return true; + } + } + } + return false; + } + + private boolean isXboxOneController(UsbDevice usbDevice, UsbInterface usbInterface) { + final int XB1_IFACE_SUBCLASS = 71; + final int XB1_IFACE_PROTOCOL = 208; + final int[] SUPPORTED_VENDORS = { + 0x03f0, // HP + 0x044f, // Thrustmaster + 0x045e, // Microsoft + 0x0738, // Mad Catz + 0x0e6f, // PDP + 0x0f0d, // Hori + 0x10f5, // Turtle Beach + 0x1532, // Razer Wildcat + 0x20d6, // PowerA + 0x24c6, // PowerA + 0x2dc8, // 8BitDo + 0x2e24, // Hyperkin + 0x3537, // GameSir + }; + + if (usbInterface.getId() == 0 && + usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_VENDOR_SPEC && + usbInterface.getInterfaceSubclass() == XB1_IFACE_SUBCLASS && + usbInterface.getInterfaceProtocol() == XB1_IFACE_PROTOCOL) { + int vendor_id = usbDevice.getVendorId(); + for (int supportedVid : SUPPORTED_VENDORS) { + if (vendor_id == supportedVid) { + return true; + } + } + } + return false; + } + + private void handleUsbDeviceAttached(UsbDevice usbDevice) { + connectHIDDeviceUSB(usbDevice); + } + + private void handleUsbDeviceDetached(UsbDevice usbDevice) { + List devices = new ArrayList(); + for (HIDDevice device : mDevicesById.values()) { + if (usbDevice.equals(device.getDevice())) { + devices.add(device.getId()); + } + } + for (int id : devices) { + HIDDevice device = mDevicesById.get(id); + mDevicesById.remove(id); + device.shutdown(); + HIDDeviceDisconnected(id); + } + } + + private void handleUsbDevicePermission(UsbDevice usbDevice, boolean permission_granted) { + for (HIDDevice device : mDevicesById.values()) { + if (usbDevice.equals(device.getDevice())) { + boolean opened = false; + if (permission_granted) { + opened = device.open(); + } + HIDDeviceOpenResult(device.getId(), opened); + } + } + } + + private void connectHIDDeviceUSB(UsbDevice usbDevice) { + synchronized (this) { + int interface_mask = 0; + for (int interface_index = 0; interface_index < usbDevice.getInterfaceCount(); interface_index++) { + UsbInterface usbInterface = usbDevice.getInterface(interface_index); + if (isHIDDeviceInterface(usbDevice, usbInterface)) { + // Check to see if we've already added this interface + // This happens with the Xbox Series X controller which has a duplicate interface 0, which is inactive + int interface_id = usbInterface.getId(); + if ((interface_mask & (1 << interface_id)) != 0) { + continue; + } + interface_mask |= (1 << interface_id); + + HIDDeviceUSB device = new HIDDeviceUSB(this, usbDevice, interface_index); + int id = device.getId(); + mDevicesById.put(id, device); + HIDDeviceConnected(id, device.getIdentifier(), device.getVendorId(), device.getProductId(), device.getSerialNumber(), device.getVersion(), device.getManufacturerName(), device.getProductName(), usbInterface.getId(), usbInterface.getInterfaceClass(), usbInterface.getInterfaceSubclass(), usbInterface.getInterfaceProtocol()); + } + } + } + } + + private void initializeBluetooth() { + Log.d(TAG, "Initializing Bluetooth"); + + if (Build.VERSION.SDK_INT <= 30 /* Android 11.0 (R) */ && + mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) { + Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH"); + return; + } + + if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE) || (Build.VERSION.SDK_INT < 18 /* Android 4.3 (JELLY_BEAN_MR2) */)) { + Log.d(TAG, "Couldn't initialize Bluetooth, this version of Android does not support Bluetooth LE"); + return; + } + + // Find bonded bluetooth controllers and create SteamControllers for them + mBluetoothManager = (BluetoothManager)mContext.getSystemService(Context.BLUETOOTH_SERVICE); + if (mBluetoothManager == null) { + // This device doesn't support Bluetooth. + return; + } + + BluetoothAdapter btAdapter = mBluetoothManager.getAdapter(); + if (btAdapter == null) { + // This device has Bluetooth support in the codebase, but has no available adapters. + return; + } + + // Get our bonded devices. + for (BluetoothDevice device : btAdapter.getBondedDevices()) { + + Log.d(TAG, "Bluetooth device available: " + device); + if (isSteamController(device)) { + connectBluetoothDevice(device); + } + + } + + // NOTE: These don't work on Chromebooks, to my undying dismay. + IntentFilter filter = new IntentFilter(); + filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED); + filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); + mContext.registerReceiver(mBluetoothBroadcast, filter); + + if (mIsChromebook) { + mHandler = new Handler(Looper.getMainLooper()); + mLastBluetoothDevices = new ArrayList(); + + // final HIDDeviceManager finalThis = this; + // mHandler.postDelayed(new Runnable() { + // @Override + // public void run() { + // finalThis.chromebookConnectionHandler(); + // } + // }, 5000); + } + } + + private void shutdownBluetooth() { + try { + mContext.unregisterReceiver(mBluetoothBroadcast); + } catch (Exception e) { + // We may not have registered, that's okay + } + } + + // Chromebooks do not pass along ACTION_ACL_CONNECTED / ACTION_ACL_DISCONNECTED properly. + // This function provides a sort of dummy version of that, watching for changes in the + // connected devices and attempting to add controllers as things change. + public void chromebookConnectionHandler() { + if (!mIsChromebook) { + return; + } + + ArrayList disconnected = new ArrayList(); + ArrayList connected = new ArrayList(); + + List currentConnected = mBluetoothManager.getConnectedDevices(BluetoothProfile.GATT); + + for (BluetoothDevice bluetoothDevice : currentConnected) { + if (!mLastBluetoothDevices.contains(bluetoothDevice)) { + connected.add(bluetoothDevice); + } + } + for (BluetoothDevice bluetoothDevice : mLastBluetoothDevices) { + if (!currentConnected.contains(bluetoothDevice)) { + disconnected.add(bluetoothDevice); + } + } + + mLastBluetoothDevices = currentConnected; + + for (BluetoothDevice bluetoothDevice : disconnected) { + disconnectBluetoothDevice(bluetoothDevice); + } + for (BluetoothDevice bluetoothDevice : connected) { + connectBluetoothDevice(bluetoothDevice); + } + + final HIDDeviceManager finalThis = this; + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finalThis.chromebookConnectionHandler(); + } + }, 10000); + } + + public boolean connectBluetoothDevice(BluetoothDevice bluetoothDevice) { + Log.v(TAG, "connectBluetoothDevice device=" + bluetoothDevice); + synchronized (this) { + if (mBluetoothDevices.containsKey(bluetoothDevice)) { + Log.v(TAG, "Steam controller with address " + bluetoothDevice + " already exists, attempting reconnect"); + + HIDDeviceBLESteamController device = mBluetoothDevices.get(bluetoothDevice); + device.reconnect(); + + return false; + } + HIDDeviceBLESteamController device = new HIDDeviceBLESteamController(this, bluetoothDevice); + int id = device.getId(); + mBluetoothDevices.put(bluetoothDevice, device); + mDevicesById.put(id, device); + + // The Steam Controller will mark itself connected once initialization is complete + } + return true; + } + + public void disconnectBluetoothDevice(BluetoothDevice bluetoothDevice) { + synchronized (this) { + HIDDeviceBLESteamController device = mBluetoothDevices.get(bluetoothDevice); + if (device == null) + return; + + int id = device.getId(); + mBluetoothDevices.remove(bluetoothDevice); + mDevicesById.remove(id); + device.shutdown(); + HIDDeviceDisconnected(id); + } + } + + public boolean isSteamController(BluetoothDevice bluetoothDevice) { + // Sanity check. If you pass in a null device, by definition it is never a Steam Controller. + if (bluetoothDevice == null) { + return false; + } + + // If the device has no local name, we really don't want to try an equality check against it. + if (bluetoothDevice.getName() == null) { + return false; + } + + return bluetoothDevice.getName().equals("SteamController") && ((bluetoothDevice.getType() & BluetoothDevice.DEVICE_TYPE_LE) != 0); + } + + private void close() { + shutdownUSB(); + shutdownBluetooth(); + synchronized (this) { + for (HIDDevice device : mDevicesById.values()) { + device.shutdown(); + } + mDevicesById.clear(); + mBluetoothDevices.clear(); + HIDDeviceReleaseCallback(); + } + } + + public void setFrozen(boolean frozen) { + synchronized (this) { + for (HIDDevice device : mDevicesById.values()) { + device.setFrozen(frozen); + } + } + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + private HIDDevice getDevice(int id) { + synchronized (this) { + HIDDevice result = mDevicesById.get(id); + if (result == null) { + Log.v(TAG, "No device for id: " + id); + Log.v(TAG, "Available devices: " + mDevicesById.keySet()); + } + return result; + } + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////// JNI interface functions + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + public boolean initialize(boolean usb, boolean bluetooth) { + Log.v(TAG, "initialize(" + usb + ", " + bluetooth + ")"); + + if (usb) { + initializeUSB(); + } + if (bluetooth) { + initializeBluetooth(); + } + return true; + } + + public boolean openDevice(int deviceID) { + Log.v(TAG, "openDevice deviceID=" + deviceID); + HIDDevice device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return false; + } + + // Look to see if this is a USB device and we have permission to access it + UsbDevice usbDevice = device.getDevice(); + if (usbDevice != null && !mUsbManager.hasPermission(usbDevice)) { + HIDDeviceOpenPending(deviceID); + try { + final int FLAG_MUTABLE = 0x02000000; // PendingIntent.FLAG_MUTABLE, but don't require SDK 31 + int flags; + if (Build.VERSION.SDK_INT >= 31 /* Android 12.0 (S) */) { + flags = FLAG_MUTABLE; + } else { + flags = 0; + } + mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags)); + } catch (Exception e) { + Log.v(TAG, "Couldn't request permission for USB device " + usbDevice); + HIDDeviceOpenResult(deviceID, false); + } + return false; + } + + try { + return device.open(); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + return false; + } + + public int writeReport(int deviceID, byte[] report, boolean feature) { + try { + //Log.v(TAG, "writeReport deviceID=" + deviceID + " length=" + report.length); + HIDDevice device; + device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return -1; + } + + return device.writeReport(report, feature); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + return -1; + } + + public boolean readReport(int deviceID, byte[] report, boolean feature) { + try { + //Log.v(TAG, "readReport deviceID=" + deviceID); + HIDDevice device; + device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return false; + } + + return device.readReport(report, feature); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + return false; + } + + public void closeDevice(int deviceID) { + try { + Log.v(TAG, "closeDevice deviceID=" + deviceID); + HIDDevice device; + device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return; + } + + device.close(); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + } + + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + /////////////// Native methods + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + private native void HIDDeviceRegisterCallback(); + private native void HIDDeviceReleaseCallback(); + + native void HIDDeviceConnected(int deviceID, String identifier, int vendorId, int productId, String serial_number, int release_number, String manufacturer_string, String product_string, int interface_number, int interface_class, int interface_subclass, int interface_protocol); + native void HIDDeviceOpenPending(int deviceID); + native void HIDDeviceOpenResult(int deviceID, boolean opened); + native void HIDDeviceDisconnected(int deviceID); + + native void HIDDeviceInputReport(int deviceID, byte[] report); + native void HIDDeviceReportResponse(int deviceID, byte[] report); +} diff --git a/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceUSB.java b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceUSB.java new file mode 100644 index 0000000..5b5d201 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/HIDDeviceUSB.java @@ -0,0 +1,308 @@ +package org.libsdl.app; + +import android.hardware.usb.*; +import android.os.Build; +import android.util.Log; +import java.util.Arrays; + +class HIDDeviceUSB implements HIDDevice { + + private static final String TAG = "hidapi"; + + protected HIDDeviceManager mManager; + protected UsbDevice mDevice; + protected int mInterfaceIndex; + protected int mInterface; + protected int mDeviceId; + protected UsbDeviceConnection mConnection; + protected UsbEndpoint mInputEndpoint; + protected UsbEndpoint mOutputEndpoint; + protected InputThread mInputThread; + protected boolean mRunning; + protected boolean mFrozen; + + public HIDDeviceUSB(HIDDeviceManager manager, UsbDevice usbDevice, int interface_index) { + mManager = manager; + mDevice = usbDevice; + mInterfaceIndex = interface_index; + mInterface = mDevice.getInterface(mInterfaceIndex).getId(); + mDeviceId = manager.getDeviceIDForIdentifier(getIdentifier()); + mRunning = false; + } + + public String getIdentifier() { + return String.format("%s/%x/%x/%d", mDevice.getDeviceName(), mDevice.getVendorId(), mDevice.getProductId(), mInterfaceIndex); + } + + @Override + public int getId() { + return mDeviceId; + } + + @Override + public int getVendorId() { + return mDevice.getVendorId(); + } + + @Override + public int getProductId() { + return mDevice.getProductId(); + } + + @Override + public String getSerialNumber() { + String result = null; + if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { + try { + result = mDevice.getSerialNumber(); + } + catch (SecurityException exception) { + //Log.w(TAG, "App permissions mean we cannot get serial number for device " + getDeviceName() + " message: " + exception.getMessage()); + } + } + if (result == null) { + result = ""; + } + return result; + } + + @Override + public int getVersion() { + return 0; + } + + @Override + public String getManufacturerName() { + String result = null; + if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { + result = mDevice.getManufacturerName(); + } + if (result == null) { + result = String.format("%x", getVendorId()); + } + return result; + } + + @Override + public String getProductName() { + String result = null; + if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { + result = mDevice.getProductName(); + } + if (result == null) { + result = String.format("%x", getProductId()); + } + return result; + } + + @Override + public UsbDevice getDevice() { + return mDevice; + } + + public String getDeviceName() { + return getManufacturerName() + " " + getProductName() + "(0x" + String.format("%x", getVendorId()) + "/0x" + String.format("%x", getProductId()) + ")"; + } + + @Override + public boolean open() { + mConnection = mManager.getUSBManager().openDevice(mDevice); + if (mConnection == null) { + Log.w(TAG, "Unable to open USB device " + getDeviceName()); + return false; + } + + // Force claim our interface + UsbInterface iface = mDevice.getInterface(mInterfaceIndex); + if (!mConnection.claimInterface(iface, true)) { + Log.w(TAG, "Failed to claim interfaces on USB device " + getDeviceName()); + close(); + return false; + } + + // Find the endpoints + for (int j = 0; j < iface.getEndpointCount(); j++) { + UsbEndpoint endpt = iface.getEndpoint(j); + switch (endpt.getDirection()) { + case UsbConstants.USB_DIR_IN: + if (mInputEndpoint == null) { + mInputEndpoint = endpt; + } + break; + case UsbConstants.USB_DIR_OUT: + if (mOutputEndpoint == null) { + mOutputEndpoint = endpt; + } + break; + } + } + + // Make sure the required endpoints were present + if (mInputEndpoint == null || mOutputEndpoint == null) { + Log.w(TAG, "Missing required endpoint on USB device " + getDeviceName()); + close(); + return false; + } + + // Start listening for input + mRunning = true; + mInputThread = new InputThread(); + mInputThread.start(); + + return true; + } + + @Override + public int writeReport(byte[] report, boolean feature) { + if (feature) { + int res = -1; + int offset = 0; + int length = report.length; + boolean skipped_report_id = false; + byte report_number = report[0]; + + if (report_number == 0x0) { + ++offset; + --length; + skipped_report_id = true; + } + + res = mConnection.controlTransfer( + UsbConstants.USB_TYPE_CLASS | 0x01 /*RECIPIENT_INTERFACE*/ | UsbConstants.USB_DIR_OUT, + 0x09/*HID set_report*/, + (3/*HID feature*/ << 8) | report_number, + mInterface, + report, offset, length, + 1000/*timeout millis*/); + + if (res < 0) { + Log.w(TAG, "writeFeatureReport() returned " + res + " on device " + getDeviceName()); + return -1; + } + + if (skipped_report_id) { + ++length; + } + return length; + } else { + int res = mConnection.bulkTransfer(mOutputEndpoint, report, report.length, 1000); + if (res != report.length) { + Log.w(TAG, "writeOutputReport() returned " + res + " on device " + getDeviceName()); + } + return res; + } + } + + @Override + public boolean readReport(byte[] report, boolean feature) { + int res = -1; + int offset = 0; + int length = report.length; + boolean skipped_report_id = false; + byte report_number = report[0]; + + if (report_number == 0x0) { + /* Offset the return buffer by 1, so that the report ID + will remain in byte 0. */ + ++offset; + --length; + skipped_report_id = true; + } + + res = mConnection.controlTransfer( + UsbConstants.USB_TYPE_CLASS | 0x01 /*RECIPIENT_INTERFACE*/ | UsbConstants.USB_DIR_IN, + 0x01/*HID get_report*/, + ((feature ? 3/*HID feature*/ : 1/*HID Input*/) << 8) | report_number, + mInterface, + report, offset, length, + 1000/*timeout millis*/); + + if (res < 0) { + Log.w(TAG, "getFeatureReport() returned " + res + " on device " + getDeviceName()); + return false; + } + + if (skipped_report_id) { + ++res; + ++length; + } + + byte[] data; + if (res == length) { + data = report; + } else { + data = Arrays.copyOfRange(report, 0, res); + } + mManager.HIDDeviceReportResponse(mDeviceId, data); + + return true; + } + + @Override + public void close() { + mRunning = false; + if (mInputThread != null) { + while (mInputThread.isAlive()) { + mInputThread.interrupt(); + try { + mInputThread.join(); + } catch (InterruptedException e) { + // Keep trying until we're done + } + } + mInputThread = null; + } + if (mConnection != null) { + UsbInterface iface = mDevice.getInterface(mInterfaceIndex); + mConnection.releaseInterface(iface); + mConnection.close(); + mConnection = null; + } + } + + @Override + public void shutdown() { + close(); + mManager = null; + } + + @Override + public void setFrozen(boolean frozen) { + mFrozen = frozen; + } + + protected class InputThread extends Thread { + @Override + public void run() { + int packetSize = mInputEndpoint.getMaxPacketSize(); + byte[] packet = new byte[packetSize]; + while (mRunning) { + int r; + try + { + r = mConnection.bulkTransfer(mInputEndpoint, packet, packetSize, 1000); + } + catch (Exception e) + { + Log.v(TAG, "Exception in UsbDeviceConnection bulktransfer: " + e); + break; + } + if (r < 0) { + // Could be a timeout or an I/O error + } + if (r > 0) { + byte[] data; + if (r == packetSize) { + data = packet; + } else { + data = Arrays.copyOfRange(packet, 0, r); + } + + if (!mFrozen) { + mManager.HIDDeviceInputReport(mDeviceId, data); + } + } + } + } + } +} diff --git a/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/SDL.java b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/SDL.java new file mode 100644 index 0000000..44c21c1 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/SDL.java @@ -0,0 +1,86 @@ +package org.libsdl.app; + +import android.content.Context; + +import java.lang.Class; +import java.lang.reflect.Method; + +/** + SDL library initialization +*/ +public class SDL { + + // This function should be called first and sets up the native code + // so it can call into the Java classes + public static void setupJNI() { + SDLActivity.nativeSetupJNI(); + SDLAudioManager.nativeSetupJNI(); + SDLControllerManager.nativeSetupJNI(); + } + + // This function should be called each time the activity is started + public static void initialize() { + setContext(null); + + SDLActivity.initialize(); + SDLAudioManager.initialize(); + SDLControllerManager.initialize(); + } + + // This function stores the current activity (SDL or not) + public static void setContext(Context context) { + SDLAudioManager.setContext(context); + mContext = context; + } + + public static Context getContext() { + return mContext; + } + + public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException { + + if (libraryName == null) { + throw new NullPointerException("No library name provided."); + } + + try { + // Let's see if we have ReLinker available in the project. This is necessary for + // some projects that have huge numbers of local libraries bundled, and thus may + // trip a bug in Android's native library loader which ReLinker works around. (If + // loadLibrary works properly, ReLinker will simply use the normal Android method + // internally.) + // + // To use ReLinker, just add it as a dependency. For more information, see + // https://github.com/KeepSafe/ReLinker for ReLinker's repository. + // + Class relinkClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker"); + Class relinkListenerClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener"); + Class contextClass = mContext.getClassLoader().loadClass("android.content.Context"); + Class stringClass = mContext.getClassLoader().loadClass("java.lang.String"); + + // Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if + // they've changed during updates. + Method forceMethod = relinkClass.getDeclaredMethod("force"); + Object relinkInstance = forceMethod.invoke(null); + Class relinkInstanceClass = relinkInstance.getClass(); + + // Actually load the library! + Method loadMethod = relinkInstanceClass.getDeclaredMethod("loadLibrary", contextClass, stringClass, stringClass, relinkListenerClass); + loadMethod.invoke(relinkInstance, mContext, libraryName, null, null); + } + catch (final Throwable e) { + // Fall back + try { + System.loadLibrary(libraryName); + } + catch (final UnsatisfiedLinkError ule) { + throw ule; + } + catch (final SecurityException se) { + throw se; + } + } + } + + protected static Context mContext; +} diff --git a/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java new file mode 100644 index 0000000..a80b494 --- /dev/null +++ b/vendor/sdl-3.0.0/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java @@ -0,0 +1,2189 @@ +package org.libsdl.app; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.UiModeManager; +import android.content.ClipboardManager; +import android.content.ClipData; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.drawable.Drawable; +import android.hardware.Sensor; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.text.Editable; +import android.text.InputType; +import android.text.Selection; +import android.util.DisplayMetrics; +import android.util.Log; +import android.util.SparseArray; +import android.view.Display; +import android.view.Gravity; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.PointerIcon; +import android.view.Surface; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.BaseInputConnection; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputConnection; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.Hashtable; +import java.util.Locale; + + +/** + SDL Activity +*/ +public class SDLActivity extends Activity implements View.OnSystemUiVisibilityChangeListener { + private static final String TAG = "SDL"; + private static final int SDL_MAJOR_VERSION = 3; + private static final int SDL_MINOR_VERSION = 0; + private static final int SDL_MICRO_VERSION = 0; +/* + // Display InputType.SOURCE/CLASS of events and devices + // + // SDLActivity.debugSource(device.getSources(), "device[" + device.getName() + "]"); + // SDLActivity.debugSource(event.getSource(), "event"); + public static void debugSource(int sources, String prefix) { + int s = sources; + int s_copy = sources; + String cls = ""; + String src = ""; + int tst = 0; + int FLAG_TAINTED = 0x80000000; + + if ((s & InputDevice.SOURCE_CLASS_BUTTON) != 0) cls += " BUTTON"; + if ((s & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) cls += " JOYSTICK"; + if ((s & InputDevice.SOURCE_CLASS_POINTER) != 0) cls += " POINTER"; + if ((s & InputDevice.SOURCE_CLASS_POSITION) != 0) cls += " POSITION"; + if ((s & InputDevice.SOURCE_CLASS_TRACKBALL) != 0) cls += " TRACKBALL"; + + + int s2 = s_copy & ~InputDevice.SOURCE_ANY; // keep class bits + s2 &= ~( InputDevice.SOURCE_CLASS_BUTTON + | InputDevice.SOURCE_CLASS_JOYSTICK + | InputDevice.SOURCE_CLASS_POINTER + | InputDevice.SOURCE_CLASS_POSITION + | InputDevice.SOURCE_CLASS_TRACKBALL); + + if (s2 != 0) cls += "Some_Unkown"; + + s2 = s_copy & InputDevice.SOURCE_ANY; // keep source only, no class; + + if (Build.VERSION.SDK_INT >= 23) { + tst = InputDevice.SOURCE_BLUETOOTH_STYLUS; + if ((s & tst) == tst) src += " BLUETOOTH_STYLUS"; + s2 &= ~tst; + } + + tst = InputDevice.SOURCE_DPAD; + if ((s & tst) == tst) src += " DPAD"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_GAMEPAD; + if ((s & tst) == tst) src += " GAMEPAD"; + s2 &= ~tst; + + if (Build.VERSION.SDK_INT >= 21) { + tst = InputDevice.SOURCE_HDMI; + if ((s & tst) == tst) src += " HDMI"; + s2 &= ~tst; + } + + tst = InputDevice.SOURCE_JOYSTICK; + if ((s & tst) == tst) src += " JOYSTICK"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_KEYBOARD; + if ((s & tst) == tst) src += " KEYBOARD"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_MOUSE; + if ((s & tst) == tst) src += " MOUSE"; + s2 &= ~tst; + + if (Build.VERSION.SDK_INT >= 26) { + tst = InputDevice.SOURCE_MOUSE_RELATIVE; + if ((s & tst) == tst) src += " MOUSE_RELATIVE"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_ROTARY_ENCODER; + if ((s & tst) == tst) src += " ROTARY_ENCODER"; + s2 &= ~tst; + } + tst = InputDevice.SOURCE_STYLUS; + if ((s & tst) == tst) src += " STYLUS"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_TOUCHPAD; + if ((s & tst) == tst) src += " TOUCHPAD"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_TOUCHSCREEN; + if ((s & tst) == tst) src += " TOUCHSCREEN"; + s2 &= ~tst; + + if (Build.VERSION.SDK_INT >= 18) { + tst = InputDevice.SOURCE_TOUCH_NAVIGATION; + if ((s & tst) == tst) src += " TOUCH_NAVIGATION"; + s2 &= ~tst; + } + + tst = InputDevice.SOURCE_TRACKBALL; + if ((s & tst) == tst) src += " TRACKBALL"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_ANY; + if ((s & tst) == tst) src += " ANY"; + s2 &= ~tst; + + if (s == FLAG_TAINTED) src += " FLAG_TAINTED"; + s2 &= ~FLAG_TAINTED; + + if (s2 != 0) src += " Some_Unkown"; + + Log.v(TAG, prefix + "int=" + s_copy + " CLASS={" + cls + " } source(s):" + src); + } +*/ + + public static boolean mIsResumedCalled, mHasFocus; + public static final boolean mHasMultiWindow = (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */); + + // Cursor types + // private static final int SDL_SYSTEM_CURSOR_NONE = -1; + private static final int SDL_SYSTEM_CURSOR_ARROW = 0; + private static final int SDL_SYSTEM_CURSOR_IBEAM = 1; + private static final int SDL_SYSTEM_CURSOR_WAIT = 2; + private static final int SDL_SYSTEM_CURSOR_CROSSHAIR = 3; + private static final int SDL_SYSTEM_CURSOR_WAITARROW = 4; + private static final int SDL_SYSTEM_CURSOR_SIZENWSE = 5; + private static final int SDL_SYSTEM_CURSOR_SIZENESW = 6; + private static final int SDL_SYSTEM_CURSOR_SIZEWE = 7; + private static final int SDL_SYSTEM_CURSOR_SIZENS = 8; + private static final int SDL_SYSTEM_CURSOR_SIZEALL = 9; + private static final int SDL_SYSTEM_CURSOR_NO = 10; + private static final int SDL_SYSTEM_CURSOR_HAND = 11; + + protected static final int SDL_ORIENTATION_UNKNOWN = 0; + protected static final int SDL_ORIENTATION_LANDSCAPE = 1; + protected static final int SDL_ORIENTATION_LANDSCAPE_FLIPPED = 2; + protected static final int SDL_ORIENTATION_PORTRAIT = 3; + protected static final int SDL_ORIENTATION_PORTRAIT_FLIPPED = 4; + + protected static int mCurrentRotation; + protected static Locale mCurrentLocale; + + // Handle the state of the native layer + public enum NativeState { + INIT, RESUMED, PAUSED + } + + public static NativeState mNextNativeState; + public static NativeState mCurrentNativeState; + + /** If shared libraries (e.g. SDL or the native application) could not be loaded. */ + public static boolean mBrokenLibraries = true; + + // Main components + protected static SDLActivity mSingleton; + protected static SDLSurface mSurface; + protected static DummyEdit mTextEdit; + protected static boolean mScreenKeyboardShown; + protected static ViewGroup mLayout; + protected static SDLClipboardHandler mClipboardHandler; + protected static Hashtable mCursors; + protected static int mLastCursorID; + protected static SDLGenericMotionListener_API12 mMotionListener; + protected static HIDDeviceManager mHIDDeviceManager; + + // This is what SDL runs in. It invokes SDL_main(), eventually + protected static Thread mSDLThread; + protected static boolean mSDLMainFinished = false; + protected static boolean mActivityCreated = false; + + protected static SDLGenericMotionListener_API12 getMotionListener() { + if (mMotionListener == null) { + if (Build.VERSION.SDK_INT >= 26 /* Android 8.0 (O) */) { + mMotionListener = new SDLGenericMotionListener_API26(); + } else if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { + mMotionListener = new SDLGenericMotionListener_API24(); + } else { + mMotionListener = new SDLGenericMotionListener_API12(); + } + } + + return mMotionListener; + } + + /** + * This method returns the name of the shared object with the application entry point + * It can be overridden by derived classes. + */ + protected String getMainSharedObject() { + String library; + String[] libraries = SDLActivity.mSingleton.getLibraries(); + if (libraries.length > 0) { + library = "lib" + libraries[libraries.length - 1] + ".so"; + } else { + library = "libmain.so"; + } + return getContext().getApplicationInfo().nativeLibraryDir + "/" + library; + } + + /** + * This method returns the name of the application entry point + * It can be overridden by derived classes. + */ + protected String getMainFunction() { + return "SDL_main"; + } + + /** + * This method is called by SDL before loading the native shared libraries. + * It can be overridden to provide names of shared libraries to be loaded. + * The default implementation returns the defaults. It never returns null. + * An array returned by a new implementation must at least contain "SDL3". + * Also keep in mind that the order the libraries are loaded may matter. + * @return names of shared libraries to be loaded (e.g. "SDL3", "main"). + */ + protected String[] getLibraries() { + return new String[] { + "SDL3", + // "SDL3_image", + // "SDL3_mixer", + // "SDL3_net", + // "SDL3_ttf", + "main" + }; + } + + // Load the .so + public void loadLibraries() { + for (String lib : getLibraries()) { + SDL.loadLibrary(lib); + } + } + + /** + * This method is called by SDL before starting the native application thread. + * It can be overridden to provide the arguments after the application name. + * The default implementation returns an empty array. It never returns null. + * @return arguments for the native application. + */ + protected String[] getArguments() { + return new String[0]; + } + + public static void initialize() { + // The static nature of the singleton and Android quirkyness force us to initialize everything here + // Otherwise, when exiting the app and returning to it, these variables *keep* their pre exit values + mSingleton = null; + mSurface = null; + mTextEdit = null; + mLayout = null; + mClipboardHandler = null; + mCursors = new Hashtable(); + mLastCursorID = 0; + mSDLThread = null; + mIsResumedCalled = false; + mHasFocus = true; + mNextNativeState = NativeState.INIT; + mCurrentNativeState = NativeState.INIT; + } + + protected SDLSurface createSDLSurface(Context context) { + return new SDLSurface(context); + } + + // Setup + @Override + protected void onCreate(Bundle savedInstanceState) { + Log.v(TAG, "Device: " + Build.DEVICE); + Log.v(TAG, "Model: " + Build.MODEL); + Log.v(TAG, "onCreate()"); + super.onCreate(savedInstanceState); + + + /* Control activity re-creation */ + if (mSDLMainFinished || mActivityCreated) { + boolean allow_recreate = SDLActivity.nativeAllowRecreateActivity(); + if (mSDLMainFinished) { + Log.v(TAG, "SDL main() finished"); + } + if (allow_recreate) { + Log.v(TAG, "activity re-created"); + } else { + Log.v(TAG, "activity finished"); + System.exit(0); + return; + } + } + + mActivityCreated = true; + + try { + Thread.currentThread().setName("SDLActivity"); + } catch (Exception e) { + Log.v(TAG, "modify thread properties failed " + e.toString()); + } + + // Load shared libraries + String errorMsgBrokenLib = ""; + try { + loadLibraries(); + mBrokenLibraries = false; /* success */ + } catch(UnsatisfiedLinkError e) { + System.err.println(e.getMessage()); + mBrokenLibraries = true; + errorMsgBrokenLib = e.getMessage(); + } catch(Exception e) { + System.err.println(e.getMessage()); + mBrokenLibraries = true; + errorMsgBrokenLib = e.getMessage(); + } + + if (!mBrokenLibraries) { + String expected_version = String.valueOf(SDL_MAJOR_VERSION) + "." + + String.valueOf(SDL_MINOR_VERSION) + "." + + String.valueOf(SDL_MICRO_VERSION); + String version = nativeGetVersion(); + if (!version.equals(expected_version)) { + mBrokenLibraries = true; + errorMsgBrokenLib = "SDL C/Java version mismatch (expected " + expected_version + ", got " + version + ")"; + } + } + + if (mBrokenLibraries) { + mSingleton = this; + AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this); + dlgAlert.setMessage("An error occurred while trying to start the application. Please try again and/or reinstall." + + System.getProperty("line.separator") + + System.getProperty("line.separator") + + "Error: " + errorMsgBrokenLib); + dlgAlert.setTitle("SDL Error"); + dlgAlert.setPositiveButton("Exit", + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog,int id) { + // if this button is clicked, close current activity + SDLActivity.mSingleton.finish(); + } + }); + dlgAlert.setCancelable(false); + dlgAlert.create().show(); + + return; + } + + + /* Control activity re-creation */ + /* Robustness: check that the native code is run for the first time. + * (Maybe Activity was reset, but not the native code.) */ + { + int run_count = SDLActivity.nativeCheckSDLThreadCounter(); /* get and increment a native counter */ + if (run_count != 0) { + boolean allow_recreate = SDLActivity.nativeAllowRecreateActivity(); + if (allow_recreate) { + Log.v(TAG, "activity re-created // run_count: " + run_count); + } else { + Log.v(TAG, "activity finished // run_count: " + run_count); + System.exit(0); + return; + } + } + } + + // Set up JNI + SDL.setupJNI(); + + // Initialize state + SDL.initialize(); + + // So we can call stuff from static callbacks + mSingleton = this; + SDL.setContext(this); + + mClipboardHandler = new SDLClipboardHandler(); + + mHIDDeviceManager = HIDDeviceManager.acquire(this); + + // Set up the surface + mSurface = createSDLSurface(this); + + mLayout = new RelativeLayout(this); + mLayout.addView(mSurface); + + // Get our current screen orientation and pass it down. + SDLActivity.nativeSetNaturalOrientation(SDLActivity.getNaturalOrientation()); + mCurrentRotation = SDLActivity.getCurrentRotation(); + SDLActivity.onNativeRotationChanged(mCurrentRotation); + + try { + if (Build.VERSION.SDK_INT < 24 /* Android 7.0 (N) */) { + mCurrentLocale = getContext().getResources().getConfiguration().locale; + } else { + mCurrentLocale = getContext().getResources().getConfiguration().getLocales().get(0); + } + } catch(Exception ignored) { + } + + switch (getContext().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) { + case Configuration.UI_MODE_NIGHT_NO: + SDLActivity.onNativeDarkModeChanged(false); + break; + case Configuration.UI_MODE_NIGHT_YES: + SDLActivity.onNativeDarkModeChanged(true); + break; + } + + setContentView(mLayout); + + setWindowStyle(false); + + getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(this); + + // Get filename from "Open with" of another application + Intent intent = getIntent(); + if (intent != null && intent.getData() != null) { + String filename = intent.getData().getPath(); + if (filename != null) { + Log.v(TAG, "Got filename: " + filename); + SDLActivity.onNativeDropFile(filename); + } + } + } + + protected void pauseNativeThread() { + mNextNativeState = NativeState.PAUSED; + mIsResumedCalled = false; + + if (SDLActivity.mBrokenLibraries) { + return; + } + + SDLActivity.handleNativeState(); + } + + protected void resumeNativeThread() { + mNextNativeState = NativeState.RESUMED; + mIsResumedCalled = true; + + if (SDLActivity.mBrokenLibraries) { + return; + } + + SDLActivity.handleNativeState(); + } + + // Events + @Override + protected void onPause() { + Log.v(TAG, "onPause()"); + super.onPause(); + + if (mHIDDeviceManager != null) { + mHIDDeviceManager.setFrozen(true); + } + if (!mHasMultiWindow) { + pauseNativeThread(); + } + } + + @Override + protected void onResume() { + Log.v(TAG, "onResume()"); + super.onResume(); + + if (mHIDDeviceManager != null) { + mHIDDeviceManager.setFrozen(false); + } + if (!mHasMultiWindow) { + resumeNativeThread(); + } + } + + @Override + protected void onStop() { + Log.v(TAG, "onStop()"); + super.onStop(); + if (mHasMultiWindow) { + pauseNativeThread(); + } + } + + @Override + protected void onStart() { + Log.v(TAG, "onStart()"); + super.onStart(); + if (mHasMultiWindow) { + resumeNativeThread(); + } + } + + public static int getNaturalOrientation() { + int result = SDL_ORIENTATION_UNKNOWN; + + Activity activity = (Activity)getContext(); + if (activity != null) { + Configuration config = activity.getResources().getConfiguration(); + Display display = activity.getWindowManager().getDefaultDisplay(); + int rotation = display.getRotation(); + if (((rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) && + config.orientation == Configuration.ORIENTATION_LANDSCAPE) || + ((rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) && + config.orientation == Configuration.ORIENTATION_PORTRAIT)) { + result = SDL_ORIENTATION_LANDSCAPE; + } else { + result = SDL_ORIENTATION_PORTRAIT; + } + } + return result; + } + + public static int getCurrentRotation() { + int result = 0; + + Activity activity = (Activity)getContext(); + if (activity != null) { + Display display = activity.getWindowManager().getDefaultDisplay(); + switch (display.getRotation()) { + case Surface.ROTATION_0: + result = 0; + break; + case Surface.ROTATION_90: + result = 90; + break; + case Surface.ROTATION_180: + result = 180; + break; + case Surface.ROTATION_270: + result = 270; + break; + } + } + return result; + } + + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + Log.v(TAG, "onWindowFocusChanged(): " + hasFocus); + + if (SDLActivity.mBrokenLibraries) { + return; + } + + mHasFocus = hasFocus; + if (hasFocus) { + mNextNativeState = NativeState.RESUMED; + SDLActivity.getMotionListener().reclaimRelativeMouseModeIfNeeded(); + + SDLActivity.handleNativeState(); + nativeFocusChanged(true); + + } else { + nativeFocusChanged(false); + if (!mHasMultiWindow) { + mNextNativeState = NativeState.PAUSED; + SDLActivity.handleNativeState(); + } + } + } + + @Override + public void onLowMemory() { + Log.v(TAG, "onLowMemory()"); + super.onLowMemory(); + + if (SDLActivity.mBrokenLibraries) { + return; + } + + SDLActivity.nativeLowMemory(); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + Log.v(TAG, "onConfigurationChanged()"); + super.onConfigurationChanged(newConfig); + + if (SDLActivity.mBrokenLibraries) { + return; + } + + if (mCurrentLocale == null || !mCurrentLocale.equals(newConfig.locale)) { + mCurrentLocale = newConfig.locale; + SDLActivity.onNativeLocaleChanged(); + } + + switch (newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK) { + case Configuration.UI_MODE_NIGHT_NO: + SDLActivity.onNativeDarkModeChanged(false); + break; + case Configuration.UI_MODE_NIGHT_YES: + SDLActivity.onNativeDarkModeChanged(true); + break; + } + } + + @Override + protected void onDestroy() { + Log.v(TAG, "onDestroy()"); + + if (mHIDDeviceManager != null) { + HIDDeviceManager.release(mHIDDeviceManager); + mHIDDeviceManager = null; + } + + SDLAudioManager.release(this); + + if (SDLActivity.mBrokenLibraries) { + super.onDestroy(); + return; + } + + if (SDLActivity.mSDLThread != null) { + + // Send Quit event to "SDLThread" thread + SDLActivity.nativeSendQuit(); + + // Wait for "SDLThread" thread to end + try { + // 500ms timeout, because: + // C SDLmain() thread might have started (mSDLThread.start() called) + // while the SDL_Init() might not have been called yet, + // and so the previous QUIT event will be discarded by SDL_Init() and app is running, not exiting. + SDLActivity.mSDLThread.join(500); + } catch(Exception e) { + Log.v(TAG, "Problem stopping SDLThread: " + e); + } + } + + SDLActivity.nativeQuit(); + + super.onDestroy(); + } + + @Override + public void onBackPressed() { + // Check if we want to block the back button in case of mouse right click. + // + // If we do, the normal hardware back button will no longer work and people have to use home, + // but the mouse right click will work. + // + boolean trapBack = SDLActivity.nativeGetHintBoolean("SDL_ANDROID_TRAP_BACK_BUTTON", false); + if (trapBack) { + // Exit and let the mouse handler handle this button (if appropriate) + return; + } + + // Default system back button behavior. + if (!isFinishing()) { + super.onBackPressed(); + } + } + + // Called by JNI from SDL. + public static void manualBackButton() { + mSingleton.pressBackButton(); + } + + // Used to get us onto the activity's main thread + public void pressBackButton() { + runOnUiThread(new Runnable() { + @Override + public void run() { + if (!SDLActivity.this.isFinishing()) { + SDLActivity.this.superOnBackPressed(); + } + } + }); + } + + // Used to access the system back behavior. + public void superOnBackPressed() { + super.onBackPressed(); + } + + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + + if (SDLActivity.mBrokenLibraries) { + return false; + } + + int keyCode = event.getKeyCode(); + // Ignore certain special keys so they're handled by Android + if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || + keyCode == KeyEvent.KEYCODE_VOLUME_UP || + keyCode == KeyEvent.KEYCODE_CAMERA || + keyCode == KeyEvent.KEYCODE_ZOOM_IN || /* API 11 */ + keyCode == KeyEvent.KEYCODE_ZOOM_OUT /* API 11 */ + ) { + return false; + } + return super.dispatchKeyEvent(event); + } + + /* Transition to next state */ + public static void handleNativeState() { + + if (mNextNativeState == mCurrentNativeState) { + // Already in same state, discard. + return; + } + + // Try a transition to init state + if (mNextNativeState == NativeState.INIT) { + + mCurrentNativeState = mNextNativeState; + return; + } + + // Try a transition to paused state + if (mNextNativeState == NativeState.PAUSED) { + if (mSDLThread != null) { + nativePause(); + } + if (mSurface != null) { + mSurface.handlePause(); + } + mCurrentNativeState = mNextNativeState; + return; + } + + // Try a transition to resumed state + if (mNextNativeState == NativeState.RESUMED) { + if (mSurface.mIsSurfaceReady && mHasFocus && mIsResumedCalled) { + if (mSDLThread == null) { + // This is the entry point to the C app. + // Start up the C app thread and enable sensor input for the first time + // FIXME: Why aren't we enabling sensor input at start? + + mSDLThread = new Thread(new SDLMain(), "SDLThread"); + mSurface.enableSensor(Sensor.TYPE_ACCELEROMETER, true); + mSDLThread.start(); + + // No nativeResume(), don't signal Android_ResumeSem + } else { + nativeResume(); + } + mSurface.handleResume(); + + mCurrentNativeState = mNextNativeState; + } + } + } + + // Messages from the SDLMain thread + static final int COMMAND_CHANGE_TITLE = 1; + static final int COMMAND_CHANGE_WINDOW_STYLE = 2; + static final int COMMAND_TEXTEDIT_HIDE = 3; + static final int COMMAND_SET_KEEP_SCREEN_ON = 5; + + protected static final int COMMAND_USER = 0x8000; + + protected static boolean mFullscreenModeActive; + + /** + * This method is called by SDL if SDL did not handle a message itself. + * This happens if a received message contains an unsupported command. + * Method can be overwritten to handle Messages in a different class. + * @param command the command of the message. + * @param param the parameter of the message. May be null. + * @return if the message was handled in overridden method. + */ + protected boolean onUnhandledMessage(int command, Object param) { + return false; + } + + /** + * A Handler class for Messages from native SDL applications. + * It uses current Activities as target (e.g. for the title). + * static to prevent implicit references to enclosing object. + */ + protected static class SDLCommandHandler extends Handler { + @Override + public void handleMessage(Message msg) { + Context context = SDL.getContext(); + if (context == null) { + Log.e(TAG, "error handling message, getContext() returned null"); + return; + } + switch (msg.arg1) { + case COMMAND_CHANGE_TITLE: + if (context instanceof Activity) { + ((Activity) context).setTitle((String)msg.obj); + } else { + Log.e(TAG, "error handling message, getContext() returned no Activity"); + } + break; + case COMMAND_CHANGE_WINDOW_STYLE: + if (Build.VERSION.SDK_INT >= 19 /* Android 4.4 (KITKAT) */) { + if (context instanceof Activity) { + Window window = ((Activity) context).getWindow(); + if (window != null) { + if ((msg.obj instanceof Integer) && ((Integer) msg.obj != 0)) { + int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | + View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.INVISIBLE; + window.getDecorView().setSystemUiVisibility(flags); + window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); + SDLActivity.mFullscreenModeActive = true; + } else { + int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_VISIBLE; + window.getDecorView().setSystemUiVisibility(flags); + window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); + window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + SDLActivity.mFullscreenModeActive = false; + } + } + } else { + Log.e(TAG, "error handling message, getContext() returned no Activity"); + } + } + break; + case COMMAND_TEXTEDIT_HIDE: + if (mTextEdit != null) { + // Note: On some devices setting view to GONE creates a flicker in landscape. + // Setting the View's sizes to 0 is similar to GONE but without the flicker. + // The sizes will be set to useful values when the keyboard is shown again. + mTextEdit.setLayoutParams(new RelativeLayout.LayoutParams(0, 0)); + + InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0); + + mScreenKeyboardShown = false; + + mSurface.requestFocus(); + } + break; + case COMMAND_SET_KEEP_SCREEN_ON: + { + if (context instanceof Activity) { + Window window = ((Activity) context).getWindow(); + if (window != null) { + if ((msg.obj instanceof Integer) && ((Integer) msg.obj != 0)) { + window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } else { + window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + } + } + break; + } + default: + if ((context instanceof SDLActivity) && !((SDLActivity) context).onUnhandledMessage(msg.arg1, msg.obj)) { + Log.e(TAG, "error handling message, command is " + msg.arg1); + } + } + } + } + + // Handler for the messages + Handler commandHandler = new SDLCommandHandler(); + + // Send a message from the SDLMain thread + boolean sendCommand(int command, Object data) { + Message msg = commandHandler.obtainMessage(); + msg.arg1 = command; + msg.obj = data; + boolean result = commandHandler.sendMessage(msg); + + if (Build.VERSION.SDK_INT >= 19 /* Android 4.4 (KITKAT) */) { + if (command == COMMAND_CHANGE_WINDOW_STYLE) { + // Ensure we don't return until the resize has actually happened, + // or 500ms have passed. + + boolean bShouldWait = false; + + if (data instanceof Integer) { + // Let's figure out if we're already laid out fullscreen or not. + Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + DisplayMetrics realMetrics = new DisplayMetrics(); + display.getRealMetrics(realMetrics); + + boolean bFullscreenLayout = ((realMetrics.widthPixels == mSurface.getWidth()) && + (realMetrics.heightPixels == mSurface.getHeight())); + + if ((Integer) data == 1) { + // If we aren't laid out fullscreen or actively in fullscreen mode already, we're going + // to change size and should wait for surfaceChanged() before we return, so the size + // is right back in native code. If we're already laid out fullscreen, though, we're + // not going to change size even if we change decor modes, so we shouldn't wait for + // surfaceChanged() -- which may not even happen -- and should return immediately. + bShouldWait = !bFullscreenLayout; + } else { + // If we're laid out fullscreen (even if the status bar and nav bar are present), + // or are actively in fullscreen, we're going to change size and should wait for + // surfaceChanged before we return, so the size is right back in native code. + bShouldWait = bFullscreenLayout; + } + } + + if (bShouldWait && (SDLActivity.getContext() != null)) { + // We'll wait for the surfaceChanged() method, which will notify us + // when called. That way, we know our current size is really the + // size we need, instead of grabbing a size that's still got + // the navigation and/or status bars before they're hidden. + // + // We'll wait for up to half a second, because some devices + // take a surprisingly long time for the surface resize, but + // then we'll just give up and return. + // + synchronized (SDLActivity.getContext()) { + try { + SDLActivity.getContext().wait(500); + } catch (InterruptedException ie) { + ie.printStackTrace(); + } + } + } + } + } + + return result; + } + + // C functions we call + public static native String nativeGetVersion(); + public static native int nativeSetupJNI(); + public static native int nativeRunMain(String library, String function, Object arguments); + public static native void nativeLowMemory(); + public static native void nativeSendQuit(); + public static native void nativeQuit(); + public static native void nativePause(); + public static native void nativeResume(); + public static native void nativeFocusChanged(boolean hasFocus); + public static native void onNativeDropFile(String filename); + public static native void nativeSetScreenResolution(int surfaceWidth, int surfaceHeight, int deviceWidth, int deviceHeight, float density, float rate); + public static native void onNativeResize(); + public static native void onNativeKeyDown(int keycode); + public static native void onNativeKeyUp(int keycode); + public static native boolean onNativeSoftReturnKey(); + public static native void onNativeKeyboardFocusLost(); + public static native void onNativeMouse(int button, int action, float x, float y, boolean relative); + public static native void onNativeTouch(int touchDevId, int pointerFingerId, + int action, float x, + float y, float p); + public static native void onNativeAccel(float x, float y, float z); + public static native void onNativeClipboardChanged(); + public static native void onNativeSurfaceCreated(); + public static native void onNativeSurfaceChanged(); + public static native void onNativeSurfaceDestroyed(); + public static native String nativeGetHint(String name); + public static native boolean nativeGetHintBoolean(String name, boolean default_value); + public static native void nativeSetenv(String name, String value); + public static native void nativeSetNaturalOrientation(int orientation); + public static native void onNativeRotationChanged(int rotation); + public static native void nativeAddTouch(int touchId, String name); + public static native void nativePermissionResult(int requestCode, boolean result); + public static native void onNativeLocaleChanged(); + public static native void onNativeDarkModeChanged(boolean enabled); + public static native boolean nativeAllowRecreateActivity(); + public static native int nativeCheckSDLThreadCounter(); + + /** + * This method is called by SDL using JNI. + */ + public static boolean setActivityTitle(String title) { + // Called from SDLMain() thread and can't directly affect the view + return mSingleton.sendCommand(COMMAND_CHANGE_TITLE, title); + } + + /** + * This method is called by SDL using JNI. + */ + public static void setWindowStyle(boolean fullscreen) { + // Called from SDLMain() thread and can't directly affect the view + mSingleton.sendCommand(COMMAND_CHANGE_WINDOW_STYLE, fullscreen ? 1 : 0); + } + + /** + * This method is called by SDL using JNI. + * This is a static method for JNI convenience, it calls a non-static method + * so that is can be overridden + */ + public static void setOrientation(int w, int h, boolean resizable, String hint) + { + if (mSingleton != null) { + mSingleton.setOrientationBis(w, h, resizable, hint); + } + } + + /** + * This can be overridden + */ + public void setOrientationBis(int w, int h, boolean resizable, String hint) + { + int orientation_landscape = -1; + int orientation_portrait = -1; + + /* If set, hint "explicitly controls which UI orientations are allowed". */ + if (hint.contains("LandscapeRight") && hint.contains("LandscapeLeft")) { + orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE; + } else if (hint.contains("LandscapeLeft")) { + orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; + } else if (hint.contains("LandscapeRight")) { + orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; + } + + /* exact match to 'Portrait' to distinguish with PortraitUpsideDown */ + boolean contains_Portrait = hint.contains("Portrait ") || hint.endsWith("Portrait"); + + if (contains_Portrait && hint.contains("PortraitUpsideDown")) { + orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT; + } else if (contains_Portrait) { + orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; + } else if (hint.contains("PortraitUpsideDown")) { + orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT; + } + + boolean is_landscape_allowed = (orientation_landscape != -1); + boolean is_portrait_allowed = (orientation_portrait != -1); + int req; /* Requested orientation */ + + /* No valid hint, nothing is explicitly allowed */ + if (!is_portrait_allowed && !is_landscape_allowed) { + if (resizable) { + /* All orientations are allowed */ + req = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR; + } else { + /* Fixed window and nothing specified. Get orientation from w/h of created window */ + req = (w > h ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); + } + } else { + /* At least one orientation is allowed */ + if (resizable) { + if (is_portrait_allowed && is_landscape_allowed) { + /* hint allows both landscape and portrait, promote to full sensor */ + req = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR; + } else { + /* Use the only one allowed "orientation" */ + req = (is_landscape_allowed ? orientation_landscape : orientation_portrait); + } + } else { + /* Fixed window and both orientations are allowed. Choose one. */ + if (is_portrait_allowed && is_landscape_allowed) { + req = (w > h ? orientation_landscape : orientation_portrait); + } else { + /* Use the only one allowed "orientation" */ + req = (is_landscape_allowed ? orientation_landscape : orientation_portrait); + } + } + } + + Log.v(TAG, "setOrientation() requestedOrientation=" + req + " width=" + w +" height="+ h +" resizable=" + resizable + " hint=" + hint); + mSingleton.setRequestedOrientation(req); + } + + /** + * This method is called by SDL using JNI. + */ + public static void minimizeWindow() { + + if (mSingleton == null) { + return; + } + + Intent startMain = new Intent(Intent.ACTION_MAIN); + startMain.addCategory(Intent.CATEGORY_HOME); + startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mSingleton.startActivity(startMain); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean shouldMinimizeOnFocusLoss() { +/* + if (Build.VERSION.SDK_INT >= 24) { + if (mSingleton == null) { + return true; + } + + if (mSingleton.isInMultiWindowMode()) { + return false; + } + + if (mSingleton.isInPictureInPictureMode()) { + return false; + } + } + + return true; +*/ + return false; + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isScreenKeyboardShown() + { + if (mTextEdit == null) { + return false; + } + + if (!mScreenKeyboardShown) { + return false; + } + + InputMethodManager imm = (InputMethodManager) SDL.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + return imm.isAcceptingText(); + + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean supportsRelativeMouse() + { + // DeX mode in Samsung Experience 9.0 and earlier doesn't support relative mice properly under + // Android 7 APIs, and simply returns no data under Android 8 APIs. + // + // This is fixed in Samsung Experience 9.5, which corresponds to Android 8.1.0, and + // thus SDK version 27. If we are in DeX mode and not API 27 or higher, as a result, + // we should stick to relative mode. + // + if (Build.VERSION.SDK_INT < 27 /* Android 8.1 (O_MR1) */ && isDeXMode()) { + return false; + } + + return SDLActivity.getMotionListener().supportsRelativeMouse(); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean setRelativeMouseEnabled(boolean enabled) + { + if (enabled && !supportsRelativeMouse()) { + return false; + } + + return SDLActivity.getMotionListener().setRelativeMouseEnabled(enabled); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean sendMessage(int command, int param) { + if (mSingleton == null) { + return false; + } + return mSingleton.sendCommand(command, param); + } + + /** + * This method is called by SDL using JNI. + */ + public static Context getContext() { + return SDL.getContext(); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isAndroidTV() { + UiModeManager uiModeManager = (UiModeManager) getContext().getSystemService(UI_MODE_SERVICE); + if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { + return true; + } + if (Build.MANUFACTURER.equals("MINIX") && Build.MODEL.equals("NEO-U1")) { + return true; + } + if (Build.MANUFACTURER.equals("Amlogic") && Build.MODEL.equals("X96-W")) { + return true; + } + return Build.MANUFACTURER.equals("Amlogic") && Build.MODEL.startsWith("TV"); + } + + public static double getDiagonal() + { + DisplayMetrics metrics = new DisplayMetrics(); + Activity activity = (Activity)getContext(); + if (activity == null) { + return 0.0; + } + activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); + + double dWidthInches = metrics.widthPixels / (double)metrics.xdpi; + double dHeightInches = metrics.heightPixels / (double)metrics.ydpi; + + return Math.sqrt((dWidthInches * dWidthInches) + (dHeightInches * dHeightInches)); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isTablet() { + // If our diagonal size is seven inches or greater, we consider ourselves a tablet. + return (getDiagonal() >= 7.0); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isChromebook() { + if (getContext() == null) { + return false; + } + return getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isDeXMode() { + if (Build.VERSION.SDK_INT < 24 /* Android 7.0 (N) */) { + return false; + } + try { + final Configuration config = getContext().getResources().getConfiguration(); + final Class configClass = config.getClass(); + return configClass.getField("SEM_DESKTOP_MODE_ENABLED").getInt(configClass) + == configClass.getField("semDesktopModeEnabled").getInt(config); + } catch(Exception ignored) { + return false; + } + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean getManifestEnvironmentVariables() { + try { + if (getContext() == null) { + return false; + } + + ApplicationInfo applicationInfo = getContext().getPackageManager().getApplicationInfo(getContext().getPackageName(), PackageManager.GET_META_DATA); + Bundle bundle = applicationInfo.metaData; + if (bundle == null) { + return false; + } + String prefix = "SDL_ENV."; + final int trimLength = prefix.length(); + for (String key : bundle.keySet()) { + if (key.startsWith(prefix)) { + String name = key.substring(trimLength); + String value = bundle.get(key).toString(); + nativeSetenv(name, value); + } + } + /* environment variables set! */ + return true; + } catch (Exception e) { + Log.v(TAG, "exception " + e.toString()); + } + return false; + } + + // This method is called by SDLControllerManager's API 26 Generic Motion Handler. + public static View getContentView() { + return mLayout; + } + + static class ShowTextInputTask implements Runnable { + /* + * This is used to regulate the pan&scan method to have some offset from + * the bottom edge of the input region and the top edge of an input + * method (soft keyboard) + */ + static final int HEIGHT_PADDING = 15; + + public int x, y, w, h; + + public ShowTextInputTask(int x, int y, int w, int h) { + this.x = x; + this.y = y; + this.w = w; + this.h = h; + + /* Minimum size of 1 pixel, so it takes focus. */ + if (this.w <= 0) { + this.w = 1; + } + if (this.h + HEIGHT_PADDING <= 0) { + this.h = 1 - HEIGHT_PADDING; + } + } + + @Override + public void run() { + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(w, h + HEIGHT_PADDING); + params.leftMargin = x; + params.topMargin = y; + + if (mTextEdit == null) { + mTextEdit = new DummyEdit(SDL.getContext()); + + mLayout.addView(mTextEdit, params); + } else { + mTextEdit.setLayoutParams(params); + } + + mTextEdit.setVisibility(View.VISIBLE); + mTextEdit.requestFocus(); + + InputMethodManager imm = (InputMethodManager) SDL.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(mTextEdit, 0); + + mScreenKeyboardShown = true; + } + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean showTextInput(int x, int y, int w, int h) { + // Transfer the task to the main thread as a Runnable + return mSingleton.commandHandler.post(new ShowTextInputTask(x, y, w, h)); + } + + public static boolean isTextInputEvent(KeyEvent event) { + + // Key pressed with Ctrl should be sent as SDL_KEYDOWN/SDL_KEYUP and not SDL_TEXTINPUT + if (event.isCtrlPressed()) { + return false; + } + + return event.isPrintingKey() || event.getKeyCode() == KeyEvent.KEYCODE_SPACE; + } + + public static boolean handleKeyEvent(View v, int keyCode, KeyEvent event, InputConnection ic) { + int deviceId = event.getDeviceId(); + int source = event.getSource(); + + if (source == InputDevice.SOURCE_UNKNOWN) { + InputDevice device = InputDevice.getDevice(deviceId); + if (device != null) { + source = device.getSources(); + } + } + +// if (event.getAction() == KeyEvent.ACTION_DOWN) { +// Log.v("SDL", "key down: " + keyCode + ", deviceId = " + deviceId + ", source = " + source); +// } else if (event.getAction() == KeyEvent.ACTION_UP) { +// Log.v("SDL", "key up: " + keyCode + ", deviceId = " + deviceId + ", source = " + source); +// } + + // Dispatch the different events depending on where they come from + // Some SOURCE_JOYSTICK, SOURCE_DPAD or SOURCE_GAMEPAD are also SOURCE_KEYBOARD + // So, we try to process them as JOYSTICK/DPAD/GAMEPAD events first, if that fails we try them as KEYBOARD + // + // Furthermore, it's possible a game controller has SOURCE_KEYBOARD and + // SOURCE_JOYSTICK, while its key events arrive from the keyboard source + // So, retrieve the device itself and check all of its sources + if (SDLControllerManager.isDeviceSDLJoystick(deviceId)) { + // Note that we process events with specific key codes here + if (event.getAction() == KeyEvent.ACTION_DOWN) { + if (SDLControllerManager.onNativePadDown(deviceId, keyCode) == 0) { + return true; + } + } else if (event.getAction() == KeyEvent.ACTION_UP) { + if (SDLControllerManager.onNativePadUp(deviceId, keyCode) == 0) { + return true; + } + } + } + + if ((source & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) { + // on some devices key events are sent for mouse BUTTON_BACK/FORWARD presses + // they are ignored here because sending them as mouse input to SDL is messy + if ((keyCode == KeyEvent.KEYCODE_BACK) || (keyCode == KeyEvent.KEYCODE_FORWARD)) { + switch (event.getAction()) { + case KeyEvent.ACTION_DOWN: + case KeyEvent.ACTION_UP: + // mark the event as handled or it will be handled by system + // handling KEYCODE_BACK by system will call onBackPressed() + return true; + } + } + } + + if (event.getAction() == KeyEvent.ACTION_DOWN) { + if (isTextInputEvent(event)) { + if (ic != null) { + ic.commitText(String.valueOf((char) event.getUnicodeChar()), 1); + } else { + SDLInputConnection.nativeCommitText(String.valueOf((char) event.getUnicodeChar()), 1); + } + } + onNativeKeyDown(keyCode); + return true; + } else if (event.getAction() == KeyEvent.ACTION_UP) { + onNativeKeyUp(keyCode); + return true; + } + + return false; + } + + /** + * This method is called by SDL using JNI. + */ + public static Surface getNativeSurface() { + if (SDLActivity.mSurface == null) { + return null; + } + return SDLActivity.mSurface.getNativeSurface(); + } + + // Input + + /** + * This method is called by SDL using JNI. + */ + public static void initTouch() { + int[] ids = InputDevice.getDeviceIds(); + + for (int id : ids) { + InputDevice device = InputDevice.getDevice(id); + /* Allow SOURCE_TOUCHSCREEN and also Virtual InputDevices because they can send TOUCHSCREEN events */ + if (device != null && ((device.getSources() & InputDevice.SOURCE_TOUCHSCREEN) == InputDevice.SOURCE_TOUCHSCREEN + || device.isVirtual())) { + + int touchDevId = device.getId(); + /* + * Prevent id to be -1, since it's used in SDL internal for synthetic events + * Appears when using Android emulator, eg: + * adb shell input mouse tap 100 100 + * adb shell input touchscreen tap 100 100 + */ + if (touchDevId < 0) { + touchDevId -= 1; + } + nativeAddTouch(touchDevId, device.getName()); + } + } + } + + // Messagebox + + /** Result of current messagebox. Also used for blocking the calling thread. */ + protected final int[] messageboxSelection = new int[1]; + + /** + * This method is called by SDL using JNI. + * Shows the messagebox from UI thread and block calling thread. + * buttonFlags, buttonIds and buttonTexts must have same length. + * @param buttonFlags array containing flags for every button. + * @param buttonIds array containing id for every button. + * @param buttonTexts array containing text for every button. + * @param colors null for default or array of length 5 containing colors. + * @return button id or -1. + */ + public int messageboxShowMessageBox( + final int flags, + final String title, + final String message, + final int[] buttonFlags, + final int[] buttonIds, + final String[] buttonTexts, + final int[] colors) { + + messageboxSelection[0] = -1; + + // sanity checks + + if ((buttonFlags.length != buttonIds.length) && (buttonIds.length != buttonTexts.length)) { + return -1; // implementation broken + } + + // collect arguments for Dialog + + final Bundle args = new Bundle(); + args.putInt("flags", flags); + args.putString("title", title); + args.putString("message", message); + args.putIntArray("buttonFlags", buttonFlags); + args.putIntArray("buttonIds", buttonIds); + args.putStringArray("buttonTexts", buttonTexts); + args.putIntArray("colors", colors); + + // trigger Dialog creation on UI thread + + runOnUiThread(new Runnable() { + @Override + public void run() { + messageboxCreateAndShow(args); + } + }); + + // block the calling thread + + synchronized (messageboxSelection) { + try { + messageboxSelection.wait(); + } catch (InterruptedException ex) { + ex.printStackTrace(); + return -1; + } + } + + // return selected value + + return messageboxSelection[0]; + } + + protected void messageboxCreateAndShow(Bundle args) { + + // TODO set values from "flags" to messagebox dialog + + // get colors + + int[] colors = args.getIntArray("colors"); + int backgroundColor; + int textColor; + int buttonBorderColor; + int buttonBackgroundColor; + int buttonSelectedColor; + if (colors != null) { + int i = -1; + backgroundColor = colors[++i]; + textColor = colors[++i]; + buttonBorderColor = colors[++i]; + buttonBackgroundColor = colors[++i]; + buttonSelectedColor = colors[++i]; + } else { + backgroundColor = Color.TRANSPARENT; + textColor = Color.TRANSPARENT; + buttonBorderColor = Color.TRANSPARENT; + buttonBackgroundColor = Color.TRANSPARENT; + buttonSelectedColor = Color.TRANSPARENT; + } + + // create dialog with title and a listener to wake up calling thread + + final AlertDialog dialog = new AlertDialog.Builder(this).create(); + dialog.setTitle(args.getString("title")); + dialog.setCancelable(false); + dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface unused) { + synchronized (messageboxSelection) { + messageboxSelection.notify(); + } + } + }); + + // create text + + TextView message = new TextView(this); + message.setGravity(Gravity.CENTER); + message.setText(args.getString("message")); + if (textColor != Color.TRANSPARENT) { + message.setTextColor(textColor); + } + + // create buttons + + int[] buttonFlags = args.getIntArray("buttonFlags"); + int[] buttonIds = args.getIntArray("buttonIds"); + String[] buttonTexts = args.getStringArray("buttonTexts"); + + final SparseArray