Advertisement
jaggy_2k

draw triangle

Mar 21st, 2024
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.00 KB | Source Code | 0 0
  1. //SHADER SOURCES
  2. const char* vertexShaderSource = R"(
  3. #version 450
  4. vec2 positions[3] = vec2[](
  5.    vec2(0.0, -0.5),
  6.    vec2(0.5, 0.5),
  7.    vec2(-0.5, 0.5)
  8. );
  9.  
  10. void main() {
  11.    gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
  12. }
  13. )";
  14.  
  15. const char* pixelShaderSource = R"(
  16. #version 450
  17.  
  18. layout(location = 0) out vec4 outColor;
  19.  
  20. void main() {
  21.    outColor = vec4(1.0, 0.0, 0.0, 1.0);
  22. }
  23. )";
  24.  
  25. //DRAW CALL
  26. for (int i = 0; i < m_cmdBufs.size();i++) {
  27.             VkCommandBufferBeginInfo vkCommandBufferBeginInfo{};
  28.             vkCommandBufferBeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
  29.  
  30.             CHECK_VK_RESULT(vkBeginCommandBuffer(m_cmdBufs[i], &vkCommandBufferBeginInfo));
  31.            
  32.             VkRenderPassBeginInfo vkRenderPassBeginInfo{};
  33.             vkRenderPassBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
  34.             vkRenderPassBeginInfo.renderPass = m_renderPass;
  35.             vkRenderPassBeginInfo.framebuffer = m_fbs[i];
  36.  
  37.             VkSurfaceCapabilitiesKHR SurfaceCaps;
  38.             vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, &SurfaceCaps);
  39.  
  40.             vkRenderPassBeginInfo.renderArea.offset = { 0,0 };
  41.             vkRenderPassBeginInfo.renderArea.extent = SurfaceCaps.currentExtent;
  42.  
  43.             VkClearValue clearValues[2];
  44.             clearValues[0].color = { 0.001f,0.101f,0.001f,1.0f };//background color
  45.             clearValues[1].depthStencil = { 1.0f,0 };
  46.  
  47.             vkRenderPassBeginInfo.clearValueCount = static_cast<uint32_t>(sizeof(clearValues) / sizeof(VkClearValue));
  48.             vkRenderPassBeginInfo.pClearValues = clearValues;
  49.  
  50.             vkCmdBeginRenderPass(m_cmdBufs[i], &vkRenderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
  51.  
  52.             vkCmdBindPipeline(m_cmdBufs[i], VK_PIPELINE_BIND_POINT_GRAPHICS, m_pipeline);
  53.  
  54.             vkCmdDraw(m_cmdBufs[i], 3, 1, 0, 0);
  55.  
  56.             vkCmdEndRenderPass(m_cmdBufs[i]);
  57.  
  58.             CHECK_VK_RESULT(vkEndCommandBuffer(m_cmdBufs[i]));
  59.  
  60.         }
  61.  
Tags: vulkan
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement