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 20 of file mythshadervulkan.h.
MythShaderVulkan::~MythShaderVulkan | ( | ) |
Definition at line 404 of file mythshadervulkan.cpp.
|
protected |
Definition at line 275 of file mythshadervulkan.cpp.
Referenced by Create().
|
static |
Definition at line 260 of file mythshadervulkan.cpp.
Referenced by MythVisualVulkan::InitialiseVulkan(), and MythPainterVulkan::Ready().
VkPrimitiveTopology MythShaderVulkan::GetTopology | ( | ) | const |
Definition at line 478 of file mythshadervulkan.cpp.
Referenced by MythRenderVulkan::CreatePipeline().
VkPipelineLayout MythShaderVulkan::GetPipelineLayout | ( | void | ) | const |
Definition at line 458 of file mythshadervulkan.cpp.
Referenced by MythRenderVulkan::CreatePipeline(), MythVisualMonoScopeVulkan::Draw(), MythVisualCirclesVulkan::DrawPriv(), and MythPainterVulkan::End().
const MythVertexAttrs & MythShaderVulkan::GetVertexAttributes | ( | void | ) | const |
Definition at line 448 of file mythshadervulkan.cpp.
Referenced by MythRenderVulkan::CreatePipeline().
const VkVertexInputBindingDescription & MythShaderVulkan::GetVertexBindingDesc | ( | void | ) | const |
Definition at line 453 of file mythshadervulkan.cpp.
Referenced by MythRenderVulkan::CreatePipeline().
const std::vector< VkPipelineShaderStageCreateInfo > & MythShaderVulkan::Stages | ( | void | ) | const |
Definition at line 442 of file mythshadervulkan.cpp.
Referenced by Create(), MythRenderVulkan::CreatePipeline(), CreateShaderFromSPIRV(), and MythShaderVulkan().
const std::vector< VkDescriptorPoolSize > & MythShaderVulkan::GetPoolSizes | ( | size_t | Set | ) | const |
Definition at line 463 of file mythshadervulkan.cpp.
Referenced by MythVisualVulkan::InitialiseVulkan(), and MythPainterVulkan::Ready().
VkDescriptorSetLayout MythShaderVulkan::GetDescSetLayout | ( | size_t | Set | ) | const |
Definition at line 471 of file mythshadervulkan.cpp.
Referenced by MythVisualVulkan::InitialiseVulkan(), and MythPainterVulkan::Ready().
|
private |
Definition at line 418 of file mythshadervulkan.cpp.
|
private |
Definition at line 54 of file mythshadervulkan.h.
Referenced by GetTopology(), and MythShaderVulkan().
|
private |
Definition at line 55 of file mythshadervulkan.h.
Referenced by GetVertexBindingDesc(), and MythShaderVulkan().
|
private |
Definition at line 56 of file mythshadervulkan.h.
Referenced by GetVertexAttributes(), and MythShaderVulkan().
|
private |
Definition at line 57 of file mythshadervulkan.h.
Referenced by CreateShaderFromSPIRV(), Stages(), and ~MythShaderVulkan().
|
private |
Definition at line 58 of file mythshadervulkan.h.
Referenced by CreateShaderFromSPIRV(), and ~MythShaderVulkan().
|
private |
Definition at line 59 of file mythshadervulkan.h.
Referenced by GetPipelineLayout(), MythShaderVulkan(), and ~MythShaderVulkan().
|
private |
Definition at line 62 of file mythshadervulkan.h.
Referenced by GetDescSetLayout(), MythShaderVulkan(), and ~MythShaderVulkan().
|
private |
Definition at line 63 of file mythshadervulkan.h.
Referenced by GetPoolSizes(), and MythShaderVulkan().