-
Notifications
You must be signed in to change notification settings - Fork 0
srcs__core__engine_cpp
Ishi_eenn edited this page May 19, 2026
·
2 revisions
ゲーム全体の進行役。GLFWウィンドウ、入力、World、Player、ChunkManager、Rendererをつなぎ、タイトル画面からメインループ、終了処理までを管理する。
-
RayHit(struct, 行 54) -
Engine(struct, 行 143)
-
castRay: 行 63-116 -
rebuildModified: 行 121-135 -
Engine::Engine: 行 157-157 -
Engine::~Engine: 行 158-158 -
Engine::init: 行 163-226 -
Engine::run: 行 240-483 -
Engine::shutdown: 行 489-502
- 場所: 行 63-116
- シグネチャ:
static RayHit castRay(const glm::vec3& origin, const glm::vec3& dir, float max_dist, World& world) - 内容: このファイルの責務に沿った補助処理を行う。
- 主な呼び出し:
ivec3(),floor(),abs(),getWorldBlock(),min()
手順:
- 入力値や現在状態を検査し、処理すべき条件を絞る。
- 対象範囲やキューをループで走査する。
- 必要な参照データや現在状態を取得する。
- 処理結果または成功/失敗を呼び出し元へ返す。
- 場所: 行 121-135
- シグネチャ:
static void rebuildModified(int wx, int wz, ChunkManager& mgr) - 内容: 入力データから描画または処理に使う中間データを構築する。
- 主な呼び出し:
rebuildModified(),floor(),rebuildChunkAt()
- 場所: 行 157-157
- シグネチャ:
Engine::Engine() : impl_(std::make_unique<Impl>()) - 内容: このファイルの責務に沿った補助処理を行う。
- 主な呼び出し:
Engine(),impl_()
- 場所: 行 158-158
- シグネチャ:
Engine::~Engine() - 内容: このファイルの責務に沿った補助処理を行う。
- 主な呼び出し:
Engine(),shutdown()
- 場所: 行 163-226
- シグネチャ:
bool Engine::init(uint32_t seed, int width, int height) - 内容: GLFW/OpenGLのウィンドウを作成し、Renderer、World、Player、ChunkManagerを初期化してゲーム実行可能な状態にする。
- 主な呼び出し:
init(),glfwInit(),fprintf(),glfwWindowHint(),glfwGetPrimaryMonitor(),glfwGetVideoMode(),glfwCreateWindow(),glfwTerminate(),glfwMakeContextCurrent(),glfwSwapInterval()
手順:
- GLFWを初期化し、OpenGL 4.1 Core Profileなどのウィンドウ条件を設定する。
- モニタ情報からウィンドウサイズを決め、フルスクリーンウィンドウを作成する。
- OpenGLコンテキストを有効化し、Rendererを初期化する。
- Worldへシードを設定し、Playerとカメラの初期状態を整える。
- ChunkManagerを作成して、チャンク生成/描画連携を開始できる状態にする。
- 場所: 行 240-483
- シグネチャ:
void Engine::run() - 内容: タイトル画面を表示した後、終了まで毎フレーム入力、プレイヤー更新、ブロック編集、水更新、チャンク更新、描画を回す。
- 主な呼び出し:
run(),now(),glfwSetInputMode(),count(),glfwPollEvents(),glfwWindowShouldClose(),glfwGetKey(),wasResized(),resizeW(),resizeH()
手順:
- タイトル画面用ループを回し、Escまたは開始入力を待つ。
- メインループではフレーム時間とFPSを計算する。
- 入力イベントを処理し、Playerを更新する。
- クリック入力があればレイキャストで対象ブロックを探し、破壊または設置を行う。
- 水流更新で変化した周辺チャンクを再メッシュ対象にする。
- ChunkManagerでチャンク生成、メッシュ化、アップロード、破棄を進める。
- カメラ行列とFrustumを作り、見えるチャンクだけを描画する。
- 空、不透明地形、水、ミニマップ、HUDを描画してフレームを終了する。
- 場所: 行 489-502
- シグネチャ:
void Engine::shutdown() - 内容: ChunkManager、Renderer、GLFWウィンドウを順に破棄し、外部リソースを解放する。
- 主な呼び出し:
shutdown(),reset(),glfwDestroyWindow(),glfwTerminate(),fprintf()
ft_vox 仕様書
- Home
- 概要
- Core
- Player
- World
- Streaming
- Renderer
- srcs/renderer/frustum.cpp
- srcs/renderer/minimap.cpp
- srcs/renderer/renderer.cpp
- srcs/renderer/shader.cpp
- srcs/renderer/skybox.cpp
- srcs/renderer/texture_atlas.cpp
- srcs/renderer/title_screen.cpp
- srcs/renderer/frustum.hpp
- srcs/renderer/minimap.hpp
- srcs/renderer/renderer.hpp
- srcs/renderer/shader.hpp
- srcs/renderer/skybox.hpp
- srcs/renderer/texture_atlas.hpp
- srcs/renderer/title_screen.hpp
- Interfaces
- Shaders
- Build / Docs