fixed a bug
This commit is contained in:
parent
2bd9205c37
commit
a36b607ccf
2
mesh.cpp
2
mesh.cpp
@ -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
2
mesh.h
@ -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;
|
||||
|
@ -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
|
||||
|
13
shader.cpp
13
shader.cpp
@ -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;
|
||||
}
|
||||
|
7
shader.h
7
shader.h
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user