From b8ef2a4622c1cb69604afa4406f1ef59d88052d3 Mon Sep 17 00:00:00 2001 From: Mykhailo Parfeniuk Date: Fri, 18 Aug 2017 20:52:00 +0300 Subject: [PATCH] Fullscreen triangle --- .gitignore | 1 + main.c | 4 ++-- shaders/fullscreentri.vert | 27 +++++++++++++++++++++++++++ shaders/rtprimitives.frag | 11 +++++++++++ 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 shaders/fullscreentri.vert create mode 100644 shaders/rtprimitives.frag diff --git a/.gitignore b/.gitignore index 9c7a218..7f4884e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ ipch/ *.VC.db *.vspx *.tmp +*.spv* diff --git a/main.c b/main.c index abe8635..e4e8891 100644 --- a/main.c +++ b/main.c @@ -428,8 +428,8 @@ VkPipeline pipeline; int createPipeline() { - VkShaderModule vertexShader = createShaderModule("shaders\\shader.vert.spv"); - VkShaderModule fragmentShader = createShaderModule("shaders\\shader.frag.spv"); + VkShaderModule vertexShader = createShaderModule("shaders\\fullscreentri.vert.spv"); + VkShaderModule fragmentShader = createShaderModule("shaders\\rtprimitives.frag.spv"); const VkPipelineShaderStageCreateInfo stages[] = { { diff --git a/shaders/fullscreentri.vert b/shaders/fullscreentri.vert new file mode 100644 index 0000000..b923309 --- /dev/null +++ b/shaders/fullscreentri.vert @@ -0,0 +1,27 @@ +#version 450 +#extension GL_ARB_separate_shader_objects : enable + +out gl_PerVertex +{ + vec4 gl_Position; +}; + +layout(location = 0) out vec3 fragColor; + +vec2 positions[3] = vec2[]( + vec2(-1.0, 1.0), + vec2(-1.0, -3.0), + vec2( 3.0, 1.0) +); + +vec3 colors[3] = vec3[]( + vec3(1.0, 0.0, 0.0), + vec3(0.0, 1.0, 0.0), + vec3(0.0, 0.0, 1.0) +); + +void main() +{ + gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0); + fragColor = colors[gl_VertexIndex]; +} diff --git a/shaders/rtprimitives.frag b/shaders/rtprimitives.frag new file mode 100644 index 0000000..81b8e37 --- /dev/null +++ b/shaders/rtprimitives.frag @@ -0,0 +1,11 @@ +#version 450 +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 0) in vec3 fragColor; + +layout(location = 0) out vec4 outColor; + +void main() +{ + outColor = vec4(fragColor, 1.0); +}