Pioneer
ShieldMaterial.h
Go to the documentation of this file.
1 // Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _OGL_SHIELDMATERIAL_H
5 #define _OGL_SHIELDMATERIAL_H
6 /*
7  * A generic material & program for simple uses
8  * textured/untextured, vertex colors or no...
9  *
10  */
11 #include "MaterialGL.h"
12 #include "Program.h"
13 
14 namespace Graphics {
15 
16  namespace OGL {
17  static const Sint32 MAX_SHIELD_HITS = 5; // Also defined in Ship.h
18 
19  class ShieldProgram : public Program {
20  public:
24  Uniform hitPos[MAX_SHIELD_HITS];
25  Uniform radii[MAX_SHIELD_HITS];
27 
28  protected:
29  virtual void InitUniforms() override;
30  };
31 
32  class ShieldMaterial : public Material { //unlit
33  public:
34  virtual Program *CreateProgram(const MaterialDescriptor &) override;
35  virtual void Apply() override;
36  };
37  } // namespace OGL
38 } // namespace Graphics
39 
40 #endif
Definition: Material.h:57
Definition: MaterialGL.h:26
Definition: Program.h:23
Definition: ShieldMaterial.h:32
virtual void Apply() override
Definition: ShieldMaterial.cpp:52
virtual Program * CreateProgram(const MaterialDescriptor &) override
Definition: ShieldMaterial.cpp:47
Definition: ShieldMaterial.h:19
Uniform numHits
Definition: ShieldMaterial.h:26
Uniform shieldCooldown
Definition: ShieldMaterial.h:23
Uniform radii[MAX_SHIELD_HITS]
Definition: ShieldMaterial.h:25
Uniform hitPos[MAX_SHIELD_HITS]
Definition: ShieldMaterial.h:24
Uniform shieldStrength
Definition: ShieldMaterial.h:22
ShieldProgram(const MaterialDescriptor &)
Definition: ShieldMaterial.cpp:16
virtual void InitUniforms() override
Definition: ShieldMaterial.cpp:28
Definition: Uniform.h:21
Definition: Background.h:13