2012-01-31 5 views
1

glDrawElements를 glDrawElementInstanced로 변경하면 다른 유효한 프로그램에서는 segfault가 발생한다는 것을 발견했습니다. 문제는 컴파일하지 않습니다. gdb에 따르면 glDrawElementInstanced는 segfaults입니다. 누구든지 문제를 짐작할 수 있습니까?glDrawElementsInstanced 호출시 세그먼트 오류

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 
     ); 
+0

저는 이것이 빌드 시스템과 관련이 없다고 생각합니다. 배열을 설정하고 호출을하는 코드가 더 재미있을 것입니다. – pmr

+0

pmr : 여기에 써야할지 모르겠다. 이것이 코드에 대한 유일한 변경 사항이며, 나의 이해가 옳다면, glDrawElementsInstanced의 효과는 여러 번 실행되는 것을 제외하고는 glDrawElements와 동일합니다. 배열을 설정하는 것과 관련이있는 glDrawElementsInstanced에 대해 누락 된 것이 있습니까? – jaeyoung

답변

3
  1. 당신이 적어도 의 OpenGL 3.1 컨텍스트를 사용할 수 있는지 확인하십시오나요?
  2. GLEW를 통해로드 한 후 glDrawElementInstancedNULL이 아닌지 확인 했습니까?
+0

그게 정확히 문제입니다. glDrawElementInstanced는 NULL입니다. 도와 주셔서 감사합니다!! – jaeyoung