Skip to content

srcs__renderer__shader_cpp

Ishi_eenn edited this page May 19, 2026 · 2 revisions

srcs/renderer/shader.cpp

役割

GLSLファイルの読み込み、コンパイル、リンク、uniform設定を行う。

関数一覧

  • readFile: 行 36-46
  • Shader::compileStage: 行 58-78
  • Shader::load: 行 86-135
  • Shader::use: 行 142-144
  • Shader::destroy: 行 147-152
  • Shader::~Shader: 行 154-156
  • Shader::setMat4: 行 167-171
  • Shader::setInt: 行 174-178
  • Shader::setFloat: 行 181-185
  • Shader::setVec3: 行 188-192
  • Shader::setVec4: 行 195-199

関数ごとの説明

readFile

  • 場所: 行 36-46
  • シグネチャ: static bool readFile(const char* path, std::string& out)
  • 内容: このファイルの責務に沿った補助処理を行う。
  • 主な呼び出し: readFile(), f(), is_open(), rdbuf(), str()

Shader::compileStage

  • 場所: 行 58-78
  • シグネチャ: uint32_t Shader::compileStage(uint32_t type, const std::string& src)
  • 内容: このファイルの責務に沿った補助処理を行う。
  • 主な呼び出し: compileStage(), glCreateShader(), c_str(), glShaderSource(), glCompileShader(), glGetShaderiv(), log(), glGetShaderInfoLog(), data(), glDeleteShader()

Shader::load

  • 場所: 行 86-135
  • シグネチャ: bool Shader::load(const char* vert_path, const char* frag_path)
  • 内容: このファイルの責務に沿った補助処理を行う。
  • 主な呼び出し: load(), readFile(), compileStage(), glDeleteShader(), glCreateProgram(), glAttachShader(), glLinkProgram(), glGetProgramiv(), log(), glGetProgramInfoLog()

手順:

  1. 入力値や現在状態を検査し、処理すべき条件を絞る。
  2. 必要な参照データや現在状態を取得する。
  3. OpenGL/GLFWのAPIを呼び、描画状態やGPUリソースを操作する。
  4. 処理結果または成功/失敗を呼び出し元へ返す。

Shader::use

  • 場所: 行 142-144
  • シグネチャ: void Shader::use() const
  • 内容: このファイルの責務に沿った補助処理を行う。
  • 主な呼び出し: use(), glUseProgram()

Shader::destroy

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

Shader::~Shader

  • 場所: 行 154-156
  • シグネチャ: Shader::~Shader()
  • 内容: このファイルの責務に沿った補助処理を行う。
  • 主な呼び出し: Shader(), destroy()

Shader::setMat4

  • 場所: 行 167-171
  • シグネチャ: void Shader::setMat4(const char* name, const float* mat4) const
  • 内容: 内部状態や対象データに新しい値を設定する。
  • 主な呼び出し: setMat4(), glGetUniformLocation(), glUniformMatrix4fv()

Shader::setInt

  • 場所: 行 174-178
  • シグネチャ: void Shader::setInt(const char* name, int val) const
  • 内容: 内部状態や対象データに新しい値を設定する。
  • 主な呼び出し: setInt(), glGetUniformLocation(), glUniform1i()

Shader::setFloat

  • 場所: 行 181-185
  • シグネチャ: void Shader::setFloat(const char* name, float val) const
  • 内容: 内部状態や対象データに新しい値を設定する。
  • 主な呼び出し: setFloat(), glGetUniformLocation(), glUniform1f()

Shader::setVec3

  • 場所: 行 188-192
  • シグネチャ: void Shader::setVec3(const char* name, float x, float y, float z) const
  • 内容: 内部状態や対象データに新しい値を設定する。
  • 主な呼び出し: setVec3(), glGetUniformLocation(), glUniform3f()

Shader::setVec4

  • 場所: 行 195-199
  • シグネチャ: void Shader::setVec4(const char* name, float x, float y, float z, float w) const
  • 内容: 内部状態や対象データに新しい値を設定する。
  • 主な呼び出し: setVec4(), glGetUniformLocation(), glUniform4f()

Clone this wiki locally