TDME2  1.9.200
ShadowMapCreationShaderBaseImplementation.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 
5 #include <tdme/tdme.h>
6 #include <tdme/engine/fwd-tdme.h>
10 #include <tdme/math/fwd-tdme.h>
11 
12 using std::string;
13 
18 
19 /**
20  * Shadow mapping shader base class to create shadow map
21  * @author Andreas Drewke
22  */
24 {
25 protected:
26  Renderer* renderer { nullptr };
27  int32_t vertexShaderId { -1 };
28  int32_t geometryShaderId { -1 };
29  int32_t fragmentShaderId { -1 };
30  int32_t programId { -1 };
31  int32_t uniformProjectionMatrix { -1 };
32  int32_t uniformCameraMatrix { -1 };
33  int32_t uniformMVPMatrix { -1 };
34  int32_t uniformTextureAtlasSize { -1 };
36  int32_t uniformTextureMatrix { -1 };
37  int32_t uniformModelTranslation { -1 };
38  int32_t uniformDiffuseTextureUnit { -1 };
42  int32_t uniformTime { -1 };
43  bool initialized { false };
44 
45 public:
46  // forbid class copy
48 
49  /**
50  * Constructor
51  * @param renderer renderer
52  */
54 
55  /**
56  * Destructor
57  */
59 
60  // overridden methods
61  virtual bool isInitialized() override;
62  virtual void initialize() override;
63  virtual void useProgram(Engine* engine, int contextIdx) override;
64  virtual void unUseProgram(int contextIdx) override;
65  virtual void updateMatrices(int contextIdx) override;
66  virtual void updateTextureMatrix(Renderer* renderer, int contextIdx) override;
67  virtual void updateMaterial(Renderer* renderer, int contextIdx) override;
68  virtual void updateShaderParameters(Renderer* renderer, int contextIdx) override = 0;
69  virtual void bindTexture(Renderer* renderer, int contextIdx, int32_t textureId) override;
70  virtual void unloadTextures() override;
71  virtual void loadTextures(const string& pathName) override;
72 
73 };
Engine main class.
Definition: Engine.h:131
virtual void updateTextureMatrix(Renderer *renderer, int contextIdx) override
Set up program texture matrix.
virtual void updateMaterial(Renderer *renderer, int contextIdx) override
Update material.
virtual void bindTexture(Renderer *renderer, int contextIdx, int32_t textureId) override
Bind texture.
virtual void unUseProgram(int contextIdx) override
Unuse shadow map creation program.
virtual void useProgram(Engine *engine, int contextIdx) override
Use shadow map creation program.
virtual void updateShaderParameters(Renderer *renderer, int contextIdx) override=0
Update shader parameters.
Matrix4x4 class representing matrix4x4 mathematical structure and operations for 3d space.
Definition: Matrix4x4.h:23
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6