Skip to content

srcs__renderer__minimap_cpp

Ishi_eenn edited this page May 19, 2026 · 2 revisions

srcs/renderer/minimap.cpp

役割

Worldから周辺地形をサンプリングしてミニマップ画像を作り、HUD上に描画する。

関数一覧

  • Minimap::init: 行 23-65
  • Minimap::update: 行 68-165
  • Minimap::draw: 行 168-245
  • Minimap::destroy: 行 248-255

関数ごとの説明

Minimap::init

  • 場所: 行 23-65
  • シグネチャ: bool Minimap::init()
  • 内容: 必要な状態や外部リソースを初期化する。
  • 主な呼び出し: init(), load(), glGenTextures(), glBindTexture(), memset(), glTexImage2D(), glTexParameteri(), glGenVertexArrays(), glGenBuffers(), glBindVertexArray()

Minimap::update

  • 場所: 行 68-165
  • シグネチャ: void Minimap::update(World& world, float px, float pz, float yaw_deg, float dt)
  • 内容: プレイヤー周辺の地表ブロックをサンプリングし、色付きピクセルとしてミニマップテクスチャを更新する。
  • 主な呼び出し: update(), abs(), pixel(), floor(), memset(), chunks(), find(), end(), get(), max()

手順:

  1. プレイヤー移動量や更新間隔から、再生成が必要か判定する。
  2. 表示範囲のチャンクを調べ、未ロード部分は灰色にする。
  3. 各列の一番上に見えるブロックを探して色に変換する。
  4. プレイヤー位置と向きマーカーを描き込む。
  5. ピクセル配列をOpenGLテクスチャへアップロードする。

Minimap::draw

  • 場所: 行 168-245
  • シグネチャ: void Minimap::draw(Shader& hud_shader, int sw, int sh)
  • 内容: 更新済みミニマップテクスチャをHUD上に描画する。
  • 主な呼び出し: draw(), ndcX(), ndcY(), glDisable(), glBindBuffer(), glBufferSubData(), glBindVertexArray(), use(), setVec4(), glDrawArrays()

手順:

  1. 計算結果を内部状態、配列、キュー、または対象オブジェクトへ反映する。
  2. OpenGL/GLFWのAPIを呼び、描画状態やGPUリソースを操作する。
  3. 処理結果または成功/失敗を呼び出し元へ返す。

Minimap::destroy

  • 場所: 行 248-255
  • シグネチャ: void Minimap::destroy()
  • 内容: 確保済みのリソースを解放し、再利用されない状態にする。
  • 主な呼び出し: destroy(), glDeleteTextures(), glDeleteVertexArrays(), glDeleteBuffers()

Clone this wiki locally