MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
mgTexture クラス

Texture definition class. [詳解]

公開メンバ関数

 mgTexture (GLenum target=GL_TEXTURE_2D)
 
 ~mgTexture ()
 
void set_sampler (mgGLSLProgram *glsl, const std::string &samplerName)
 
const std::string & getDefaultSamplerVariable () const
 
void set_image (GLsizei width, GLsizei height, const GLuint *pixels, bool mutableTexture=true, bool isPointSprite=false, GLint wrap=GL_REPEAT, GLint magminFilter=GL_LINEAR)
 
void set_image (const MGImage &image, bool mutableTexture=true, bool isPointSprite=false, GLint wrap=GL_REPEAT, GLint magminFilter=GL_LINEAR)
 
void set_textureUnit (int textureUnit)
 When set_textureUnit is not invoked, m_textureUnit=0 is assumed. [詳解]
 
GLuint getTextureID () const
 get texture ID [詳解]
 
void use () const
 
GLsizei width () const
 
GLsizei height () const
 

詳解

Texture definition class.

Before use of mgTexture, set_image must be invoked, and set_sampler is optionally invoked. If set_sampler is not invoked, uniform of spampler2D "texture1" is assumed. Since mgTexture does not invoke glUseProgram(mgGLSLProgram's use() function) the current program's uniform variable texture1(or the variable set by set_sampler) must be spamler2D. When set_textureUnit is not invoked, unit number 0 is assumed.

構築子と解体子

mgTexture::mgTexture ( GLenum  target = GL_TEXTURE_2D)

デフォルトコンストラクター Before use of mgTexture, set_image and set_sampler must be invoked.

引数
targetCurrently only GL_TEXTURE_2D is allowed.
mgTexture::~mgTexture ( )

関数詳解

const std::string& mgTexture::getDefaultSamplerVariable ( ) const
GLuint mgTexture::getTextureID ( ) const
inline

get texture ID

GLsizei mgTexture::height ( ) const
inline
void mgTexture::set_image ( GLsizei  width,
GLsizei  height,
const GLuint *  pixels,
bool  mutableTexture = true,
bool  isPointSprite = false,
GLint  wrap = GL_REPEAT,
GLint  magminFilter = GL_LINEAR 
)

image データをtextureにセットする

覚え書き
pixelsピクセルデータのフォーマットについて説明すると、 GLuint 型の配列を利用し、各 4 バイトを 1 ピクセルの色に対応させている。 整数の上位バイトから A, B, G, R の順に格納されていることを前提とする。 例えば値 0xFF000000, 0xFFFF0000, 0xFF00FF00, 0xFF0000FF はそれぞれ 黒、青、緑、赤を意味する。 Set the image data. set_image() invokes:
  1. glGenTextures(if m_textureID was 0)
  2. glBindTexture
  3. glTexImage2D or glTexStorege2D
  4. glTexSubImage2D *******After set_image is invoked, image data is unnecessary since the data is transfered to GPU.
引数
widthビットマップデータの横幅。ピクセル幅
heightビットマップデータの縦幅。
pixelsRGBA バイト列。各整数の上位バイトが A 値。
mutableTexturetrue if mutable, false, if immutable.
isPointSpritetrue if point sprite.
wrapGL_TEXTURE_WRAP_S&GL_TEXTURE_WRAP_Tに指定するparameterを指定 GL_REPEAT, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_BORDER, GL_MIRRORED_REPEAT, or GL_MIRROR_CLAMP_TO_EDGEGL_REPEAT.
magminFilterGL_TEXTURE_MAG_FILTER&GL_TEXTURE_MIN_FILTERに 指定するparameterを指定する:GL_NEAREST,GL_LINEAR,GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST,GL_NEAREST_MIPMAP_LINEAR,GL_LINEAR_MIPMAP_LINEAR いずれか。GL_TEXTURE_MAG_FILTER&GL_TEXTURE_MIN_FILTER双方に同じ値がセットされる。
void mgTexture::set_image ( const MGImage image,
bool  mutableTexture = true,
bool  isPointSprite = false,
GLint  wrap = GL_REPEAT,
GLint  magminFilter = GL_LINEAR 
)

Set the image data from other MGImage. This type of set_image uses image.width(), .height(), and .image(), and invoke above set_image. set_image() invokes:

  1. glGenTextures(if m_textureIDwas 0),
  2. glBindTexture
  3. glTexImage2D or glTexStorege2D
  4. glTexSubImage2D *******After set_image is invoked, image data is unnecessary since teh data is transfered to GPU.
引数
imageOriginal image.
mutableTexturetrue if mutable, false, if immutable.
isPointSpritetrue if point sprite.
wrapGL_TEXTURE_WRAP_S&GL_TEXTURE_WRAP_Tに指定するparameterを指定 GL_REPEAT, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_BORDER, GL_MIRRORED_REPEAT, or GL_MIRROR_CLAMP_TO_EDGEGL_REPEAT.
magminFilterGL_TEXTURE_MAG_FILTER&GL_TEXTURE_MIN_FILTERに 指定するparameterを指定する:GL_NEAREST,GL_LINEAR,GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST,GL_NEAREST_MIPMAP_LINEAR,GL_LINEAR_MIPMAP_LINEAR いずれか。GL_TEXTURE_MAG_FILTER&GL_TEXTURE_MIN_FILTER双方に同じ値がセットされる。
void mgTexture::set_sampler ( mgGLSLProgram glsl,
const std::string &  samplerName 
)

Set the glsl program and sampler variable name of *****glUseProgram() is not invoked, glsl must be the current program.

void mgTexture::set_textureUnit ( int  textureUnit)
inline

When set_textureUnit is not invoked, m_textureUnit=0 is assumed.

void mgTexture::use ( ) const

Use this texture after set_image and set_sampler are invoked. Use() will invoke OpenGL:

  1. glActiveTexture()
  2. glBindTexture()
  3. glSetUniform1i(m_samplerLocation). *****glUseProgram() is not invoked, m_samplerLocation must be the current program's.
GLsizei mgTexture::width ( ) const
inline

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