// GLFW 초기화
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW");
}
// 윈도우 힌트 (옵션들 설정)
glfwDefaultWindowHints();
glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE); // 나중에 직접 보이게 할 거라 처음엔 숨김
glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE); // 창 크기 조절 가능
int width = 1280;
int height = 720;
// 윈도우 생성
window = glfwCreateWindow(width, height, "OpenCraft", NULL, NULL);
if (window == NULL) {
throw new RuntimeException("Failed to create the GLFW window");
}
// OpenGL 컨텍스트를 현재 스레드에 연결
glfwMakeContextCurrent(window);
// VSync 활성화 (1이면 모니터 주사율에 동기)
glfwSwapInterval(1);
// 윈도우를 화면에 보이게
glfwShowWindow(window);
// OpenGL 함수 사용 준비 (컨텍스트가 있어야 호출 가능)
GL.createCapabilities();
// 깊이 테스트 켜두기 (3D용인데 지금은 영향 거의 없음)
glEnable(GL_DEPTH_TEST);
private void loop() {
// 메인 루프
while (!glfwWindowShouldClose(window)) {
// 배경색 설정 (R, G, B, A)
glClearColor(0.1f, 0.2f, 0.3f, 0.0f);
// 컬러 버퍼 + 깊이 버퍼 지우기
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// TODO: 나중에 여기서 OpenGL로 그림(3D, 블럭 등)을 그릴 거야
glfwSwapBuffers(window); // 앞/뒤 버퍼 교체
glfwPollEvents(); // 키보드/마우스/창 이벤트 처리
}
}