1

我发现将 glDrawElements 更改为 glDrawElementInstanced 会导致其他有效程序中的段错误。编译没问题。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 加载后检查它glDrawElementInstanced是否不为NULL ?
于 2012-01-31T22:03:19.890 回答