[c++] GLFW의 입출력 처리

GLFW는 OpenGL을 위한 다중 플랫폼 프레임워크로서 윈도우 생성, 입출력 처리, OpenGL 콘텍스트 생성 등을 지원합니다. 여기에서는 GLFW를 사용하여 윈도우 입력 이벤트를 처리하는 방법에 대해 알아보겠습니다.

GLFW 초기화

GLFW를 사용하기 위해서는 먼저 GLFW를 초기화해야 합니다. 아래 예제는 GLFW를 초기화하고 윈도우를 생성하는 과정을 보여줍니다.

#include <GLFW/glfw3.h>

int main() {
    // GLFW 초기화
    if (!glfwInit()) {
        // 초기화 실패 처리
        return -1;
    }

    // 윈도우 생성
    GLFWwindow *window = glfwCreateWindow(800, 600, "GLFW Window", nullptr, nullptr);
    if (!window) {
        // 윈도우 생성 실패 처리
        glfwTerminate();
        return -1;
    }

    // ...

    // GLFW 종료
    glfwTerminate();
    return 0;
}

이벤트 처리

이제 윈도우를 생성했으니, 키보드 입력 및 마우스 입력과 같은 이벤트를 처리할 수 있습니다. GLFW는 이러한 다양한 이벤트를 쉽게 처리할 수 있는 콜백 함수를 제공합니다. 아래는 키보드 입력 이벤트를 처리하는 예제입니다.

// 키보드 입력 콜백 함수
void keyCallback(GLFWwindow *window, int key, int scancode, int action, int mods) {
    if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
        glfwSetWindowShouldClose(window, GLFW_TRUE);
    }
}

int main() {
    // ...

    // 키보드 입력 콜백 등록
    glfwSetKeyCallback(window, keyCallback);

    // ...

    // 이벤트 루프
    while (!glfwWindowShouldClose(window)) {
        // 이벤트 처리
        glfwPollEvents();

        // ...
    }

    // ...
}

위 예제에서 glfwSetKeyCallback 함수를 사용하여 키보드 입력에 대한 콜백 함수를 등록하고, 등록된 콜백 함수에서 ESC 키가 눌리면 윈도우를 닫도록 처리하고 있습니다. 마우스 입력 및 기타 이벤트도 마찬가지로 처리할 수 있습니다.

결론

GLFW를 사용하면 간단하게 윈도우 및 입력 처리를 구현할 수 있습니다. 이러한 기능을 통해 OpenGL 기반 애플리케이션을 개발할 때 GLFW를 활용할 수 있습니다.

더 많은 정보는 GLFW 공식 문서에서 확인할 수 있습니다.