2014/07/15 14:54

OpenGL 3.x Core 프로파일에 사용가능한 SOIL 라이브러리 Programming

SOIL.zip  여기에 첨부한 파일은 원래 SOIL 라이브러리 파일들 중 SOIL.c 만 해당된다.

나머지 파일들은 원래 SOIL 라이브러리에 있는 것을 써야 한다.

수정한 SOIL.c 파일은 이 라이브러리를 OpenGL 3.0 이상의 Core 프로파일만을 사용하는 프로그램에서 사용하고자 할 때 필요하다.

이를 위해 원래 파일에서 include하던 GL/gl.h 대신 GL/gl3w.h를 include 하도록 하였고, 몇몇 deprecate된 OpenGL 기능들을 수정했다.
  • GL_LUMINANCE, GL_LUMINANCE_ALPHA 를 GL_RED 및 GL_RG 로 대체
  • GL_CLAMP 를 GL_CLAMP_TO_EDGE 로 교체
  • glGetString(GL_EXTENSIONS) 대신 glGetStringi(GL_EXTENSIONS, index)로 Extension 점검하도록 수정

gl3w는 glew 를 대체할 수 있는데, glew는 옛날 버젼의 OpenGL까지 지원하기 때문에 Modern OpenGL에 사용하기에 부적합한 거 같다.

실제 Modern OpenGL 프로그래밍을 익히기 위해 파일럿 프로젝트를 만들면서 glew로 시작하였으나, SOIL 라이브러리 등을 붙이면서 충돌이 발생했고 이를 해결하기가 쉽지 않았다.  이런 연유로 대안을 찾다 보니 gl3w가 눈에 띄었다.

gl3w는 Python 스크립트 파일을 실행하여 해당 컴퓨터 환경에 맞는 gl3w.c 및 gl3w.h 파일을 생성해낸다.
이에 대한 상세 내용은 다음에 포스팅.

첨부를 사용하려면,
  • 원래 SOIL 라이브러리를 다운받아 풀고,
  • 첨부의 SOIL.c로 overwrite 하고,
  • gl3w.h를 생성하여 include한 후 라이브러리로 빌드하면 된다.
    빌드에 필요한 makefile 또는 비쥬얼스튜디오 등의 프로젝트 파일들은
    원래 SOIL 라이브러리에 포함되어 있으므로 적당한 것을 사용하면 됨.
개발하려는 OpenGL 응용프로그램에 gl3w.c를 추가하고, 위와 같이 빌드한 SOIL 라이브러리를 링크하여 빌드한다.

핑백