PixelShaderVK.h 824 B

12345678910111213141516171819202122232425262728293031323334
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2024 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #pragma once
  5. #include <Renderer/PixelShader.h>
  6. #include <vulkan/vulkan.h>
  7. /// Pixel shader handle for Vulkan
  8. class PixelShaderVK : public PixelShader
  9. {
  10. public:
  11. /// Constructor
  12. PixelShaderVK(VkDevice inDevice, VkShaderModule inShaderModule) :
  13. mDevice(inDevice),
  14. mStageInfo()
  15. {
  16. mStageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
  17. mStageInfo.stage = VK_SHADER_STAGE_FRAGMENT_BIT;
  18. mStageInfo.module = inShaderModule;
  19. mStageInfo.pName = "main";
  20. }
  21. /// Destructor
  22. virtual ~PixelShaderVK() override
  23. {
  24. vkDestroyShaderModule(mDevice, mStageInfo.module, nullptr);
  25. }
  26. VkDevice mDevice;
  27. VkPipelineShaderStageCreateInfo mStageInfo;
  28. };