TDME2  1.9.200
DeferredLightingShaderTerrainImplementation.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>
9 
11 
14 
15 /**
16  * Lighting shader implementation
17  * @author Andreas Drewke
18  */
20 {
21 public:
22  // forbid class copy
24 
25  /**
26  * Public constructor
27  * @param renderer renderer
28  */
30 
31  /**
32  * @return if supported by renderer
33  * @param renderer renderer
34  */
35  static bool isSupported(Renderer* renderer);
36 
37  // overridden methods
38  virtual const string getId() override;
39  virtual void initialize() override;
40  virtual void registerShader() override;
41  virtual void useProgram(Engine* engine, int contextIdx) override;
42  virtual void unUseProgram(int contextIdx) override;
43  virtual void updateMatrices(Renderer* renderer, int contextIdx) override;
44  virtual void updateShaderParameters(Renderer* renderer, int contextIdx) override;
45  virtual void unloadTextures() override;
46  virtual void loadTextures(const string& pathName) override;
47 
48 private:
49  int32_t uniformModelMatrix { -1 };
50  int32_t uniformGrasTextureUnit { -1 };
51  int32_t uniformDirtTextureUnit { -1 };
52  int32_t uniformSnowTextureUnit { -1 };
53  int32_t uniformStoneTextureUnit { -1 };
54  Texture* grasTexture { nullptr };
55  Texture* dirtTexture { nullptr };
56  Texture* snowTexture { nullptr };
57  Texture* stoneTexture { nullptr };
58  int32_t grasTextureId { 0 };
59  int32_t dirtTextureId { 0 };
60  int32_t snowTextureId { 0 };
61  int32_t stoneTextureId { 0 };
62 
63 protected:
65 
66 };
Engine main class.
Definition: Engine.h:131
Texture entity.
Definition: Texture.h:24
virtual void updateMatrices(Renderer *renderer, int contextIdx) override
Update matrices to program.
virtual void useProgram(Engine *engine, int contextIdx) override
Use lighting program.
virtual void updateShaderParameters(Renderer *renderer, int contextIdx) override
Update shader parameters.
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6