PeriDyno 1.0.0
Loading...
Searching...
No Matches
dyno::VkGraphicsPipeline Class Reference

#include <VkGraphicsPipeline.h>

Inheritance diagram for dyno::VkGraphicsPipeline:
Collaboration diagram for dyno::VkGraphicsPipeline:

Classes

struct  GraphicsUBO
 

Public Member Functions

 VkGraphicsPipeline ()
 
 ~VkGraphicsPipeline ()
 
void prepare (VkRenderPass renderPass) override
 
void setupDescriptorPool ()
 
void setupLayoutsAndDescriptors ()
 
void preparePipelines (VkRenderPass renderPass)
 
void buildCommandBuffers (VkCommandBuffer drawCmdBuffer) override
 
void updateGraphicsUBO ()
 
void viewChanged (const glm::mat4 &perspective, const glm::mat4 &view) override
 
- Public Member Functions inherited from dyno::VkVisualModule
 VkVisualModule ()
 
virtual ~VkVisualModule ()
 
std::string getModuleType () override
 
virtual void updateGraphicsContext ()
 
- Public Member Functions inherited from dyno::VisualModule
 VisualModule ()
 
virtual ~VisualModule ()
 
void setVisible (bool bVisible)
 
bool isVisible ()
 
- Public Member Functions inherited from dyno::Module
 Module (std::string name="default")
 
 ~Module (void) override
 
bool initialize ()
 
void update ()
 
void setName (std::string name)
 
std::string getName () override
 
virtual void setParentNode (Node *node)
 Set the parent node.
 
NodegetParentNode ()
 
SceneGraphgetSceneGraph ()
 
bool isInitialized ()
 
bool attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true) override
 Attach a field to Base.
 
bool isInputComplete ()
 Check the completeness of input fields.
 
bool isOutputCompete ()
 
 DEF_VAR (bool, ForceUpdate, false, "")
 
void setUpdateAlways (bool b)
 Set the update strategy for the module.
 
- Public Member Functions inherited from dyno::OBase
 OBase ()
 
 ~OBase () override
 
virtual std::string caption ()
 Return the caption.
 
virtual bool captionVisible ()
 Whether to hide the caption in the GUI.
 
virtual std::string description ()
 Return a description for the node or module, override this function to support user-defined description.
 
bool addField (FBase *data)
 Add a field to Base FieldID will be set to the name of Field by default.
 
bool addField (FieldID name, FBase *data)
 Add a field to Base.
 
bool addFieldAlias (FieldID name, FBase *data)
 
bool addFieldAlias (FieldID name, FBase *data, FieldMap &fieldAlias)
 
bool findField (FBase *data)
 Find a field by its pointer.
 
bool findFieldAlias (const FieldID name)
 Find a field by its name.
 
bool findFieldAlias (const FieldID name, FieldMap &fieldAlias)
 Find a field in fieldAlias by its name This function is typically called by other functions.
 
bool removeField (FBase *data)
 Remove a field by its pointer.
 
bool removeFieldAlias (const FieldID name)
 Remove a field by its name.
 
bool removeFieldAlias (const FieldID name, FieldMap &fieldAlias)
 
FBasegetField (const FieldID name)
 Return a field by its name.
 
std::vector< FBase * > & getAllFields ()
 
template<typename T>
TgetField (FieldID name)
 
bool isAllFieldsReady ()
 Check the completeness of all required fields.
 
std::vector< FieldIDgetFieldAlias (FBase *data)
 
int getFieldAliasCount (FBase *data)
 
void setBlockCoord (float x, float y)
 
float bx ()
 
float by ()
 
bool findInputField (FBase *field)
 
bool addInputField (FBase *field)
 
bool removeInputField (FBase *field)
 
std::vector< FBase * > & getInputFields ()
 
bool findOutputField (FBase *field)
 
bool addOutputField (FBase *field)
 
bool addToOutput (FBase *field)
 
bool removeOutputField (FBase *field)
 
bool removeFromOutput (FBase *field)
 
std::vector< FBase * > & getOutputFields ()
 
bool findParameter (FBase *field)
 
bool addParameter (FBase *field)
 
bool removeParameter (FBase *field)
 
std::vector< FBase * > & getParameters ()
 
- Public Member Functions inherited from dyno::Object
 Object ()
 
virtual ~Object ()
 
ObjectId objectId ()
 

Public Attributes

struct dyno::VkGraphicsPipeline::GraphicsUBO ubo
 
VkDeviceArray< VertexmCubeVertex
 
VkDeviceArray< uint32_t > mCubeIndex
 
VkDeviceArray< px::BoxmCubeInstanceData
 
VkDeviceArray< VertexmSphereVertex
 
VkDeviceArray< uint32_t > mSphereIndex
 
VkDeviceArray< px::SpheremSphereInstanceData
 
VkDeviceArray< VertexmCapsuleVertex
 
VkDeviceArray< uint32_t > mCapsuleIndex
 
VkDeviceArray< px::CapsulemCapsuleInstanceData
 
VkUniform< GraphicsUBOmUniform
 

Protected Member Functions

std::string getShadersPath () const
 
VkPipelineShaderStageCreateInfo loadShader (std::string fileName, VkShaderStageFlagBits stage)
 
- Protected Member Functions inherited from dyno::VkVisualModule
void updateImpl () override
 
- Protected Member Functions inherited from dyno::Module
virtual bool initializeImpl ()
 
virtual void preprocess ()
 
virtual void postprocess ()
 
virtual bool validateInputs ()
 
virtual bool validateOutputs ()
 
virtual bool requireUpdate ()
 
virtual void updateStarted ()
 Two functions called at the beginning and end of update() used for debug.
 
virtual void updateEnded ()
 

Private Attributes

std::string shaderDir = "glsl"
 
VkContextctx
 
VkDescriptorPool descriptorPool = VK_NULL_HANDLE
 
bool specializedComputeQueue = false
 
VkDescriptorSetLayout descriptorSetLayout
 
VkDescriptorSet descriptorSet
 
VkPipelineLayout pipelineLayout
 
VkPipeline pipeline
 
VkPipeline spherePipeline
 
VkPipeline capsulePipeline
 
VkPipeline trianglePipeline
 
std::vector< VkShaderModule > shaderModules
 

Additional Inherited Members

- Public Types inherited from dyno::OBase
typedef std::vector< FBase * > FieldVector
 
typedef std::map< FieldID, FBase * > FieldMap
 
- Static Public Member Functions inherited from dyno::Object
static bool registerClass (ClassInfo *ci)
 
static ObjectcreateObject (std::string name)
 
static std::map< std::string, ClassInfo * > * getClassMap ()
 
static ObjectId baseId ()
 Base Id.
 
- Protected Attributes inherited from dyno::OBase
std::vector< FBase * > fields_input
 
std::vector< FBase * > fields_output
 
std::vector< FBase * > fields_param
 

Detailed Description

Definition at line 23 of file VkGraphicsPipeline.h.

Constructor & Destructor Documentation

◆ VkGraphicsPipeline()

dyno::VkGraphicsPipeline::VkGraphicsPipeline ( )

Definition at line 7 of file VkGraphicsPipeline.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~VkGraphicsPipeline()

dyno::VkGraphicsPipeline::~VkGraphicsPipeline ( )

Definition at line 16 of file VkGraphicsPipeline.cpp.

Member Function Documentation

◆ buildCommandBuffers()

void dyno::VkGraphicsPipeline::buildCommandBuffers ( VkCommandBuffer drawCmdBuffer)
overridevirtual

Implements dyno::VkVisualModule.

Definition at line 245 of file VkGraphicsPipeline.cpp.

◆ getShadersPath()

std::string dyno::VkGraphicsPipeline::getShadersPath ( ) const
protected

Definition at line 290 of file VkGraphicsPipeline.cpp.

Here is the caller graph for this function:

◆ loadShader()

VkPipelineShaderStageCreateInfo dyno::VkGraphicsPipeline::loadShader ( std::string fileName,
VkShaderStageFlagBits stage )
protected

Definition at line 295 of file VkGraphicsPipeline.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepare()

void dyno::VkGraphicsPipeline::prepare ( VkRenderPass renderPass)
inlineoverridevirtual

Implements dyno::VkVisualModule.

Definition at line 30 of file VkGraphicsPipeline.h.

Here is the call graph for this function:

◆ preparePipelines()

void dyno::VkGraphicsPipeline::preparePipelines ( VkRenderPass renderPass)

Definition at line 69 of file VkGraphicsPipeline.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setupDescriptorPool()

void dyno::VkGraphicsPipeline::setupDescriptorPool ( )

Definition at line 30 of file VkGraphicsPipeline.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setupLayoutsAndDescriptors()

void dyno::VkGraphicsPipeline::setupLayoutsAndDescriptors ( )

Definition at line 44 of file VkGraphicsPipeline.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateGraphicsUBO()

void dyno::VkGraphicsPipeline::updateGraphicsUBO ( )
inline

Definition at line 52 of file VkGraphicsPipeline.h.

Here is the caller graph for this function:

◆ viewChanged()

void dyno::VkGraphicsPipeline::viewChanged ( const glm::mat4 & perspective,
const glm::mat4 & view )
inlineoverridevirtual

Implements dyno::VkVisualModule.

Definition at line 57 of file VkGraphicsPipeline.h.

Member Data Documentation

◆ capsulePipeline

VkPipeline dyno::VkGraphicsPipeline::capsulePipeline
private

Definition at line 84 of file VkGraphicsPipeline.h.

◆ ctx

VkContext* dyno::VkGraphicsPipeline::ctx
private

Definition at line 72 of file VkGraphicsPipeline.h.

◆ descriptorPool

VkDescriptorPool dyno::VkGraphicsPipeline::descriptorPool = VK_NULL_HANDLE
private

Definition at line 74 of file VkGraphicsPipeline.h.

◆ descriptorSet

VkDescriptorSet dyno::VkGraphicsPipeline::descriptorSet
private

Definition at line 80 of file VkGraphicsPipeline.h.

◆ descriptorSetLayout

VkDescriptorSetLayout dyno::VkGraphicsPipeline::descriptorSetLayout
private

Definition at line 79 of file VkGraphicsPipeline.h.

◆ mCapsuleIndex

VkDeviceArray<uint32_t> dyno::VkGraphicsPipeline::mCapsuleIndex

Definition at line 107 of file VkGraphicsPipeline.h.

◆ mCapsuleInstanceData

VkDeviceArray<px::Capsule> dyno::VkGraphicsPipeline::mCapsuleInstanceData

Definition at line 108 of file VkGraphicsPipeline.h.

◆ mCapsuleVertex

VkDeviceArray<Vertex> dyno::VkGraphicsPipeline::mCapsuleVertex

Definition at line 106 of file VkGraphicsPipeline.h.

◆ mCubeIndex

VkDeviceArray<uint32_t> dyno::VkGraphicsPipeline::mCubeIndex

Definition at line 99 of file VkGraphicsPipeline.h.

◆ mCubeInstanceData

VkDeviceArray<px::Box> dyno::VkGraphicsPipeline::mCubeInstanceData

Definition at line 100 of file VkGraphicsPipeline.h.

◆ mCubeVertex

VkDeviceArray<Vertex> dyno::VkGraphicsPipeline::mCubeVertex

Definition at line 98 of file VkGraphicsPipeline.h.

◆ mSphereIndex

VkDeviceArray<uint32_t> dyno::VkGraphicsPipeline::mSphereIndex

Definition at line 103 of file VkGraphicsPipeline.h.

◆ mSphereInstanceData

VkDeviceArray<px::Sphere> dyno::VkGraphicsPipeline::mSphereInstanceData

Definition at line 104 of file VkGraphicsPipeline.h.

◆ mSphereVertex

VkDeviceArray<Vertex> dyno::VkGraphicsPipeline::mSphereVertex

Definition at line 102 of file VkGraphicsPipeline.h.

◆ mUniform

VkUniform<GraphicsUBO> dyno::VkGraphicsPipeline::mUniform

Definition at line 110 of file VkGraphicsPipeline.h.

◆ pipeline

VkPipeline dyno::VkGraphicsPipeline::pipeline
private

Definition at line 82 of file VkGraphicsPipeline.h.

◆ pipelineLayout

VkPipelineLayout dyno::VkGraphicsPipeline::pipelineLayout
private

Definition at line 81 of file VkGraphicsPipeline.h.

◆ shaderDir

std::string dyno::VkGraphicsPipeline::shaderDir = "glsl"
private

Definition at line 70 of file VkGraphicsPipeline.h.

◆ shaderModules

std::vector<VkShaderModule> dyno::VkGraphicsPipeline::shaderModules
private

Definition at line 86 of file VkGraphicsPipeline.h.

◆ specializedComputeQueue

bool dyno::VkGraphicsPipeline::specializedComputeQueue = false
private

Definition at line 76 of file VkGraphicsPipeline.h.

◆ spherePipeline

VkPipeline dyno::VkGraphicsPipeline::spherePipeline
private

Definition at line 83 of file VkGraphicsPipeline.h.

◆ trianglePipeline

VkPipeline dyno::VkGraphicsPipeline::trianglePipeline
private

Definition at line 85 of file VkGraphicsPipeline.h.

◆ ubo

struct dyno::VkGraphicsPipeline::GraphicsUBO dyno::VkGraphicsPipeline::ubo

The documentation for this class was generated from the following files: