- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

# src/TaskBasedFlockSim/OpenglProgram.h

    00001
    00002
    00003
    00004
    00005
    00006
    00007
    00008
    00009
    00010
    00011
    00012
    00013
    00014
    00015
    00016
    00017
    00018
    00019
    00020 #ifndef _OPENGL_PROGRAM_H_
    00021 #define _OPENGL_PROGRAM_H_
    00022
    00023 #include <GL\glew.h>
    00024
    00025 #include "OpenglShader.h"
    00026 #include <vector>
    00027 #include "Vector3.h"
    00028 #include "Matrix4x4.h"
    00029 #include <boost\utility.hpp>
    00030 #include <boost\weak_ptr.hpp>
    00031
    00032 namespace TestFrameWork
    00033 {
    00034
    00035 class OpenglProgram :
    00036         boost::noncopyable
    00037 {
    00038 public:
    00039         OpenglProgram(const std::vector<ShaderFileDesc>& shaders);
    00040
    00041         ~OpenglProgram(void);
    00042
    00043         GLuint GetOpenglId(void) const;
    00044
    00045         void SetParameter(const std::string& name, float value);
    00046
    00047         void SetParameter(const std::string& name, const Vector3& vector);
    00048
    00049         void SetParameter(const std::string& name, const Matrix4x4& matrix);
    00050
    00051         void SetParameter(const std::string& name, int value);
    00052
    00053         void SetTextureUnit(const std::string& name, int unit);
    00054
    00055 private:
    00056         std::vector<OpenglShaderPtr> m_shaders;
    00057
    00058         GLuint m_id;
    00059
    00060         void CreateShaders(const std::vector<ShaderFileDesc>& shaders);
    00061
    00062         void CreateProgram(void);
    00063 };
    00064
    00065
    00066 typedef boost::shared_ptr<OpenglProgram> OpenglProgramPtr;
    00067 typedef boost::weak_ptr<OpenglProgram> OpenglProgramWeakPtr;
    00068 }
    00069
    00070 #endif