26 template<
typename... Args>
35 template<
typename... Args>
52 template<
typename... Args>
61 template<
typename... Args>
71 template<
typename... Args>
80 template<
typename... Args>
87 template<
typename... Args>
102 template<
typename... Args>
157 std::unordered_map<size_t, FCT::RHI::RasterizationPipeline*>
m_pipelines;
constexpr const char * getName() const noexcept
std::map< std::string, FCT::ConstLayout > m_uniformLayouts
void bindVertexShader(FCT::VertexShader *shader)
void proccessArgs(FCT::PixelLayout pixelLayout, Args... args)
void bindUniform(const Uniform &uniform)
std::unordered_map< std::string, const char * > m_textureNames
void proccessArgs(PassName passName, Args... args)
void setFixedImage(std::string name, FCT::Image *image)
void bindPixelShader(FCT::PixelShader *shader)
void processUnhandledTextureSlots()
FCT::ResourceLayout m_pixelResourceLayout
void attachPass(FCT::RenderGraph *graph, std::string passName)
void proccessArgs(UniformSlot uniformSlot, Args... args)
void proccessArgs(SamplerSlot samplerSlot, Args... args)
Layout(FCT::Context *ctx, Args... args)
void bindSampler(std::string name, FCT::Sampler *sampler)
void drawMesh(RHI::CommandBuffer *cmdBuffer, T *mesh)
uint32_t m_nextAvailableIndex
uint32_t findNextAvailableIndex()
void bindTexture(std::string name, FCT::Image *image)
FCT::ResourceLayout m_vertexResourceLayout
void proccessArgs(TextureSlot textureSlot, Args... args)
std::unordered_map< std::string, FCT::Image * > m_fixedImages
void addTextureSlot(FCT::TextureElement element)
TraditionPipelineState m_pipelineState
FCT::ResourceLayout m_resourceLayout
std::map< uint32_t, FCT::VertexLayout > m_vertexLayouts
FCT::RHI::RasterizationPipeline * getCurrentPipeline()
PassResourceState m_passResourceState
void proccessArgs(FCT::VertexLayout vertexLayout, Args... args)
PassResourceCache m_passResourceCache
FCT::PixelLayout m_pixelLayout
PipelineCache m_pipelineCache
void ctx(FCT::Context *ctx)
FCT::PixelShader * allocatePixelShader(std::string code)
void proccessArgs(uint32_t index, FCT::VertexLayout vertexLayout, Args... args)
Uniform allocateUniform(std::string name)
FCT::VertexShader * allocateVertexShader(std::string code)
FCT::PassResource * getCurrentPassResource()
std::vector< TextureSlot > m_unhandledTextureSlots
constexpr ShaderStages getShaderStages() const noexcept
FCT::SamplerElement SamplerSlot
FCT::ConstType UniformType
FCT::ConstElement UniformVar
FCT::ConstLayout UniformSlot
FCT::PassResource * get(const PassResourceState &state, const std::function< FCT::PassResource *(const PassResourceState &state)> &creator)
std::unordered_map< size_t, FCT::PassResource * > m_passResources
std::unordered_map< std::string, FCT::RHI::ConstBuffer * > boundUniforms
void bindUniform(const std::string &name, const Uniform &uniform)
void bindTexture(const std::string &name, FCT::Image *image)
std::unordered_map< std::string, FCT::Image * > boundTextures
std::unordered_map< std::string, FCT::Sampler * > boundSamplers
void bindSampler(const std::string &name, FCT::Sampler *sampler)
std::unordered_map< size_t, FCT::RHI::RasterizationPipeline * > m_pipelines
FCT::RHI::RasterizationPipeline * get(const TraditionPipelineState &state, const std::function< FCT::RHI::RasterizationPipeline *(const TraditionPipelineState &state)> &creator)
FCT::DepthStencilState * depthStencilState
FCT::BlendState * blendState
FCT::PixelShader * pixelShader
FCT::RasterizationState * rasterizationState
bool operator==(const TraditionPipelineState &other) const
FCT::VertexShader * vertexShader