Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7818 in orxonox.OLD for branches/water/src/lib/graphics/shader.h


Ignore:
Timestamp:
May 24, 2006, 5:38:28 PM (19 years ago)
Author:
bensch
Message:

Better nicer Shader

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/water/src/lib/graphics/shader.h

    r7785 r7818  
    1212
    1313
    14 typedef enum
    15 {
    16   SHADER_NONE       = 0,
    17   SHADER_FRAGMENT   = 1,
    18   SHADER_VERTEX     = 0,
    19 
    20 } SHADER_TYPE;
    21 
    2214// FORWARD DECLARATION
    2315
    2416
    2517//! A class for ...
    26 class Shader : public BaseObject {
     18class Shader : public BaseObject
     19{
     20  public:
     21  typedef enum
     22  {
     23    None       = 0,
     24    Fragment   = 1,
     25    Vertex     = 2,
     26
     27    Program    = 4,
     28  } Type;
    2729
    2830  public:
     
    3234  static bool unload(Shader* shader);
    3335
    34   bool loadShaderProgramm(SHADER_TYPE type, const std::string& fileName);
     36
     37  static bool checkShaderAbility();
    3538  void activateShader();
    3639  static void deactivateShader();
    37   void deleteProgram(SHADER_TYPE type);
     40
     41
     42  bool loadShaderProgramm(Shader::Type type, const std::string& fileName);
     43  void deleteProgram(Shader::Type type);
     44
     45  void linkShaderProgram();
     46
    3847
    3948  char* fileRead(const std::string& fileName);
    4049  std::vector<char*>* fileReadArray(const std::string& fileName);
    4150
    42   static bool checkShaderAbility();
    4351
    4452  inline static bool shaderActive() { return (Shader::storedShader != NULL)? true : false; };
     
    4755  inline static void restoreShader() { if (storedShader != NULL) storedShader->activateShader(); storedShader = NULL; };
    4856
    49   GLhandleARB getProgram() { return this->shaderProgram; }
    50   GLhandleARB getVertexS() { return this->vertexShader; }
    51   GLhandleARB getFragmentS() { return this->fragmentShader; }
    5257
    53   void printError(GLhandleARB program);
     58  GLhandleARB getProgram() const { return this->shaderProgram; }
     59  GLhandleARB getVertexS() const { return this->vertexShader; }
     60  GLhandleARB getFragmentS() const { return this->fragmentShader; }
     61
    5462  void debug() const;
    5563
    56   private:
     64  static void printError(GLhandleARB program);
     65
    5766
    5867 private:
    5968   std::string            fragmentShaderFile;
    6069   std::string            vertexShaderFile;
     70
    6171   GLhandleARB            shaderProgram;
     72
    6273   GLhandleARB            vertexShader;
    6374   GLhandleARB            fragmentShader;
Note: See TracChangeset for help on using the changeset viewer.