ゲームグラフィックス特論
公開メンバ関数 | 全メンバ一覧
gg::GgSimpleShader::LightBuffer クラス

三角形に単純な陰影付けを行うシェーダが参照する光源データのユニフォームバッファオブジェクト. [詳解]

#include <gg.h>

gg::GgSimpleShader::LightBuffer の継承関係図
Inheritance graph
[凡例]
gg::GgSimpleShader::LightBuffer 連携図
Collaboration graph
[凡例]

公開メンバ関数

 LightBuffer (const Light *light=nullptr, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
 デフォルトコンストラクタ. [詳解]
 
 LightBuffer (const Light &light, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
 同じデータで埋めるコンストラクタ. [詳解]
 
virtual ~LightBuffer ()
 デストラクタ. [詳解]
 
void loadAmbient (GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, GLint first=0, GLsizei count=1) const
 光源の強度の環境光成分を設定する. [詳解]
 
void loadAmbient (const GLfloat *ambient, GLint first=0, GLsizei count=1) const
 光源の強度の環境光成分を設定する. [詳解]
 
void loadDiffuse (GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, GLint first=0, GLsizei count=1) const
 光源の強度の拡散反射光成分を設定する. [詳解]
 
void loadDiffuse (const GLfloat *diffuse, GLint first=0, GLsizei count=1) const
 光源の強度の拡散反射光成分を設定する. [詳解]
 
void loadSpecular (GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, GLint first=0, GLsizei count=1) const
 光源の強度の鏡面反射光成分を設定する. [詳解]
 
void loadSpecular (const GLfloat *specular, GLint first=0, GLsizei count=1) const
 光源の強度の鏡面反射光成分を設定する. [詳解]
 
void loadColor (const Light &color, GLint first=0, GLsizei count=1) const
 光源の色を設定するが位置は変更しない. [詳解]
 
void loadPosition (GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f, GLint first=0, GLsizei count=1) const
 光源の位置を設定する. [詳解]
 
void loadPosition (const GgVector &position, GLint first=0, GLsizei count=1) const
 光源の位置を設定する. [詳解]
 
void loadPosition (const GLfloat *position, GLint first=0, GLsizei count=1) const
 光源の位置を設定する. [詳解]
 
void loadPosition (const GgVector *position, GLint first=0, GLsizei count=1) const
 光源の位置を設定する. [詳解]
 
void load (const Light *light, GLint first=0, GLsizei count=1) const
 光源の色と位置を設定する. [詳解]
 
void load (const Light &light, GLint first=0, GLsizei count=1) const
 光源の色と位置を設定する. [詳解]
 
void select (GLint i=0) const
 光源を選択する. [詳解]
 
- 基底クラス gg::GgUniformBuffer< Light > に属する継承公開メンバ関数
 GgUniformBuffer ()
 コンストラクタ. [詳解]
 
 GgUniformBuffer (const Light *data, GLsizei count, GLenum usage=GL_STATIC_DRAW)
 ユニフォームバッファオブジェクトのブロックごとにデータを転送するコンストラクタ. [詳解]
 
 GgUniformBuffer (const Light &data, GLsizei count, GLenum usage=GL_STATIC_DRAW)
 ユニフォームバッファオブジェクトの全ブロックに同じデータを格納するコンストラクタ. [詳解]
 
virtual ~GgUniformBuffer ()
 デストラクタ. [詳解]
 
GLuint getTarget () const
 ユニフォームバッファオブジェクトのターゲットを取り出す. [詳解]
 
GLsizeiptr getStride () const
 ユニフォームバッファオブジェクトのアライメントを考慮したデータの間隔を取り出す. [詳解]
 
GLsizei getCount () const
 データの数を取り出す. [詳解]
 
GLuint getBuffer () const
 ユニフォームバッファオブジェクト名を取り出す. [詳解]
 
void bind () const
 ユニフォームバッファオブジェクトを結合する. [詳解]
 
void unbind () const
 ユニフォームバッファオブジェクトを解放する. [詳解]
 
void * map () const
 ユニフォームバッファオブジェクトをマップする. [詳解]
 
void * map (GLint first, GLsizei count) const
 ユニフォームバッファオブジェクトの指定した範囲をマップする. [詳解]
 
void unmap () const
 バッファオブジェクトをアンマップする. [詳解]
 
void load (const Light *data, GLsizei count, GLenum usage=GL_STATIC_DRAW)
 ユニフォームバッファオブジェクトを確保してブロックごとにデータを転送する. [詳解]
 
void load (const Light &data, GLsizei count, GLenum usage=GL_STATIC_DRAW)
 ユニフォームバッファオブジェクトを確保して全てのブロックに同じデータを格納する. [詳解]
 
void send (const GLvoid *data, GLint offset=0, GLsizei size=sizeof(Light), GLint first=0, GLsizei count=0) const
 ユニフォームバッファオブジェクトを確保してユニフォームバッファオブジェクトのブロックごとのメンバを同じデータで埋める. [詳解]
 
void fill (const GLvoid *data, GLint offset=0, GLsizei size=sizeof(Light), GLint first=0, GLsizei count=0) const
 ユニフォームバッファオブジェクトの全ブロックのメンバーを同じデータを格納する. [詳解]
 
void read (GLvoid *data, GLint offset=0, GLsizei size=sizeof(Light), GLint first=0, GLsizei count=0) const
 ユニフォームバッファオブジェクトからデータを抽出する. [詳解]
 
void copy (GLuint src_buffer, GLint src_first=0, GLint dst_first=0, GLsizei count=0) const
 別のバッファオブジェクトからデータを複写する. [詳解]
 

詳解

三角形に単純な陰影付けを行うシェーダが参照する光源データのユニフォームバッファオブジェクト.

gg.h5296 行目に定義があります。

構築子と解体子

◆ LightBuffer() [1/2]

gg::GgSimpleShader::LightBuffer::LightBuffer ( const Light light = nullptr,
GLsizei  count = 1,
GLenum  usage = GL_STATIC_DRAW 
)
inline

デフォルトコンストラクタ.

引数
lightGgSimpleShader::Light 型の光源データのポインタ.
countバッファ中の GgSimpleShader::Light 型の光源データの数.
usageバッファの使い方のパターン, glBufferData() の第 4 引数の usage に渡される.

gg.h5305 行目に定義があります。

◆ LightBuffer() [2/2]

gg::GgSimpleShader::LightBuffer::LightBuffer ( const Light light,
GLsizei  count = 1,
GLenum  usage = GL_STATIC_DRAW 
)
inline

同じデータで埋めるコンストラクタ.

引数
lightGgSimpleShader::Light 型の光源データ.
countバッファ中の GgSimpleShader::Light 型の光源データの数.
usageバッファの使い方のパターン, glBufferData() の第 4 引数の usage に渡される.

gg.h5312 行目に定義があります。

◆ ~LightBuffer()

virtual gg::GgSimpleShader::LightBuffer::~LightBuffer ( )
inlinevirtual

デストラクタ.

gg.h5316 行目に定義があります。

関数詳解

◆ load() [1/2]

void gg::GgSimpleShader::LightBuffer::load ( const Light light,
GLint  first = 0,
GLsizei  count = 1 
) const
inline

光源の色と位置を設定する.

引数
light光源の特性の GgSimpleShader::Light 構造体
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.h5428 行目に定義があります。

呼び出し関係図:

◆ load() [2/2]

void gg::GgSimpleShader::LightBuffer::load ( const Light light,
GLint  first = 0,
GLsizei  count = 1 
) const
inline

光源の色と位置を設定する.

引数
light光源の特性の GgSimpleShader::Light 構造体のポインタ
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.h5419 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ loadAmbient() [1/2]

void gg::GgSimpleShader::LightBuffer::loadAmbient ( const GLfloat *  ambient,
GLint  first = 0,
GLsizei  count = 1 
) const
inline

光源の強度の環境光成分を設定する.

引数
ambient光源の強度の環境光成分を格納した GLfloat 型の 4 要素の配列変数.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.h5331 行目に定義があります。

呼び出し関係図:

◆ loadAmbient() [2/2]

void gg::GgSimpleShader::LightBuffer::loadAmbient ( GLfloat  r,
GLfloat  g,
GLfloat  b,
GLfloat  a = 1.0f,
GLint  first = 0,
GLsizei  count = 1 
) const

光源の強度の環境光成分を設定する.

引数
r光源の強度の環境光成分の赤成分.
g光源の強度の環境光成分の緑成分.
b光源の強度の環境光成分の青成分.
a光源の強度の拡散反射光成分の不透明度, デフォルトは 1.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.cpp5301 行目に定義があります。

◆ loadColor()

void gg::GgSimpleShader::LightBuffer::loadColor ( const Light color,
GLint  first = 0,
GLsizei  count = 1 
) const

光源の色を設定するが位置は変更しない.

引数
color光源の特性の GgSimpleShader::Light 構造体.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.cpp5385 行目に定義があります。

◆ loadDiffuse() [1/2]

void gg::GgSimpleShader::LightBuffer::loadDiffuse ( const GLfloat *  diffuse,
GLint  first = 0,
GLsizei  count = 1 
) const
inline

光源の強度の拡散反射光成分を設定する.

引数
diffuse光源の強度の拡散反射光成分を格納した GLfloat 型の 4 要素の配列変数.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.h5350 行目に定義があります。

呼び出し関係図:

◆ loadDiffuse() [2/2]

void gg::GgSimpleShader::LightBuffer::loadDiffuse ( GLfloat  r,
GLfloat  g,
GLfloat  b,
GLfloat  a = 1.0f,
GLint  first = 0,
GLsizei  count = 1 
) const

光源の強度の拡散反射光成分を設定する.

引数
r光源の強度の拡散反射光成分の赤成分.
g光源の強度の拡散反射光成分の緑成分.
b光源の強度の拡散反射光成分の青成分.
a光源の強度の拡散反射光成分の不透明度, デフォルトは 1.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.cpp5330 行目に定義があります。

◆ loadPosition() [1/4]

void gg::GgSimpleShader::LightBuffer::loadPosition ( const GgVector position,
GLint  first = 0,
GLsizei  count = 1 
) const

光源の位置を設定する.

引数
position光源の位置の同次座標を格納した GgVector 型の変数.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.cpp5439 行目に定義があります。

◆ loadPosition() [2/4]

void gg::GgSimpleShader::LightBuffer::loadPosition ( const GgVector position,
GLint  first = 0,
GLsizei  count = 1 
) const
inline

光源の位置を設定する.

引数
position光源の位置の同次座標を格納した GgVector 型の配列.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.h5410 行目に定義があります。

呼び出し関係図:

◆ loadPosition() [3/4]

void gg::GgSimpleShader::LightBuffer::loadPosition ( const GLfloat *  position,
GLint  first = 0,
GLsizei  count = 1 
) const
inline

光源の位置を設定する.

引数
position光源の位置の同次座標を格納した GLfloat 型の 4 要素の配列変数.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.h5400 行目に定義があります。

呼び出し関係図:

◆ loadPosition() [4/4]

void gg::GgSimpleShader::LightBuffer::loadPosition ( GLfloat  x,
GLfloat  y,
GLfloat  z,
GLfloat  w = 1.0f,
GLint  first = 0,
GLsizei  count = 1 
) const

光源の位置を設定する.

引数
x光源の位置の x 座標.
y光源の位置の y 座標.
z光源の位置の z 座標.
w光源の位置の w 座標, デフォルトは 1.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.cpp5413 行目に定義があります。

被呼び出し関係図:

◆ loadSpecular() [1/2]

void gg::GgSimpleShader::LightBuffer::loadSpecular ( const GLfloat *  specular,
GLint  first = 0,
GLsizei  count = 1 
) const
inline

光源の強度の鏡面反射光成分を設定する.

引数
specular光源の強度の鏡面反射光成分を格納した GLfloat 型の 4 要素の配列変数.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.h5369 行目に定義があります。

呼び出し関係図:

◆ loadSpecular() [2/2]

void gg::GgSimpleShader::LightBuffer::loadSpecular ( GLfloat  r,
GLfloat  g,
GLfloat  b,
GLfloat  a = 1.0f,
GLint  first = 0,
GLsizei  count = 1 
) const

光源の強度の鏡面反射光成分を設定する.

引数
r光源の強度の鏡面反射光成分の赤成分.
g光源の強度の鏡面反射光成分の緑成分.
b光源の強度の鏡面反射光成分の青成分.
a光源の強度の鏡面反射光成分の不透明度, デフォルトは 1.
first値を設定する光源データの最初の番号, デフォルトは 0.
count値を設定する光源データの数, デフォルトは 1.

gg.cpp5359 行目に定義があります。

◆ select()

void gg::GgSimpleShader::LightBuffer::select ( GLint  i = 0) const
inline

光源を選択する.

引数
i光源データの uniform block のインデックス.

gg.h5435 行目に定義があります。

呼び出し関係図:

このクラス詳解は次のファイルから抽出されました: