본문 바로가기

Programming/OpenGL

OpenGL states

이제 아주 기본적인 이론들을 끝내고 본격적으로 OpenGL을 다루는 시간이 왔네요.(서적에서는 "To begin to unlock the power of Open GL"이라고 언급 하는 군요 :-D)
   
OpenGL이라 함은 상태기계(state machine)이라고도 불리는데, 다양한 상태를 이용해서 다른 모습을 볼 수 있습니다. 그럼, 어떠한 "상태" 라는 것만 존재한다면 그걸 이용 할 수 있어야 겠죠? 현재 어떠한 상태인지 가져오는 것과 상태를 다시 설정 해주는 것이 필요 할 것 입니다.
   
가져오는 것은 게터 함수(getter function)으로 할 수 있습니다. 함수의 사용은 아래와 같습니다. glGet뒤에 가져올 상태의 타입을 적어주고 두 번째 인자에 해당 타입의 포인터를 가져 오게 됩니다. 첫 번째 인자로는 상태의 이름을 적어주게 되죠.


이 처럼 값을 가져오는 함수는 아래와 같습니다.
void glGetBooleanv(GLenum pname, GLboolean *params);
void glGetDoublev(GLenum pname, GLdouble *params);
void glGetFloatv(GLenum pname, GLfloat *params);
void glGetIntegerv(GLenum pname, GLint *params);
첫 번째 인자로 들어가게 되는 이름들은 아래와 같습니다. 너무 커서 잠시 닫아 뒀어요 :-D
   
하지만 이러한 것은 값이 필요 할 때 사용해야 하는 방법이긴 하지만, 실제로 값을 가져오는 것보다 값이 세팅이 되어 있는지 확인 하는 것을 더 많이 하겠죠? boolean값으로 가져오게 되는 쿼리의 원형은 아래와 같습니다. 현재 설정 중(enabled)이라면 GL_TRUE를, 현재 설정되어 있지 않다면(disabled) GL_FALSE를 반환 하게 됩니다.
GLboolean glIsEnabled(GLenum cap);

   
인자로 들어가는 값은 아래와 같습니다. 역시 너무 많아서 접어 둘게요 :-D
   
   
엄청나게 많네요 :-D 하지만 대부분 하나에 대해서 여러가지 내용들이 많고, 천천히 하다보면 뭐가 뭔지 알 수 있으니까 너무 급할 필요는 없을 거 같아요.
   
참조 : OPENGL GAME PROGRAMMING(Foreword by Mark J.Kilgard)

'Programming > OpenGL' 카테고리의 다른 글

OpenGL primitives_2  (2) 2011.12.24
OpenGL primitives_1  (0) 2011.12.22
Basic OpenGL programming Full-Screen  (0) 2011.12.12
Basic OpenGL programming in Windows_2  (0) 2011.12.01
Basic OpenGL programming in Windows_1  (0) 2011.11.30