Pioneer
MultiMaterial.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_MULTIMATERIAL_H
5 #define _OGL_MULTIMATERIAL_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  class MultiProgram : public Program {
18  public:
19  MultiProgram(const MaterialDescriptor &, int numLights = 0);
20  };
21 
22  class MultiMaterial : public Material { //unlit
23  public:
24  virtual Program *CreateProgram(const MaterialDescriptor &) override;
25  virtual void Apply() override;
26  virtual void Unapply() override;
27  };
28 
29  /*
30  * This material uses up to four variations of the Program,
31  * one for each directional light
32  */
34  public:
36  virtual Program *CreateProgram(const MaterialDescriptor &) override;
37  virtual void SetProgram(Program *p) override;
38  virtual void Apply() override;
39 
40  private:
41  Program *m_programs[5];
42  Uint32 m_curNumLights;
43  };
44  } // namespace OGL
45 } // namespace Graphics
46 
47 #endif
Definition: Material.h:57
Definition: MultiMaterial.h:33
virtual void Apply() override
Definition: MultiMaterial.cpp:108
virtual Program * CreateProgram(const MaterialDescriptor &) override
Definition: MultiMaterial.cpp:67
virtual void SetProgram(Program *p) override
Definition: MultiMaterial.cpp:73
LitMultiMaterial()
Definition: MultiMaterial.cpp:56
Definition: MaterialGL.h:26
Definition: MultiMaterial.h:22
virtual void Unapply() override
Definition: MultiMaterial.cpp:139
virtual Program * CreateProgram(const MaterialDescriptor &) override
Definition: MultiMaterial.cpp:62
virtual void Apply() override
Definition: MultiMaterial.cpp:79
Definition: MultiMaterial.h:17
MultiProgram(const MaterialDescriptor &, int numLights=0)
Definition: MultiMaterial.cpp:17
Definition: Program.h:23
Definition: Background.h:13