I was doing this part of this opengl tutorial and when trying to replicate the rectangle example it ends in a segfault, it starts up when i dont create the VAO (the VAObject variable) but when i do that it doesnt draw anything at all, i recently recompiled glfw to use glx. rectangle source: https://pastebin.com/LD8QPa47 canned_glfw_window.hpp: https://pastebin.com/0pkxSrBK canned_glfw_window.cpp: https://pastebin.com/an3GQcy1 (i put most of the logic in the last 2 files in order to be able to reuse it later)

  • @prettydarknwildOP
    link
    21 year ago

    i tried doing it again in c-like code, and it failed again in the same fashion: https://pastebin.com/d8XzRzKq (PS: i left the GLFWWindow abstraction because i wanted to focus only in the render part), im starting to think that is a opengl thing, because the triangle example worked with opengl 2.1, even with the abstractions that i made (except for the fact that the triangle was fully white, because the shaders didnt compile)

    • e0qdk
      link
      fedilink
      21 year ago

      You’re incorrectly passing the shader type instead of the shader handle as the first argument to the glShaderSource calls. Also, you’ve put vbo instead of ebo for the glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ...) call. If I change those, I get the orange rectangle again.

      This may come in handy if it works on your implementation: https://www.khronos.org/opengl/wiki/Debug_Output

      Note the example code at the very bottom of the page.

      That helped me catch the shader type/handle issue. The vbo/ebo one I noticed by reading the code line by line and saying “wait, elements but you’re passing vbo?!”

      • @prettydarknwildOP
        link
        21 year ago

        i have never been so happy to see a fucking orange rectangle in a black background in all my life ajhadhgdjh

      • @prettydarknwildOP
        link
        21 year ago

        one more thing, i was debugging the triangle example (this one uses all the abstractions that i created) and using the logging functions it says me that the shader program is not linking, i added a debug function in the GLShaderProgram class and it says that the fragment shader does not have a main function, when i compile it without it it renders a white triangle, when i compile it with it it displays a blank window, can you tell me where is the problem?: https://pastebin.com/8VbyUNFR

        • e0qdk
          link
          fedilink
          11 year ago

          Looks like you wrote std::shared_ptr fragment_shader(new GLShader(&vertex_shader_src, 1, GL_FRAGMENT_SHADER, NULL)); instead of passing &fragment_shader_src.

          • @prettydarknwildOP
            link
            11 year ago

            yeah, i noticed that before, i already fixed it, thank you anyway