27 lines
956 B
C++
27 lines
956 B
C++
#pragma once
|
|
|
|
#include "OpenGLRenderer.h"
|
|
#include "RuntimeHost.h"
|
|
#include "ShaderTextureBindings.h"
|
|
|
|
#include <string>
|
|
|
|
class ShaderProgramCompiler
|
|
{
|
|
public:
|
|
using LayerProgram = OpenGLRenderer::LayerProgram;
|
|
using PassProgram = OpenGLRenderer::LayerProgram::PassProgram;
|
|
|
|
ShaderProgramCompiler(OpenGLRenderer& renderer, RuntimeHost& runtimeHost, ShaderTextureBindings& textureBindings);
|
|
|
|
bool CompileLayerProgram(const RuntimeRenderState& state, LayerProgram& layerProgram, int errorMessageSize, char* errorMessage);
|
|
bool CompilePreparedLayerProgram(const RuntimeRenderState& state, const std::string& fragmentShaderSource, LayerProgram& layerProgram, int errorMessageSize, char* errorMessage);
|
|
bool CompileDecodeShader(int errorMessageSize, char* errorMessage);
|
|
bool CompileOutputPackShader(int errorMessageSize, char* errorMessage);
|
|
|
|
private:
|
|
OpenGLRenderer& mRenderer;
|
|
RuntimeHost& mRuntimeHost;
|
|
ShaderTextureBindings& mTextureBindings;
|
|
};
|