blob: f9649dd0d73b7a66f4d78b449ca9e569a40c63d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#pragma once
#include "Runtime/GfxDevice/GpuProgram.h"
#include "Runtime/GfxDevice/ChannelAssigns.h"
class ShaderErrors;
class GlslGpuProgram : public GpuProgramGL {
public:
GlslGpuProgram( const std::string& source, CreateGpuProgramOutput& output );
virtual ~GlslGpuProgram();
virtual void ApplyGpuProgram (const GpuProgramParameters& params, const UInt8* buffer);
GLShaderID GetGLProgram (FogMode fog, GpuProgramParameters& outParams);
private:
bool Create( const std::string& source, ShaderErrors& outErrors );
static void FillParams (GLShaderID programID, GpuProgramParameters& params, PropertyNamesSet* outNames);
void FillChannels (ChannelAssigns& channels);
private:
GLShaderID m_GLSLVertexShader[kFogModeCount];
GLShaderID m_GLSLFragmentShader[kFogModeCount];
int m_FogColorIndex[kFogModeCount];
int m_FogParamsIndex[kFogModeCount];
bool m_FogFailed[kFogModeCount];
};
|