glshaders.h Example File demos/boxes/glshaders.h
#ifndef GLSHADERS_H
#define GLSHADERS_H
#include "glextensions.h"
#include <QtGui>
#include <QtOpenGL>
#include "vector.h"
class GLShader
{
public:
friend class GLProgram;
virtual ~GLShader();
bool failed() const {return m_failed;}
QString log();
protected:
GLShader(const char *data, int size, GLenum shaderType);
GLShader(const QString& fileName, GLenum shaderType);
GLhandleARB m_shader;
bool m_compileError;
bool m_failed;
};
class GLVertexShader : public GLShader
{
public:
GLVertexShader(const char *data, int size);
GLVertexShader(const QString& fileName);
};
class GLFragmentShader : public GLShader
{
public:
GLFragmentShader(const char *data, int size);
GLFragmentShader(const QString& fileName);
};
class GLProgram
{
public:
GLProgram();
~GLProgram();
void attach(const GLShader &shader);
void detach(const GLShader &shader);
void bind();
void unbind();
bool failed();
QString log();
bool hasParameter(const QString& name);
void setInt(const QString& name, int value);
void setFloat(const QString& name, float value);
void setColor(const QString& name, QRgb value);
void setMatrix(const QString& name, const gfx::Matrix4x4f &mat);
private:
GLhandleARB m_program;
bool m_linked;
bool m_linkError;
bool m_failed;
};
#endif
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies) |
Trademarks |
Qt 4.5.2 |
|