|
MythTV master
|
#include <libmythui/vulkan/mythrendervulkan.h>
Signals | |
| void | DoFreeResources (void) |
| void | PhysicalDeviceLost (void) |
| void | LogicalDeviceLost (void) |
Public Member Functions | |
| MythRenderVulkan () | |
| ~MythRenderVulkan () override | |
| void | SetVulkanWindow (MythWindowVulkan *VulkanWindow) |
| MythWindowVulkan * | GetVulkanWindow (void) |
| void | SetFrameExpected (void) |
| bool | GetFrameExpected (void) const |
| bool | GetFrameStarted (void) const |
| void | EndFrame (void) |
| QStringList | GetDescription (void) override |
| void | preInitResources (void) override |
| void | initResources (void) override |
| void | initSwapChainResources (void) override |
| void | releaseSwapChainResources (void) override |
| void | releaseResources (void) override |
| void | startNextFrame (void) override |
| void | physicalDeviceLost (void) override |
| void | logicalDeviceLost (void) override |
| void | BeginDebugRegion (VkCommandBuffer CommandBuffer, const char *Name, MythVulkan4F Color) |
| void | EndDebugRegion (VkCommandBuffer CommandBuffer) |
| bool | CreateImage (QSize Size, VkFormat Format, VkImageTiling Tiling, VkImageUsageFlags Usage, VkMemoryPropertyFlags Properties, VkImage &Image, VkDeviceMemory &ImageMemory) |
| void | TransitionImageLayout (VkImage &Image, VkImageLayout OldLayout, VkImageLayout NewLayout, VkCommandBuffer CommandBuffer=nullptr) |
| void | CopyBufferToImage (VkBuffer Buffer, VkImage Image, uint32_t Width, uint32_t Height, VkCommandBuffer CommandBuffer=nullptr) |
| bool | CreateBuffer (VkDeviceSize Size, VkBufferUsageFlags Usage, VkMemoryPropertyFlags Properties, VkBuffer &Buffer, VkDeviceMemory &Memory) |
| void | CopyBuffer (VkBuffer Src, VkBuffer Dst, VkDeviceSize Size, VkCommandBuffer CommandBuffer=nullptr) |
| VkPipeline | CreatePipeline (MythShaderVulkan *Shader, QRect Viewport, std::vector< VkDynamicState > Dynamic={ }) |
| VkCommandBuffer | CreateSingleUseCommandBuffer (void) |
| void | FinishSingleUseCommandBuffer (VkCommandBuffer &Buffer) |
| VkSampler | CreateSampler (VkFilter Min, VkFilter Mag) |
| VkPhysicalDeviceFeatures | GetPhysicalDeviceFeatures () const |
| VkPhysicalDeviceLimits | GetPhysicalDeviceLimits () const |
Public Member Functions inherited from MythRender | |
| MythRender (RenderType type) | |
| bool | IsShared (void) const |
| Warning: The reference count can be decremented between the call to this function and the use of it's value. More... | |
| RenderType | Type (void) const |
| bool | IsErrored (void) const |
| QSize | GetSize (void) const |
| virtual QStringList | GetDescription () |
| virtual void | SetViewPort (const QRect, bool=false) |
Public Member Functions inherited from ReferenceCounter | |
| ReferenceCounter (const QString &debugName, bool logDebug=true) | |
| Creates reference counter with an initial value of 1. More... | |
| virtual int | IncrRef (void) |
| Increments reference count. More... | |
| virtual int | DecrRef (void) |
| Decrements reference count and deletes on 0. More... | |
Static Public Member Functions | |
| static MythRenderVulkan * | GetVulkanRender (void) |
Static Public Member Functions inherited from ReferenceCounter | |
| static void | PrintDebug (void) |
| Print out any leaks if that level of debugging is enabled. More... | |
Private Member Functions | |
| std::optional< uint32_t > | FindMemoryType (uint32_t Filter, VkMemoryPropertyFlags Properties) |
| void | BeginFrame (void) |
| void | DebugVulkan (void) |
Private Attributes | |
| MythWindowVulkan * | m_window { nullptr } |
| VkDevice | m_device { nullptr } |
| QVulkanFunctions * | m_funcs { nullptr } |
| QVulkanDeviceFunctions * | m_devFuncs { nullptr } |
| VkPhysicalDeviceFeatures | m_phyDevFeatures { } |
| VkPhysicalDeviceLimits | m_phyDevLimits { } |
| bool | m_frameExpected { false } |
| bool | m_frameStarted { false } |
| QMap< QString, QString > | m_debugInfo |
| MythDebugVulkan * | m_debugMarker { nullptr } |
Additional Inherited Members | |
Protected Member Functions inherited from MythRender | |
| ~MythRender () override=default | |
| virtual void | ReleaseResources (void) |
Protected Member Functions inherited from ReferenceCounter | |
| virtual | ~ReferenceCounter (void) |
| Called on destruction, will warn if object deleted with references in place. More... | |
Protected Attributes inherited from MythRender | |
| RenderType | m_type |
| QSize | m_size |
| bool | m_errored {false} |
Protected Attributes inherited from ReferenceCounter | |
| bool | m_logDebug |
| This is used to suppress creating LoggingItem classes for LoggingItem reference count changes. More... | |
| QAtomicInt | m_referenceCount {1} |
Definition at line 61 of file mythrendervulkan.h.
| MythRenderVulkan::MythRenderVulkan | ( | ) |
Definition at line 103 of file mythrendervulkan.cpp.
|
override |
Definition at line 114 of file mythrendervulkan.cpp.
| void MythRenderVulkan::BeginDebugRegion | ( | VkCommandBuffer | CommandBuffer, |
| const char * | Name, | ||
| MythVulkan4F | Color | ||
| ) |
Definition at line 532 of file mythrendervulkan.cpp.
Referenced by MythPainterVulkan::End(), MythVideoVulkan::PrepareFrame(), and MythVideoOutputVulkan::RenderFrame().
|
private |
Definition at line 335 of file mythrendervulkan.cpp.
Referenced by startNextFrame().
| void MythRenderVulkan::CopyBuffer | ( | VkBuffer | Src, |
| VkBuffer | Dst, | ||
| VkDeviceSize | Size, | ||
| VkCommandBuffer | CommandBuffer = nullptr |
||
| ) |
Definition at line 439 of file mythrendervulkan.cpp.
Referenced by MythIndexBufferVulkan::MythIndexBufferVulkan(), MythVertexBufferVulkan::Update(), and MythBufferVulkan::Update().
| void MythRenderVulkan::CopyBufferToImage | ( | VkBuffer | Buffer, |
| VkImage | Image, | ||
| uint32_t | Width, | ||
| uint32_t | Height, | ||
| VkCommandBuffer | CommandBuffer = nullptr |
||
| ) |
Definition at line 419 of file mythrendervulkan.cpp.
Referenced by MythTextureVulkan::MythTextureVulkan().
| bool MythRenderVulkan::CreateBuffer | ( | VkDeviceSize | Size, |
| VkBufferUsageFlags | Usage, | ||
| VkMemoryPropertyFlags | Properties, | ||
| VkBuffer & | Buffer, | ||
| VkDeviceMemory & | Memory | ||
| ) |
Definition at line 456 of file mythrendervulkan.cpp.
Referenced by MythBufferVulkan::MythBufferVulkan(), MythIndexBufferVulkan::MythIndexBufferVulkan(), MythTextureVulkan::MythTextureVulkan(), and MythUniformBufferVulkan::MythUniformBufferVulkan().
| bool MythRenderVulkan::CreateImage | ( | QSize | Size, |
| VkFormat | Format, | ||
| VkImageTiling | Tiling, | ||
| VkImageUsageFlags | Usage, | ||
| VkMemoryPropertyFlags | Properties, | ||
| VkImage & | Image, | ||
| VkDeviceMemory & | ImageMemory | ||
| ) |
Definition at line 545 of file mythrendervulkan.cpp.
Referenced by MythTextureVulkan::MythTextureVulkan().
| VkPipeline MythRenderVulkan::CreatePipeline | ( | MythShaderVulkan * | Shader, |
| QRect | Viewport, | ||
| std::vector< VkDynamicState > | Dynamic = { } |
||
| ) |
Definition at line 652 of file mythrendervulkan.cpp.
Referenced by MythVisualVulkan::InitialiseVulkan(), and MythPainterVulkan::Ready().
| VkSampler MythRenderVulkan::CreateSampler | ( | VkFilter | Min, |
| VkFilter | Mag | ||
| ) |
Definition at line 499 of file mythrendervulkan.cpp.
Referenced by MythTextureVulkan::MythTextureVulkan(), and MythPainterVulkan::Ready().
| VkCommandBuffer MythRenderVulkan::CreateSingleUseCommandBuffer | ( | void | ) |
Definition at line 624 of file mythrendervulkan.cpp.
Referenced by CopyBuffer(), CopyBufferToImage(), MythVideoTextureVulkan::DeleteTextures(), MythPainterVulkan::GetTextureFromCache(), MythTextureVulkan::MythTextureVulkan(), MythVideoVulkan::PrepareFrame(), and TransitionImageLayout().
|
private |
Definition at line 176 of file mythrendervulkan.cpp.
Referenced by initResources().
|
signal |
Referenced by MythPainterVulkan::MythPainterVulkan(), and releaseResources().
| void MythRenderVulkan::EndDebugRegion | ( | VkCommandBuffer | CommandBuffer | ) |
Definition at line 539 of file mythrendervulkan.cpp.
Referenced by MythPainterVulkan::End(), MythVideoVulkan::PrepareFrame(), and MythVideoOutputVulkan::RenderEnd().
| void MythRenderVulkan::EndFrame | ( | void | ) |
Definition at line 361 of file mythrendervulkan.cpp.
Referenced by MythPainterVulkan::End(), and MythVideoVulkan::EndFrame().
|
private |
Definition at line 606 of file mythrendervulkan.cpp.
Referenced by CreateBuffer(), and CreateImage().
| void MythRenderVulkan::FinishSingleUseCommandBuffer | ( | VkCommandBuffer & | Buffer | ) |
Definition at line 640 of file mythrendervulkan.cpp.
Referenced by CopyBuffer(), CopyBufferToImage(), MythVideoTextureVulkan::DeleteTextures(), MythPainterVulkan::End(), MythTextureVulkan::MythTextureVulkan(), MythVideoVulkan::PrepareFrame(), and TransitionImageLayout().
|
overridevirtual |
Reimplemented from MythRender.
Definition at line 163 of file mythrendervulkan.cpp.
| bool MythRenderVulkan::GetFrameExpected | ( | void | ) | const |
Definition at line 311 of file mythrendervulkan.cpp.
Referenced by MythWindowVulkan::event().
| bool MythRenderVulkan::GetFrameStarted | ( | void | ) | const |
Definition at line 316 of file mythrendervulkan.cpp.
| VkPhysicalDeviceFeatures MythRenderVulkan::GetPhysicalDeviceFeatures | ( | ) | const |
Definition at line 522 of file mythrendervulkan.cpp.
Referenced by MythVisualMonoScopeVulkan::InitialiseVulkan().
| VkPhysicalDeviceLimits MythRenderVulkan::GetPhysicalDeviceLimits | ( | ) | const |
Definition at line 527 of file mythrendervulkan.cpp.
Referenced by MythVisualMonoScopeVulkan::InitialiseVulkan().
|
static |
Definition at line 89 of file mythrendervulkan.cpp.
Referenced by MythVideoOutputVulkan::GetAllowedRenderers(), and MythPainterVulkan::Ready().
| MythWindowVulkan * MythRenderVulkan::GetVulkanWindow | ( | void | ) |
Definition at line 127 of file mythrendervulkan.cpp.
Referenced by MythVulkanObject::MythVulkanObject(), and MythPainterVulkan::Ready().
|
override |
Definition at line 137 of file mythrendervulkan.cpp.
|
override |
Definition at line 266 of file mythrendervulkan.cpp.
|
signal |
Referenced by logicalDeviceLost().
|
override |
Definition at line 298 of file mythrendervulkan.cpp.
|
signal |
Referenced by physicalDeviceLost().
|
override |
Definition at line 292 of file mythrendervulkan.cpp.
|
override |
Definition at line 132 of file mythrendervulkan.cpp.
|
override |
Definition at line 276 of file mythrendervulkan.cpp.
|
override |
Definition at line 271 of file mythrendervulkan.cpp.
| void MythRenderVulkan::SetFrameExpected | ( | void | ) |
Definition at line 304 of file mythrendervulkan.cpp.
Referenced by MythPainterVulkan::End(), and MythVideoVulkan::StartFrame().
| void MythRenderVulkan::SetVulkanWindow | ( | MythWindowVulkan * | VulkanWindow | ) |
Definition at line 122 of file mythrendervulkan.cpp.
|
override |
Definition at line 321 of file mythrendervulkan.cpp.
| void MythRenderVulkan::TransitionImageLayout | ( | VkImage & | Image, |
| VkImageLayout | OldLayout, | ||
| VkImageLayout | NewLayout, | ||
| VkCommandBuffer | CommandBuffer = nullptr |
||
| ) |
Definition at line 371 of file mythrendervulkan.cpp.
Referenced by MythTextureVulkan::MythTextureVulkan().
|
private |
Definition at line 134 of file mythrendervulkan.h.
Referenced by DebugVulkan(), and GetDescription().
|
private |
Definition at line 135 of file mythrendervulkan.h.
Referenced by BeginDebugRegion(), EndDebugRegion(), initResources(), and releaseResources().
|
private |
Definition at line 129 of file mythrendervulkan.h.
Referenced by BeginFrame(), CopyBuffer(), CopyBufferToImage(), CreateBuffer(), CreateImage(), CreatePipeline(), CreateSampler(), CreateSingleUseCommandBuffer(), EndFrame(), FinishSingleUseCommandBuffer(), initResources(), releaseResources(), and TransitionImageLayout().
|
private |
Definition at line 127 of file mythrendervulkan.h.
Referenced by CreateBuffer(), CreateImage(), CreatePipeline(), CreateSampler(), CreateSingleUseCommandBuffer(), FinishSingleUseCommandBuffer(), initResources(), and releaseResources().
|
private |
Definition at line 132 of file mythrendervulkan.h.
Referenced by GetFrameExpected(), releaseResources(), SetFrameExpected(), and startNextFrame().
|
private |
Definition at line 133 of file mythrendervulkan.h.
Referenced by BeginFrame(), EndFrame(), GetFrameStarted(), and releaseResources().
|
private |
Definition at line 128 of file mythrendervulkan.h.
Referenced by FindMemoryType(), initResources(), and releaseResources().
|
private |
Definition at line 130 of file mythrendervulkan.h.
Referenced by GetPhysicalDeviceFeatures(), initResources(), and releaseResources().
|
private |
Definition at line 131 of file mythrendervulkan.h.
Referenced by GetPhysicalDeviceLimits(), initResources(), and releaseResources().
|
private |
Definition at line 126 of file mythrendervulkan.h.
Referenced by BeginFrame(), CreatePipeline(), CreateSingleUseCommandBuffer(), DebugVulkan(), EndFrame(), FindMemoryType(), FinishSingleUseCommandBuffer(), GetVulkanWindow(), initResources(), SetVulkanWindow(), and startNextFrame().