Bonjour,

je n'arrive pas à comprendre ce que demande la fonction glShaderSource, voilà le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "glew.h"
#include "glut.h"
 
#include <fstream>
#include <iostream>
using namespace std;
 
GLfloat vertices[] = {
    -1.0, -1.0, 0.0,
    1.0, -1.0, 0.0,
    0.0, 1.0, 0.0};
 
GLuint VBO;
 
void renderScene()
{
    glClearColor(0, 0, 255, 255);
    glClear(GL_COLOR_BUFFER_BIT);
 
    glBindBuffer(GL_ARRAY_BUFFER, VBO);
    glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
    glEnableVertexAttribArray(0);
    glBindBuffer(GL_ARRAY_BUFFER, VBO);
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
    glDrawArrays(GL_TRIANGLES, 0, 3);
    glDisableVertexAttribArray(0);
 
    glutSwapBuffers();
}
 
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
 
    glutInitWindowSize(1024, 768);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("NICE ENGINE");
 
    glewInit();
    glGenBuffers(1, &VBO);
 
    GLuint ShaderProgram = glCreateProgram();
    GLuint shader1 = glCreateShader(GL_VERTEX_SHADER);
 
    GLchar pShaderText[] = "#version 330";
 
    //first compile VERTEX_SHADER
    const GLchar* p[1];
    p[0] = pShaderText;
    GLint Lengths[1];
    Lengths[0]= strlen(pShaderText);
    glShaderSource(shader1, 1, p, Lengths);
 
    glCompileShader(shader1);
 
    GLint success;
 
    glGetShaderiv(shader1, GL_COMPILE_STATUS, &success);
    if (!success) {
        GLchar InfoLog[1024];
        glGetShaderInfoLog(shader1, sizeof(InfoLog), NULL, InfoLog);
        cout << "Error compiling shader type : " << GL_VERTEX_SHADER << " " << InfoLog;
    }
 
    glAttachShader(ShaderProgram, shader1);
 
    glGetProgramiv(ShaderProgram, GL_LINK_STATUS, &success);
    if (success == 0) {
        GLchar ErrorLog[1024];
        glGetProgramInfoLog(ShaderProgram, sizeof(ErrorLog), NULL, ErrorLog);
        cout << "Error linking shader program : " << " " << ErrorLog;
    }
 
    glValidateProgram(ShaderProgram);
    glUseProgram(ShaderProgram);
 
 
    glutDisplayFunc(renderScene);
    glutMainLoop();
 
    return 0;
}
Voilà ce que retourne le terminal :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Error compiling shader type : 35633 Vertex shader failed to compile with the following errors:                         
ERROR: 0:? : error(#76) Syntax error: unexpected tokens following #version                                             
ERROR: 0:? : error(#364) Invalid: unexpected token in symbol.                                                          
ERROR: error(#273) 2 compilation errors.  No code generated                                                                                                                                                                                    
Error linking shader program :
J'ai essayé de changer un peu le code mais toujours les même erreurs...