|
MythTV master
|
Creates shader objects suitable for use with the Vulkan API. More...
#include <libmythui/vulkan/mythshadervulkan.h>
Public Member Functions | |
| ~MythShaderVulkan () | |
| VkPrimitiveTopology | GetTopology () const |
| VkPipelineLayout | GetPipelineLayout (void) const |
| const MythVertexAttrs & | GetVertexAttributes (void) const |
| const VkVertexInputBindingDescription & | GetVertexBindingDesc (void) const |
| const std::vector< VkPipelineShaderStageCreateInfo > & | Stages (void) const |
| const std::vector< VkDescriptorPoolSize > & | GetPoolSizes (size_t Set) const |
| VkDescriptorSetLayout | GetDescSetLayout (size_t Set) const |
Static Public Member Functions | |
| static MythShaderVulkan * | Create (MythVulkanObject *Vulkan, const std::vector< int > &Stages, const MythShaderMap *Sources=nullptr, const MythBindingMap *Bindings=nullptr) |
Protected Member Functions | |
| MythShaderVulkan (MythVulkanObject *Vulkan, const std::vector< int > &Stages, const MythShaderMap *Sources=nullptr, const MythBindingMap *Bindings=nullptr) | |
Protected Member Functions inherited from MythVulkanObject | |
| void | CheckValid () |
| MythVulkanObject (MythRenderVulkan *Render) | |
| MythVulkanObject (MythVulkanObject *Other) | |
| bool | IsValidVulkan () const |
| MythRenderVulkan * | Render () |
| VkDevice | Device () |
| QVulkanDeviceFunctions * | Funcs () |
| MythWindowVulkan * | Window () |
Private Member Functions | |
| bool | CreateShaderFromSPIRV (const std::vector< MythSPIRVStage > &Stages) |
Private Attributes | |
| VkPrimitiveTopology | m_topology { VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP } |
| VkVertexInputBindingDescription | m_vertexBindingDesc { } |
| MythVertexAttrs | m_vertexAttributes |
| std::vector< VkPipelineShaderStageCreateInfo > | m_stages |
| std::vector< uint32_t * > | m_spirv |
| VkPipelineLayout | m_pipelineLayout { MYTH_NULL_DISPATCH } |
| std::vector< VkDescriptorSetLayout > | m_descriptorSetLayouts |
| std::vector< std::vector< VkDescriptorPoolSize > > | m_descriptorPoolSizes |
Additional Inherited Members | |
Static Protected Member Functions inherited from MythVulkanObject | |
| static MythVulkanObject * | Create (MythRenderVulkan *Render) |
Protected Attributes inherited from MythVulkanObject | |
| bool | m_vulkanValid { true } |
| MythRenderVulkan * | m_vulkanRender { nullptr } |
| VkDevice | m_vulkanDevice { nullptr } |
| QVulkanDeviceFunctions * | m_vulkanFuncs { nullptr } |
| MythWindowVulkan * | m_vulkanWindow { nullptr } |
Creates shader objects suitable for use with the Vulkan API.
By default, shaders are created from SPIR-V bytecode. If libglslang support is available and the environment variable MYTHTV_GLSLANG is set, shaders will be compiled from the GLSL source code. libglslang support is currently intended for development use only - i.e. to test and compile shaders.
Definition at line 21 of file mythshadervulkan.h.
| MythShaderVulkan::~MythShaderVulkan | ( | ) |
Definition at line 417 of file mythshadervulkan.cpp.
|
protected |
Definition at line 288 of file mythshadervulkan.cpp.
Referenced by Create().
|
static |
Definition at line 273 of file mythshadervulkan.cpp.
Referenced by MythVisualVulkan::InitialiseVulkan(), and MythPainterVulkan::Ready().
|
private |
Definition at line 431 of file mythshadervulkan.cpp.
Referenced by MythShaderVulkan().
| VkDescriptorSetLayout MythShaderVulkan::GetDescSetLayout | ( | size_t | Set | ) | const |
Definition at line 485 of file mythshadervulkan.cpp.
Referenced by MythVisualVulkan::InitialiseVulkan(), and MythPainterVulkan::Ready().
| VkPipelineLayout MythShaderVulkan::GetPipelineLayout | ( | void | ) | const |
Definition at line 472 of file mythshadervulkan.cpp.
Referenced by MythRenderVulkan::CreatePipeline(), MythVisualMonoScopeVulkan::Draw(), MythVisualCirclesVulkan::DrawPriv(), and MythPainterVulkan::End().
| const std::vector< VkDescriptorPoolSize > & MythShaderVulkan::GetPoolSizes | ( | size_t | Set | ) | const |
Definition at line 477 of file mythshadervulkan.cpp.
Referenced by MythVisualVulkan::InitialiseVulkan(), and MythPainterVulkan::Ready().
| VkPrimitiveTopology MythShaderVulkan::GetTopology | ( | ) | const |
Definition at line 492 of file mythshadervulkan.cpp.
Referenced by MythRenderVulkan::CreatePipeline().
| const MythVertexAttrs & MythShaderVulkan::GetVertexAttributes | ( | void | ) | const |
Definition at line 462 of file mythshadervulkan.cpp.
Referenced by MythRenderVulkan::CreatePipeline().
| const VkVertexInputBindingDescription & MythShaderVulkan::GetVertexBindingDesc | ( | void | ) | const |
Definition at line 467 of file mythshadervulkan.cpp.
Referenced by MythRenderVulkan::CreatePipeline().
| const std::vector< VkPipelineShaderStageCreateInfo > & MythShaderVulkan::Stages | ( | void | ) | const |
Definition at line 456 of file mythshadervulkan.cpp.
Referenced by Create(), MythRenderVulkan::CreatePipeline(), CreateShaderFromSPIRV(), and MythShaderVulkan().
|
private |
Definition at line 64 of file mythshadervulkan.h.
Referenced by GetPoolSizes(), and MythShaderVulkan().
|
private |
Definition at line 63 of file mythshadervulkan.h.
Referenced by GetDescSetLayout(), MythShaderVulkan(), and ~MythShaderVulkan().
|
private |
Definition at line 60 of file mythshadervulkan.h.
Referenced by GetPipelineLayout(), MythShaderVulkan(), and ~MythShaderVulkan().
|
private |
Definition at line 59 of file mythshadervulkan.h.
Referenced by CreateShaderFromSPIRV(), and ~MythShaderVulkan().
|
private |
Definition at line 58 of file mythshadervulkan.h.
Referenced by CreateShaderFromSPIRV(), Stages(), and ~MythShaderVulkan().
|
private |
Definition at line 55 of file mythshadervulkan.h.
Referenced by GetTopology(), and MythShaderVulkan().
|
private |
Definition at line 57 of file mythshadervulkan.h.
Referenced by GetVertexAttributes(), and MythShaderVulkan().
|
private |
Definition at line 56 of file mythshadervulkan.h.
Referenced by GetVertexBindingDesc(), and MythShaderVulkan().