root/
├── build/
├── external/
├── resource/
├── src/
└── CMakelists.txt
resource/
는 제 취향입니다. 텍스쳐 파일을 한데 정리해서 넣기 위해 만들었습니다. 필요없다고 생각하면 하지맙시다.
이 프로젝트는 다음 라이브러리에 의존성이 있습니다:
라이브러리 명 | 디렉토리 명 | 목적 | 참조 | 비고 |
---|---|---|---|---|
{fmt} | fmt/ | 형식화된 텍스트 출력에 사용합니다. | Repository | |
GLAD | glad/ | OS 플랫폼 독립적으로 OpenGL을 사용할 수 있도록 합니다. (더 편하게 OpenGL 개발을 할 수 있습니다. 😅) | link | gl 버전을 4.3 이상으로 설정한 후 generate 하십시오 |
GLFW | glfw/ | 윈도우 생성, 입력 이벤트 리스닝 등을 위해 사용합니다. | Repository | |
GLM | glm/ | 벡터, 행렬 등의 객체 생성 및 계산에 사용합니다. | Repository | |
stb | stb/ | 텍스쳐 출력을 위해 이미지를 파일시스템으로부터 읽어들일 때 사용합니다. | Repository |
external/
폴더 밑에 git submodule add [git repo url] [directory name]
으로 glad를 제외한 모든 라이브러리에 대해 명령어를 수행합니다.
glad는 generate하여 내려 받은 파일을 압축 해제 하여 안의 내용물을 glad/
폴더를 만들어 하위에 집어넣습니다. 해당 절차가 끝나면 glad/
디렉터리의 구조는 다음과 같습니다.
glad/
├── include/
│ ├── glad/
│ │ └── glad.h
│ └── KHR/
│ └── khrplatform.h
└── src/
└── glad.c
root/src/
디렉터리에 main.cpp
를 추가합니다. 사용합니다.
앞서 모든 설정이 끝났다면 디렉터리 구조는 다음과 같아집니다.
root/
├── build/
├── external/
│ ├── fmt/
│ ├── glad/
│ ├── glfw/
│ ├── glm/
│ └── std/
├── resource/
├── src/
└── CMakelists.txt
- 의존성 설정이 모두 끝난 경우에는
root/bulid/
폴더로 이동해서cmake -G Ninja ..
명령어를 수행하여 빌드합니다. 1-1. 빌드 중 나타난 에러를 해결하거나 코드 변경 후 빌드를 하려면Ninja
를 수행합니다. - 성공적이라면
build/
디렉터리 밑에minig.exe
파일이 생성됩니다. 실행해봅니다.
WIP
<style> .table thead th { border-bottom: none; } .table tbody tr:first-child td { border-top: none; } </style>namespace | 클래스 | 목적 | 사용 | 추가 작업 |
---|---|---|---|---|
minig | ApplicationWindow | GLFW 래퍼 클래스. 윈도우를 생성하기 위한 GLFW 컨텍스트와 GLAD 라이브러리를 초기화합니다. | ||
minig | Graphical | OpenGL를 사용한 어플리케이션의 메인 루프. | ||
minig | EventHandler | GLFW 입력 이벤트 콜백 래퍼 클래스. | ||
minig | ShaderProgram | OpenGL의 셰이더 컴파일 및 링크 과정에 대한 래핑. | ||
minig | Colored | 내용 F | ||
minig | Textured | 내용 F |