diff --git a/Src/IAEngine/imp/cpp/Components/SpriteRenderer.cpp b/Src/IAEngine/imp/cpp/Components/SpriteRenderer.cpp index 409c163..b8f2838 100644 --- a/Src/IAEngine/imp/cpp/Components/SpriteRenderer.cpp +++ b/Src/IAEngine/imp/cpp/Components/SpriteRenderer.cpp @@ -17,6 +17,7 @@ #include #include +#include #include @@ -60,6 +61,7 @@ namespace ia::iae VOID SpriteRendererComponent::Draw() { + Renderer::SetParallaxFactor(m_parallaxFactor); const auto &animFrame = m_currentAnimationState; animFrame.Texture.Draw(m_node->SortOffset() + m_sortOffset, m_node->GetPosition() + animFrame.Position, m_node->GetScale() * animFrame.Scale, m_node->GetRotation().z + animFrame.Rotation.z, diff --git a/Src/IAEngine/imp/cpp/IAEngine.cpp b/Src/IAEngine/imp/cpp/IAEngine.cpp index 14c4dcd..07a5a8b 100644 --- a/Src/IAEngine/imp/cpp/IAEngine.cpp +++ b/Src/IAEngine/imp/cpp/IAEngine.cpp @@ -41,7 +41,7 @@ namespace ia::iae SDL_Window *g_windowHandle{}; Vector> g_gpuTextureRefs; - Scene* g_activeScene; + Scene *g_activeScene; BOOL Engine::Initialize(IN CONST InitConfig &config) { @@ -139,7 +139,7 @@ namespace ia::iae g_activeScene->Draw(); } - VOID Engine::ChangeScene(IN Scene* scene) + VOID Engine::ChangeScene(IN Scene *scene) { g_activeScene = scene; } diff --git a/Src/IAEngine/imp/cpp/Rendering/GPUTexture.cpp b/Src/IAEngine/imp/cpp/Rendering/GPUTexture.cpp index bf6303f..012b19b 100644 --- a/Src/IAEngine/imp/cpp/Rendering/GPUTexture.cpp +++ b/Src/IAEngine/imp/cpp/Rendering/GPUTexture.cpp @@ -31,9 +31,9 @@ namespace ia::iae SDL_GPUSamplerCreateInfo createInfo{.min_filter = SDL_GPU_FILTER_LINEAR, .mag_filter = SDL_GPU_FILTER_LINEAR, .mipmap_mode = SDL_GPU_SAMPLERMIPMAPMODE_LINEAR, - .address_mode_u = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE, - .address_mode_v = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE, - .address_mode_w = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE, + .address_mode_u = SDL_GPU_SAMPLERADDRESSMODE_REPEAT, + .address_mode_v = SDL_GPU_SAMPLERADDRESSMODE_REPEAT, + .address_mode_w = SDL_GPU_SAMPLERADDRESSMODE_REPEAT, .max_anisotropy = 1.0f, .enable_anisotropy = true}; g_defaultSampler = SDL_CreateGPUSampler(g_gpuDevice, &createInfo); diff --git a/Src/IAEngine/imp/cpp/Rendering/Pipeline/UnlitMesh.cpp b/Src/IAEngine/imp/cpp/Rendering/Pipeline/UnlitMesh.cpp index 30bf7b4..0a4eaa0 100644 --- a/Src/IAEngine/imp/cpp/Rendering/Pipeline/UnlitMesh.cpp +++ b/Src/IAEngine/imp/cpp/Rendering/Pipeline/UnlitMesh.cpp @@ -38,7 +38,7 @@ namespace ia::iae const auto vertexShader = LoadShaderFromMemory(ShaderStage::VERTEX, SHADER_SOURCE_UNLITMESH_VERT, sizeof(SHADER_SOURCE_UNLITMESH_VERT), 0, 3, 0, 0); const auto pixelShader = LoadShaderFromMemory(ShaderStage::PIXEL, SHADER_SOURCE_UNLITMESH_FRAG, - sizeof(SHADER_SOURCE_UNLITMESH_FRAG), 1, 1, 0, 0); + sizeof(SHADER_SOURCE_UNLITMESH_FRAG), 1, 2, 0, 0); SDL_GPUColorTargetDescription colorTargets[] = {{ .format = SDL_GetGPUSwapchainTextureFormat(g_gpuDevice, g_windowHandle), diff --git a/Src/IAEngine/imp/cpp/Rendering/Renderer.cpp b/Src/IAEngine/imp/cpp/Rendering/Renderer.cpp index d4c299b..88a3006 100644 --- a/Src/IAEngine/imp/cpp/Rendering/Renderer.cpp +++ b/Src/IAEngine/imp/cpp/Rendering/Renderer.cpp @@ -55,6 +55,8 @@ namespace ia::iae glm::mat4 matView{1.0f}; glm::mat4 matModel{1.0f}; + FLOAT32 g_parallaxFactor{0.0f}; + BOOL Renderer::Initialize() { SDL_GetWindowSizeInPixels(g_windowHandle, &s_width, &s_height); @@ -100,8 +102,7 @@ namespace ia::iae { SDL_GPUTextureCreateInfo createInfo{.type = SDL_GPU_TEXTURETYPE_2D, .format = SDL_GPU_TEXTUREFORMAT_D16_UNORM, - .usage = - SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET, + .usage = SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET, .width = (UINT32) s_width, .height = (UINT32) s_height, .layer_count_or_depth = 1, @@ -234,17 +235,26 @@ namespace ia::iae SDL_PushGPUFragmentUniformData(g_cmdBuffer, 0, &textureState, sizeof(textureState)); } - VOID SetModelTransformMatrix(IN FLOAT32 sortOffset, IN CONST glm::vec3 &position, IN CONST glm::vec3 &scale, IN FLOAT32 rotation) + VOID SetModelTransformMatrix(IN FLOAT32 sortOffset, IN CONST glm::vec3 &position, IN CONST glm::vec3 &scale, + IN FLOAT32 rotation) { + if (g_parallaxFactor <= 0.0f) + matView = g_camera.GetViewMatrix(); + else + matView = glm::mat4(1.0f); + SDL_PushGPUVertexUniformData(g_cmdBuffer, 1, &matView, sizeof(matView)); + g_parallaxFactor *= g_camera.Position().x/640.0f; + SDL_PushGPUFragmentUniformData(g_cmdBuffer, 1, &g_parallaxFactor, sizeof(g_parallaxFactor)); + const auto depthTestOffset = sortOffset + (Engine::GetActiveScene()->YSortingEnabled() ? position.y : 0); - matModel = glm::translate(glm::mat4(1.0f), {position.x, position.y, position.z + depthTestOffset}); + matModel = glm::translate(glm::mat4(1.0f), {position.x, position.y, position.z + depthTestOffset + (g_parallaxFactor < 0.0f ? 0.0f : -100.0f)}); matModel = glm::rotate(matModel, rotation, glm::vec3(0.0f, 0.0f, 1.0f)); matModel = glm::scale(matModel, scale); SDL_PushGPUVertexUniformData(g_cmdBuffer, 2, &matModel, sizeof(matModel)); } - VOID Renderer::Draw(IN FLOAT32 sortOffset, IN CONST glm::vec3 &position, IN CONST glm::vec3 &scale, IN FLOAT32 rotation, - IN Handle vertexBufferHandle, IN INT32 vertexCount) + VOID Renderer::Draw(IN FLOAT32 sortOffset, IN CONST glm::vec3 &position, IN CONST glm::vec3 &scale, + IN FLOAT32 rotation, IN Handle vertexBufferHandle, IN INT32 vertexCount) { SetModelTransformMatrix(sortOffset, position, scale, rotation); SDL_GPUBufferBinding bindings[] = {{.buffer = (SDL_GPUBuffer *) vertexBufferHandle, .offset = 0}}; @@ -252,8 +262,9 @@ namespace ia::iae SDL_DrawGPUPrimitives(g_renderPass, vertexCount, 1, 0, 0); } - VOID Renderer::Draw(IN FLOAT32 sortOffset, IN CONST glm::vec3 &position, IN CONST glm::vec3 &scale, IN FLOAT32 rotation, - IN Handle vertexBufferHandle, IN Handle indexBufferHandle, IN INT32 indexCount) + VOID Renderer::Draw(IN FLOAT32 sortOffset, IN CONST glm::vec3 &position, IN CONST glm::vec3 &scale, + IN FLOAT32 rotation, IN Handle vertexBufferHandle, IN Handle indexBufferHandle, + IN INT32 indexCount) { SetModelTransformMatrix(sortOffset, position, scale, rotation); SDL_GPUBufferBinding bindings[] = {{.buffer = (SDL_GPUBuffer *) vertexBufferHandle, .offset = 0}, @@ -267,4 +278,9 @@ namespace ia::iae { return &g_camera; } + + VOID Renderer::SetParallaxFactor(IN FLOAT32 value) + { + g_parallaxFactor = value; + } } // namespace ia::iae diff --git a/Src/IAEngine/imp/glsl/UnlitMesh/UnlitMesh.frag b/Src/IAEngine/imp/glsl/UnlitMesh/UnlitMesh.frag index 24ea32c..0153a70 100644 --- a/Src/IAEngine/imp/glsl/UnlitMesh/UnlitMesh.frag +++ b/Src/IAEngine/imp/glsl/UnlitMesh/UnlitMesh.frag @@ -11,10 +11,14 @@ layout(set = 3, binding = 0) uniform UniformBufferObject { bool flipV; bool flipH; } ubo; +layout(set = 3, binding = 1) uniform UniformBufferObject2 { + float parallaxFactor; +} ubo2; void main() { vec2 uv = inTexCoord; + uv.x += ubo2.parallaxFactor; if(ubo.flipH) uv.x = 1 - uv.x; if(ubo.flipV) uv.y = 1 - uv.y; outColor = texture(texSampler, uv) * ubo.colorOverlay; diff --git a/Src/IAEngine/imp/hpp/EmbeddedShaders.hpp b/Src/IAEngine/imp/hpp/EmbeddedShaders.hpp index 0c2f632..246091e 100644 --- a/Src/IAEngine/imp/hpp/EmbeddedShaders.hpp +++ b/Src/IAEngine/imp/hpp/EmbeddedShaders.hpp @@ -27,7 +27,7 @@ namespace ia::iae CONSTEXPR UINT8 SHADER_SOURCE_UNLITMESH_VERT[1964] = { 0x3,0x2,0x23,0x7,0x0,0x0,0x1,0x0,0xb,0x0,0xd,0x0,0x35,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xb,0x0,0x6,0x0,0x1,0x0,0x0,0x0,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x0,0x0,0x0,0x0,0xe,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xf,0x0,0x9,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x6d,0x61,0x69,0x6e,0x0,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0x25,0x0,0x0,0x0,0x31,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xc2,0x1,0x0,0x0,0x4,0x0,0x9,0x0,0x47,0x4c,0x5f,0x41,0x52,0x42,0x5f,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x5f,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x73,0x0,0x0,0x4,0x0,0xa,0x0,0x47,0x4c,0x5f,0x47,0x4f,0x4f,0x47,0x4c,0x45,0x5f,0x63,0x70,0x70,0x5f,0x73,0x74,0x79,0x6c,0x65,0x5f,0x6c,0x69,0x6e,0x65,0x5f,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x0,0x0,0x4,0x0,0x8,0x0,0x47,0x4c,0x5f,0x47,0x4f,0x4f,0x47,0x4c,0x45,0x5f,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x5f,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x0,0x0,0x6d,0x61,0x69,0x6e,0x0,0x0,0x0,0x0,0x5,0x0,0x6,0x0,0xb,0x0,0x0,0x0,0x67,0x6c,0x5f,0x50,0x65,0x72,0x56,0x65,0x72,0x74,0x65,0x78,0x0,0x0,0x0,0x0,0x6,0x0,0x6,0x0,0xb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x0,0x6,0x0,0x7,0x0,0xb,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x67,0x6c,0x5f,0x50,0x6f,0x69,0x6e,0x74,0x53,0x69,0x7a,0x65,0x0,0x0,0x0,0x0,0x6,0x0,0x7,0x0,0xb,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x67,0x6c,0x5f,0x43,0x6c,0x69,0x70,0x44,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x0,0x6,0x0,0x7,0x0,0xb,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x67,0x6c,0x5f,0x43,0x75,0x6c,0x6c,0x44,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x0,0x5,0x0,0x3,0x0,0xd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x7,0x0,0x11,0x0,0x0,0x0,0x55,0x42,0x4f,0x5f,0x56,0x65,0x72,0x74,0x65,0x78,0x5f,0x50,0x65,0x72,0x53,0x63,0x65,0x6e,0x65,0x0,0x6,0x0,0x6,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x72,0x6f,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0,0x0,0x5,0x0,0x5,0x0,0x13,0x0,0x0,0x0,0x75,0x62,0x6f,0x50,0x65,0x72,0x53,0x63,0x65,0x6e,0x65,0x0,0x5,0x0,0x7,0x0,0x17,0x0,0x0,0x0,0x55,0x42,0x4f,0x5f,0x56,0x65,0x72,0x74,0x65,0x78,0x5f,0x50,0x65,0x72,0x46,0x72,0x61,0x6d,0x65,0x0,0x6,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x76,0x69,0x65,0x77,0x0,0x0,0x0,0x0,0x5,0x0,0x5,0x0,0x19,0x0,0x0,0x0,0x75,0x62,0x6f,0x50,0x65,0x72,0x46,0x72,0x61,0x6d,0x65,0x0,0x5,0x0,0x7,0x0,0x1d,0x0,0x0,0x0,0x55,0x42,0x4f,0x5f,0x56,0x65,0x72,0x74,0x65,0x78,0x5f,0x50,0x65,0x72,0x44,0x72,0x61,0x77,0x0,0x0,0x6,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6d,0x6f,0x64,0x65,0x6c,0x0,0x0,0x0,0x5,0x0,0x5,0x0,0x1f,0x0,0x0,0x0,0x75,0x62,0x6f,0x50,0x65,0x72,0x44,0x72,0x61,0x77,0x0,0x0,0x5,0x0,0x5,0x0,0x25,0x0,0x0,0x0,0x69,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x0,0x0,0x5,0x0,0x5,0x0,0x31,0x0,0x0,0x0,0x6f,0x75,0x74,0x54,0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x0,0x5,0x0,0x5,0x0,0x33,0x0,0x0,0x0,0x69,0x6e,0x54,0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x0,0x0,0x47,0x0,0x3,0x0,0xb,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0xb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0xb,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0xb,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0xb,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x47,0x0,0x3,0x0,0x11,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x48,0x0,0x4,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x13,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x13,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x47,0x0,0x3,0x0,0x17,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x48,0x0,0x4,0x0,0x17,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x19,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x19,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x47,0x0,0x3,0x0,0x1d,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x48,0x0,0x4,0x0,0x1d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x1f,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x1f,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x25,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x31,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x33,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x13,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x21,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x16,0x0,0x3,0x0,0x6,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x17,0x0,0x4,0x0,0x7,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x15,0x0,0x4,0x0,0x8,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x8,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1c,0x0,0x4,0x0,0xa,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x1e,0x0,0x6,0x0,0xb,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0xc,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0xc,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x15,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x1e,0x0,0x3,0x0,0x11,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x12,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x12,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x14,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x1e,0x0,0x3,0x0,0x17,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x18,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x17,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x18,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1e,0x0,0x3,0x0,0x1d,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x1e,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1d,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x1e,0x0,0x0,0x0,0x1f,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x17,0x0,0x4,0x0,0x23,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x24,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x24,0x0,0x0,0x0,0x25,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x27,0x0,0x0,0x0,0x0,0x0,0x80,0x3f,0x20,0x0,0x4,0x0,0x2d,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x17,0x0,0x4,0x0,0x2f,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x30,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x2f,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x30,0x0,0x0,0x0,0x31,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x32,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2f,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x32,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x36,0x0,0x5,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x5,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x14,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x14,0x0,0x0,0x0,0x1a,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x1b,0x0,0x0,0x0,0x1a,0x0,0x0,0x0,0x92,0x0,0x5,0x0,0x10,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x1b,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x14,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x1f,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x92,0x0,0x5,0x0,0x10,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x23,0x0,0x0,0x0,0x26,0x0,0x0,0x0,0x25,0x0,0x0,0x0,0x51,0x0,0x5,0x0,0x6,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x26,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x51,0x0,0x5,0x0,0x6,0x0,0x0,0x0,0x29,0x0,0x0,0x0,0x26,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x51,0x0,0x5,0x0,0x6,0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x26,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x50,0x0,0x7,0x0,0x7,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x29,0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x27,0x0,0x0,0x0,0x91,0x0,0x5,0x0,0x7,0x0,0x0,0x0,0x2c,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x2d,0x0,0x0,0x0,0x2e,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x2e,0x0,0x0,0x0,0x2c,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x2f,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x31,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xfd,0x0,0x1,0x0,0x38,0x0,0x1,0x0,}; -CONSTEXPR UINT8 SHADER_SOURCE_UNLITMESH_FRAG[1792] = { -0x3,0x2,0x23,0x7,0x0,0x0,0x1,0x0,0xb,0x0,0xd,0x0,0x44,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xb,0x0,0x6,0x0,0x1,0x0,0x0,0x0,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x0,0x0,0x0,0x0,0xe,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xf,0x0,0x7,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x6d,0x61,0x69,0x6e,0x0,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x2e,0x0,0x0,0x0,0x10,0x0,0x3,0x0,0x4,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xc2,0x1,0x0,0x0,0x4,0x0,0x9,0x0,0x47,0x4c,0x5f,0x41,0x52,0x42,0x5f,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x5f,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x73,0x0,0x0,0x4,0x0,0xa,0x0,0x47,0x4c,0x5f,0x47,0x4f,0x4f,0x47,0x4c,0x45,0x5f,0x63,0x70,0x70,0x5f,0x73,0x74,0x79,0x6c,0x65,0x5f,0x6c,0x69,0x6e,0x65,0x5f,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x0,0x0,0x4,0x0,0x8,0x0,0x47,0x4c,0x5f,0x47,0x4f,0x4f,0x47,0x4c,0x45,0x5f,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x5f,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x0,0x0,0x6d,0x61,0x69,0x6e,0x0,0x0,0x0,0x0,0x5,0x0,0x3,0x0,0x9,0x0,0x0,0x0,0x75,0x76,0x0,0x0,0x5,0x0,0x5,0x0,0xb,0x0,0x0,0x0,0x69,0x6e,0x54,0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x0,0x0,0x5,0x0,0x7,0x0,0xf,0x0,0x0,0x0,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x42,0x75,0x66,0x66,0x65,0x72,0x4f,0x62,0x6a,0x65,0x63,0x74,0x0,0x6,0x0,0x7,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x63,0x6f,0x6c,0x6f,0x72,0x4f,0x76,0x65,0x72,0x6c,0x61,0x79,0x0,0x0,0x0,0x0,0x6,0x0,0x5,0x0,0xf,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x66,0x6c,0x69,0x70,0x56,0x0,0x0,0x0,0x6,0x0,0x5,0x0,0xf,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x66,0x6c,0x69,0x70,0x48,0x0,0x0,0x0,0x5,0x0,0x3,0x0,0x11,0x0,0x0,0x0,0x75,0x62,0x6f,0x0,0x5,0x0,0x5,0x0,0x2e,0x0,0x0,0x0,0x6f,0x75,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x0,0x0,0x0,0x0,0x5,0x0,0x5,0x0,0x32,0x0,0x0,0x0,0x74,0x65,0x78,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x0,0x0,0x47,0x0,0x4,0x0,0xb,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x3,0x0,0xf,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0xf,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0xf,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x11,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x11,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x2e,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x32,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x32,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x13,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x21,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x16,0x0,0x3,0x0,0x6,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x17,0x0,0x4,0x0,0x7,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x8,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0xa,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0xa,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x17,0x0,0x4,0x0,0xd,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x15,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e,0x0,0x5,0x0,0xf,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0xe,0x0,0x0,0x0,0xe,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x15,0x0,0x4,0x0,0x12,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x12,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x14,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0xe,0x0,0x0,0x0,0x14,0x0,0x2,0x0,0x17,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x0,0x0,0x80,0x3f,0x20,0x0,0x4,0x0,0x1d,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x12,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x2d,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x2d,0x0,0x0,0x0,0x2e,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x19,0x0,0x9,0x0,0x2f,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1b,0x0,0x3,0x0,0x30,0x0,0x0,0x0,0x2f,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x31,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x31,0x0,0x0,0x0,0x32,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x12,0x0,0x0,0x0,0x36,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x37,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0x3b,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x3c,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x3f,0x0,0x0,0x0,0xcd,0xcc,0xcc,0x3d,0x36,0x0,0x5,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x5,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x8,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x7,0x0,0x0,0x0,0xc,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x9,0x0,0x0,0x0,0xc,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x14,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0xab,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0xf7,0x0,0x3,0x0,0x1b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfa,0x0,0x4,0x0,0x19,0x0,0x0,0x0,0x1a,0x0,0x0,0x0,0x1b,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x1a,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x1f,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x83,0x0,0x5,0x0,0x6,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x1f,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x21,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0xf9,0x0,0x2,0x0,0x1b,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x1b,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x14,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0x24,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0xab,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x25,0x0,0x0,0x0,0x24,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0xf7,0x0,0x3,0x0,0x27,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfa,0x0,0x4,0x0,0x25,0x0,0x0,0x0,0x26,0x0,0x0,0x0,0x27,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x26,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x29,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x29,0x0,0x0,0x0,0x83,0x0,0x5,0x0,0x6,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x2c,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x2c,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0xf9,0x0,0x2,0x0,0x27,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x27,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x30,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0x32,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x7,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x57,0x0,0x5,0x0,0xd,0x0,0x0,0x0,0x35,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x37,0x0,0x0,0x0,0x38,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x36,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0xd,0x0,0x0,0x0,0x39,0x0,0x0,0x0,0x38,0x0,0x0,0x0,0x85,0x0,0x5,0x0,0xd,0x0,0x0,0x0,0x3a,0x0,0x0,0x0,0x35,0x0,0x0,0x0,0x39,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x2e,0x0,0x0,0x0,0x3a,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x3c,0x0,0x0,0x0,0x3d,0x0,0x0,0x0,0x2e,0x0,0x0,0x0,0x3b,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x3e,0x0,0x0,0x0,0x3d,0x0,0x0,0x0,0xb8,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x3e,0x0,0x0,0x0,0x3f,0x0,0x0,0x0,0xf7,0x0,0x3,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfa,0x0,0x4,0x0,0x40,0x0,0x0,0x0,0x41,0x0,0x0,0x0,0x42,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x41,0x0,0x0,0x0,0xfc,0x0,0x1,0x0,0xf8,0x0,0x2,0x0,0x42,0x0,0x0,0x0,0xfd,0x0,0x1,0x0,0x38,0x0,0x1,0x0,}; +CONSTEXPR UINT8 SHADER_SOURCE_UNLITMESH_FRAG[2116] = { +0x3,0x2,0x23,0x7,0x0,0x0,0x1,0x0,0xb,0x0,0xd,0x0,0x4e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xb,0x0,0x6,0x0,0x1,0x0,0x0,0x0,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,0x0,0x0,0x0,0x0,0xe,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xf,0x0,0x7,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x6d,0x61,0x69,0x6e,0x0,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x39,0x0,0x0,0x0,0x10,0x0,0x3,0x0,0x4,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xc2,0x1,0x0,0x0,0x4,0x0,0x9,0x0,0x47,0x4c,0x5f,0x41,0x52,0x42,0x5f,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x5f,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x73,0x0,0x0,0x4,0x0,0xa,0x0,0x47,0x4c,0x5f,0x47,0x4f,0x4f,0x47,0x4c,0x45,0x5f,0x63,0x70,0x70,0x5f,0x73,0x74,0x79,0x6c,0x65,0x5f,0x6c,0x69,0x6e,0x65,0x5f,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x0,0x0,0x4,0x0,0x8,0x0,0x47,0x4c,0x5f,0x47,0x4f,0x4f,0x47,0x4c,0x45,0x5f,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x5f,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x0,0x0,0x6d,0x61,0x69,0x6e,0x0,0x0,0x0,0x0,0x5,0x0,0x3,0x0,0x9,0x0,0x0,0x0,0x75,0x76,0x0,0x0,0x5,0x0,0x5,0x0,0xb,0x0,0x0,0x0,0x69,0x6e,0x54,0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x0,0x0,0x5,0x0,0x8,0x0,0xd,0x0,0x0,0x0,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x42,0x75,0x66,0x66,0x65,0x72,0x4f,0x62,0x6a,0x65,0x63,0x74,0x32,0x0,0x0,0x0,0x0,0x6,0x0,0x7,0x0,0xd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x61,0x72,0x61,0x6c,0x6c,0x61,0x78,0x46,0x61,0x63,0x74,0x6f,0x72,0x0,0x0,0x5,0x0,0x4,0x0,0xf,0x0,0x0,0x0,0x75,0x62,0x6f,0x32,0x0,0x0,0x0,0x0,0x5,0x0,0x7,0x0,0x1d,0x0,0x0,0x0,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x42,0x75,0x66,0x66,0x65,0x72,0x4f,0x62,0x6a,0x65,0x63,0x74,0x0,0x6,0x0,0x7,0x0,0x1d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x63,0x6f,0x6c,0x6f,0x72,0x4f,0x76,0x65,0x72,0x6c,0x61,0x79,0x0,0x0,0x0,0x0,0x6,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x66,0x6c,0x69,0x70,0x56,0x0,0x0,0x0,0x6,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x66,0x6c,0x69,0x70,0x48,0x0,0x0,0x0,0x5,0x0,0x3,0x0,0x1f,0x0,0x0,0x0,0x75,0x62,0x6f,0x0,0x5,0x0,0x5,0x0,0x39,0x0,0x0,0x0,0x6f,0x75,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x0,0x0,0x0,0x0,0x5,0x0,0x5,0x0,0x3d,0x0,0x0,0x0,0x74,0x65,0x78,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x0,0x0,0x47,0x0,0x4,0x0,0xb,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x3,0x0,0xd,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0xd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0xf,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0xf,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x47,0x0,0x3,0x0,0x1d,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x48,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x1f,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x1f,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x39,0x0,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x3d,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x0,0x4,0x0,0x3d,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x13,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x21,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x16,0x0,0x3,0x0,0x6,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x17,0x0,0x4,0x0,0x7,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x8,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0xa,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0xa,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1e,0x0,0x3,0x0,0xd,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0xe,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x15,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x12,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x15,0x0,0x4,0x0,0x15,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x15,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x17,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x17,0x0,0x4,0x0,0x1c,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x1e,0x0,0x5,0x0,0x1d,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x1e,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1d,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x1e,0x0,0x0,0x0,0x1f,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x21,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x14,0x0,0x2,0x0,0x24,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x0,0x0,0x80,0x3f,0x2b,0x0,0x4,0x0,0x10,0x0,0x0,0x0,0x2d,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x15,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x38,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x38,0x0,0x0,0x0,0x39,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x19,0x0,0x9,0x0,0x3a,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1b,0x0,0x3,0x0,0x3b,0x0,0x0,0x0,0x3a,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x3c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3b,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x3c,0x0,0x0,0x0,0x3d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x41,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x15,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x20,0x0,0x4,0x0,0x46,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x2b,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x49,0x0,0x0,0x0,0xcd,0xcc,0xcc,0x3d,0x36,0x0,0x5,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x5,0x0,0x0,0x0,0x3b,0x0,0x4,0x0,0x8,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x7,0x0,0x0,0x0,0xc,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x9,0x0,0x0,0x0,0xc,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x12,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x81,0x0,0x5,0x0,0x6,0x0,0x0,0x0,0x1a,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x1b,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x1b,0x0,0x0,0x0,0x1a,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x21,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x1f,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x15,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0xab,0x0,0x5,0x0,0x24,0x0,0x0,0x0,0x25,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0xf7,0x0,0x3,0x0,0x27,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfa,0x0,0x4,0x0,0x25,0x0,0x0,0x0,0x26,0x0,0x0,0x0,0x27,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x26,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x29,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x29,0x0,0x0,0x0,0x83,0x0,0x5,0x0,0x6,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x2c,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x2c,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0xf9,0x0,0x2,0x0,0x27,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x27,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x21,0x0,0x0,0x0,0x2e,0x0,0x0,0x0,0x1f,0x0,0x0,0x0,0x2d,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x15,0x0,0x0,0x0,0x2f,0x0,0x0,0x0,0x2e,0x0,0x0,0x0,0xab,0x0,0x5,0x0,0x24,0x0,0x0,0x0,0x30,0x0,0x0,0x0,0x2f,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0xf7,0x0,0x3,0x0,0x32,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfa,0x0,0x4,0x0,0x30,0x0,0x0,0x0,0x31,0x0,0x0,0x0,0x32,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x31,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x35,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0x83,0x0,0x5,0x0,0x6,0x0,0x0,0x0,0x36,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x35,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x17,0x0,0x0,0x0,0x37,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x37,0x0,0x0,0x0,0x36,0x0,0x0,0x0,0xf9,0x0,0x2,0x0,0x32,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x32,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x3b,0x0,0x0,0x0,0x3e,0x0,0x0,0x0,0x3d,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x7,0x0,0x0,0x0,0x3f,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x57,0x0,0x5,0x0,0x1c,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x3e,0x0,0x0,0x0,0x3f,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x41,0x0,0x0,0x0,0x42,0x0,0x0,0x0,0x1f,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x1c,0x0,0x0,0x0,0x43,0x0,0x0,0x0,0x42,0x0,0x0,0x0,0x85,0x0,0x5,0x0,0x1c,0x0,0x0,0x0,0x44,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x43,0x0,0x0,0x0,0x3e,0x0,0x3,0x0,0x39,0x0,0x0,0x0,0x44,0x0,0x0,0x0,0x41,0x0,0x5,0x0,0x46,0x0,0x0,0x0,0x47,0x0,0x0,0x0,0x39,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x3d,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x48,0x0,0x0,0x0,0x47,0x0,0x0,0x0,0xb8,0x0,0x5,0x0,0x24,0x0,0x0,0x0,0x4a,0x0,0x0,0x0,0x48,0x0,0x0,0x0,0x49,0x0,0x0,0x0,0xf7,0x0,0x3,0x0,0x4c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfa,0x0,0x4,0x0,0x4a,0x0,0x0,0x0,0x4b,0x0,0x0,0x0,0x4c,0x0,0x0,0x0,0xf8,0x0,0x2,0x0,0x4b,0x0,0x0,0x0,0xfc,0x0,0x1,0x0,0xf8,0x0,0x2,0x0,0x4c,0x0,0x0,0x0,0xfd,0x0,0x1,0x0,0x38,0x0,0x1,0x0,}; } // namespace ia::iae diff --git a/Src/IAEngine/inc/IAEngine/Components/SpriteRenderer.hpp b/Src/IAEngine/inc/IAEngine/Components/SpriteRenderer.hpp index 454279f..3eeb45e 100644 --- a/Src/IAEngine/inc/IAEngine/Components/SpriteRenderer.hpp +++ b/Src/IAEngine/inc/IAEngine/Components/SpriteRenderer.hpp @@ -76,6 +76,11 @@ namespace ia::iae return m_sortOffset; } + FLOAT32& ParallaxFactor() + { + return m_parallaxFactor; + } + public: VOID Draw(); VOID Update(); @@ -84,6 +89,7 @@ namespace ia::iae VOID UpdateAnimation(); private: + FLOAT32 m_parallaxFactor{0.0f}; FLOAT32 m_sortOffset{}; BOOL m_isFlippedV{false}; BOOL m_isFlippedH{false}; diff --git a/Src/IAEngine/inc/IAEngine/Rendering/Renderer.hpp b/Src/IAEngine/inc/IAEngine/Rendering/Renderer.hpp index dd58709..203cda5 100644 --- a/Src/IAEngine/inc/IAEngine/Rendering/Renderer.hpp +++ b/Src/IAEngine/inc/IAEngine/Rendering/Renderer.hpp @@ -51,6 +51,8 @@ namespace ia::iae STATIC Camera2D* GetCamera(); + STATIC VOID SetParallaxFactor(IN FLOAT32 value); + public: STATIC INT32 Width() {