# GLUT 설정

GLUT 는 OpenGL 을 위한 표준 유틸리티 툴킷입니다. 즉 OpenGL 용 어플리케이션의 개발을 편하게 할 수 있도록 도와주는 도구로 생각하면 됩니다. Mark J. Kilgard 씨가 GLUT 를 만들었는데, 그 이유는 특정 윈도우 시스템들을 알지 못해도 OpenGL 용 어플리케이션을 만들 수 있도록 하기 위해서 였죠. 너무나 고마운 일 아닙니까? Mark J. Kilgard 씨와 GLUT 에 고마워합시다\~ :) GLUT 를 사용하면 X 윈도우 시스템이나 마이크로소프트의 윈도우 시스템에 대해서 배우지 않고도 OpenGL 용 어플리케이션을 만들 수 있습니다. Kilgard 씨가 X 윈도우용의 GLUT 를 만들었고 나중에 [Nate Robins](http://www.xmission.com/~nate/) 씨가 마이크로소프트 윈도우즈용의 GLUT 를 만들었답니다. 우리 모두 이 두사람의 위대한 업적에 갈채를 보냅시다!

이 강좌는 GLUT 를 사용해서 어플리케이션을 만드는 방법을 설명합니다. 단, 예제의 코드를 가능한 간단하게 만들기 위해서 화려한 시각 효과 같은건 만들지 않겠습니다.

## 무엇이 필요한가요?

GLUT 를 이용해서 어플리케이션을 만들려면 우선 최신버전의 GLUT 가 필요해요. 당연한 얘기인가요 ;) 이 글을 쓸 때, GLUT 의 최신버전은 3.7 이었습니다. GLUT 배포판은 아주 많은 예제를 포함하고 있기 때문에 이 강좌를 다 보고 난 다음에 예제를 분석해 보는 것이 좋겠죠? 당연한 얘기입니다! :) GLUT 가 없거나 GLUT 에 대해서 궁금한 것이 있으면 [GLUTs](https://www.opengl.org/documentation/specs/glut/spec3/spec3.html) 웹페이지를 살펴보세요.

GLUT 를 사용해서 C 언어로 어플리케이션을 만들려면 3 개의 파일이 필요합니다. :

* glut.h - 이 파일은 어플리케이션의 소스코드에 항상 포함해야하는 파일입니다. 이 파일은 대개 여러분이 사용하는 개발툴 시스템의 include 폴더 아래에 있는 gl 폴더에 들어있습니다.
* glut.lib ( SGI 의 윈도우즈 버전 ) 과 glut32.lib ( 마이크로소프트 버전 ) - 이 파일은 glut 를 이용하는 어플리케이션이라면 반드시 링크해야 합니다. 대개 개발툴 시스템의 lib 폴더에 들어있죠.
* glut.dll ( SGI 의 윈도우즈 버전 ) 또는 glut32.dll ( 마이크로소프트 버전 ) - OpenGL 을 사용하기 위해서 둘 중 하나만 선택하면 됩니다. 마이크로소프트 버전의 glut 를 사용하려면 glut32.dll 파일을 선택하세요. 이 파일은 운영체제의 system 폴더에 있어야합니다.

## Visual C/C++ 6.0 환경 설정하기

Visual C/C++ 로 프로젝트를 만들려면 두가지를 설정해줘야 합니다. 하나는 콘솔 프로그램으로 만들 것인지 아니면 Win32 프로그램으로 만들 것인지 정해야합니다. 콘솔로 만들게 되면 어플리케이션은 두 개의 창을 갖게 됩니다. 하나는 콘솔창이고 다른 하나의 OpenGL 창이랍니다. Win32 를 선택했을 때 GLUT 를 사용하면 Win32 로 어플리케이션을 만들 때 만나게 되는 '프로그래머 혼란스럽게 하기' 란 장애물을 피해갈 수 있습니다. :) 이를 위해서 아래의 과정을 따라 하나만 바꿔주세요.

1. 주메뉴의 Project->Settings 를 선택하세요.
2. 대화상자에서 "Link" 탭을 선택하세요.
3. 콤보박스의 "Category" 에서 "Output" 을 선택하세요.
4. "Entry-point symbol" 에디트박스에 "mainCRTStartup" 이라고 입력하세요.

이미 만든 콘솔 프로젝트를 Win32 어플리케이션 프로젝트로 만들려면 아래의 과정을 따라 설정해주면 됩니다. 콘솔에서 Win32 로 바꾸는 것은 콘솔창을 만들지 않기 위해서겠죠?

1. 위의 과정을 따라서 entry-point symbol 을 추가합니다.
2. "Project Options" 에디트박스에서 "subsystem:console" 을 "subsystem:windows" 로 바꿔줍니다.

위의 과정을 일일이 다 해주기 귀찮다면 소스코드의 시작부분에 아래의 코드를 입력해주세요. 위의 과정과 똑같이 프로젝트를 설정해줍니다.

```cpp
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
```

프로젝트를 위의 과정에 따라 올바르게 설정했다면 콘솔창은 없고 OpenGL 창만 있는 어플리케이션이 만들어집니다. 두번째 설정은 GLUT 를 어플리케이션에 링크해주는 것인데 Visual C/C++ 을 사용한다면 아래의 과정을 따라 설정하면 됩니다.

1. 주메뉴의 Project->Settings 를 선택하세요.
2. 대화상자에서 "Link" 탭을 선택하세요.
3. "Object/library modules" 에디트박스에 "opengl32.lib glut32.lib glu32.lib" 을 입력합니다.

`주목` : glu32.lib 과 opengl32.lib 을 추가했습니다. 이 두개의 라이브러리 파일은 OpenGL 의 표준 라이브러리입니다. GLU 는 OpenGL 이 배포하는 표준 API 입니다.

모든 설정이 끝났나요? 잘 끝냈기를 바랍니다 :) 그럼 이제 GLUT 를 이용해서 어플리케이션을 만들어봅시다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sungcheol-kim.gitbook.io/glut-tutorials/chapter1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
