test shader effect

This commit is contained in:
Eduardo Bart
2011-12-07 17:54:28 -02:00
parent 1a3dcb215e
commit b5cf4ad2c4
10 changed files with 131 additions and 7 deletions

View File

@@ -22,3 +22,20 @@
#include "glbuffer.h"
GLBuffer::GLBuffer()
{
glGenBuffers(1, &m_id);
if(!m_id)
logFatal("Unable to create a simple GL buffer");
}
void GLBuffer::bind()
{
gl
}
void GLBuffer::release()
{
}

View File

@@ -23,8 +23,22 @@
#ifndef GLBUFFER_H
#define GLBUFFER_H
#include "declarations.h"
class GLBuffer
{
public:
GLBuffer();
~GLBuffer();
void write(const
void bind();
void release();
GLuint bufferId();
private:
GLuint m_id;
};
#endif

View File

@@ -47,6 +47,7 @@ void Painter::init()
program->bindUniformLocation(PainterShaderProgram::COLOR_UNIFORM, "color");
program->bindUniformLocation(PainterShaderProgram::OPACITY_UNIFORM, "opacity");
program->bindUniformLocation(PainterShaderProgram::TEXTURE_UNIFORM, "texture");
program->bindUniformLocation(PainterShaderProgram::TICKS_UNIFORM, "ticks");
m_drawTexturedProgram = program;
program = PainterShaderProgramPtr(new PainterShaderProgram);
@@ -57,6 +58,7 @@ void Painter::init()
program->bindUniformLocation(PainterShaderProgram::PROJECTION_MATRIX_UNIFORM, "projectionMatrix");
program->bindUniformLocation(PainterShaderProgram::COLOR_UNIFORM, "color");
program->bindUniformLocation(PainterShaderProgram::OPACITY_UNIFORM, "opacity");
program->bindUniformLocation(PainterShaderProgram::TICKS_UNIFORM, "ticks");
m_drawSolidColorProgram = program;
}

View File

@@ -57,6 +57,8 @@ public:
void setCompositionMode(CompositionMode compositionMode);
GLfloat *getProjectionMatrix() { return (GLfloat*)m_projectionMatrix; }
private:
PainterShaderProgramPtr m_drawTexturedProgram;
PainterShaderProgramPtr m_drawSolidColorProgram;

View File

@@ -24,6 +24,7 @@
#include "painter.h"
#include "texture.h"
#include "texturemanager.h"
#include <framework/core/clock.h>
void PainterShaderProgram::setProjectionMatrix(float projectionMatrix[3][3])
{
@@ -76,6 +77,7 @@ void PainterShaderProgram::setTextureCoords(const GLfloat *textureCoords)
void PainterShaderProgram::prepareForDraw()
{
assert(bind());
setUniformValue(TICKS_UNIFORM, (GLfloat)g_clock.ticks());
}
void PainterShaderProgram::drawTriangleStrip(int numVertices)

View File

@@ -35,7 +35,8 @@ public:
TEXTURE_TRANSFORM_MATRIX_UNIFORM = 1,
COLOR_UNIFORM = 2,
OPACITY_UNIFORM = 3,
TEXTURE_UNIFORM = 4
TEXTURE_UNIFORM = 4,
TICKS_UNIFORM = 5
};
void setProjectionMatrix(GLfloat projectionMatrix[3][3]);

View File

@@ -21,6 +21,7 @@
*/
#include "shader.h"
#include <framework/core/resourcemanager.h>
Shader::Shader(Shader::ShaderType shaderType)
{
@@ -70,8 +71,7 @@ bool Shader::compileSourceCode(const std::string& sourceCode)
bool Shader::compileSourceFile(const std::string& sourceFile)
{
std::ifstream fin(sourceFile);
std::string sourceCode((std::istreambuf_iterator<char>(fin)), std::istreambuf_iterator<char>());
std::string sourceCode = g_resources.loadFile(sourceFile);
return compileSourceCode(sourceCode);
}