1

glDrawElements を glDrawElementInstanced に変更すると、有効なプログラムで segfault が発生することがわかりました。コンパイルに問題はありません。gdb は、glDrawElementInstanced がセグメンテーション違反であると述べています。誰でも問題を推測できますか?

x86_64 GNU/Linux で実行されます。

CMakeLists.txt の一部:

cmake_minimum_required (VERSION 2.6)
project (sph)

find_package(OpenGL REQUIRED)

include_directories(
    /usr/nvidia-current
.
)

set(ALL_LIBS
    ${OPENGL_LIBRARY}
    glfw
    GLEW
)

add_definitions(
    -D_CRT_SECURE_NO_WARNINGS
)

target_link_libraries(sph
    ${ALL_LIBS}
)

セグメンテーションのサイト:

glDrawElementsInstanced(
            GL_TRIANGLES,
            indices.size(),
            GL_UNSIGNED_SHORT,
            (void *)0,
            2
        );
4

1 に答える 1

3
  1. 少なくともOpenGL 3.1コンテキストが利用可能であることを確認しましたか?
  2. GLEW 経由でロードした後、 がNULLglDrawElementInstancedでないかどうかを確認しましたか?
于 2012-01-31T22:03:19.890 に答える