#pragma once #include "OpenGLRenderer.h" #include "ShaderTypes.h" #include #include #include enum class RenderPassKind { LayerEffect }; enum class RenderPassOutputTarget { Temporary, LayerTemp, Composite }; struct RenderPassDescriptor { RenderPassKind kind = RenderPassKind::LayerEffect; RenderPassOutputTarget outputTarget = RenderPassOutputTarget::Composite; std::size_t passIndex = 0; std::string passId; std::string layerId; std::string shaderId; GLuint sourceTexture = 0; GLuint sourceFramebuffer = 0; GLuint destinationTexture = 0; GLuint destinationFramebuffer = 0; OpenGLRenderer::LayerProgram* layerProgram = nullptr; OpenGLRenderer::LayerProgram::PassProgram* passProgram = nullptr; const RuntimeRenderState* layerState = nullptr; bool capturePreLayerHistory = false; bool captureFeedbackWrite = false; };