FCT
载入中...
搜索中...
未找到
FCT::ShaderGenerator类 参考

#include <ShaderGenerator.h>

FCT::ShaderGenerator 的协作图:
Collaboration graph

Public 成员函数

 ShaderGenerator ()=default
void ResourceLayoutToElements (ResourceLayout &resourceLayout, std::vector< TextureElement > &textureElements, std::vector< SamplerElement > &samplerElements)
std::string generateVertexShader (const std::map< uint32_t, VertexLayout > &vertexLayouts, const PixelLayout &pixelLayout, const std::vector< ConstLayout > &uniformLayouts, RHI::ShaderBinary &binary, ResourceLayout &resourceLayout, const std::string &userCode)
std::string generatePixelShader (const PixelLayout &layout, const std::vector< ConstLayout > &uniformLayouts, RHI::ShaderBinary &binary, ResourceLayout &resourceLayout, const std::string &userCode)
std::string generateDefaultVertexMain (const std::map< uint32_t, VertexLayout > &vertexLayouts, const PixelLayout &pixelLayout)
std::string generateDefaultPixelMain (const PixelLayout &pixelLayout)
std::pair< uint32_t, uint32_t > getLayoutBinding (ConstLayout layout)
std::pair< uint32_t, uint32_t > getTextureBinding (TextureElement texture)
std::pair< uint32_t, uint32_t > getSamplerBinding (SamplerElement sampler)
TextureElement findTextureElementByName (std::string name)
std::pair< uint32_t, uint32_t > allocateTextureBinding (const TextureElement &texture)
std::pair< uint32_t, uint32_t > allocateSamplerBinding (const SamplerElement &sampler)

Protected 成员函数

std::string generateShaderIn (const std::map< uint32_t, VertexLayout > &layouts, std::map< std::string, uint32_t > &locationMap)
std::string generateShaderIn (const PixelLayout &layout)
std::string generateShaderOut (const PixelLayout &layout)
std::string generateShaderOut ()
std::string generateFromPixelLayout (const PixelLayout &layout)
std::string generateVertexMain (const std::map< uint32_t, VertexLayout > &vertexLayouts, const PixelLayout &pixelLayout)
std::string generatePixelMain (const PixelLayout &pixelLayout)
std::string generateTexturesAndSamplers (RHI::ShaderBinary &binary, const std::vector< TextureElement > &textures, const std::vector< SamplerElement > &samplers)
std::string uniformTypeToShaderType (ConstType type)
std::string generateConstBuffer (RHI::ShaderBinary &binary, const std::vector< ConstLayout > &uniforms)

Protected 属性

std::vector< std::pair< ConstLayout, std::pair< uint32_t, uint32_t > > > m_layoutSetBindings
std::unordered_map< UpdateFrequency, uint32_t > m_frequencyBindingCount
std::vector< std::pair< TextureElement, std::pair< uint32_t, uint32_t > > > m_textureSetBindings
std::vector< std::pair< SamplerElement, std::pair< uint32_t, uint32_t > > > m_samplerSetBindings

详细描述

在文件 ShaderGenerator.h23 行定义.

构造及析构函数说明

◆ ShaderGenerator()

FCT::ShaderGenerator::ShaderGenerator ( )
default

成员函数说明

◆ allocateSamplerBinding()

std::pair< uint32_t, uint32_t > FCT::ShaderGenerator::allocateSamplerBinding ( const SamplerElement & sampler)

在文件 ShaderGenerator.cpp381 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ allocateTextureBinding()

std::pair< uint32_t, uint32_t > FCT::ShaderGenerator::allocateTextureBinding ( const TextureElement & texture)

在文件 ShaderGenerator.cpp339 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ findTextureElementByName()

TextureElement FCT::ShaderGenerator::findTextureElementByName ( std::string name)
inline

在文件 ShaderGenerator.h81 行定义.

这是这个函数的调用关系图:

◆ generateConstBuffer()

std::string FCT::ShaderGenerator::generateConstBuffer ( RHI::ShaderBinary & binary,
const std::vector< ConstLayout > & uniforms )
protected

在文件 ShaderGenerator.cpp506 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ generateDefaultPixelMain()

std::string FCT::ShaderGenerator::generateDefaultPixelMain ( const PixelLayout & pixelLayout)

在文件 ShaderGenerator.cpp106 行定义.

函数调用图:

◆ generateDefaultVertexMain()

std::string FCT::ShaderGenerator::generateDefaultVertexMain ( const std::map< uint32_t, VertexLayout > & vertexLayouts,
const PixelLayout & pixelLayout )

在文件 ShaderGenerator.cpp68 行定义.

函数调用图:

◆ generateFromPixelLayout()

std::string FCT::ShaderGenerator::generateFromPixelLayout ( const PixelLayout & layout)
protected

在文件 ShaderGenerator.cpp256 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ generatePixelMain()

std::string FCT::ShaderGenerator::generatePixelMain ( const PixelLayout & pixelLayout)
protected

在文件 ShaderGenerator.cpp324 行定义.

这是这个函数的调用关系图:

◆ generatePixelShader()

std::string FCT::ShaderGenerator::generatePixelShader ( const PixelLayout & layout,
const std::vector< ConstLayout > & uniformLayouts,
RHI::ShaderBinary & binary,
ResourceLayout & resourceLayout,
const std::string & userCode )

在文件 ShaderGenerator.cpp48 行定义.

函数调用图:

◆ generateShaderIn() [1/2]

std::string FCT::ShaderGenerator::generateShaderIn ( const PixelLayout & layout)
protected

在文件 ShaderGenerator.cpp212 行定义.

函数调用图:

◆ generateShaderIn() [2/2]

std::string FCT::ShaderGenerator::generateShaderIn ( const std::map< uint32_t, VertexLayout > & layouts,
std::map< std::string, uint32_t > & locationMap )
protected

在文件 ShaderGenerator.cpp159 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ generateShaderOut() [1/2]

std::string FCT::ShaderGenerator::generateShaderOut ( )
protected

在文件 ShaderGenerator.cpp238 行定义.

这是这个函数的调用关系图:

◆ generateShaderOut() [2/2]

std::string FCT::ShaderGenerator::generateShaderOut ( const PixelLayout & layout)
protected

在文件 ShaderGenerator.cpp225 行定义.

函数调用图:

◆ generateTexturesAndSamplers()

std::string FCT::ShaderGenerator::generateTexturesAndSamplers ( RHI::ShaderBinary & binary,
const std::vector< TextureElement > & textures,
const std::vector< SamplerElement > & samplers )
protected

在文件 ShaderGenerator.cpp423 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ generateVertexMain()

std::string FCT::ShaderGenerator::generateVertexMain ( const std::map< uint32_t, VertexLayout > & vertexLayouts,
const PixelLayout & pixelLayout )
protected

在文件 ShaderGenerator.cpp273 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ generateVertexShader()

std::string FCT::ShaderGenerator::generateVertexShader ( const std::map< uint32_t, VertexLayout > & vertexLayouts,
const PixelLayout & pixelLayout,
const std::vector< ConstLayout > & uniformLayouts,
RHI::ShaderBinary & binary,
ResourceLayout & resourceLayout,
const std::string & userCode )

在文件 ShaderGenerator.cpp23 行定义.

函数调用图:

◆ getLayoutBinding()

std::pair< uint32_t, uint32_t > FCT::ShaderGenerator::getLayoutBinding ( ConstLayout layout)
inline

在文件 ShaderGenerator.h49 行定义.

◆ getSamplerBinding()

std::pair< uint32_t, uint32_t > FCT::ShaderGenerator::getSamplerBinding ( SamplerElement sampler)
inline

在文件 ShaderGenerator.h71 行定义.

◆ getTextureBinding()

std::pair< uint32_t, uint32_t > FCT::ShaderGenerator::getTextureBinding ( TextureElement texture)
inline

在文件 ShaderGenerator.h59 行定义.

◆ ResourceLayoutToElements()

void FCT::ShaderGenerator::ResourceLayoutToElements ( ResourceLayout & resourceLayout,
std::vector< TextureElement > & textureElements,
std::vector< SamplerElement > & samplerElements )

在文件 ShaderGenerator.cpp6 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ uniformTypeToShaderType()

std::string FCT::ShaderGenerator::uniformTypeToShaderType ( ConstType type)
protected

在文件 ShaderGenerator.cpp476 行定义.

这是这个函数的调用关系图:

类成员变量说明

◆ m_frequencyBindingCount

std::unordered_map<UpdateFrequency, uint32_t> FCT::ShaderGenerator::m_frequencyBindingCount
protected

在文件 ShaderGenerator.h119 行定义.

◆ m_layoutSetBindings

std::vector<std::pair<ConstLayout, std::pair<uint32_t, uint32_t> > > FCT::ShaderGenerator::m_layoutSetBindings
protected

在文件 ShaderGenerator.h118 行定义.

◆ m_samplerSetBindings

std::vector<std::pair<SamplerElement, std::pair<uint32_t, uint32_t> > > FCT::ShaderGenerator::m_samplerSetBindings
protected

在文件 ShaderGenerator.h122 行定义.

◆ m_textureSetBindings

std::vector<std::pair<TextureElement, std::pair<uint32_t, uint32_t> > > FCT::ShaderGenerator::m_textureSetBindings
protected

在文件 ShaderGenerator.h121 行定义.


该类的文档由以下文件生成: