2020-01-07 01:11:19 +01:00
|
|
|
#pragma once
|
2019-10-05 12:28:08 +02:00
|
|
|
|
|
|
|
#include "gl_uniform.h"
|
|
|
|
|
|
|
|
class FShader
|
|
|
|
{
|
|
|
|
friend class FShaderManager;
|
|
|
|
friend class FRenderState;
|
|
|
|
|
|
|
|
unsigned int hVertProg = 0;
|
|
|
|
unsigned int hFragProg = 0;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
unsigned int hShader = 0;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
FShader() = default;
|
|
|
|
virtual ~FShader();
|
|
|
|
|
|
|
|
virtual bool Load(const char * name, const char * vert_prog_lump, const char * fragprog); //, const char * fragprog2, const char *defines);
|
|
|
|
bool Bind();
|
|
|
|
unsigned int GetHandle() const { return hShader; }
|
|
|
|
};
|
|
|
|
|
|
|
|
class PolymostShader : public FShader
|
|
|
|
{
|
|
|
|
public:
|
2019-10-19 22:46:37 +02:00
|
|
|
FBufferedUniform1i Flags;
|
2020-06-08 08:16:50 +02:00
|
|
|
FBufferedUniform2f NPOTEmulation;
|
|
|
|
FBufferedUniformPalEntry FogColor;
|
2019-10-06 12:42:35 +02:00
|
|
|
|
2020-06-07 08:16:04 +02:00
|
|
|
FBufferedUniform1i TextureMode;
|
2020-06-06 00:44:57 +02:00
|
|
|
FBufferedUniform4f DetailParms;
|
|
|
|
FBufferedUniform1f AlphaThreshold;
|
|
|
|
FBufferedUniform1i muFogEnabled;
|
|
|
|
FBufferedUniform4f muLightParms;
|
2019-10-06 10:19:51 +02:00
|
|
|
FUniformMatrix4f ModelMatrix;
|
2019-10-10 19:40:33 +02:00
|
|
|
FUniformMatrix4f TextureMatrix;
|
2020-06-05 17:02:21 +02:00
|
|
|
FBufferedUniform4f muTextureBlendColor;
|
|
|
|
FBufferedUniform4f muTextureModulateColor;
|
|
|
|
FBufferedUniform4f muTextureAddColor;
|
2019-10-10 19:40:33 +02:00
|
|
|
|
2019-10-05 12:28:08 +02:00
|
|
|
public:
|
|
|
|
|
|
|
|
PolymostShader() = default;
|
|
|
|
virtual bool Load(const char * name, const char * vert_prog_lump, const char * fragprog); //, const char * fragprog2, const char *defines);
|
|
|
|
};
|
2019-10-05 13:09:15 +02:00
|
|
|
|