fixed a bug

This commit is contained in:
Anselme 2015-06-26 17:20:04 +02:00
parent 2bd9205c37
commit a36b607ccf
6 changed files with 18 additions and 16 deletions

View File

@ -78,6 +78,6 @@ void Mesh::draw()
if(locked)
{
glAssert(glBindVertexArray(vao));
glAssert(glDrawElements(GL_TRIANGLES, indices.size(), GL_UNSIGNED_INT, 0));
//glAssert(glDrawElements(GL_TRIANGLES, indices.size(), GL_UNSIGNED_INT, 0));
}
}

2
mesh.h
View File

@ -27,7 +27,7 @@ private:
enum {VERTEX_BUFFER, INDICES_BUFFER, NB_BUFFERS};
std::vector<Vertex> vertices;
std::vector<int> indices;
std::vector<unsigned int> indices;
GLuint vao;
GLuint vbo[2];
bool locked;

View File

@ -20,10 +20,10 @@ out vec2 varTexCoord;
}*/
void main(void) {
// normales corrigées (en fonction de la vue)
// normales corrigees (en fonction de la vue)
varNormal = normalize(vec3(normalMatrix*vec4(inNormal,0)));
// coordonnées de texture
// coordonnees de texture
varTexCoord = inTexCoord.xy;
// position du vertex

View File

@ -13,8 +13,10 @@ Shader::Shader(const QString &vertFilename, const QString &fragFilename)
{
program = glAssert(glCreateProgram());
GLuint vertexShaderId = createShader(vertFilename, GL_VERTEX_SHADER);
GLuint fragmentShaderId = createShader(fragFilename, GL_FRAGMENT_SHADER);
vertexSource = fileToString(vertFilename);
fragmentSource = fileToString(fragFilename);
GLuint vertexShaderId = createShader(&vertexSource, GL_VERTEX_SHADER);
GLuint fragmentShaderId = createShader(&fragmentSource, GL_FRAGMENT_SHADER);
glAssert(glAttachShader(program, vertexShaderId));
glAssert(glAttachShader(program, fragmentShaderId));
@ -60,11 +62,10 @@ QString Shader::fileToString(QString filename)
return in.readAll();
}
GLuint Shader::createShader(QString filename, GLenum shaderType)
GLuint Shader::createShader(QString* source, GLenum shaderType)
{
QString source = fileToString(filename);
glAssert(GLuint shaderId = glCreateShader(shaderType));
const GLchar *data = (const GLchar *)source.toStdString().c_str();
const GLchar *data = (const GLchar *)source->toStdString().c_str();
glAssert(glShaderSource(shaderId, 1, &data, NULL));
glAssert(glCompileShader(shaderId));
@ -73,7 +74,7 @@ GLuint Shader::createShader(QString filename, GLenum shaderType)
GLint compiled;
glAssert(glGetShaderiv(shaderId, GL_COMPILE_STATUS, &compiled));
if (!compiled) {
std::cerr << "[" << filename.toStdString() << "] Vertex shader not compiled : " << std::endl;
std::cerr << (shaderType == GL_VERTEX_SHADER ? "Vertex" : "Fragment") << "shader not compiled : " << std::endl;
printShaderInfoLog(shaderId);
return 0;
}

View File

@ -4,16 +4,17 @@
#include <glew/glew.h>
#include <string>
#include <glm/fwd.hpp>
class QString;
#include <QString>
class Shader
{
static const std::string DEFAULT_VERT;
static const std::string DEFAULT_FRAG;
GLuint program;
QString vertexSource;
QString fragmentSource;
QString fileToString(QString filename);
GLuint createShader(QString filename, GLenum shaderType);
GLuint createShader(QString* filename, GLenum shaderType);
void printShaderInfoLog(GLuint shaderId);
void printProgramInfoLog(GLuint programId);

View File

@ -10,12 +10,12 @@
SparrowRenderer::SparrowRenderer(int width, int height)
{
Shader* shader = new Shader(QString("../phong.vert"), QString("../phong.frag"));
Material* mat = new PhongMaterial(shader);
scene = new Scene();
scene->setCamera(new Camera(width, height));
Mesh* myGrid = new GridMesh(10, 10, false);
Mesh* myGrid = new GridMesh(2, 2, false);
myGrid->initGL();
Shader* shader = new Shader(QString("../phong.vert"), QString("../phong.frag"));
Material* mat = new PhongMaterial(shader);
scene->addEntity(myGrid, mat);
}