| 
    Nameless Engine
    
   | 
 
Classes | |
| struct | Resources | 
Public Member Functions | |
| ComputePipelines (const ComputePipelines &)=delete | |
| ComputePipelines & | operator= (const ComputePipelines &)=delete | 
| std::variant< PipelineSharedPtr, Error > | getComputePipelineForShader (PipelineManager *pPipelineManager, ComputeShaderInterface *pComputeShaderInterface) | 
| std::optional< Error > | onPipelineNoLongerUsedByComputeShaderInterface (const std::string &sComputeShaderName, ComputeShaderInterface *pComputeShaderInterface) | 
| std::optional< Error > | queueShaderExecutionOnGraphicsQueue (ComputeShaderInterface *pComputeShaderInterface) | 
| size_t | getComputePipelineCount () | 
| std::pair< std::recursive_mutex *, QueuedForExecutionComputeShaders * > | getComputeShadersForGraphicsQueueExecution () | 
Static Private Member Functions | |
| static std::optional< Error > | queueComputeShaderInterfaceForExecution (std::unordered_map< Pipeline *, std::unordered_set< ComputeShaderInterface * > > &pipelineShaders, ComputeShaderInterface *pComputeShaderInterface) | 
Private Attributes | |
| std::pair< std::recursive_mutex, Resources > | mtxResources | 
Groups information about compute pipelines.
| size_t ne::PipelineManager::ComputePipelines::getComputePipelineCount | ( | ) | 
Returns the total number of existing compute pipelines.
| std::variant< PipelineSharedPtr, Error > ne::PipelineManager::ComputePipelines::getComputePipelineForShader | ( | PipelineManager * | pPipelineManager, | 
| ComputeShaderInterface * | pComputeShaderInterface | ||
| ) | 
Look for already created pipeline that uses the specified shader and returns it, otherwise creates a new pipeline.
| pPipelineManager | Pipeline manager. | 
| pComputeShaderInterface | Compute shader interface to add. | 
      
  | 
  inline | 
Returns all compute shaders and their pipelines to be executed on the graphics queue.
| std::optional< Error > ne::PipelineManager::ComputePipelines::onPipelineNoLongerUsedByComputeShaderInterface | ( | const std::string & | sComputeShaderName, | 
| ComputeShaderInterface * | pComputeShaderInterface | ||
| ) | 
Removes the specified compute shader interface and if no other interface references the compute pipeline (that the shader used) also destroys the pipeline.
PipelineSharedPtr's destructor.| sComputeShaderName | Name of the compute shader that compute pipeline uses. | 
| pComputeShaderInterface | Compute shader interface to remove. | 
      
  | 
  staticprivate | 
Adds a compute shader interface to the specified map to be executed.
| pipelineShaders | Map to add the new interface to. | 
| pComputeShaderInterface | Interface to add. | 
| std::optional< Error > ne::PipelineManager::ComputePipelines::queueShaderExecutionOnGraphicsQueue | ( | ComputeShaderInterface * | pComputeShaderInterface | ) | 
Adds a compute shader interface to be executed on the graphics queue according to shader's execution stage and group.
| pComputeShaderInterface | Compute shader interface to queue for execution. | 
      
  | 
  private | 
Pipeline data.