aboutsummaryrefslogtreecommitdiff
path: root/src/client/shader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/shader.h')
-rw-r--r--src/client/shader.h107
1 files changed, 41 insertions, 66 deletions
diff --git a/src/client/shader.h b/src/client/shader.h
index 4d1578df0..109d39336 100644
--- a/src/client/shader.h
+++ b/src/client/shader.h
@@ -39,10 +39,10 @@ class IGameDef;
Utilizes a thread-safe cache.
*/
-std::string getShaderPath(const std::string &name_of_shader, const std::string &filename);
+std::string getShaderPath(const std::string &name_of_shader,
+ const std::string &filename);
-struct ShaderInfo
-{
+struct ShaderInfo {
std::string name = "";
video::E_MATERIAL_TYPE base_material = video::EMT_SOLID;
video::E_MATERIAL_TYPE material = video::EMT_SOLID;
@@ -57,43 +57,38 @@ struct ShaderInfo
Setter of constants for shaders
*/
-namespace irr
-{
-namespace video
-{
-class IMaterialRendererServices;
-}
-}
+namespace irr { namespace video {
+ class IMaterialRendererServices;
+} }
-class IShaderConstantSetter
-{
+
+class IShaderConstantSetter {
public:
virtual ~IShaderConstantSetter() = default;
virtual void onSetConstants(video::IMaterialRendererServices *services,
bool is_highlevel) = 0;
- virtual void onSetMaterial(const video::SMaterial &material) {}
+ virtual void onSetMaterial(const video::SMaterial& material)
+ { }
};
-class IShaderConstantSetterFactory
-{
+
+class IShaderConstantSetterFactory {
public:
virtual ~IShaderConstantSetterFactory() = default;
- virtual IShaderConstantSetter *create() = 0;
+ virtual IShaderConstantSetter* create() = 0;
};
-template <typename T, std::size_t count = 1> class CachedShaderSetting
-{
+
+template <typename T, std::size_t count=1>
+class CachedShaderSetting {
const char *m_name;
T m_sent[count];
bool has_been_set = false;
bool is_pixel;
-
protected:
CachedShaderSetting(const char *name, bool is_pixel) :
- m_name(name), is_pixel(is_pixel)
- {
- }
-
+ m_name(name), is_pixel(is_pixel)
+ {}
public:
void set(const T value[count], video::IMaterialRendererServices *services)
{
@@ -109,75 +104,55 @@ public:
};
template <typename T, std::size_t count = 1>
-class CachedPixelShaderSetting : public CachedShaderSetting<T, count>
-{
+class CachedPixelShaderSetting : public CachedShaderSetting<T, count> {
public:
CachedPixelShaderSetting(const char *name) :
- CachedShaderSetting<T, count>(name, true)
- {
- }
+ CachedShaderSetting<T, count>(name, true){}
};
template <typename T, std::size_t count = 1>
-class CachedVertexShaderSetting : public CachedShaderSetting<T, count>
-{
+class CachedVertexShaderSetting : public CachedShaderSetting<T, count> {
public:
CachedVertexShaderSetting(const char *name) :
- CachedShaderSetting<T, count>(name, false)
- {
- }
+ CachedShaderSetting<T, count>(name, false){}
};
+
/*
ShaderSource creates and caches shaders.
*/
-class IShaderSource
-{
+class IShaderSource {
public:
IShaderSource() = default;
virtual ~IShaderSource() = default;
- virtual u32 getShaderIdDirect(const std::string &name, const u8 material_type,
- const u8 drawtype)
- {
- return 0;
- }
- virtual ShaderInfo getShaderInfo(u32 id) { return ShaderInfo(); }
- virtual u32 getShader(const std::string &name, const u8 material_type,
- const u8 drawtype)
- {
- return 0;
- }
+ virtual u32 getShaderIdDirect(const std::string &name,
+ const u8 material_type, const u8 drawtype){return 0;}
+ virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();}
+ virtual u32 getShader(const std::string &name,
+ const u8 material_type, const u8 drawtype){return 0;}
};
-class IWritableShaderSource : public IShaderSource
-{
+class IWritableShaderSource : public IShaderSource {
public:
IWritableShaderSource() = default;
virtual ~IWritableShaderSource() = default;
- virtual u32 getShaderIdDirect(const std::string &name, const u8 material_type,
- const u8 drawtype)
- {
- return 0;
- }
- virtual ShaderInfo getShaderInfo(u32 id) { return ShaderInfo(); }
- virtual u32 getShader(const std::string &name, const u8 material_type,
- const u8 drawtype)
- {
- return 0;
- }
+ virtual u32 getShaderIdDirect(const std::string &name,
+ const u8 material_type, const u8 drawtype){return 0;}
+ virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();}
+ virtual u32 getShader(const std::string &name,
+ const u8 material_type, const u8 drawtype){return 0;}
- virtual void processQueue() = 0;
+ virtual void processQueue()=0;
virtual void insertSourceShader(const std::string &name_of_shader,
- const std::string &filename, const std::string &program) = 0;
- virtual void rebuildShaders() = 0;
- virtual void addShaderConstantSetterFactory(
- IShaderConstantSetterFactory *setter) = 0;
+ const std::string &filename, const std::string &program)=0;
+ virtual void rebuildShaders()=0;
+ virtual void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) = 0;
};
IWritableShaderSource *createShaderSource();
-void dumpShaderProgram(std::ostream &output_stream, const std::string &program_type,
- const std::string &program);
+void dumpShaderProgram(std::ostream &output_stream,
+ const std::string &program_type, const std::string &program);