[c++] GLFW의 이벤트 처리

GLFW는 많은 종류의 이벤트를 처리할 수 있는 라이브러리입니다. 이 라이브러리를 사용하면 윈도우 리사이즈, 키 입력, 마우스 이동 등 다양한 이벤트를 처리할 수 있습니다.

이벤트 핸들러 등록

GLFW에서 이벤트를 처리하려면 이벤트 핸들러를 등록해야 합니다. 아래는 윈도우 리사이즈 이벤트를 처리하는 핸들러의 예제입니다.

void window_size_callback(GLFWwindow* window, int width, int height) {
    // 윈도우의 크기가 변경되었을 때 실행되는 코드
}

int main() {
    // 윈도우 생성 및 초기화
    GLFWwindow* window = glfwCreateWindow(800, 600, "GLFW Event Handling", NULL, NULL);
    glfwMakeContextCurrent(window);

    // 윈도우 리사이즈 콜백 함수 등록
    glfwSetWindowSizeCallback(window, window_size_callback);

    while (!glfwWindowShouldClose(window)) {
        // 이벤트 처리 및 렌더링
        glfwPollEvents();
        // ...
    }

    glfwTerminate();
    return 0;
}

위 코드에서 glfwSetWindowSizeCallback 함수를 사용하여 윈도우 리사이즈 이벤트 핸들러를 등록했습니다.

이벤트 처리

등록된 이벤트 핸들러는 이벤트가 발생했을 때 실행됩니다. 예를 들어, 윈도우 리사이즈 이벤트가 발생하면 window_size_callback 함수가 호출됩니다.

void window_size_callback(GLFWwindow* window, int width, int height) {
    std::cout << "윈도우 크기가 변경되었습니다: " << width << "x" << height << std::endl;
    // 다른 동작 수행
}

위 예제에서는 윈도우의 크기가 변경될 때 로그를 출력하는 방법을 보여줍니다.

GLFW의 다른 이벤트도 위와 같은 방식으로 처리할 수 있습니다.

마우스 및 키보드 이벤트

GLFW는 마우스 및 키보드 이벤트도 처리할 수 있습니다. 각각의 이벤트에 대한 핸들러를 등록하고 처리하는 방법은 유사합니다.

이제 이벤트 핸들링을 통해 더 다양한 상호작용을 가능하게 할 수 있습니다.

GLFW 이벤트 처리 문서를 참조하여 더 많은 이벤트 처리 방법을 확인할 수 있습니다.