Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

21

24.06.2012, 16:14

Und wo stürzt es ab? Und wieso stürzt es dort ab?

22

24.06.2012, 16:17

Es stürzt hier ab: glCreateShader(GL_VERTEX_SHADER). Und diese Funktion kommt nach dem VertexArray.

Debugger: "Signal received: SIGSEGV"

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

23

24.06.2012, 16:21

Und gl3w wurde korrekt initialisiert, bevor du die Funktion aufrufst?

24

24.06.2012, 16:22

Ja.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

25

24.06.2012, 16:26

Das kann eigentlich nicht sein. Zeig mal etwas Code...

26

24.06.2012, 16:30

C-/C++-Quelltext

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
    if(!glfwInit()) {
        fprintf(stderr, "Failed to initialize GLFW\n");
        return -1;
    }
    
    glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4);
    glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
    glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
    glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    
    if(!glfwOpenWindow(1024, 768, 0, 0, 0, 0, 32, 0, GLFW_WINDOW)) {
        fprintf(stderr, "Failed to open GLFW window\n");
        glfwTerminate();
        return -1;
    }

    if(gl3wInit()) {
        fprintf(stderr, "Failed to initilaize GLEW\n");
        return -1;
    }
    glfwSetWindowTitle("Demo");
    
    glfwEnable(GLFW_STICKY_KEYS);
    glfwSetMousePos(1024/2, 768/2);
    
    glClearColor(0.f, 0.f, 0.f, 0.f);
    
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);
    
    glEnable(GL_CULL_FACE);
    
    GLuint VertexArrayID;
    glGenVertexArrays(1, &VertexArrayID);
    glBindVertexArray(VertexArrayID);
    
    GLuint programID = LoadShaders("StandardShading.vertexshader", "StandardShading.fragmentshader");


LoadShaders Funktion:

C-/C++-Quelltext

1
2
3
4
GLuint LoadShaders(const char* vertex_file_path, const char *fragment_file_path) {
    // Create the shaders
    GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);
    GLuint FragmentShaderID = glCreateShader(GL_FRAGMENT_SHADER);

Mit der Funktion geht es weiter, aber wie gesagt bei "GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);" wird der Absturzt verursacht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

27

24.06.2012, 16:43

Hm, das ist sehr merkwürdig. Die einzige Erklärung die ich dafür im Moment liefern kann ist, dass glCreateShader() eben nicht korrekt geladen werden konnte. In dem Fall sollte gl3wInit() allerdings fehlschlagen. Das ist sehr komisch. Bist du dir sicher, dass es nicht doch irgendwo anders abstürzt?

28

24.06.2012, 16:46

Habe jetzt bei jeder Funktion ein Breakpoint gesetzt und das stürzt definitiv bei glCreateShader() ab.

Edit: Ich habe es mit einem Betatreiber und den aktuellsten Grafiktreiber ausprobiert.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Delop« (24.06.2012, 16:54)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

29

24.06.2012, 16:56

Komisch. In dem Fall muss glCreateShader() wohl 0 oder ungültig sein. Das kann dann eigentlich nur ein Problem mit deinem Treiber oder gl3w sein...

30

24.06.2012, 16:59

Am Treiber kann es nicht liegen, siehe den Edit am Post vor dir. Kann es sein, dass ich gl3w falsch installiert habe? Ich habe keine lib gelinkt. Ich habe einfach die gl3w.h inkludiert, die ist im GL3 Ordner, dann habe ich noch die Source Datei in meinem Projekt einfach hinzugefügt.

Werbeanzeige