diff --git a/examples/VulkanTest/main.cpp b/examples/VulkanTest/main.cpp index 1411ac0ab..c777a65b2 100644 --- a/examples/VulkanTest/main.cpp +++ b/examples/VulkanTest/main.cpp @@ -3,6 +3,8 @@ #include #include +#define SPIRV 0 + int main() { Nz::Initializer loader; @@ -27,6 +29,7 @@ int main() std::shared_ptr device = window.GetRenderDevice(); +#if SPIRV auto fragmentShader = device->InstantiateShaderStage(Nz::ShaderStageType::Fragment, Nz::ShaderLanguage::SpirV, "resources/shaders/triangle.frag.spv"); if (!fragmentShader) { @@ -40,6 +43,21 @@ int main() std::cout << "Failed to instantiate fragment shader" << std::endl; return __LINE__; } +#else + auto fragmentShader = device->InstantiateShaderStage(Nz::ShaderStageType::Fragment, Nz::ShaderLanguage::GLSL, "resources/shaders/triangle.frag"); + if (!fragmentShader) + { + std::cout << "Failed to instantiate fragment shader" << std::endl; + return __LINE__; + } + + auto vertexShader = device->InstantiateShaderStage(Nz::ShaderStageType::Vertex, Nz::ShaderLanguage::GLSL, "resources/shaders/triangle.vert"); + if (!vertexShader) + { + std::cout << "Failed to instantiate fragment shader" << std::endl; + return __LINE__; + } +#endif Nz::MeshRef drfreak = Nz::Mesh::LoadFromFile("resources/Spaceship/spaceship.obj", meshParams); diff --git a/examples/bin/resources/shaders/spirv-triangle.bat b/examples/bin/resources/shaders/spirv-triangle.bat index 0459876df..af7bd2eda 100644 --- a/examples/bin/resources/shaders/spirv-triangle.bat +++ b/examples/bin/resources/shaders/spirv-triangle.bat @@ -1,3 +1,3 @@ -glslangvalidator -V triangle.vert -o triangle.vert.spv -glslangvalidator -V triangle.frag -o triangle.frag.spv +glslangvalidator -V triangle.vert -o triangle.vert.spv --client opengl100 +glslangvalidator -V triangle.frag -o triangle.frag.spv --client opengl100 diff --git a/examples/bin/resources/shaders/triangle.frag.spv b/examples/bin/resources/shaders/triangle.frag.spv index 31ec5000f..855cf613a 100644 Binary files a/examples/bin/resources/shaders/triangle.frag.spv and b/examples/bin/resources/shaders/triangle.frag.spv differ diff --git a/examples/bin/resources/shaders/triangle.vert b/examples/bin/resources/shaders/triangle.vert index b967590b8..de648f231 100644 --- a/examples/bin/resources/shaders/triangle.vert +++ b/examples/bin/resources/shaders/triangle.vert @@ -28,4 +28,5 @@ void main() outNormal = inNormals; outTexCoords = inTexCoord; gl_Position = ubo.projectionMatrix * ubo.viewMatrix * ubo.modelMatrix * vec4(inPos, 1.0); + gl_Position.y = -gl_Position.y; } diff --git a/examples/bin/resources/shaders/triangle.vert.spv b/examples/bin/resources/shaders/triangle.vert.spv index a9b99027f..58b0936f4 100644 Binary files a/examples/bin/resources/shaders/triangle.vert.spv and b/examples/bin/resources/shaders/triangle.vert.spv differ