Lugdunum  0.1.0
ShaderModule.cpp
Go to the documentation of this file.
2 
4 
5 namespace lug {
6 namespace Graphics {
7 namespace Vulkan {
8 namespace API {
9 
10 ShaderModule::ShaderModule(VkShaderModule shaderModule, const Device* device) : _shaderModule(shaderModule), _device(device) {}
11 
13  _shaderModule = shaderModule._shaderModule;
14  _device = shaderModule._device;
15  shaderModule._shaderModule = VK_NULL_HANDLE;
16  shaderModule._device = nullptr;
17 }
18 
20  destroy();
21 
22  _shaderModule = shaderModule._shaderModule;
23  _device = shaderModule._device;
24  shaderModule._shaderModule = VK_NULL_HANDLE;
25  shaderModule._device = nullptr;
26 
27  return *this;
28 }
29 
31  destroy();
32 }
33 
35  if (_shaderModule != VK_NULL_HANDLE) {
36  vkDestroyShaderModule(static_cast<VkDevice>(*_device), _shaderModule, nullptr);
37  _shaderModule = VK_NULL_HANDLE;
38  }
39 }
40 
41 } // API
42 } // Vulkan
43 } // Graphics
44 } // lug
ShaderModule & operator=(const ShaderModule &)=delete