OpenGL ES 2.0

2011. 10. 24
INDEXABCDEFGHILPRSTUV

A

glActiveTexture
glAttachShader

B

glBindAttribLocation
glBindBuffer
glBindFramebuffer
glBindRenderbuffer
glBindTexture
glBlendColor
glBlendEquation
glBlendEquationSeparate
glBlendFunc
glBlendFuncSeparate
glBufferData
glBufferSubData

C

glCheckFramebufferStatus
glClear
glClearColor
glClearDepthf
glClearStencil
glColorMask
glCompileShader
glCompressedTexImage2D
glCompressedTexSubImage2D
glCopyTexImage2D
glCopyTexSubImage2D
glCreateProgram
glCreateShader
glCullFace

D

glDeleteBuffers
glDeleteFramebuffers
glDeleteProgram
glDeleteRenderbuffers
glDeleteShader
glDeleteTextures
glDepthFunc
glDepthMask
glDepthRangef
glDetachShader
glDisable
glDisableVertexAttribArray
glDrawArrays
glDrawElements

E

glEnable
glEnableVertexAttribArray

F

glFinish
glFlush
glFramebufferRenderbuffer
glFramebufferTexture2D
glFrontFace

G

glGenBuffers
glGenFramebuffers
glGenRenderbuffers
glGenTextures
glGenerateMipmap
glGet
glGetActiveAttrib
glGetActiveUniform
glGetAttachedShaders
glGetAttribLocation
glGetBufferParameteriv
glGetError
glGetFramebufferAttachmentParameteriv
glGetProgramInfoLog
glGetProgramiv
glGetRenderbufferParameteriv
glGetShaderInfoLog
glGetShaderPrecisionFormat
glGetShaderSource
glGetShaderiv
glGetString
glGetTexParameter
glGetUniform
glGetUniformLocation
glGetVertexAttrib
glGetVertexAttribPointerv

H

glHint

I

glIsBuffer
glIsEnabled
glIsFramebuffer
glIsProgram
glIsRenderbuffer
glIsShader
glIsTexture

L

glLineWidth
glLinkProgram

P

glPixelStorei
glPolygonOffset

R

glReadPixels
glReleaseShaderCompiler
glRenderbufferStorage

S

glSampleCoverage
glScissor
glShaderBinary
glShaderSource
glStencilFunc
glStencilFuncSeparate
glStencilMask
glStencilMaskSeparate
glStencilOp
glStencilOpSeparate

T

glTexImage2D
glTexParameter
glTexSubImage2D

U

glUniform
glUseProgram

V

glValidateProgram
glVertexAttrib
glVertexAttribPointer
glViewport



●A

glActiveTexture

void glActiveTexture(GLenum texture);

アクティブなテクスチャユニットを選択します。

glActiveTextureは、後続のテクスチャの状態の呼び出しに作用するテクスチャユニットを選択します。

実装がサポートするテクスチャユニット数は実装に依存しますが、少なくとも2である必要があります。

textureがGL_TEXTUREiの一つ(iの範囲は、0から(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1))でない場合、GL_INVALID_ENUMが発生します。

texture
:アクティブにするテクスチャユニットを指定します。
テクスチャユニット数は実装に依存しますが、少なくとも2である必要があります。
textureはGL_TEXTUREiの一つ(iの範囲は、0から(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1))である必要があります。
初期値はGL_TEXTURE0です。

△ Back to INDEX

glAttachShader


プログラムオブジェクトにシェーダオブジェクトをアタッチします。

void glAttachShader(GLuint program, GLuint shader);

実行可能オブジェクトを生成するには、一緒にリンクするもののリストを指定する方法が必要になります。

プログラムオブジェクトはこの機構を提供します。

プログラムオブジェクト内で一緒にリンクされるシェーダは、最初にプログラムオブジェクトにアタッチする必要があります。

glAttachShaderは、programによって指定されたプログラムオブジェクトに、shaderによって指定されたシェーダオブジェクトをアタッチします。

これは、シェーダがprogram上で実行されるリンク操作内に含まれることを示します。

シェーダオブジェクト上で実行できる全ての操作は、シェーダオブジェクトがプログラムオブジェクトにアタッチされているかどうかに関わらず有効です。

これは、シェーダオブジェクトがソースコードを読み込む前、またはシェーダオブジェクトがコンパイルされる前に、プログラムオブジェクトにシェーダオブジェクトがアタッチすることを許容しています。

同じタイプの複数のシェーダオブジェクトが、単一のプログラムオブジェクトにアタッチすることはできません。

しかし単一のシェーダオブジェクトが一つ以上のプログラムオブジェクトにアタッチすることはできます。

プログラムオブジェクトにアタッチされていたシェーダオブジェクトが削除された場合、削除フラグが立てられますが、アタッチされていた全てのプログラムオブジェクトから、glDetachShaderを呼び出すことによってデタッチされるまでは削除されません。

programまたはshaderが、OpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

programがプログラムオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

shaderがシェーダオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

shaderが既にprogramにアタッチされている、またはshaderと同じタイプの他のシェーダオブジェクトが既にprogramにアタッチされている場合、GL_INVALID_OPERATIONが発生します。

program
:シェーダオブジェクトをアタッチするプログラムオブジェクトを指定します。

shader
:アタッチするシェーダオブジェクトを指定します。

△ Back to INDEX



●B

glBindAttribLocation

名付けられたattribute変数で汎用頂点属性インデックスを関連付けします。

void glBindAttribLocation(GLuint program, GLuint index, const GLchar *name);

glBindAttribLocationは、汎用頂点属性インデックスでprogramによって指定されたプログラムオブジェクト内のユーザ定義attribute変数に関連付けるために使用されます。

ユーザ定義attribute変数は、name内のヌル終端文字列として渡されます。

この変数にバインドする汎用頂点属性インデックスは、indexによって指定されます。

programが現在の状態の一部の場合、汎用頂点属性indexを介して提供された値は、nameによって指定されたユーザ定義attribute変数の値に変更されます。

nameが行列attribute変数を参照している場合、indexは行列の最初の列を参照します。

他の行列の列は、その後にタイプmat2の行列の場合はindex+1、タイプmat3の行列の場合はindex+1とindex+2、そしてタイプmat4の行列の場合はindex+1、index+2、index+3の場所へ自動的にバインドされます。

このコマンドは、0からGL_MAX_VERTEX_ATTRIBS -1までの番号付けをした汎用変数ではなく、attribute変数のための記述的な名前を使用した頂点シェーダを作成できます。

各汎用属性インデックスに送信される値は、ちょうど色、法線、頂点位置などの標準的な頂点属性と同じように、現在の状態の一部です。

異なるプログラムオブジェクトがglUseProgramを呼び出すことによって現在作成している場合、汎用頂点属性は同じ値がindexにバインドされている新しいプログラムオブジェクト内の属性によって観測されるような方法で追跡されます。

attribute変数名から汎用属性インデックスのプログラムオブジェクトのバインディングは、glBindAttribLocationを呼び出すことによって、いつでも明示的に割り当てることができます。

属性のバインディングは、glLinkProgramが呼び出されるまで影響しません。

プログラムオブジェクトがリンクに成功した後、汎用属性のインデックス値は次のリンクコマンドが発行されるまで固定されたままになり(その値を照会することができるようになり)ます。

アプリケーションは、必要な時に自動的にバインドするものとしており、このコマンドを使用して標準OpenGL頂点属性のいずれかをバインドすることを許可していません。

プログラムオブジェクトがリンクされた後に発生する属性のバインディングは、次の機会にプログラムオブジェクトがリンクされるまで影響しません。

glBindAttribLocationは、頂点シェーダオブジェクトが指定されたプログラムオブジェクトにバインドされる前に呼び出すことができます。

これは頂点シェーダ内で使用されることが無いattribute変数名に、汎用頂点属性インデックスをバインドすることが許可されています。

nameが以前にバインドされている場合、その情報は失われます。

したがって、複数のインデックスにユーザ定義attribute変数をバインドすることはできませんが、同じインデックスに複数のユーザ定義attribute変数をバインドすることはできます。

アプリケーションは、同じ汎用頂点属性インデックスに一つ以上のユーザ定義attribute変数をバインドすることができます。

これはエイリアシングと呼ばれ、エイリアス属性の一つが実行可能プログラム内でアクティブな場合、またはシェーダを介していないパスが同じ場所に属性エイリアスのセットの一つ以上の属性を消費しない場合のみ許可されます。

コンパイラとリンカはエイリアシングが行われず、エイリアシングの無い状態でのみ動作する最適化を使用して解放すると想定して許可しています。

OpenGLの実装は、エイリアシングを検出するエラーチェックをする必要はありません。

なぜなら標準属性をバインドする方法が無いため、(汎用属性0を除いて)通常のもので汎用属性をエイリアスにすることは不可能です。

明示的にバインドされていないアクティブな属性は、glLinkProgramが呼び出された時に、リンカによってバインドされます。

場所の割り当ては、glGetAttribLocationを呼び出すことによって照会することができます。

glBindAttribLocationが呼び出された時、OpenGLはname文字列をコピーするので、アプリケーションは関数が帰って来た直後にname文字列のコピーを解放することができます。

indexがGL_MAX_VERTEX_ATTRIBS以上の場合、GL_INVALID_VALUEが発生します。

nameが予約接頭辞『gl_』で始まっていない場合、GL_INVALID_OPERATIONが発生します。

programがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

programがプログラムオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

program
:関連付けされるプログラムオブジェクトのハンドルを指定します。

index
:バインドされる汎用頂点属性のインデックスを指定します。

name
indexがバインドされる、ヌル終端文字を含む頂点シェーダのattribute変数の名前を指定します。

△ Back to INDEX

glBindBuffer

void glBindBuffer( GLenum target, GLuint buffer);

名付けられたバッファオブジェクトをバインドします。

glBindBufferは、名付けられたバッファオブジェクトを生成または使用することができます。

targetにGL_ARRAY_BUFFERまたはGL_ELEMENT_ARRAY_BUFFERを、bufferに新しいバッファオブジェクトの名前を設定してglBindBufferを呼び出すと、ターゲットにバッファオブジェクト名をバインドします。

バッファオブジェクトがターゲットにバインドした場合、ターゲットの以前のバインディングは自動的に破棄されます。

バッファオブジェクト名は符号無し整数です。

値ゼロは予約されていますが、各バッファオブジェクトのターゲットにデフォルトのバッファオブジェクトは存在しません。

代わりにbufferをゼロに設定すると以前にバインドされていたバッファオブジェクトは効果的にアンバインドされ、バッファオブジェクトのターゲットの為に使用されていたクライアントのメモリは復元されます。

バッファオブジェクト名と対応するバッファオブジェクトのコンテンツは、現在のGLレンダリングコンテキストの共有オブジェクト空間に対してローカルです。

新しいバッファオブジェクト名の設定には、glGenBuffersを使用することができます。

最初にバインドした直後のバッファオブジェクトの状態には、GL_STATIC_DRAWを使用したゼロサイズのメモリバッファがあります。

非ゼロのバッファオブジェクト名がバインドされている間、ターゲット上のGL操作はバインドされているバッファオブジェクトに影響を及ぼし、ターゲットのクエリはバインドされたバッファオブジェクトから状態を返します。

ゼロのバッファオブジェクト名がバインドされている間は、初期状態におけるように、ターゲット上で状態を変更または照会を試みると、GL_INVALID_OPERATIONエラーが発生します。

頂点配列のポインタの状態がglVertexAttribPointerへの呼び出しによって変更される場合、現在のバッファオブジェクトのバインディング(GL_ARRAY_BUFFER_BINDING)は、変更される頂点属性配列のインデックス化されたGL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDINGのいずれかに対応するクライアント状態にコピーされます。

非ゼロのバッファオブジェクトがGL_ARRAY_BUFFERのターゲットにバインドされている間、クライアント側のメモリへのポインタとして従来解釈されていた頂点配列ポインタのパラメータは、代わりに基本的な機械単位で測定されたバッファオブジェクト内のオフセットとして解釈されます。

非ゼロのバッファオブジェクトがGL_ELEMENT_ARRAY_BUFFERのターゲットにバインドされている間、クライアント側のメモリへのポインタとして従来解釈されていたglDrawElementsのインデックスのパラメータは、代わりに基本的な機械単位で測定されたバッファオブジェクト内のオフセットとして解釈されます。

glBindBufferで生成されたバッファオブジェクトのバインディングは、同じターゲットへ異なるバッファオブジェクト名がバインドされるまで、またはglDeleteBuffersでバインドされているバッファオブジェクトが削除されるまで、アクティブが持続します。

一度生成された名付けられたバッファオブジェクトは、必要に応じて任意のターゲットに再バインドすることができます。

ただしGLの実装は、最初にバインドしたターゲットに基づいて、バッファオブジェクトのストレージを最適化する方法についての選択肢を作成することができます。

targetが有効な値でない場合、GL_INVALID_ENUMが発生します。

target
:バッファオブジェクトがバインドされているターゲットを指定します。
シンボリック定数はGL_ARRAY_BUFFERまたはGL_ELEMENT_ARRAY_BUFFERである必要があります。

buffer
:バッファオブジェクトの名前を指定します。

△ Back to INDEX

glBindFramebuffer

void glBindFramebuffer(GLenum target, GLuint framebuffer);

名付けられたフレームバッファオブジェクトをバインドします。

glBindFramebufferは名付けられたフレームバッファオブジェクトを生成または使用することができます。

targetにGL_FRAMEBUFFERを、framebufferに新しいフレームバッファオブジェクトの名前を設定してglBindFramebufferを呼び出すと、フレームバッファオブジェクト名にバインドします。

フレームバッファオブジェクトがバインドされている時、以前のバインドは自動的に破棄されます。

フレームバッファオブジェクト名は符号無し整数です。

値ゼロは、ウィンドウシステムによって提供されるデフォルトのフレームバッファを表すために予約されています。

フレームバッファオブジェクト名と対応するフレームバッファオブジェクトのコンテンツは、現在のGLレンダリングコンテキストの共有オブジェクト空間に対してローカルです。

新しいフレームバッファオブジェクト名の設定には、glGenFramebuffersを使用することができます。

最初にバインドした直後のフレームバッファオブジェクトの状態には、オブジェクト型としてそれぞれGL_NONEの3つのアタッチメントポイント(GL_COLOR_ATTACHMENT0、GL_DEPTH_ATTACHMENT、そしてGL_STENCIL_ATTACHMENT)があります。

非ゼロのフレームバッファオブジェクト名がバインドされている間、ターゲットGL_FRAMEBUFFER上のGL操作はバインドされているフレームバッファオブジェクトに影響を及ぼし、ターゲットGL_FRAMEBUFFERまたはフレームバッファのクエリは、バインドされたフレームバッファオブジェクトからGL_DEPTH_BITSなどの状態を返します。

ゼロのフレームバッファオブジェクト名がバインドされている間は、初期状態におけるように、ターゲットGL_FRAMEBUFFER上で状態を変更または照会を試みると、GL_INVALID_OPERATIONエラーが発生します。

非ゼロのフレームバッファオブジェクト名がバインドされている間、全ての(glDrawArraysやglDrawElementsによる)フレームバッファへのレンダリングと、(glReadPixels、glCopyTexImage2D、またはglCopyTexSubImage2Dによる)フレームバッファからの読み込みには、デフォルトのウィンドウシステムが提供したフレームバッファではなく、アプリケーションが生成したフレームバッファオブジェクトにアタッチされた画像を使用してください。

アプリケーションで生成されるフレームバッファオブジェクト(即ち非ゼロの名前)は、デフォルトのウィンドウシステムが提供するフレームバッファとはいくつか異なる点が有ります。

第一に、フレームバッファでアタッチ可能な画像をアタッチやデタッチするため、カラーバッファや深度バッファ、ステンシルバッファに対して変更可能なアタッチメントポイントを持っています。

第二に、アタッチされた画像のサイズやフォーマットは完全にGLの制御されており、ピクセルフォーマットの選択やウィンドウのリサイズ、ディスプレイモードの変更といったウィンドウシステムのイベントによる影響を受けません。

第三に、アプリケーションが生成したフレームバッファオブジェクトへのレンダリング、あるいはオブジェクトからの読み込み時は、ピクセル所有権テストは常に成功します(即ち、オブジェクトが全てのピクセルを所有しています)。

第四に、フレームバッファオブジェクトは不可視のカラーバッファビットプレーンで、唯一の『オフスクリーン』カラーイメージアタッチメントであり、フロント/バックバッファやスワッピングの概念はありません。

最後に、フレームバッファオブジェクトにはマルチサンプルバッファが無く、実装依存の状態変数GL_SAMPLESやGL_SAMPLE_BUFFERSは、アプリケーションが生成するフレームバッファオブジェクトの場合には両方ともゼロになります。

glBindFramebufferで生成されたフレームバッファオブジェクトのバインディングは、異なるフレームバッファオブジェクト名がバインドされるまで、あるいはglDeleteFramebuffersでフレームバッファオブジェクトが削除されるまで、アクティブが持続します。

実装依存のピクセルの深さと関連する状態のクエリは、現在バインドされているフレームバッファオブジェクトから派生しています。

これらには、GL_RED_BITS、GL_GREEN_BITS、GL_BLUE_BITS、GL_ALPHA_BITS、GL_DEPTH_BITS、GL_STENCIL_BITS、GL_IMPLEMENTATION_COLOR_READ_TYPE、GL_IMPLEMENTATION_COLOR_READ_FORMAT、GL_SAMPLES、そしてGL_SAMPLE_BUFFERSが含まれています。

targetがGL_FRAMEBUFFERでない場合は、GL_INVALID_ENUMが発生します。

target:フレームバッファオブジェクトをバインドするターゲットを指定します。
シンボリック定数はGL_FRAMEBUFFERである必要があります。

framebuffer:フレームバッファオブジェクトの名前を指定します。

△ Back to INDEX

glBindRenderbuffer

void glBindRenderbuffer(GLenum target, GLuint renderbuffer);

名付けられたレンダバッファオブジェクトをバインドします。

レンダバッファは、レンダリング可能な内部フォーマットの単一の画像を含む、データストレージオブジェクトです。

レンダバッファの画像は、レンダリングの出力先や読み込みのためのソースとして、フレームバッファオブジェクトへのアタッチに使用することができます。

glBindRenderbufferは名付けられたレンダバッファオブジェクトを生成または使用することができます。

targetにGL_RENDERBUFFERを、renderbufferに新しいレンダバッファオブジェクトの名前を設定してglBindRenderbufferを呼び出すと、レンダバッファオブジェクト名にバインドします。

レンダバッファオブジェクトがバインドされている時、以前のバインドは自動的に破棄されます。

レンダバッファオブジェクト名は符号無し整数です。

値ゼロは予約されていますが、デフォルトのレンダバッファは存在しません。

代わりに、renderbufferをゼロに設定すると、以前にバインドされていたレンダバッファオブジェクトは事実上アンバインドされます。

レンダバッファオブジェクト名と対応するレンダバッファオブジェクトのコンテンツは、現在のGLレンダリングコンテキストの共有オブジェクト空間に対してローカルです。

新しいレンダバッファオブジェクト名の設定には、glGenRenderbuffersを使用することができます。

最初にバインドした直後のレンダバッファオブジェクトの状態は、フォーマットGL_RGBA4で、ゼロサイズのred、green、blue、alpha、depth、そしてステンシルピクセル深度のゼロサイズのメモリバッファです。

非ゼロのレンダバッファオブジェクト名がバインドされている間、ターゲットGL_RENDERBUFFER上のGL操作はバインドされているレンダバッファオブジェクトに影響を及ぼし、ターゲットGL_RENDERBUFFERのクエリは、バインドされたレンダバッファオブジェクトから状態を返します。

ゼロのレンダバッファオブジェクト名がバインドされている間は、初期状態におけるように、ターゲットGL_RENDERBUFFER上で状態を変更または照会を試みると、GL_INVALID_OPERATIONエラーが発生します。

glBindRenderbufferで生成されたフレームバッファオブジェクトのバインディングは、異なるレンダバッファオブジェクト名がバインドされるまで、あるいはglDeleteRenderbuffersでレンダバッファオブジェクトが削除されるまで、アクティブが持続します。

targetがGL_RENDERBUFFERでない場合は、GL_INVALID_ENUMが発生します。

target:レンダバッファオブジェクトをバインドするターゲットを指定します。
シンボリック定数はGL_RENDERBUFFERである必要があります。

renderbuffer:レンダバッファオブジェクトの名前を指定します。

△ Back to INDEX

glBindTexture

void glBindTexture(GLenum target, GLuint texture);

テクスチャを貼るターゲットへ名付けられたテクスチャをバインドします。

glBindTextureは名付けられたテクスチャを生成または使用することができます。

targetをGL_TEXTURE_2DまたはGL_TEXTURE_CUBE_MAPに設定してglBindTextureを呼び出し、新しいテクスチャの名前をtextureに設定し、現在アクティブなテクスチャユニットのターゲットへテクスチャ名をバインドします。

ターゲットにテクスチャがバインドされていた場合、そのターゲットの以前のバインディングは自動的に破棄されます。

テクスチャ名は符号無し整数です。

値0は、各テクスチャのターゲットのデフォルトのテクスチャを表現するために予約されています。

テクスチャ名と対応するテクスチャのコンテンツは、現在のGLレンダリングコンテキストの共有テクスチャオブジェクト空間に対してローカルです。

新しいテクスチャ名の設定を生成するには、glGenTexturesを使用してください。

テクスチャが最初にバインドされた時、最初にGL_TEXTURE_2Dにバインドされた場合は二次元テクスチャに、最初にGL_TEXTURE_CUBE_MAPにバインドされた場合はキューブマップテクスチャになると、指定されたターゲットは仮定します。

二次元テクスチャの状態は最初にバインドされた直後のGLの初期化時にデフォルトのGL_TEXTURE_2Dの状態に相当し、キューブマップテクスチャも同様です。

テクスチャがバインドされている間、バインドされているターゲット上のGLの操作はバインドされているテクスチャに影響を与え、バインドされているターゲットのクエリはバインドされているテクスチャから状態が返されます。

テクスチャがバインドされているターゲットの次元のテクスチャマッピングがアクティブな場合、バインドされているテクスチャが使用されます。

実際には、現在バインドされているテクスチャのエイリアスがテクスチャのターゲットとなり、初期化時にテクスチャ名0がバインドされたデフォルトテクスチャを参照します。

glBindTextureで生成されたテクスチャのバインディングは、異なるテクスチャが同じターゲットにバインドされる、またはバインドされているテクスチャがglDeleteTexturesによって削除されるまでアクティブを保持します。

一度生成されると、名付けられたテクスチャは必要に応じて元と同じ次元のターゲットに再バインドさせることができます。

通常、glTexImage2Dを使用してテクスチャ画像を再読み込みするよりも、テクスチャターゲットの1つに既存の名付けられたテクスチャをglBindTextureを使用してバインドした方が遥かに高速です。

targetが有効な値の1つでない場合、GL_INVALID_ENUMが発生します。

target:テクスチャがバインドされている、アクティブなテクスチャユニットのターゲットを指定します。
GL_TEXTURE_2DかGL_TEXTURE_CUBE_MAPのいずれかである必要があります。

texture:テクスチャの名前を指定します。

△ Back to INDEX

glBlendFunc

void glBlendFunc(GLenum sfactor, GLenum dfactor);

ピクセル演算を指定します。

ピクセルは、元となるRGBA値とフレームバッファ(の対象となる値)内にある既存のRGBA値をブレンドする関数を使用して描画することができます。

ブレンディングの初期状態は無効になっています。

ブレンディングを有効/無効にするには、引数GL_BLENDでglEnableglDisableを使用してください。

glBlendFuncは、有効になっている時のブレンディング操作を定義しています。

sfactorは、元となる色成分の比率をメソッドを使用して指定します。

dfactorは、対象となる色成分の比率を1メソッドを使用して指定します。

有効なメソッドは以下に表で表します。

各メソッドは、赤、緑、青、そしてアルファの4つの比率要素で定義されています。

表とその後の方程式において、元と対象の色成分は(Rs, Gs, Bs, As)と(Rd, Gd, Bd, Ad)として表されています。

glBlendColorによって指定された色は、(Rc, Gc, Bc, Ac)として表されています。

これらは0から(kR, kG, kB, kA)間の整数値を持つとすると、

kc = 2(mc) - 1

と表され、(mR, mG, mB, mA)は、赤、緑、青、そしてアルファのビットプレーン数を示します。

元と対象の比率要素は、(sR, sG, sB, sA)と(dR, dG, dB, dA)として参照されます。

比率要素は表では(fR, fG, fB, fA)と示しており、元または対象の要素を表します。

全ての比率要素の範囲は[0, 1]です。

Parameter(fR, fG, fB, fA)
GL_ZERO(0, 0, 0, 0)
GL_ONE(1, 1, 1, 1)
GL_SRC_COLOR(R/ kR, G/ kG, B/ kB, A/ kA)
GL_ONE_MINUS_SRC_COLOR(1, 1, 1, 1) - (R/ kR, G/ kG, B/ kB, A/ kA)
GL_DST_COLOR(R/ kR, G/ kG, B/ kB, A/ kA)
GL_ONE_MINUS_DST_COLOR(1, 1, 1, 1) - (R/ kR, G/ kG, B/ kB, A/ kA)
GL_SRC_ALPHA(A/ kA, A/ kA, A/ kA, A/ kA)
GL_ONE_MINUS_SRC_ALPHA(1, 1, 1, 1) - (A/ kA, A/ kA, A/ kA, A/ kA)
GL_DST_ALPHA(A/ kA, A/ kA, A/ kA, A/ kA)
GL_ONE_MINUS_DST_ALPHA(1, 1, 1, 1) - (A/ kA, A/ kA, A/ kA, A/ kA)
GL_CONSTANT_COLOR(Rc, Gc, Bc, Ac)
GL_ONE_MINUS_CONSTANT_COLOR(1, 1, 1, 1) - (Rc, Gc, Bc, Ac)
GL_CONSTANT_ALPHA(Ac, Ac, Ac, Ac)
GL_ONE_MINUS_CONSTANT_ALPHA(1, 1, 1, 1) - (Ac, Ac, Ac, Ac)
GL_SRC_ALPHA_SATURATE(i, i, i, 1)

表において、

i = min(As, kA - Ad) / kA

ピクセルのブレンドRGBA値の決定に、システムはglBlendEquationまたはglBlendEquationSeparateによって設定される方程式の一つを使用します。

ブレンディングは不正確な整数のカラー値で計算するため、ブレンディングの計算は正確ではありません。

しかし1に等しくなる必要があるブレンド要素は、その被乗数を変更しないことが保証されており、0に等しいブレンド要素は被乗数を0へ減少させます。

元となるアルファは正確な素材の不透明度として意図されており、完全な不透明度を表す1.0(KA)から、完全な透明度を表す0.0(0)の範囲になっています。

透明度は最奥から最前にソートされたプリミティブを、ブレンド関数(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)を使用して、最も頻繁に実装されます。

この透明度の計算は、フレームバッファのアルファビットプレーンの存在を必要としないことに注意してください。

sfactorまたはdfactorが有効な値でない場合、GL_INVALID_ENUMが発生します。

sfactor:元となる赤、緑、青、そしてアルファのブレンディング要素をどのように計算するかを指定します。
GL_ZERO、GL_ONE、GL_SRC_COLOR、GL_ONE_MINUS_SRC_COLOR、GL_DST_COLOR、GL_ONE_MINUS_DST_COLOR、GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA、GL_DST_ALPHA、GL_ONE_MINUS_DST_ALPHA、GL_CONSTANT_COLOR、GL_ONE_MINUS_CONSTANT_COLOR、GL_CONSTANT_ALPHA、GL_ONE_MINUS_CONSTANT_ALPHA、そしてGL_SRC_ALPHA_SATURATEのシンボリック定数を指定できます。
初期値はGL_ONEです。

dfactor:対象となる赤、緑、青、そしてアルファのブレンディング要素をどのように計算するかを指定します。
GL_ZERO、GL_ONE、GL_SRC_COLOR、GL_ONE_MINUS_SRC_COLOR、GL_DST_COLOR、GL_ONE_MINUS_DST_COLOR、GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA、GL_DST_ALPHA、GL_ONE_MINUS_DST_ALPHA、GL_CONSTANT_COLOR、GL_ONE_MINUS_CONSTANT_COLOR、GL_CONSTANT_ALPHA、そしてGL_ONE_MINUS_CONSTANT_ALPHAのシンボリック定数を指定できます。
初期値はGL_ZEROです。

△ Back to INDEX

glBufferData

void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);

バッファオブジェクトのデータストアを生成し初期化します。

glBufferDataは、現在ターゲットにバインドされているバッファオブジェクト用の新しいデータストアを生成します。

既存のデータストアは削除されます。

新しいデータストアは、指定されたバイト単位のsizeusageで生成されます。

dataがNULLで無い場合、データストアはポインタの指すデータで初期化されます。

usageは、バッファオブジェクトのデータストアにアクセスする方法に関するGLの実装へのヒントです。

バッファオブジェクトのパフォーマンスに著しく影響する可能性がある、よりインテリジェントな解決を行う為のGLの実装を可能にします。

しかし、実際のデータストアの使用に制限を加えるものではありません。

usageは、(変更と使用の)アクセスの頻度と、アクセスの性質の二つの部分に分けることができます。

アクセスの頻度は下記のいずれかになります。

STREAM
データストアのコンテンツは一度に変更され、ほんの数回使用される。

STATIC
データストアのコンテンツは一度に変更され、何度も使用される。

DYNAMIC
データストアのコンテンツは繰り返し変更され、何度も使用される。

アクセスの性質は下記である必要があります。

DRAW
データストアのコンテンツはアプリケーションによって変更され、GLの描画用および画像の仕様コマンドのソースとして使用されます。

dataがNULLの場合、指定されたサイズのデータストアは作成されますが、コンテンツは初期化されていないため未定義となります。

クライアントはクライアントプラットフォームの要件と一致するデータ要素に揃える必要があり、NNを構成するデータへのバッファ内のオフセットという追加のベースレベルを要求します。

targetがGL_ARRAY_BUFFERまたはGL_ELEMENT_ARRAY_BUFFERでない場合、GL_INVALID_ENUMが発生します。

usageがGL_STREAM_DRAW、GL_STATIC_DRAW、またはGL_DYNAMIC_DRAWでない場合、GL_INVALID_ENUMが発生します。

sizeが負の場合、GL_INVALID_VALUEが発生します。

予約されているバッファオブジェクト名0がtargetにバインドされている場合、GL_INVALID_OPERATIONが発生します。

GLが指定されたsizeでデータストアを生成できない場合、GL_OUT_OF_MEMORYが発生します。

target
:ターゲットのバッファオブジェクトを指定します。
シンボリック定数はGL_ARRAY_BUFFERまたはGL_ELEMENT_ARRAY_BUFFERである必要があります。

size
:バッファオブジェクトの新しいデータストアのサイズをバイト単位で指定します。

data
:初期化用のデータストアにコピーされるデータへのポインタ、またはコピーするデータが存在しない場合はNULLを指定します。

usage
:予想されるデータストアの使用パターンを指定します。
シンボリック定数はGL_STREAM_DRAW、GL_STATIC_DRAW、またはGL_DYNAMIC_DRAWである必要があります。

△ Back to INDEX



●C

glCheckFramebufferStatus

GLenum glCheckFramebufferStatus(GLenum target);

フレームバッファオブジェクトのフレームバッファ完全性ステータスを返します。

glCheckFramebufferStatusは、現在バインドされているフレームバッファが完全であるかどうかを識別するシンボリック定数を返し、そうでない場合はフレームバッファの完全性の規則に違反していることになります。

フレームバッファが完全である場合は、GL_FRAMEBUFFER_COMPLETEが返されます。

フレームバッファが完全でない場合は、以下の値が返されます。

GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
全てのフレームバッファのアタッチメントポイントが、フレームバッファのアタッチメントとして完全ではありません。
これは、アタッチされたレンダバッファやテクスチャの少なくとも一つのアタッチメントポイントで、アタッチされたオブジェクトがもはや存在していない、あるいはゼロの幅または高さのアタッチされた画像を持つ、あるいはカラーアタッチメントポイントがカラーレンダリング不可能な画像にアタッチされている、あるいは深度アタッチメントポイントが深度レンダリング不可能な画像にアタッチされている、あるいはステンシルアタッチメントポイントがステンシルレンダリング不可能な画像にアタッチされていることを意味します。
カラーレンダリング可能なフォーマットには、GL_RGBA4、GL_RGB5_A1、そしてGL_RGB565が含まれています。
深度レンダリング可能なフォーマットはGL_DEPTH_COMPONENT16のみです。
ステンシルレンダリング可能なフォーマットはGL_STENCIL_INDEX8のみです。

GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS
全てのアタッチされた画像が、同じ幅と高さを持っていません。

GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
フレームバッファにアタッチされた画像がありません。

GL_FRAMEBUFFER_UNSUPPORTED
アタッチされた画像の内部フォーマットの組み合わせが、制約の実装依存の設定に違反しています。

現在バインドされているフレームバッファが完全なフレームバッファでない場合、読み書きにフレームバッファを使用しようと試みるとエラーになります。

これはフレームバッファが完全なフレームバッファでない時に呼び出された場合に、レンダリングコマンド(glDrawArraysとglDrawElements)がフレームバッファの読み込みコマンド(glReadPixels、glCopyTexImage2D、そしてglCopyTexSubImage2D)と同様に、GL_INVALID_FRAMEBUFFER_OPERATIONエラーを発生させることを意味します。

必須ではありませんが、アプリケーションがglCheckFramebufferStatusを呼び出して、レンダリングする前にフレームバッファが完全かどうかを確認することを強く推奨します。

なぜなら、いくつかの実装は内部フォーマットの特定の組み合わせへのレンダリングがサポートされていない可能性があるためです。

この場合、GL_FRAMEBUFFER_UNSUPPORTEDが返されます。

デフォルトのウィンドウシステムが提供するフレームバッファは常に完全なフレームバッファであるため、GL_FRAMEBUFFER_BINDINGが0の時にGL_FRAMEBUFFER_COMPLETEが返されます。

エラーが発生した場合、paramsの内容は変更されません。

targetがGL_FRAMEBUFFERでない場合、GL_INVALID_ENUMが発生します。

target:ターゲットのフレームバッファオブジェクトを指定します。
シンボリック定数はGL_FRAMEBUFFERを指定する必要があります。

△ Back to INDEX

glClear


void glClear(GLbitfield mask);

プリセット値にバッファをクリアします。

glClearは、glClearColor、glClearDepthf、そしてglClearStencilによって予め選択された値に、ウィンドウのビットプレーン空間を設定します。

ピクセル所有権テスト、シザーテスト、ディザリング、そしてバッファのホワイトマスクは、glClearの操作に影響を与えます。

シザーボックスはクリアされた領域を制限します。

ブレンド関数、ステンシル、フラグメントのシェーディング、そして深度バッファリングは、glClearによって無視されます。

glClearは、バッファをクリアすることを示すいくつかの値から、ORのビットマスクを1つ引数として選択します。

ビットマスクの値は以下の通りです。

GL_COLOR_BUFFER_BIT
現在のカラー書き込みが有効なバッファを示します。

GL_DEPTH_BUFFER_BIT
深度バッファを示します。

GL_STENCIL_BUFFER_BIT
ステンシルバッファを示します。

各バッファがクリアされた時の値は、そのバッファのクリア値の設定に依存します。

バッファが存在しない場合、glClearはバッファに対して何も影響を与えません。

定義済の3つのビットマスク以外のビットマスクがmaskに設定された場合、GL_INVALID_VALUEが発生します。

mask:バッファをクリアすることを示す、ORのビットマスクを指定します。
GL_COLOR_BUFFER_BIT、GL_DEPTH_BUFFER_BIT、そしてGL_STENCIL_BUFFER_BITの3つのマスクがあります。

△ Back to INDEX

glClearColor

void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);

カラーバッファのクリア値を指定します。

glClearColorは、glClearでカラーバッファをクリアする際に使用する、赤、緑、青、そしてアルファ値を指定します。

glClearColorが指定できる値は、[0, 1]の範囲に限定されています。

redgreenbluealpha:カラーバッファをクリアする時に使用する、赤、緑、青、そしてアルファ値を指定します。
初期値は全て0です。

△ Back to INDEX

glCompileShader

void glCompileShader(GLuint shader);

シェーダオブジェクトをコンパイルします。

シェーダコンパイラをサポートする実装の場合、glCompileShaderはshaderによって指定されたシェーダオブジェクト内に格納されている、ソースコード文字列をコンパイルします。

コンパイルの状態は、シェーダオブジェクトの状態の一部として格納されます。

この値は、シェーダがエラー無しでコンパイルされ、使用準備ができた場合はGL_TRUEが設定され、それ以外の場合はGL_FALSEになります。

引数にshaderとGL_COMPILE_STATUSを渡してglGetShaderivを呼び出すことによって、照会することができます。

シェーダのコンパイルは、『OpenGL ES Shading Language Specification』によって指定されたいくつかの理由で失敗することがあります。

コンパイルが成功したかどうかは、glGetShaderInfoLogを呼び出すことによって、シェーダオブジェクトの情報ログからコンパイルについての情報を取得することができます。

シェーダコンパイラのサポートはオプションであり、したがって引数GL_SHADER_COMPILERでglGetを呼び出すことによって、使用する前に照会する必要があります。

glShaderSourceglCompileShader、glGetShaderPrecisionFormat、そしてglReleaseShaderCompilerは、シェーダコンパイラをサポートしない実装上ではGL_INVALID_OPERATIONを発生させます。

このような実装の代わりに、事前にコンパイルされたシェーダバイナリを供給するための代替として、glShaderBinaryが提供されています。

シェーダコンパイラがサポートされていない場合、GL_INVALID_OPERATIONが発生します。

shaderがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

shaderがシェーダオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

shader
:コンパイルするシェーダオブジェクトを指定します。

△ Back to INDEX

glCreateProgram

GLuint glCreateProgram(void);

プログラムオブジェクトを生成します。

glCreateProgramは空のプログラムオブジェクトを生成し、参照できるように非ゼロ値を返します。

プログラムオブジェクトは、シェーダオブジェクトをアタッチすることができるオブジェクトです。

これはプログラムを生成するためにリンクされるシェーダオブジェクトを指定する機構を提供します。

また、(例えば、頂点シェーダとフラグメントシェーダ間の互換性をチェックするなど)プログラムの生成に使用されるシェーダの互換性をチェックするための手段も提供します。

プログラムオブジェクトの一部として不要になった時は、シェーダオブジェクトをデタッチすることができます。

glCompileShaderでシェーダオブジェクトのコンパイルが成功し、glLinkProgramでプログラムオブジェクトのリンクが成功し、glAttachShaderでシェーダオブジェクトのアタッチが成功することによって、プログラムオブジェクト内で一つ以上の実行可能オブジェクトが生成されます。

これらの実行可能オブジェクトは、glUseProgramを呼び出した時に、現在の状態の一部となります。

プログラムオブジェクトは、glDeleteProgramを呼び出すことによって削除することができます。

プログラムオブジェクトに関連付けられているメモリは、コンテキストの現在のレンダリング状態の一部でなくなった時に削除されます。

テクスチャオブジェクトと同様に、プログラムオブジェクトの名前空間はコンテキストのセット間で共有されることがあり、その場合コンテキストのサーバ側と同じアドレス空間を共有します。

名前空間がコンテキスト間で共有されている場合、全てのアタッチされているオブジェクトとそれらのアタッチされているオブジェクトに関連するデータも、同様に共有されます。

アプリケーションは、オブジェクトが異なる実行スレッドからアクセスする場合に、APIの呼び出し間での同期を提供する責任があります。

プログラムオブジェクトの生成でエラーが発生した場合、この関数は0を返します。

△ Back to INDEX

glCreateShader

GLuint glCreateShader(GLenum shaderType);

シェーダオブジェクトを生成します。

glCreateShaderは空のシェーダオブジェクトを生成し、参照できるようにするために非ゼロの値を返します。

シェーダオブジェクトは、シェーダを定義するソースコード文字列の保持に使用します。

shaderTypeは、生成されるシェーダのタイプを示します。

シェーダの2つのタイプがサポートされています。

GL_VERTEX_SHADERタイプのシェーダは、プログラマブル頂点プロセッサ上で実行することを意図したシェーダです。

GL_FRAGMENT_SHADERタイプのシェーダは、プログラマブルフラグメントプロセッサ上で実行することを意図したシェーダです。

生成された時、シェーダオブジェクトのGL_SHADER_TYPEパラメータは、shaderTypeの値に応じてGL_VERTEX_SHADERかGL_FRAGMENT_SHADERのどちらかに設定されています。

テクスチャオブジェクトと同様に、シェーダオブジェクトの名前空間はコンテキストのセット間で共有されることがあり、その場合コンテキストのサーバ側と同じアドレス空間を共有します。

名前空間がコンテキスト間で共有されている場合、全てのアタッチされているオブジェクトとそれらのアタッチされているオブジェクトに関連するデータも、同様に共有されます。

アプリケーションは、オブジェクトが異なる実行スレッドからアクセスする場合に、APIの呼び出し間での同期を提供する責任があります。

シェーダオブジェクトの生成でエラーが発生した場合、この関数は0を返します。

shaderTypeが有効な値でない場合、GL_INVALID_ENUMが発生します。

shaderType
:生成するシェーダのタイプを指定します。
GL_VERTEX_SHADERかGL_FRAGMENT_SHADERのどちらかである必要があります。

△ Back to INDEX



●D

glDeleteBuffers

void glDeleteBuffers(GLsizei n, const GLuint * buffers);

名付けられたバッファオブジェクトを削除します。

glDeleteBuffersは、配列buffersの要素によって名付けられたn個のバッファオブジェクトを削除します。

バッファオブジェクトが削除された後はコンテンツが無くなり、(glGenBuffersなどで)再利用できるように名前が解放されます。

現在バインドされているバッファオブジェクトが削除された場合、バインディングは0(クライアントが使用していたメモリが戻り、バッファが空)に戻ります。

glDeleteBuffersは暗黙的に、0および既存のバッファオブジェクトと対応しない名前は無視します。

nが負の場合、GL_INVALID_VALUEが発生します。

n
:削除するバッファオブジェクト数を指定します。

buffers
:削除するバッファオブジェクトの配列を指定します。

△ Back to INDEX


glDeleteFramebuffers

名付けられたフレームバッファオブジェクトを削除します。

void glDeleteFramebuffers(GLsizei n, const GLuint * framebuffers);

glDeleteFramebuffersは、配列framebuffersの要素によって名付けられたn個のフレームバッファオブジェクトを削除します。

フレームバッファオブジェクトが削除された後は接続が無くなり、(glGenFramebuffersなどで)再利用できるように名前が解放されます。

現在バインドされているフレームバッファオブジェクトが削除された場合、バインディングは0(ウィンドウシステムが提供するフレームバッファ)に戻ります。

glDeleteFramebuffersは暗黙的に、0および既存のフレームバッファオブジェクトと対応しない名前は無視します。

nが負の場合、GL_INVALID_VALUEが発生します。

n
:削除するフレームバッファ数を指定します。

framebuffers
:削除するフレームバッファオブジェクトの配列を指定します。

△ Back to INDEX

glDeleteProgram

void glDeleteProgram(GLuint program);

プログラムオブジェクトを削除します。

glDeleteProgramは、メモリを解放し、programによって指定されたプログラムオブジェクトに関連付けられた名前を無効にします。

このコマンドは、事実上glCreateProgramへの呼び出しの効果を無効にします。

プログラムオブジェクトが現在のレンダリング状態の一部として使用されている場合、削除用のフラグが立てられますが、レンダリングコンテキストの現在の状態の一部でなくなるまで削除されません。

削除するプログラムオブジェクトがアタッチされたシェーダオブジェクトを持つ場合、それらのシェーダオブジェクトは自動的にデタッチされますが、事前にglDeleteShaderへの呼び出しによって既に削除用のフラグが立てられていない限り削除されません。

programが値0の場合は無視されます。

プログラムオブジェクトが削除フラグを持っているかどうかを判断するには、引数にprogramとGL_DELETE_STATUSを渡してglGetProgramivを呼び出します。

programがOpenGLで生成された値でない場合は、GL_INVALID_VALUEが発生します。

program:削除するプログラムオブジェクトを指定します。

△ Back to INDEX

glDeleteRenderbuffers

void glDeleteRenderbuffers(GLsizei n, const GLuint * renderbuffers);

名付けられたレンダバッファオブジェクトを削除します。

glDeleteRenderbuffersは、配列renderbuffersの要素によって名付けられたn個のレンダバッファオブジェクトを削除します。

レンダバッファオブジェクトが削除された後はコンテンツが無くなり、(glGenRenderbuffersなどで)再利用できるように名前が解放されます。

現在バインドされているレンダバッファオブジェクトが削除された場合、バインディングは0(レンダバッファオブジェクト無し)に戻ります。

更に、レンダバッファの画像がフレームバッファオブジェクトにアタッチされている場合は、レンダバッファオブジェクトを削除する時には特別な注意を払う必要があります。

この場合、削除されたレンダバッファオブジェクトが現在バインドされているフレームバッファオブジェクトにアタッチされていると、自動的にデタッチされます。

しかし、その他のフレームバッファオブジェクトへ接続は、アプリケーションの責任です。

glDeleteRenderbuffersは暗黙的に、0および既存のレンダバッファオブジェクトと対応しない名前は無視します。

nが負の場合、GL_INVALID_VALUEが発生します。

n
:削除するレンダバッファオブジェクト数を指定します。

renderbuffers
:削除するレンダバッファオブジェクトの配列を指定します。

△ Back to INDEX

glDeleteShader

void glDeleteShader(GLuint shader);

シェーダオブジェクトを削除します。

glDeleteShaderはメモリを解放し、shaderによって指定されたシェーダオブジェクトに関連付けられた名前を無効にします。

このコマンドは、実質的にglCreateShaderの呼び出し効果を取り消します。

削除するシェーダオブジェクトがプログラムオブジェクトにアタッチされている場合、削除フラグが立てられますが、レンダリングコンテキストのプログラムオブジェクトへのアタッチされなくなるまで削除されません。

(すなわち、削除する前にアタッチされているものをデタッチする必要があります。)

shaderが値0の場合は無視されます。

オブジェクトに削除フラグが設定されているかどうかを判断するには、引数shaderとGL_DELETE_STATUSでglGetShaderivを呼び出します。

shaderがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

shader
:削除するシェーダオブジェクトを指定します。

△ Back to INDEX

glDeleteTextures

void glDeleteTextures(GLsizei n, const GLuint * textures);

名付けられたテクスチャを削除します。

glDeleteTexturesは、配列texturesの要素によって名付けられたn個のテクスチャを削除します。

テクスチャが削除された後、コンテンツまたは大きさを持っていない場合、名前は(glGenTexturesなどで)再利用するために解放されます。

現在バインドされているテクスチャが削除された場合、バインディングは(デフォルトテクスチャの)0に戻ります。

glDeleteTexturesは暗黙的に、0と既存のテクスチャに対応していない名前は無視します。

nが負の場合GL_INVALID_VALUEが発生します。

n:削除するテクスチャの数を指定します。

textures:削除するテクスチャの配列を指定します。

△ Back to INDEX

glDrawArrays

void glDrawArrays(GLenum mode, GLint first, GLsizei count);

配列データからプリミティブをレンダリングします。

glDrawArraysは、非常に少ないサブルーチンの呼び出しで、複数の幾何学的プリミティブを指定します。

個々の頂点属性を渡してGLの一連の処理手順を呼び出す代わりに、glVertexAttribPointerを使用して事前に頂点、法線、そして色のそれぞれの配列を指定すると、単一のglDrawArraysを呼び出してそれらを使用してプリミティブのシーケンスを構築することができます。

glDrawArraysが呼び出されると、それぞれ有効な配列を要素firstから始まりcountを使用して順次要素を取り出し、幾何学的なプリミティブのシーケンスを構築します。

modeは、どのようにプリミティブは構築されているか、そしてどのように配列の要素はこれらのプリミティブを構築するかを指定します。

一般的な頂点属性配列を有効または無効にするには、glEnableVertexAttribArrayまたはglDisableVertexAttribArrayを呼び出します。

glUseProgramによって設定された現在のプログラムオブジェクトが無効な場合、レンダリング結果は未定義です。

ただしこの場合、エラーが発生しません。

modeが有効な値でない場合、GL_INVALID_ENUMが発生します。

countが負の場合、GL_INVALID_VALUEが発生します。

現在バインドされているフレームバッファが完全なフレームバッファでない場合(すなわちglCheckFramebufferStatusからの戻り値がGL_FRAMEBUFFER_COMPLETEでない場合)、GL_INVALID_FRAMEBUFFER_OPERATIONが発生します。

mode
:どのようにプリミティブをレンダリングするかを指定します。
シンボリック定数GL_POINTS、GL_LINE_STRIP、GL_LINE_LOOP、GL_LINES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN、GL_TRIANGLESが有効です。

first
:有効な配列内での開始インデックスを指定します。

count
:レンダリングするインデックス数を指定します。

△ Back to INDEX



●E

glEnable

void glEnable(GLenum cap);

void glDisable(GLenum cap);

サーバ側のGLの機能を有効または無効にします。

glEnableとglDisableは、各種の機能を有効または無効にします。

任意の機能の現在の設定を取得するには、glIsEnabledまたはglGetを使用します。

GL_DITHERを除き、各機能の初期値はGL_FALSEです。

GL_DITHERの初期値はGL_TRUEです。

glEnableとglDisableの両方は、以下の値のいずれかを単一の引数capで受け取ります。

GL_BLEND
有効にした場合、カラーバッファ内の値で計算されたフラグメントの色の値をブレンドします。
glBlendFunc参照。

GL_CULL_FACE
有効にした場合、ウィンドウ座標内のワインディングに基づいてポリゴンを間引きします。
glCullFace参照。

GL_DEPTH_TEST
有効にした場合、深度の比較と深度バッファの更新を行います。
たとえ深度バッファが存在し、深度マスクが非ゼロであっても、深度テストが無効の場合は深度バッファは更新されないことに注意してください。
glDepthFuncとglDepthRangef参照。

GL_DITHER

有効にした場合、カラーバッファへ書き込む前に色要素またはインデックスをディザリングします。

GL_POLYGON_OFFSET_FILL
有効にした場合、ラスタライズによって生成されたポリゴンのフラグメントの深度値にオフセットを追加します。
glPolygonOffset参照。

GL_SAMPLE_ALPHA_TO_COVERAGE
有効にした場合、各ビットが対応するサンプル位置でのアルファ値によって決定された、一時的な適用範囲値を計算します。
一時的な適用範囲値は、フラグメントの適用範囲値とANDが取られます。

GL_SAMPLE_COVERAGE
有効にした場合、フラグメントの適用範囲は一時的な適用範囲値とANDが取られます。
GL_SAMPLE_COVERAGE_INVERTがGL_TRUEに設定されている場合、適用範囲値は反転されます。
glSampleCoverage参照。

GL_SCISSOR_TEST

有効にした場合、シザー矩形の外側にあるフラグメントを破棄します。
glScissor参照。

GL_STENCIL_TEST
有効にした場合、ステンシルテストを実行し、ステンシルバッファを更新します。
glStencilFuncとglStencilOp参照。

capが上記にリストされた値のいずれでもない場合、GL_INVALID_ENUMが発生します。

cap
:GLの機能を示すシンボリック定数を指定します。

△ Back to INDEX

glEnableVertexAttribArray

汎用頂点属性配列を有効または無効にします。

void glEnableVertexAttribArray(GLuint index);

void glDisableVertexAttribArray(GLuint index);

glEnableVertexAttribArrayは、indexによって指定された汎用頂点属性配列を有効にします。

glDisableVertexAttribArrayは、indexによって指定された汎用頂点属性配列を無効にします。

デフォルトでは、全ての汎用頂点属性配列を含めて、全てのクライアント側の機能は無効になっています。

有効にした場合、汎用頂点属性配列の値にアクセスし、glDrawArraysやglDrawElementsなどの頂点配列を作成するコマンドが呼び出された時にレンダリングに使用されます。

indexがGL_MAX_VERTEX_ATTRIBS以上の場合、GL_INVALID_VALUEが発生します。

index
:有効または無効にする汎用頂点属性配列のインデックスを指定します。

△ Back to INDEX



●F

glFramebufferRenderbuffer

void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);

フレームバッファオブジェクトにレンダバッファオブジェクトをアタッチします。

glFramebufferRenderbufferは、現在バインドされているフレームバッファオブジェクトの論理バッファの一つとして、renderbufferによって指定されたレンダバッファにアタッチします。

attachmentは、フレームバッファオブジェクトのカラー、深度、またはステンシルバッファのどれにアタッチするかを指定します。

レンダバッファは、デフォルトのフレームバッファオブジェクト名0にアタッチされていない可能性があります。

renderbufferが0でない場合、アタッチメントポイントに指定されたGL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPEの値はGL_RENDERBUFFERに設定され、GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAMEの値はrenderbufferに設定されます。

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVELとGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACEは、デフォルト値がそれぞれ0とGL_TEXTURE_CUBE_MAP_POSITIVE_Xに設定されています。

現在バインドされているフレームバッファオブジェクトのattachment論理バッファへの以前のアタッチメントは破棄されます。

renderbufferが0の場合、現在バインドされているフレームバッファオブジェクトattachment論理バッファへアタッチされている画像があればデタッチされます。

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPEの値はGL_NONEに設定されています。

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAMEの値は0に設定されています。

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVELとGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACEは、デフォルト値がそれぞれ0とGL_TEXTURE_CUBE_MAP_POSITIVE_Xに設定されています。

現在バインドされているフレームバッファへ画像がアタッチされている間にレンダバッファオブジェクトが削除された場合、現在バインドされているフレームバッファオブジェクトにアタッチされた画像へのアタッチメントポイントは、0のrenderbufferでglFramebufferRenderbufferを呼び出したようになります。

言い換えると、レンダバッファの画像は現在バインドされているフレームバッファからデタッチされます。

レンダバッファの画像は、バインドされていないフレームバッファから明確にデタッチされないことに注意してください。

バインドされていないフレームバッファからの画像のデタッチは、アプリケーションの責任です。

targetがGL_FRAMEBUFFERでない場合、GL_INVALID_ENUMが発生します。

renderbuffertargetがGL_RENDERBUFFERではなく、renderbufferが0ではない場合、GL_INVALID_ENUMが発生します。

attachmentがアタッチメントポイントに受け付けられなかった場合GL_INVALID_ENUMが発生します。

デフォルトのフレームバッファオブジェクト名0がバインドされている場合、GL_INVALID_OPERATIONが発生します。

renderbufferが0でも現在のレンダバッファオブジェクト名でもない場合、GL_INVALID_OPERATIONが発生します。

target:フレームバッファのターゲットを指定します。
シンボリック定数はGL_FRAMEBUFFERである必要があります。

attachment:アタッチする必要があるレンダバッファのアタッチメントポイントを指定します。
シンボリック定数は、GL_COLOR_ATTACHIMENT0、GL_DEPTH_ATTACHMENT、またはGL_STENCIL_ATTACHMENTの内の一つにする必要があります。

renderbuffertarget:レンダバッファのターゲットを指定します。
シンボリック定数はGL_RENDERBUFFERである必要があります。

renderbuffer:アタッチするレンダバッファオブジェクトを指定します。

△ Back to INDEX

glFramebufferTexture2D

void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);

フレームバッファオブジェクトにテクスチャ画像をアタッチします。

glFramebufferTexture2Dは、現在バインドされているフレームバッファオブジェクトの論理バッファの一つとして、texturelevelによって指定されたテクスチャ画像をアタッチします。

attachmentには、テクスチャ画像がフレームバッファオブジェクトの色、深度、またはステンシルバッファのどれにアタッチされているかを指定します。

テクスチャ画像は、デフォルトのフレームバッファオブジェクト名0にアタッチされていない場合があります。

textureが0でない場合、アタッチメントポイントに指定されたGL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPEの値はGL_TEXTUREに設定され、GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAMEの値はtextureに設定、GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVELの値はlevelに設定されます。

textureがキューブマップテクスチャの場合、GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACEの値はtextargetに指定され、それ以外の場合はデフォルトの値GL_TEXTURE_CUBE_MAP_POSITIVE_Xに設定されます。

現在バインドされているフレームバッファオブジェクトのattachment論理バッファへの以前のアタッチメントは破壊されます。

textureが0の場合、現在バインドされているフレームバッファオブジェクトのattachment論理バッファへアタッチされている現在の画像があった場合はデタッチされます。

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPEの値はGL_NONEに設定されます。

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAMEの値は0に設定されます。

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVELとGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACEは、それぞれデフォルト値0とGL_TEXTURE_CUBE_MAP_POSITIVE_Xに設定されます。

テクスチャオブジェクトが現在バインドされ、潜在的に現在の頂点またはフラグメントシェーダによってサンプリングされている間は、現在バインドされているフレームバッファへのテクスチャ画像のアタッチを避けるための特別な予防措置をとる必要があります。

そうすることで、現在バインドされているテクスチャのテクセルとして使用されているものと同じピクセルの読み込みと同時に、レンダリング操作によるピクセルの書き込みとの間で『フィードバックループ』を生成することができます。

このシナリオでは、フレームバッファは完全なフレームバッファとみなされますが、この状態の間のフラグメントの値は未定義です。

テクスチャサンプルの値も同様に未定義の場合があります。

画像が現在バインドされているフレームバッファにアタッチされている間にテクスチャオブジェクトが削除された場合、この画像が現在バインドされているフレームバッファオブジェクトにアタッチされているアタッチメントポイントに、textureを0にしてglFramebufferTexture2Dを呼び出したようになります。

言い換えると、テクスチャ画像は現在バインドされているフレームバッファからデタッチされます。

テクスチャ画像はバインドされていないフレームバッファからはデタッチされないことに特に注意してください。

バインドされていないフレームバッファから画像をデタッチするのは、アプリケーションの責任です。

targetがGL_FRAMEBUFFERでない場合、GL_INVALID_ENUMが発生します。

textargetが有効なテクスチャターゲットではなく、textureが0でない場合、GL_INVALID_ENUMが発生します。

attachmentが有効なアタッチメントポイントでない場合、GL_INVALID_ENUMが発生します。

levelが0でなく、textureが0でない場合、GL_INVALID_VALUEが発生します。

デフォルトのフレームバッファオブジェクト名0がバインドされている場合、GL_INVALID_OPERATIONが発生します。

textureが0でも存在するテクスチャオブジェクト名でもない場合、GL_INVALID_OPERATIONが発生します。

textureが存在する二次元テクスチャオブジェクト名であるがtextargetがGL_TEXTURE_2Dでない場合、またはtextureが存在するキューブマップテクスチャであるがtextargetがGL_TEXTURE_2Dの場合、GL_INVALID_OPERATIONが発生します。

target
:フレームバッファのターゲットを指定します。
シンボリック定数はGL_FRAMEBUFFERである必要があります。

attachment
:textureから画像をアタッチする必要があるアタッチメントポイントを指定します。
シンボリック定数はGL_COLOR_ATTACHMENT0、GL_DEPTH_ATTACHMENT、またはGL_STENCIL_ATTACHMENTのいずれかである必要があります。

textarget
:テクスチャターゲットを指定します。
シンボリック定数はGL_TEXTURE_2D、GL_TEXTURE_CUBE_MAP_POSITIVE_X、GL_TEXTURE_CUBE_MAP_NEGATIVE_X、GL_TEXTURE_CUBE_MAP_POSITIVE_Y、GL_TEXTURE_CUBE_MAP_NEGATIVE_Y、GL_TEXTURE_CUBE_MAP_POSITIVE_Z、またはGL_TEXTURE_CUBE_MAP_NEGATIVE_Zのいずれかである必要があります。

texture
:アタッチする画像のテクスチャオブジェクトを指定します。

level
:0でなければ、アタッチするテクスチャ画像のミップマップレベルを指定します。

△ Back to INDEX



●G

glGenBuffers

void glGenBuffers(GLsizei n, GLuint * buffers);

バッファオブジェクト名を生成します。

glGenBuffersは、buffersで名付けたn個のバッファオブジェクトを返します。

名前の形式は連続した整数のセットを保証するものではありませんが、返される名前のどれもglGenBuffersの呼び出しの直前に使用されていなかったことを保証します。

glGenBufferの呼び出しによって返されるバッファオブジェクト名は、glDeleteBuffersで最初に削除されない限り、後続の呼び出しによって返されません。

glBindBufferを呼び出すことによって最初にバインドされるまで、返されたバッファオブジェクト名はバッファオブジェクトに関連付けられません。

nが負の場合、GL_INVALID_VALUEが発生します。

n
:生成されるバッファオブジェクト名の数を指定します。

buffers
:生成されたバッファオブジェクト名が格納される配列を指定します。

△ Back to INDEX

glGenFramebuffers

void glGenFramebuffers(GLsizei n, GLuint * framebuffers);

フレームバッファオブジェクト名を生成します。

glGenFramebuffersは、framebuffersで名付けたn個のフレームバッファオブジェクトを返します。

名前の形式は連続した整数のセットを保証するものではありませんが、返される名前のどれもglGenFramebuffersの呼び出しの直前に使用されていなかったことを保証します。

glGenFramebuffersの呼び出しによって返されるフレームバッファオブジェクト名は、glDeleteFramebuffersで最初に削除されない限り、後続の呼び出しによって返されません。

glBindFramebufferを呼び出すことによって最初にバインドされるまで、返されたフレームバッファオブジェクト名はフレームバッファオブジェクトに関連付けられません。

nが負の場合、GL_INVALID_VALUEが発生します。

n:生成されるフレームバッファオブジェクト名の数を指定します。

framebuffers:生成されたフレームバッファオブジェクト名が格納される配列を指定します。

△ Back to INDEX

glGenRenderbuffers

void glGenRenderbuffers(GLsizei n, GLuint * renderbuffers);

レンダバッファオブジェクト名を生成します。

glGenRenderbuffersは、renderbuffersで名付けたn個のレンダバッファオブジェクトを返します。

名前の形式は連続した整数のセットを保証するものではありませんが、返される名前のどれもglGenRenderbuffersの呼び出しの直前に使用されていなかったことを保証します。

glGenRenderbuffersの呼び出しによって返されるレンダバッファオブジェクト名は、glDeleteRenderbuffersで最初に削除されない限り、後続の呼び出しによって返されません。

glBindRenderbufferを呼び出すことによって最初にバインドされるまで、返されたレンダバッファオブジェクト名はレンダバッファオブジェクトに関連付けられません。

nが負の場合、GL_INVALID_VALUEが発生します。

n:生成されるレンダバッファ名の数を指定します。

renderbuffers:生成されたレンダバッファオブジェクト名が格納される配列を指定します。

△ Back to INDEX

glGenTextures


void glGenTextures(GLsizei n, GLuint * textures);

テクスチャ名を生成します。

glGenTextureは、texturesで名付けたn個のテクスチャを返します。

名前は整数の連続したセットを形成することを保証するものではありません。

しかし、返された名前がglGenTexturesの呼び出しの直前に使用されていなかったことを保証します。

生成されたテクスチャは大きさを持っておらず、最初にバインドされたテクスチャのターゲットの大きさを想定しています。(glBindTexture参照)

glDeleteTexturesによって最初に削除されない限り、glGenTexturesの呼び出しによって返されるテクスチャ名は、後続の呼び出しによって返されません。

nが負の場合、GL_INVALID_VALUEが発生します。

n:生成されたテクスチャ名の数を指定します。

texture:生成されたテクスチャ名が格納される配列を指定します。

△ Back to INDEX

glGet

void glGetBooleanv(GLenum pname, GLboolean * params);

void glGetFloatv(GLenum pname, GLfloat * params);

void glGetIntegerv(GLenum pname, GLint * params);

値または選択されたパラメータの値を返します。

これら4つのコマンドは、GL内で単純な状態変数の値を返します。

pnameは返される状態変数を示すシンボリック定数で、paramsは返されるデータが置かれる指定された型の配列へのポインタです。

paramsが要求された状態変数値と型が異なる場合、型の変換が実行されます。

glGetBooleanvの呼び出しでは、浮動小数点(または整数値)は0.0(または0)の場合のみGL_FALSEに変換されます。

それ以外の場合はGL_TRUEに変換されます。

glGetIntegervの呼び出しでは、ブール値はGL_TRUEまたはGL_FALSEとして返され、浮動小数点値は最も近い整数に丸められます。

浮動小数点の色と法線は、表現可能な正の整数最大値を1.0、表現可能な負の整数最小値を-1.0とマップし、線形にマッピングを行います。

glGetFloatvの呼び出しでは、ブール値はGL_TRUEまたはGL_FALSEとして返され、整数値は浮動小数点値に変換されます。

以下にpnameが受け取れるシンボリック定数を示します。

GL_ACTIVE_TEXTURE
paramsはアクティブなマルチテクスチャユニットを示す単一の値を返します。
初期値はGL_TEXTURE0です。
glActiveTexture参照。

GL_ALIASED_LINE_WIDTH_RANGE
paramsはエイリアシングラインのサポートされている幅の、最小と最大の2つの値を返します。
範囲には1が含まれている必要があります。

GL_ALIASED_POINT_SIZE_RANGE
paramsはエイリアシングポイントのサポートされているサイズの最小と最大の2つの値を返します。
範囲には1が含まれている必要があります。

GL_ALPHA_BITS
paramsは現在バインドされているフレームバッファの、カラーバッファ内のアルファビットプレーン数を1つの値で返します。

GL_ARRAY_BUFFER_BINDING
paramsはターゲットGL_ARRAY_BUFFERに現在バインドされているバッファオブジェクトの名前を単一の値で返します。
このターゲットにバインドされているバッファオブジェクトが無い場合は0が返されます。
初期値は0です。
glBindBuffer参照。

GL_BLEND
paramsはブレンディングが有効かどうかを示す単一のブール値を返します。
初期値はGL_FALSEです。
glBlendFunc参照。

GL_BLEND_COLOR
paramsはブレンドカラーの要素である赤、緑、青、アルファの4つの値を返します。
glBlendColor参照。

GL_BLEND_DST_ALPHA
paramsはアルファの対象のブレンド関数を識別するシンボリック定数を1つの値で返します。
初期値はGL_ZEROです。
glBlendFuncとglBlendFuncSeparate参照。

GL_BLEND_DST_RGB
paramsはRGBの対象のブレンド関数を識別するシンボリック定数を1つの値で返します。
初期値はGL_ZEROです。
glBlendFuncとglBlendFuncSeparate参照。

GL_BLEND_EQUATION_ALPHA
paramsはアルファブレンド方程式がGL_FUNC_ADD、GL_FUNC_SUBTRACT、またはGL_FUNC_REVERSE_SUBTRACTかどうかを示す、シンボリック定数を1つの値で返します。
glBlendEquationSeparate参照。

GL_BLEND_EQUATION_RGB
paramsはRGBブレンド方程式がGL_FUNC_ADD、GL_FUNC_SUBTRACT、またはGL_FUNC_REVERSE_SUBTRACTかどうかを示す、シンボリック定数を1つの値で返します。
glBlendEquationSeparate参照。

GL_BLEND_SRC_ALPHA

paramsはアルファのソースのブレンド関数を示すシンボリック定数を1つの値で返します。
初期値はGL_ONEです。
glBlendFuncとglBlendFuncSeparate参照。

GL_BLEND_SRC_RGB
paramsはRGBのソースのブレンド関数を示すシンボリック定数を1つの値で返します。
初期値はGL_ONEです。
glBlendFuncとglBlendFuncSeparate参照。

GL_BLUE_BITS
paramsは現在バインドされているフレームバッファのカラーバッファ内の青のビットプレーン数を1つの値で返します。

GL_COLOR_CLEAR_VALUE
paramsはカラーバッファのクリアに使用する赤、緑、青、アルファの4つの値を返します。
整数値が要求された場合は、表現可能な正の整数最大値を1.0、表現可能な負の整数最小値を-1.0とマップし、内部の浮動小数点の表現を線形にマッピングします。
初期値は(0, 0, 0, 0)です。
glClearColor参照。

GL_COLOR_WRITEMASK

paramsはカラーバッファへの赤、緑、青、アルファの書き込みが有効かどうかを示す4つのブール値を返します。
初期値は(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE)です。
glColorMask参照。

GL_COMPRESSED_TEXTURE_FORMATS
paramsはサポートされている圧縮テクスチャフォーマットを示す長さのシンボリック定数のリストGL_NUM_COMPRESSED_TEXTURE_FORMATSを返します。
glCompressedTexImage2D参照。

GL_CULL_FACE
paramsはポリゴンの間引きが有効かどうかを示す単一のブール値を返します。
初期値はGL_FALSEです。
glCullFace参照。

GL_CULL_FACE_MODE
paramsはポリゴンのフェースが間引きされているかを示すシンボリック定数を1つ返します。
初期値はGL_BACKです。
glCullFace参照。

GL_CURRENT_PROGRAM
paramsは現在アクティブなプログラムオブジェクトの名前を1つの値で、またはアクティブなプログラムオブジェクトが無い場合は0を返します。
glUseProgram参照。

GL_DEPTH_BITS
paramsは現在バインディングされているフレームバッファの深度バッファ内のビットプレーン数を1つの値で返します。

GL_DEPTH_CLEAR_VALUE
paramsは深度バッファのクリアに使用される値を1つの値で返します。
整数値が要求された場合は、表現可能な正の整数最大値を1.0、表現可能な負の整数最小値を-1.0とマップし、内部の浮動小数点の表現を線形にマッピングします。
初期値は1です。
glClearDepthf参照。

GL_DEPTH_FUNC
paramsは深度比較関数を示すシンボリック名を1つの値で返します。
初期値はGL_LESSです。
glDepthFunc参照。

GL_DEPTH_RANGE
paramsは深度バッファでマッピングできる手前と奥の限界値を2つの値で返します。
整数値が要求された場合は、表現可能な正の整数最大値を1.0、表現可能な負の整数最小値を-1.0とマップし、内部の浮動小数点の表現を線形にマッピングします。
初期値は(0, 1)です。
glDepthRangef参照。

GL_DEPTH_TEST
paramsはフラグメントの深度テストが有効かどうかを示す単一のブール値を返します。
初期値はGL_FALSEです。
glDepthFuncとglDepthRangef参照。

GL_DEPTH_WRITEMASK
paramsは深度バッファへの書き込みが有効かどうかを示す単一のブール値を返します。
初期値はGL_TRUEです。
glDepthMask参照。

GL_DITHER
paramsはフラグメントの色のディザリングとインデックスが有効かどうかを示す単一のブール値を返します。
初期値はGL_TRUEです。

GL_ELEMENT_ARRAY_BUFFER_BINDING
paramsは現在ターゲットGL_ELEMENT_ARRAY_BUFFERへバインドしているバッファオブジェクト名を単一の値で返します。
このターゲットにバインドしているバッファオブジェクトが無い場合は0が返されます。
初期値は0です。
glBindBuffer参照。

GL_FRAMEBUFFER_BINDING
paramsは現在バインディングされているフレームバッファ名を単一の値で返します。
初期値は0で、デフォルトのフレームバッファを示します。
glBindFramebuffer参照。

GL_FRONT_FACE
paramsは時計回りまたは反時計回りのポリゴンのワインディングの、どちらを表向きとして扱うかを示すシンボリック定数を1つの値で返します。
初期値はGL_CCWです。
glFrontFace参照。

GL_GENERATE_MIPMAP_HINT
paramsはミップマップ生成フィルタリングのヒントのモードを示すシンボリック定数を1つの値で返します。
初期値はGL_DONT_CAREです。
glHint参照。

GL_GREEN_BITS
paramsは現在バインドされているフレームバッファのカラーバッファ内の緑のビットプレーン数を1つの値で返します。

GL_IMPLEMENTATION_COLOR_READ_FORMAT
paramsはGL_IMPLEMENTATION_COLOR_READ_TYPEと結合している現在バインドされているフレームバッファのカラーバッファからのピクセルの読み込みのため、実装によって選択されたフォーマットを1つの値で返します。
この実装依存フォーマット/型のペアに加えて、型GL_UNSIGNED_BYTEと結合しているフォーマットGL_RGBAは、現在バインドされているレンダリングサーフェスに関係無く全ての実装で常に許可されます。
glReadPixels参照。

GL_IMPLEMENTATION_COLOR_READ_TYPE
paramsはGL_IMPLEMENTATION_COLOR_READ_FORMATと結合している現在バインドされているフレームバッファのカラーバッファからのピクセルの読み込みのため、実装によって選択されたフォーマットを1つの値で返します。
この実装依存フォーマット/型のペアに加えて、型GL_UNSIGNED_BYTEと結合しているフォーマットGL_RGBAは、現在バインドされているレンダリングサーフェスに関係無く全ての実装で常に許可されます。
glReadPixels参照。

GL_LINE_WIDTH

paramsglLineWidthで指定された線幅を1つの値で返します。

GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
paramsは結合されたフラグメントプロセッサと頂点シェーダからテクスチャマップへのアクセスに使用することができる、サポートされる最大のテクスチャ画像を1つの値で返します。
頂点シェーダとフラグメント処理ステージの両方が同じテクスチャ画像ユニットへアクセス する場合、この制限に対して2つのテクスチャ画像ユニットを使用するものとしてカウントします。
この値は少なくとも8である必要があります。
glActiveTexture参照。

GL_MAX_CUBE_MAP_TEXTURE_SIZE
paramsはGLが処理可能な最大のキューブマップテクスチャの概算を1つの値で返します。
この値は少なくとも16である必要があります。
glTexImage2D参照。

GL_MAX_FRAGMENT_UNIFORM_VECTORS
paramsはフラグメントシェーダのための定型変数ストレージ内に保持できる、浮動小数点、整数、ブール値、ベクタの4つの要素の最大数を1つの値で返します。
この値は少なくとも16である必要があります。
glUniform参照。

GL_MAX_RENDERBUFFER_SIZE
paramsはGLが処理可能な最大のレンダバッファの幅と高さを示す1つの値を返します。
この値は少なくとも1である必要があります。
glRenderbufferStorage参照。

GL_MAX_TEXTURE_IMAGE_UNITS
paramsはフラグメントシェーダからテクスチャマップへのアクセスに使用することができる、サポートされる最大のテクスチャ画像ユニットを1つの値で返します。
この値は少なくとも8である必要があります。
glActiveTexture参照。

GL_MAX_TEXTURE_SIZE

paramsはGLが処理可能な最大のテクスチャの概算を1つの値で返します。
この値は少なくとも64である必要があります。
glTexImage2D参照。

GL_MAX_VARYING_VECTORS
paramsは頂点とフラグメントシェーダによって使用される様々な変数を補間するために利用可能な、4つの要素を持つ浮動小数点ベクタの最大数を1つの値で返します。
様々な変数は行列または配列として宣言され、複数の補間で使用されます。
この値は少なくとも8である必要があります。

GL_MAX_VERTEX_ATTRIBS
paramsは頂点シェーダへアクセス可能な4つの一般的な頂点属性要素の最大数を1つの値で返します。
この値は少なくとも8である必要があります。
glVertexAttrib参照。

GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
paramsは頂点シェーダからテクスチャマップへのアクセスに使用することができる、サポートされる最大のテクスチャ画像ユニットを1つの値で返します。
この値は0になる場合があります。
glActiveTexture参照。

GL_MAX_VERTEX_UNIFORM_VECTORS
paramsは頂点シェーダのための定型変数ストレージ内に保持できる、浮動小数点、整数、ブール値、ベクタの4つの要素の最大数を1つの値で返します。
この値は少なくとも128である必要があります。
glUniform参照。

GL_MAX_VIEWPORT_DIMS
paramsはビューポートがサポートされている最大の幅と高さの2つの値を返します。
これらは少なくともレンダリングで表示される可視範囲と同じ大きさである必要があります。
glViewport参照。

GL_NUM_COMPRESSED_TEXTURE_FORMATS
paramsは利用可能な圧縮テクスチャフォーマット数を示す単一の整数値を返します。
この最小値は0です。
glCompressedTexImage2D参照。

GL_NUM_SHADER_BINARY_FORMATS
paramsは利用可能なシェーダのバイナリフォーマット数を示す単一の整数値を返します。
この最小値は0です。 
glShaderBinary参照。

GL_PACK_ALIGNMENT
paramsはメモリにピクセルデータを書き込むために使用する、バイトアラインメントを1つの値で返します。
初期値は4です。
glPixelStorei参照。

GL_POLYGON_OFFSET_FACTOR
paramsはポリゴンがラスタライズされた時に生成される、各フラグメント深度値に追加される変数のオフセットの決定に使用される、スケーリング要素を1つの値で返します。
初期値は0です。
glPolygonOffset参照。

GL_POLYGON_OFFSET_FILL
paramsは塗りつぶしモードのポリゴンで、ポリゴンのオフセットが有効かどうかを示す単一のブール値を返します。
初期値はGL_FALSEです。
glPolygonOffset参照。

GL_POLYGON_OFFSET_UNITS
paramsはポリゴンがラスタライズされた時に生成される、各フラグメントの深度値に追加される、実装固有の値によって乗じる値を1つの値で返します。
初期値は0です。
glPolygonOffset参照。

GL_RED_BITS
paramsは現在バインドされているフレームバッファのカラーバッファ内の赤のビットプレーン数を1つの値で返します。

GL_RENDERBUFFER_BINDING
paramsは現在バインドされているレンダバッファ数を単一の値で返します。
初期値は0で、バインドされているレンダバッファが無いことを示します。
glBindRenderbuffer参照。

GL_SAMPLE_ALPHA_TO_COVERAGE
paramsはフラグメントのアルファ値に基づいて、フラグメントの適用範囲値に一時的な適用範囲値をAND演算する必要があるかどうかを示す単一のブール値を返します。
初期値はGL_FALSEです。
glSampleCoverage参照。

GL_SAMPLE_BUFFERS
paramsは現在バインドされているフレームバッファに関連付けられているサンプルバッファ数を示す単一の整数値を返します。
glSampleCoverage参照。

GL_SAMPLE_COVERAGE
paramsは現在のサンプル適用範囲値に基づいて、フラグメントの適用範囲値に一時的な適用範囲値をAND演算する必要があるかどうかを示す単一のブール値を返します。
初期値はGL_FALSEです。
glSampleCoverage参照。

GL_SAMPLE_COVERAGE_INVERT
paramsは一時的な適用範囲値を反転する必要があるかどうかを示す単一のブール値を返します。
glSampleCoverage参照。

GL_SAMPLE_COVERAGE_VALUE
paramsは現在のサンプル適用範囲値を示す単一の正の浮動小数点値を返します。
glSampleCoverage参照。

GL_SAMPLES
paramsは現在バインドされているフレームバッファの適用範囲のマスクサイズを示す単一の整数値を返します。
glSampleCoverage参照。

GL_SCISSOR_BOX
paramsはシザーボックスのウィンドウ座標のx、y、幅、高さの4つの値を返します。
初期はウィンドウ座標のxとyは共に0で、幅と高さはウィンドウのサイズに設定されます。
glScissor参照。

GL_SCISSOR_TEST
paramsはシザーリングが有効かどうかを示す単一のブール値を返します。
初期値はGL_FALSEです。
glScissor参照。

GL_SHADER_BINARY_FORMATS
paramsはシェーダバイナリフォーマットが利用可能かどうかを示す長さGL_NUM_SHADER_BINARY_FORMATS のシンボリック定数のリストを返します。
glShaderBinary参照。

GL_SHADER_COMPILER
paramsはシェーダコンパイラがサポートされているかどうかを示す単一のブール値を返します。
GL_FALSEは、glShaderSourceglCompileShader、またはglReleaseShaderCompilerへの呼び出しの結果、GL_INVALID_OPERATIONエラーが生成されたことを示します。

GL_STENCIL_BACK_FAIL
paramsはステンシルテストが失敗した時に背面ポリゴンのために実行するアクションを示すシンボリック定数を1つの値で返します。
初期値はGL_KEEPです。
glStencilOpSeparate参照。

GL_STENCIL_BACK_FUNC
paramsはステンシル基準値とステンシルバッファ値の比較するために、背面ポリゴンに使用される関数を示すシンボリック定数を1つの値で返します。
初期値はGL_ALWAYSです。
glStencilFuncSeparate参照。

GL_STENCIL_BACK_PASS_DEPTH_FAIL
paramsはステンシルテストが成功したが深度テストが失敗した時に、背面ポリゴンのために実行するアクションを示すシンボリック定数を1つの値で返します。
初期値はGL_KEEPです。
glStencilOpSeparate参照。

GL_STENCIL_BACK_PASS_DEPTH_PASS
paramsはステンシルテストと深度テストが成功した時に、背面ポリゴンのために実行するアクションを示すシンボリック定数を1つの値で返します。
初期値はGL_KEEPです。
glStencilOpSeparate参照。

GL_STENCIL_BACK_REF
paramsは背面ポリゴンのために、ステンシルバッファのコンテンツと比較する基準値を1つの値で返します。
初期値は0です。
glStencilFuncSeparate参照。

GL_STENCIL_BACK_VALUE_MASK
paramsは比較する前にステンシルバッファ値とステンシル基準値の両方をマスクする、背面ポリゴンのために使用するマスクを1つの値で返します。
初期値は全て1です。
glStencilFuncSeparate参照。

GL_STENCIL_BACK_WRITEMASK
paramsは背面ポリゴンのためのステンシルビットプレーンの書き込みを制御するマスクを1つの値で返します。
初期値は全て1です。
glStencilMaskSeparate参照。

GL_STENCIL_BITS
paramsは現在バインドされているフレームバッファのステンシルバッファ内のビットプレーン数を1つの値で返します。

GL_STENCIL_CLEAR_VALUE
paramsはクリアされたステンシルのビットプレーンのインデックスを1つの値で返します。
glClearStencil参照。

GL_STENCIL_FAIL
paramsは前面ポリゴンと非ポリゴンのため、ステンシルテストが失敗した時に実行するアクションを示すシンボリック定数を1つの値で返します。
初期値はGL_KEEPです。
glStencilOpとglStencilOpSeparate参照。

GL_STENCIL_FUNC
paramsは前面ポリゴンと非ポリゴンのため、ステンシルバッファ値とステンシル基準値の比較に使用する関数を示すシンボリック定数を1つの値で返します。
初期値はGL_ALWAYSです。
glStencilFuncとglStencilFuncSeparate参照。

GL_STENCIL_PASS_DEPTH_FAIL
paramsは前面ポリゴンと非ポリゴンのため、ステンシルテストが成功したが深度テストが失敗した時に実行するアクションを示すシンボリック定数を1つの値で返します。
初期値はGL_KEEPです。
glStencilOpとglStencilOpSeparate参照。

GL_STENCIL_PASS_DEPTH_PASS
paramsは前面ポリゴンと非ポリゴンのため、ステンシルテストと深度テストが成功した時に実行するアクションを示すシンボリック定数を1つの値で返します。
初期値はGL_KEEPです。
glStencilOpとglStencilOpSeparate参照。

GL_STENCIL_REF
paramsは前面ポリゴンと非ポリゴンのため、ステンシルバッファのコンテンツと比較する基準値を1つの値で返します。
初期値は0です。
glStencilFuncとglStencilFuncSeparate参照。

GL_STENCIL_TEST
paramsはフラグメントのステンシルテストが有効かどうかを示す単一のブール値を返します。
初期値はGL_FALSEです。
glStencilFuncとglStencilOp参照。

GL_STENCIL_VALUE_MASK
paramsは前面ポリゴンと非ポリゴンのため、比較する前にステンシルバッファ値とステンシル基準値の両方をマスクするために使用するマスクを1つの値で返します。
初期値は全て1です。
glStencilFuncとslStencilFuncSeparate参照。

GL_STENCIL_WRITEMASK
paramsは前面ポリゴンと非ポリゴンのため、ステンシルのビットプレーンの書き込みを制御するマスクを1つの値で返します。
初期値は全て1です。
glStencilMaskとglStencilMaskSeparate参照。

GL_SUBPIXEL_BITS
paramsはウィンドウ座標内でラスタライズされたジオメトリの配置に使用する、サブピクセルの解像度のビット数の推定値を1つの値で返します。
この値は少なくとも4である必要があります。

GL_TEXTURE_BINDING_2D
paramsはアクティブなマルチテクスチャユニットのため、ターゲットGL_TEXTURE_2Dに現在バインドされているテクスチャ名を単一の値で返します。
初期値は0です。
glBindTexture参照。

GL_TEXTURE_BINDING_CUBE_MAP
paramsはアクティブなマルチテクスチャユニットのため、ターゲットGL_TEXTURE_CUBE_MAPに現在バインドされているテクスチャ名を単一の値で返します。
初期値は0です。
glBindTexture参照。

GL_UNPACK_ALIGNMENT
paramsはメモリからピクセルデータを読み込むために使用するバイトアラインメントを1つの値で返します。
初期値は4です。
glPixelStorei参照。

GL_VIEWPORT
paramsはビューポートのウィンドウ座標のx、y、幅、高さの4つの値を返します。
初期はウィンドウ座標のxとyは共に0で、幅と高さはGLのレンダリング先となるウィンドウのサイズに設定されます。
glViewport参照。

ブーリアンパラメータの多くは、glIsEnabledを使用してより簡単に照会することができます。

pnameが有効な値でない場合、GL_INVALID_ENUMが発生します。

pname:返されるパラメータの値を指定します。
上記リストのシンボリック定数が指定できます。

params:値または指定されたパラメータの値を返します。

△ Back to INDEX

glGetProgramInfoLog

プログラムオブジェクトの情報ログを返します。

void glGetProgramInfoLog( GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog);

glGetProgramInfoLogは、指定されたプログラムオブジェクトの情報ログを返します。

プログラムオブジェクトの情報ログは、プログラムオブジェクトがリンクまたは検証された時に変更されます。

文字列はヌル終端で返されます。

glGetProgramInfoLogは、maxLength文字の最大まで、できるかぎり多くの情報ログをinfoLog内に返します。

実際に返される文字数は、ヌル終端を除いて、lengthによって指定されています。

返される文字列の長さが必要な場合は、引数lengthにNULL値を渡すことができます。

返される情報ログの格納に必要なバッファサイズは、GL_INFO_LOG_LENGTH値でglGetProgramivを呼び出すことによって取得することができます。

プログラムオブジェクトの情報ログは、空の文字列、または最後のリンク操作についての情報を含む文字列、あるいは最後の検証操作についての情報を含む文字列のいずれかになります。

それには診断メッセージ、警告メッセージ、その他の情報が含まれている場合があります。

プログラムオブジェクトが生成されると、情報ログは長さ0の文字列になります。

プログラムオブジェクトの情報ログは、リンクや検証に関する情報を伝達するための、OpenGLの実装における主要な機構です。

したがって、情報ログはこれらの操作に成功した場合でも、開発工程中のアプリケーション開発者にとって役立ちます。

アプリケーション開発者は、同一の情報ログを生成するために異なるOpenGLの実装を期待してはいけません。

programがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

programがプログラムオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

maxLengthが0未満の場合、GL_INVALID_VALUEが発生します。

program
:情報ログを必要とするプログラムオブジェクトを指定します。

maxLength
:返される情報ログを格納するための文字バッファのサイズを指定します。

length
:(ヌル終端を除いた)infoLog内に返された文字列の長さを返します。

infoLog
:情報ログを返すために使用されている文字配列を指定します。

△ Back to INDEX

glGetProgramiv

プログラムオブジェクトからパラメータを返します。

void glGetProgramiv(GLuint program, GLenum pname, GLint *params);

glGetProgramivは、params内の指定したプログラムオブジェクトからパラメータの値を返します。

以下のパラメータが定義されています。

GL_DELETE_STATUS
paramsは、programが現在削除フラグが立てられている場合はGL_TRUE、それ以外の場合はGL_FALSEを返します。

GL_LINK_STATUS
paramsは、program上の最後のリンク操作が成功した場合はGL_TRUE、それ以外の場合はGL_FALSEを返します。

GL_VALIDATE_STATUS
paramsは、program上の最後の検証操作が成功した場合はGL_TRUE、それ以外の場合はGL_FALSEを返します。

GL_INFO_LOG_LENGTH
paramsは、ヌル終端文字を含むprogramの情報ログ内にある文字数(すなわち、情報ログを格納するために必要な文字バッファのサイズ)を返します。
programが情報ログを持っていない場合、値0を返します。

GL_ATTACHED_SHADERS
paramsは、programにアタッチされているシェーダオブジェクトの数を返します。

GL_ACTIVE_ATTRIBUTES
paramsは、programのアクティブなattribute変数の数を返します。

GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
paramsは、ヌル終端文字を含むprogramの最長のアクティブなattribute名(すなわち、最長のattribute名を格納するために必要な文字バッファのサイズ)を返します。
アクティブなattributesが存在しない場合、0を返します。

GL_ACTIVE_UNIFORMS
paramsは、programのアクティブなuniform変数の数を返します。

GL_ACTIVE_UNIFORM_MAX_LENGTH
paramsは、ヌル終端文字を含むprogramの最長のアクティブなuniform名(すなわち、最長のuniform変数名を格納するために必要な文字バッファのサイズ)を返します。
アクティブなuniform変数が存在しない場合、0を返します。

エラーが発生した場合、paramsの内容は変更されません。

pnameが有効な値でない場合、GL_INVALID_ENUMが発生します。

programがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

programがプログラムオブジェクトを参照していない場合、GL_INVALID_OPERATIONが発生します。

program
:照会するプログラムオブジェクトを指定します。

pname
:オブジェクトパラメータを指定します。
有効なシンボリック名はGL_DELETE_STATUS、GL_LINK_STATUS、GL_VALIDATE_STATUS、GL_INFO_LOG_LENGTH、GL_ATTACHED_SHADERS、GL_ACTIVE_ATTRIBUTES、GL_ACTIVE_ATTRIBUTE_MAX_LENGTH、GL_ACTIVE_UNIFORMS、GL_ACTIVE_UNIFORM_MAX_LENGTHです。

params
:要求されたオブジェクトパラメータを返します。

△ Back to INDEX

glGetRenderbufferParameteriv

void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params);

レンダバッファオブジェクトのパラメータを返します。

glGetRenderbufferParameterivは、現在バインドされているレンダバッファオブジェクトのparamsで選択されたパラメータを返します。

pname名はレンダバッファオブジェクトのパラメータを指定するもので以下のようになっています。

GL_RENDERBUFFER_WIDTH
paramsは現在バインドされているレンダバッファの画像の幅をピクセル単位で返します。
初期値は0です。

GL_RENDERBUFFER_HEIGHT

paramsは現在バインドされているレンダバッファの画像の高さをピクセル単位で返します。
初期値は0です。

GL_RENDERBUFFER_INTERNAL_FORMAT
paramsは現在バインドされているレンダバッファの画像の内部フォーマットを返します。
初期値はGL_RGBA4です。

GL_RENDERBUFFER_RED_SIZE

paramsは現在バインドされているレンダバッファの画像の赤成分のビットの解像度を返します。
初期値は0です。

GL_RENDERBUFFER_GREEN_SIZE
paramsは現在バインドされているレンダバッファの画像の緑成分のビットの解像度を返します。
初期値は0です。

GL_RENDERBUFFER_BLUE_SIZE
paramsは現在バインドされているレンダバッファの画像の青成分のビットの解像度を返します。
初期値は0です。

GL_RENDERBUFFER_ALPHA_SIZE
paramsは現在バインドされているレンダバッファの画像のアルファ成分のビットの解像度を返します。
初期値は0です。

GL_RENDERBUFFER_DEPTH_SIZE
paramsは現在バインドされているレンダバッファの画像の深度成分のビットの解像度を返します。
初期値は0です。

GL_RENDERBUFFER_STENCIL_SIZE
paramsは現在バインドされているレンダバッファの画像のステンシル成分のビットの解像度を返します。
初期値は0です。

glGetRenderbufferParameterivによって報告される成分の解像度は、格納されている成分の実際の解像度で、glRenderbufferStorageのinternalformatパラメータが要求するものと異なる場合があります。

エラーが発生した場合、paramsの内容への変更は行われません。

targetがGL_RENDERBUFFERでない場合、GL_INVALID_ENUMが発生します。

pnameがGL_RENDERBUFFER_WIDTH、GL_RENDERBUFFER_HEIGHT、GL_RENDERBUFFER_INTERNAL_FORMAT、GL_RENDERBUFFER_RED_SIZE、GL_RENDERBUFFER_GREEN_SIZE、GL_RENDERBUFFER_BLUE_SIZE、GL_RENDERBUFFER_ALPHA_SIZE、GL_RENDERBUFFER_DEPTH_SIZE、またはGL_RENDERBUFFER_STENCIL_SIZEでない場合、GL_INVALID_ENUMが発生します。

予約済のレンダバッファオブジェクト名0がバインドされていた場合、GL_INVALID_OPERATIONが発生します。

target:ターゲットのレンダバッファオブジェクトを指定します。
シンボリック定数はGL_RENDERBUFFERである必要があります。

pname:レンダバッファオブジェクトのパラメータのシンボリック名を指定します。
指定可能な値は、GL_RENDERBUFFER_WIDTH、GL_RENDERBUFFER_HEIGHT、GL_RENDERBUFFER_INTERNAL_FORMAT、GL_RENDERBUFFER_RED_SIZE、GL_RENDERBUFFER_GREEN_SIZE、GL_RENDERBUFFER_BLUE_SIZE、GL_RENDERBUFFER_ALPHA_SIZE、GL_RENDERBUFFER_DEPTH_SIZE、GL_RENDERBUFFER_STENCIL_SIZEです。

params:要求されたパラメータを返します。

△ Back to INDEX

glGetShaderInfoLog

シェーダオブジェクトの情報ログを返します。

void glGetShaderInfoLog(GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog);

glGetShaderInfoLogは指定されたシェーダオブジェクトの情報ログを返します。

シェーダオブジェクトの情報ログは、シェーダのコンパイル時に変更されます。

返される文字列はヌル終端されます。

glGetShaderInfoLogはmaxLengthの文字の最大まで、できるかぎり多くの情報ログをinfoLog内に返します。

実際に返される文字数は、ヌル終端を除いて、lengthによって指定されています。

返される文字列の長さが必要な場合は、引数lengthにNULL値を渡すことができます。

返される情報ログの格納に必要なバッファサイズは、GL_INFO_LOG_LENGTH値でglGetShaderivを呼び出すことによって取得することができます。

シェーダオブジェクトの情報ログは、最後のコンパイル操作に関する診断メッセージ、警告メッセージ、その他の情報を含む文字列です。

シェーダオブジェクトが生成された時、情報ログの文字列長は0になります。

シェーダオブジェクトの情報ログは、コンパイル工程に関する情報を伝達するための、OpenGLの実装における主要な機構です。

したがって、情報ログはコンパイルに成功した場合でも、開発工程中のアプリケーション開発者にとって役立ちます。

アプリケーション開発者は、同一の情報ログを生成するために異なるOpenGLの実装を期待してはいけません。

shaderがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

shaderがシェーダオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

maxLengthが0未満の場合、GL_INVALID_VALUEが発生します。

shader
:情報ログを必要とするシェーダオブジェクトを指定します。

maxLength
:返される情報ログを格納するための文字バッファのサイズを指定します。

length
:(ヌル終端を除いた)infoLog内に返された文字列の長さを返します。

infoLog
:情報ログを返すために使用される文字配列を指定します。

△ Back to INDEX

glGetShaderiv

シェーダオブジェクトからパラメータを返します。

void glGetShaderiv(GLuint shader, GLenum pname, GLint *params);

glGetShaderivは、params内の指定したシェーダオブジェクトからのパラメータ値を返します。

以下のパラメータが定義されています。

GL_SHADER_TYPE
paramsは、shaderが頂点シェーダオブジェクトの場合はGL_VERTEX_SHADERを、shaderがフラグメントシェーダオブジェクトの場合はGL_FRAGMENT_SHADERを返します。

GL_DELETE_STATUS
shaderが現在削除フラグが立てられている場合、paramsはGL_TRUEを返し、それ以外の場合はGL_FALSEを返します。

GL_COMPILE_STATUS
シェーダコンパイラをサポートする実装の場合、shader上での最後のコンパイル操作が成功した場合はparamsはGL_TRUEを返し、それ以外の場合はGL_FALSEを返します。

GL_INFO_LOG_LENGTH
シェーダコンパイラをサポートする実装の場合、paramsはヌル終端文字を含むshaderの情報ログ内の文字数(すなわち、情報ログを格納するために必要な文字バッファのサイズ)を返します。
shaderが情報ログを持っていない場合、値0を返します。

GL_SHADER_SOURCE_LENGTH
シェーダコンパイラをサポートする実装の場合、paramsはヌル終端文字を含むshaderのためのシェーダソースを作成するソース文字列の連結の長さ(すなわち、シェーダソースを格納するために必要な文字バッファのサイズ)を返します。
ソースコードが存在しない場合は0を返します。

シェーダコンパイラのサポートはオプションであり、したがって引数GL_SHADER_COMPILERでglGetを呼び出すことによって、使用する前に照会する必要があります。

glShaderSourceglCompileShader、glGetShaderPrecisionFormat、そしてglReleaseShaderCompilerは、シェーダコンパイラをサポートしない実装上では、glGetShaderivでGL_COMPILE_STATUS、GL_INFO_LOG_LENGTH、そしてGL_SHADER_SOURCE_LENGTHの照会するのと同様に、GL_INVALID_OPERATIONを発生させます。

このような実装の代わりに、事前にコンパイルされたシェーダバイナリを供給するための代替として、glShaderBinaryが提供されています。

エラーが発生した場合、paramsの内容は変更されません。

pnameが有効な値でない場合、GL_INVALID_ENUMが発生します。

shaderがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

pnameがGL_COMPILE_STATUS、GL_INFO_LOG_LENGTH、またはGL_SHADER_SOURCE_LENGTHで、シェーダコンパイラがサポートされていない場合、GL_INVALID_OPERATIONが発生します。

shaderがシェーダオブジェクトを参照していない場合、GL_INVALID_OPERATIONが発生します。

shader
:照会するシェーダオブジェクトを指定します。

pname
:オブジェクトのパラメータを指定します。
有効なシンボル名はGL_SHADER_TYPE、GL_DELETE_STATUS、GL_COMPILE_STATUS、GL_INFO_LOG_LENGTH、GL_SHADER_SOURCE_LENGTHです。

params
:要求されたオブジェクトのパラメータを返します。

△ Back to INDEX

glGetUniformLocation

uniform変数の場所を返します。

GLint glGetUniformLocation(GLuint program, const GLchar *name);

glGetUniformLocationは、プログラムオブジェクト内の指定されたuniform変数の場所を表す整数を返します。

nameは、空白を含まないヌル終端の文字列である必要があります。

nameは構造体ではなく、構造体の配列、またはベクトルや行列のサブコンポーネントで、program内のアクティブなuniform変数名である必要があります。

この関数は、nameprogram内のアクティブなuniform変数と一致しない、またはnameが予約接頭辞『gl_』で始まらない場合、-1を返します。

構造体または構造体の配列であるuniform変数は、構造体の各フィールドにglGetUniformLocationを呼び出すことによって照会することができます。

配列要素演算子『[ ]』と構造体フィールド演算子『.』は、配列内の要素または構造体内のフィールドを選択するためのnameに使用することができます。

これらの演算子を使用した結果は、別の構造体、構造体の配列、またはベクトルや行列のサブコンポーネントに使用することはできません。

nameの最後の部分がuniform変数の配列を示す場合を除き、配列の最初の要素の場所は、配列の名前を使用する、または『[0]』を付けた名前を使用することによって取得することができます。

uniform変数に割り当てられている実際の場所は、プログラムオブジェクトがリンクに成功するまでは不明です。

リンクの実行後、コマンドglGetUniformLocationはuniform変数の場所を取得するために使用することができます。

この場所の値は、uniform変数を設定するためにglUniformに渡したり、uniform変数の現在の値を照会するためにglGetUniformに渡すことができます。

プログラムオブジェクトがリンクに成功した後、uniform変数のインデックス値は、次のリンクコマンドが発行するまで固定されます。

uniform変数の場所と値は、リンクが成功した後でのみ照会することができます。

programがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

programがプログラムオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

programがリンクに成功しなかった場合、GL_INVALID_OPERATIONが発生します。

program
:照会するプログラムオブジェクトを指定します。

name
:場所を照会する、uniform変数の名前を含むヌル終端の文字列へのポインタを指定します。

△ Back to INDEX



●L

glLineWidth

void glLineWidth(GLfloat width);

ラスタライズされるラインの幅を指定します。

glLineWidthは、ラインのラスタライズの幅を指定します。

実際の幅は最も近い整数に丸められて決定されます。
(丸められた結果の値が0の場合、線幅は1とされます。)

x| >= |Δy|の場合、丸められたwidthの値をiとすると、ラスタライズされた各列がiピクセルで埋められます。

サポートされる線幅には範囲があります。

幅1のみサポートが保証されており、それ以外は実装に依存します。

サポートされている幅の範囲を照会するには、引数GL_ALIASED_LINE_WIDTH_RANGEでglGetを呼び出します。

glLineWidthによって指定された線幅は、GL_LINE_WIDTHで照会された場合に常に返されます。

クランプや丸めは指定された値に影響を与えません。

線幅は実装依存の最大値にクランプされる場合があります。

最大幅の決定には、GL_ALIASED_LINE_WIDTH_RANGEでglGetを呼び出してください。

widthが0以下の場合、GL_INVALID_VALUEが発生します。

width
:ラスタライズされるラインの幅を指定します。
初期値は1です。

△ Back to INDEX

glLinkProgram

プログラムオブジェクトをリンクします。

void glLinkProgram(GLuint program);

glLinkProgramはprogramで指定されたプログラムオブジェクトをリンクします。

programにアタッチされたGL_VERTEX_SHADERタイプのシェーダオブジェクトは、プログラマブル頂点プロセッサ上で実行される実行可能オブジェクトの生成に使用します。

programにアタッチされたGL_FRAGMENT_SHADERタイプのシェーダオブジェクトは、プログラマブルフラグメントプロセッサ上で実行される実行可能オブジェクトの生成に使用します。

リンク操作の状態は、プログラムオブジェクトの状態の一部として保存されます。

この値は、プログラムオブジェクトがエラー無しでリンクされ、使用準備ができた場合はGL_TRUEに設定され、それ以外の場合はGL_FALSEになります。

引数にprogramとGL_LINK_STATUSを渡してglGetProgramivを呼び出すことによって、照会することができます。

リンク操作が成功すると、programに属する全てのアクティブなユーザ定義のuniform変数は0に初期化され、プログラムオブジェクトのアクティブなuniform変数はそれぞれglGetUniformLocationを呼び出すことによって照会することができる場所に割り当てられます。

また、汎用頂点属性インデックスにバインドされていない全てのアクティブなユーザ定義のattribute変数は、この一時にバインドされます。

プログラムオブジェクトのリンクは、『OpenGL ES Shading Language Specification』によって指定されたいくつかの理由で失敗することがあります。

リンクエラーが発生するいくつかの条件の一部を以下に示します。
  • 頂点シェーダとフラグメントシェーダが、プログラムオブジェクトに両方とも存在しない。

  • 実装でサポートしているアクティブなattribute変数の数を超えている。

  • uniform変数のストレージ制限を超えている。

  • 実装でサポートしているアクティブなuniform変数の数を超えている。

  • 頂点シェーダまたはフラグメントシェーダの主要関数が欠落している。

  • フラグメントシェーダで実際に使用されている様々な変数が頂点シェーダと同じ方法で宣言されていない(または全てが宣言されていない)。

  • 関数または変数名への参照が未定になっている。

  • 共有グローバルが2つの異なる型で宣言されている、または初期値が異なる。

  • 一つ以上のアタッチされたシェーダオブジェクトが、(glCompileShaderによる)コンパイル、または(glShaderBinaryによる)事前コンパイルされたシェーダバイナリの読み込みに成功していない。

  • 汎用属性行列のバインディングで、行列のいくつかの行がGL_MAX_VERTEX_ATTRIBSの最大許容値を超えている。

  • 十分に連続されていない頂点属性の位置が、属性行列のバインドで結合できていない。
プログラムオブジェクトがリンクに成功した場合、プログラムオブジェクトはglUseProgramを呼び出すことによって現在の状態の一部を作成することができます。

リンク操作の成功/失敗に関わらず、プログラムオブジェクトの情報ログは上書きされます。

情報ログは、glGetProgramInfoLogを呼び出すことによって取得することができます。

リンク操作が成功した場合、glLinkProgramはまた、現在のレンダリング状態の一部として生成された実行可能オブジェクトをインストールし、指定されたプログラムオブジェクトは、glUseProgramを呼び出す前の結果として、既に現在使用されています。

現在使用しているプログラムオブジェクトが再リンクに失敗した場合、リンク状態はGL_FALSEに設定されますが、実行可能オブジェクトと関連する状態は、後続のglUseProgramが呼び出されて使用からそれを削除するまで現在の状態の一部が保持されます

使用から削除された後は、再リンクが成功するまで現在の状態の一部にすることができません。

プログラムオブジェクトの情報ログは更新され、プログラムはリンク操作の時に生成されます。

リンク操作の後、アプリケーションはアタッチされたシェーダオブジェクトの変更、アタッチされたシェーダオブジェクトのコンパイル、シェーダオブジェクトのデタッチ、シェーダオブジェクトの削除、そして追加のシェーダオブジェクトのアタッチを自由に行うことができます。

これらの操作を行っても、情報ログまたはプログラムオブジェクトの一部であるプログラムには影響しません。

リンク操作が失敗した場合、program上の以前のリンク操作についての情報は失います。
(すなわち、失敗したリンクはprogramの古い状態に復元されません)

特定の情報はリンク操作に失敗した後でもprogramから取得することができます。

インスタンスのglGetActiveAttribとglGetActiveUniformを参照してください。

programがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

programがプログラムオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

program
:リンクするプログラムオブジェクトのハンドルを指定します。

△ Back to INDEX



●S

glShaderSource

シェーダオブジェクトのソースコードを置換します。

void glShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length);

シェーダコンパイラをサポートする実装の場合、glShaderSourceはstringによって指定された文字列の配列内にあるソースコードへ、shader内のソースコードを設定します。

シェーダオブジェクト内に格納されていた以前のソースコードは、完全に置換されます。

配列内の文字列数はcountで指定されます。

lengthがNULLの場合、各文字列は各文字列はヌル終端とみなされます。

lengthがNULL以外の値の場合は、stringの対応する要素の、それぞれの文字列長を含む配列へのポインタです。

length配列内の各要素は、対応する文字列の長さ(ヌル文字は文字列長の一部としてカウントしない)、または文字列がヌル終端であることを示す0未満の値が含まれています。

この時ソースコードの文字列は検査や構文解析はされず、単純に指定されたシェーダオブジェクトへコピーされます。

シェーダコンパイラのサポートはオプションであり、したがって引数GL_SHADER_COMPILERでglGetを呼び出すことによって事前に照会する必要があります。

glShaderSourceglCompileShader、glGetShaderPrecisionFormat、そしてglReleaseShaderCompilerは、シェーダコンパイラをサポートしない実装上ではGL_INVALID_OPERATIONを発生させます。

このような実装の代わりに、事前にコンパイルされたシェーダバイナリを供給するための代替として、glShaderBinaryが提供されています。

OpenGLはglShaderSourceが呼び出された時にシェーダソースコード文字列をコピーするので、アプリケーションは関数が戻って来た直後にソースコード文字列のコピーを解放することができます。

シェーダコンパイラがサポートされていない場合、GL_INVALID_OPERATIONが発生します。

shaderがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

shaderがシェーダオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

countが0未満の場合、GL_INVALID_VALUEが発生します。

shader
:ソースコードを置換する場合、シェーダオブジェクトのハンドルを指定します。

count
stringlength配列内の要素数を指定します。

string
:シェーダに読み込まれるソースコードを含む文字列へのポインタの配列を指定します。

length
:文字列長の配列を指定します。

△ Back to INDEX



●T

glTexImage2D

void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * data);

二次元テクスチャ画像を指定します。

テクスチャリングは、テクスチャリングがアクティブになっている各グラフィカルプリミティブ上に、指定されたテクスチャ画像の一部をマッピングします。

現在のフラグメントシェーダまたは頂点シェーダが組込みのテクスチャ参照関数を使用する際に、テクスチャリングがアクティブになります。

テクスチャ画像を定義するには、glTexImage2Dを呼び出します。

引数は、高さ、幅、詳細レベル数(glTexParameter参照)、そしてフォーマットなどのテクスチャ画像のパラメータを表します。

最後の3つの引数は、画像のメモリ内での表現について表します。

データはtypeに応じて符号無しbyteまたはshortのシーケンスとしてdataから読み込まれます。

typeがGL_UNSIGNED_BYTEの場合、各byteはformatに応じて1つの色要素として解釈されます。

typeがGL_UNSIGNED_SHORT_5_6_5、GL_UNSIGNED_SHORT_4_4_4_4、GL_UNSIGNED_SHORT_5_5_5_1のいずれかの場合、各符号無しshort値は決められたformatに従って、色要素は単一のテクセルの全ての要素を含むとして解釈されます。

要素のグループはテクセルと呼ばれます。

width × heightテクセルはメモリから読み込まれ、dataの位置から始まります。

デフォルトでは、全てのwidthテクセルが読み込まれた後以外、読み込むポインタは次の4バイト先に進み、テクセルは隣接したメモリ位置から取得されます。

4バイト行のアライメントは引数GL_UNPACK_ALIGNMENTでglPixelStoreiによって指定され、1、2、4、8バイトに設定することができます。

最初の要素はテクスチャ画像の左下角に対応します。

以降の要素はテクスチャ画像の最下行内のテクセルを左から右へ進み、その後テクスチャ画像の上の行に続きます。

最後の要素はテクスチャ画像の右上角に対応します。

formatdata内の各要素の構成を決定します。

以下のシンボリック値のいずれかを設定できます。

GL_ALPHA
各要素は単一のアルファ成分です。
GLは浮動小数点に変換し、赤、緑、青用に0を付加することによってRGBA要素に組み込みます。
各成分は[0, 1]の範囲にクランプされます。

GL_RGB
各要素はRGBの3つです。
GLは固定小数点または浮動小数点に変換し、アルファ用に1を付加することによってRGBA要素に組み込みます。
各成分は[0, 1]の範囲にクランプされます。

GL_RGBA
各要素は4つ全ての成分が含まれます。
GLは浮動小数点に変換し、各成分は[0, 1]の範囲にクランプされます。

GL_LUMINANCE
各要素は単一の輝度値です。
GLは浮動小数点に変換し、アルファ用に1を付加し、赤、緑、青用に3回輝度値を複製することによってRGBA要素に組み込みます。
各成分は[0, 1]の範囲にクランプされます。

GL_LUMINANCE_ALPHA

各要素は輝度/アルファのペアです。
GLは浮動小数点に変換し、赤、緑、青用に3回輝度値を複製することによってRGBA要素に組み込みます。
各成分は[0, 1]の範囲にクランプされます。

色要素はtypeに基づいて浮動小数点に変換されます。

typeがGL_UNSIGNED_BYTEの場合、各要素は28 - 1で除算されます。

typeがGL_UNSIGNED_SHORT_5_6_5、GL_UNSIGNED_SHORT_4_4_4_4、またはGL_UNSIGNED_SHORT_5_5_5_1の場合、ビットフィールド内のビット数をNとすると各要素は2N-1で除算されます。

internalformatformatと一致する必要があります。

フォーマット間の変換は、テクスチャ画像の処理中はサポートされていません。

typeはどの程度の精密さを望むかを指定するヒントとして使用できますが、GLの実装ではテクスチャ配列に格納されている任意の解像度のものを選択することができます。

dataはNULLポインタにすることができます。

この場合テクスチャメモリはwidth幅とheight高さのテクスチャを格納するために割り当てられます。

その後、このテクスチャメモリを初期化するサブテクスチャをダウンロードすることができます。

ユーザがプリミティブにテクスチャ画像の初期化されていない部分を適用しようとした場合、この画像は未定義です。

glTexImage2Dは、glActiveTextureで指定された現在のテクスチャユニットのための二次元テクスチャまたはキューブマップテクスチャを指定します。

targetがGL_TEXTURE_2D、GL_TEXTURE_CUBE_MAP_POSITIVE_X、GL_TEXTURE_CUBE_MAP_NEGATIVE_X、GL_TEXTURE_CUBE_MAP_POSITIVE_Y、GL_TEXTURE_CUBE_MAP_NEGATIVE_Y、GL_TEXTURE_CUBE_MAP_POSITIVE_Z、またはGL_TEXTURE_CUBE_MAP_NEGATIVE_Zでない場合、GL_INVALID_ENUM が発生します。

formatまたはtypeが有効な定数でない場合、GL_INVALID_ENUMが発生します。

targetが6つのキューブマップ2D画像ターゲットの1つで、幅と高さのパラメータが同じでない場合、GL_INVALID_VALURが発生します。

levelが0より小さい場合、GL_INVALID_VALUEが発生します。

targetがGL_TEXTURE_2Dでない時のGL_MAX_CUBE_MAP_TEXTURE_SIZE、またはtargetがGL_TEXTURE_2Dの時のGL_MAX_TEXTURE_SIZEが返す値をmaxとした時に、levelがlog2(max)より大きい場合、GL_INVALID_VALUEが発生します。

internalformatが有効な定数でない場合、GL_INVALID_VALUEが発生します。

widthまたはheightが0より小さい、あるいはtargetがGL_TEXTURE_2Dの時のGL_MAX_TEXTURE_SIZEまたはtargetがGL_TEXTURE_2Dではない時のGL_MAX_CUBE_MAP_TEXTURE_SIZEより大きい場合、GL_INVALID_VALUEが発生します。

borderが0でない場合、GL_INVALID_VALUEが発生します。

internalformatformatが一致しない場合、GL_INVALID_OPERATIONが発生します。

typeがGL_UNSIGNED_SHORT_5_6_5で、formatがGL_RGBでない場合、GL_INVALID_OPERATIONが発生します。

typeがGL_UNSIGNED_SHORT_4_4_4_4またはGL_UNSIGNED_SHORT_5_5_5_1で、formatがGL_RGBAでない場合、GL_INVALID_OPERATIONが発生します。

target
:アクティブなテクスチャユニットのターゲットテクスチャを指定します。
GL_TEXTURE_2D、GL_TEXTURE_CUBE_MAP_POSITIVE_X、GL_TEXTURE_CUBE_MAP_NEGATIVE_X、GL_TEXTURE_CUBE_MAP_POSITIVE_Y、GL_TEXTURE_CUBE_MAP_NEGATIVE_Y、GL_TEXTURE_CUBE_MAP_POSITIVE_Z、またはGL_TEXTURE_CUBE_MAP_NEGATIVE_Zである必要があります。

level
:詳細レベル番号を指定します。
レベル0は基準画像レベルです。
レベルnn番目のミップマップ縮小画像です。

internalformat
:テクスチャの内部フォーマットを指定します。
GL_ALPHA、GL_LUMINANCE、GL_LUMINANCE_ALPHA、GL_RGB、GL_RGBAのシンボリック定数のいずれかである必要があります。

width
:テクスチャ画像の幅を指定します。
全ての実装で、少なくとも幅64テクセルのテクスチャ画像と、少なくとも幅16テクセルのキューブマップのテクスチャ画像をサポートします。

height
:テクスチャ画像の高さを指定します。
全ての実装で、少なくとも高さ64テクセルのテクスチャ画像と、少なくとも16テクセルのキューブマップのテクスチャ画像をサポートします。

border
:境界線の幅を指定します。
この値は0にする必要があります。

format
:テクセルデータのフォーマットを指定します。
この値はinternalformatと同じにする必要があります。
GL_ALPHA、GL_RGB、GL_RGBA、GL_LUMINANCE、そしてGL_LUMINANCE_ALPHAのシンボリック値が有効です。

type
:テクセルデータのデータ型を指定します。
GL_UNSIGNED_BYTE、GL_UNSIGNED_SHORT_5_6_5、GL_UNSIGNED_SHORT_4_4_4_4、そしてGL_UNSIGNED_SHORT_5_5_5_1のシンボリック値が有効です。

data:メモリ内の画像データへのポインタを指定します。

△ Back to INDEX

glTexParameter


void glTexParameterf(GLenum target, GLenum pname, GLfloat param);

void glTexParameteri(GLenum target, GLenum pname, GLint param);

void glTexParameterx(GLenum target, GLenum pname, GLfixed param);

target
:ターゲットのテクスチャを指定します。
GL_TEXTURE_2Dである必要があります。

pname
:単一の値のテクスチャパラメータのシンボリック名を指定します。
GL_TEXTURE_MIN_FILTER、GL_TEXTURE_MAG_FILTER、GL_TEXTURE_WRAP_S、GL_TEXTURE_WRAP_T、またはGL_GENERATE_MIPMAPのいずれかを指定することができます。

param
pnameの値を指定します。

void glTexParameterfv(GLenum target, GLenum pname, GLfloat * params);

void glTexParameteriv(GLenum target, GLenum pname, GLint * params);

void glTexParameterxv(GLenum target, GLenum pname, GLfixed * params);

target:ターゲットのテクスチャを指定します。
GL_TEXTURE_2Dである必要があります。

pname
:テクスチャパラメータのシンボリック名を指定します。
GL_TEXTURE_MIN_FILTER、GL_TEXTURE_MAG_FILTER、GL_TEXTURE_WRAP_S、GL_TEXTURE_WRAP_T、またはGL_GENERATE_MIPMAPのいずれかを指定することができます。

params
:格納されているpnameの値、または値が格納されている配列へのポインタを指定します。

テクスチャパラメータを設定します。

テクスチャマッピングは、オブジェクトの表面に画像をデカールまたはセロハン包装のように、オブジェクトの表面に画像を適用するテクニックです。

画像は(s, t)座標系のテクスチャ空間に生成されます。

テクスチャは一次元または二次元の画像と、どのようにサンプルを画像から得るかを決定するパラメータとのセットです。

glTexParameterはpnameとして指定されたテクスチャパラメータに、paramまたはparams内の値を割り当てます。

targetはターゲットテクスチャを定義し、GL_TEXTURE_2Dである必要があります。

以下に有効なpnameのシンボルを示します。

  • GL_TEXTURE_MIN_FILTER

    テクスチャ縮小関数は、一つのテクスチャ要素より大きい領域にテクスチャマッピングする度に使用されます。
    6つの縮小関数が定義されています。
    その内2つはテクスチャの値を計算するために、最も近い1つまたは4つのテクスチャ要素を使用します。
    残りの4つはミップマップを使用します。

    ミップマップは、同じ画像を徐々に低解像度で表した配列を順番に並べたセットです。
    テクスチャが2n × 2mの大きさの場合、max(n, m) + 1のミップマップを持ちます。
    最初のミップマップは元となるテクスチャで、2n × 2mの大きさです。
    以前のミップマップを2k × 2lとすると、k = 0またはl = 0のどちらかになるまで、以降の各ミップマップは2k-1 × 2l-1の大きさになります。
    その時点で、以降のミップマップは1 × 2l-1または2k-1 × 1の大きさになりますが、最終的にミップマップは1 × 1の大きさを持ちます。
    ミップマップを定義するには、ミップマップの順番を示すlevel引数でglTexImage2DまたはglCopyTexImage2Dを呼び出します。
    レベル0は元になるテクスチャです。
    レベルmax(n, m)は最終的に1 × 1のミップマップになります。

    paramは、以下のいずれかをテクスチャを縮小するための関数を提供します。

    • GL_NEAREST
      テクスチャが存在するピクセルの中央に(マンハッタン距離で)最も近いテクスチャ要素の値を返します。

    • GL_LINEAR
      テクスチャが存在するピクセルの中央に最も近い4つのテクスチャ要素の加重平均を返します。
      これらはGL_TEXTURE_WRAP_SとGL_TEXTURE_WRAP_Tの値に応じて正確なマッピングで、繰り返しまたはラッピングされた要素を含めることができます。

    • GL_NEAREST_MIPMAP_NEAREST
      テクスチャが存在するピクセルのサイズと一致する最も密接なミップマップを選択し、GL_NEARESTの基準(ピクセルの中央に最も近いテクスチャ要素)を使用して、テクスチャ値を生成します。

    • GL_LINEAR_MIPMAP_NEAREST
      テクスチャが存在するピクセルのサイズと一致する最も密接なミップマップを選択し、GL_LINEARの基準(ピクセルの中央に最も近い4つのテクスチャ要素の加重平均)を使用して、テクスチャ値を生成します。

    • GL_NEAREST_MIPMAP_LINEAR
      テクスチャが存在するピクセルのサイズと一致する最も密接な2つのミップマップを選択し、GL_NEARESTの基準(ピクセルの中央に最も近いテクスチャ要素)を使用して、各ミップマップからテクスチャ値を生成します。
      最終的なテクスチャ値は、これら2つの値の加重平均です。

    • GL_LINEAR_MIPMAP_LINEAR
      テクスチャが存在するピクセルのサイズ一致する最も密接な2つのミップマップを選択し、GL_LINEARの基準(ピクセルの中央に最も近い4つのテクスチャ要素の加重平均)を使用して、各ミップマップからテクスチャ値を生成します。
      最終的なテクスチャ値は、これら2つの値の加重平均です。

      縮小過程でより多くのテクスチャ要素がサンプリングされると、エイリアシングがより少なくなり結果がはっきり見えるようになります。
      縮小関数のGL_NEARESTとGL_LINEARは他の4つよりも高速ですが、レンダリングされるピクセルのテクスチャ値が1つまたは4つの要素のみのサンプリングで決定されるため、モアレパターンや不規則な遷移を生成することになります。

    GL_TEXTURE_MIN_FILTERの初期値はGL_NEAREST_MIPMAP_LINEARです。

  • GL_TEXTURE_MAG_FILTER

    テクスチャ拡大関数は、一つのテクスチャ要素と同じ、またはより小さい領域にテクスチャマッピングする時に使用されます。
    テクスチャ拡大関数は、後述するGL_NEARESTまたはGL_LINEARのどちらかに設定します。
    GL_NEARESTは一般的にGL_LINEARより高速ですが、テクスチャ要素間が滑らかではないので、急な境界を持つテクスチャ画像が生成されます。

    • GL_NEAREST
      テクスチャが存在するピクセルの中央に(マンハッタン距離で)最も近いテクスチャ要素の値を返します。

    • GL_LINEAR
      テクスチャが存在するピクセルの中央に最も近い4つのテクスチャ要素の加重平均を返します。
      これらはGL_TEXTURE_WRAP_SとGL_TEXTURE_WRAP_Tの値に応じて正確なマッピングで、繰り返しまたはラッピングされた要素を含めることができます。

    GL_TEXTURE_MAG_FILTERの初期値はGL_LINEARです。

  • GL_TEXTURE_WRAP_S

    テクスチャ座標sのラップパラメータを、GL_CLAMP_TO_EDGEまたはGL_REPEATのどちらかに設定します。

    • GL_CLAMP_TO_EDGE
      s座標範囲で[(1/2N), 1-(1/2N)]にクランプします。
      Nはクランプする方向にあるテクスチャのサイズです。

    • GL_REPEAT
      s座標の整数部分は無視され、GLは端数部分のみを使用して、繰り返しパターンを生成します。

    GL_TEXTURE_WRAP_Sの初期値はGL_REPEATです。

  • GL_TEXTURE_WRAP_T

    テクスチャ座標tのラップパラメータを、GL_CLAMP_TO_EDGEまたはGL_REPEATのどちらかに設定します。
    内容はGL_TEXTURE_WRAP_S以下の説明を参照してください。

    GL_TEXTURE_WRAP_Tの初期値はGL_REPEATです。

  • GL_GENERATE_MIPMAP

    ミップマップ生成のパラメータを自動的に設定します。
    GL_TRUEが設定されている場合、ミップマップのlevelbase配列の内部テクセルが変更されると、変更されたlevelbase配列から誘導されたミップ マップ配列の完全なセットを計算します。
    配列のレベルlevelbase + 1pは、以前のコンテンツに関係無く誘導された配列に置換されます。
    levelbase配列を含む他の全てのミップマップ配列は、この計算によって変更されません。

    GL_GENERATE_MIPMAPの初期値はGL_FALSEです。

プログラムは(引数GL_TEXTURE_2DでglEnableを呼び出すことによって)テクスチャを有効にしている場合、ミップマップを必要とする関数のいずれかにGL_TEXTURE_MIN_FILTERが設定されていると仮定します。

(事前のglTexImage2DまたはglCopyTexImage2Dの呼び出しで)現在定義されているテクスチャ画像の大きさが(前述の)ミップマップ用の適切な順序に従っていない、または必要数よりも定義されたテクスチャ画像が少ない、あるいはテクスチャ要素の番号がテクスチャ画像のセットと異なる場合、テクスチャマッピングは無効となります。

リニアフィルタリングは、4つの最も近いテクスチャ要素にアクセスします。

glTexParameterはアクティブなテクスチャユニット用のテクスチャパラメータを指定し、glActiveTextureを呼び出すことによって指定されます。

targetまたはpnameが定義された有効な値でない場合、GL_INVALID_ENUMが発生します。

pnameの値を基にして)定義された定数値である必要があるparamがそうでない場合、GL_INVALID_ENUMが発生します。

△ Back to INDEX



●U

glUniform

現在のプログラムオブジェクトのuniform変数の値を指定します。

void glUniform1f(GLint location, GLfloat v0);

void glUniform2f(GLint location, GLfloat v0, GLfloat v1);

void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);

void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);

void glUniform1i(GLint location, GLint v0);

void glUniform2i(GLint location, GLint v0, GLint v1);

void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);

void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);

location
:変更するuniform変数の場所を指定します。

v0
v1v2v3:指定されたuniform変数に使用する新しい値を指定します。

void glUniform1fv(GLint location, GLsizei count, const GLfloat *value);

void glUniform2fv(GLint location, GLsizei count, const GLfloat *value);

void glUniform3fv(GLint location, GLsizei count, const GLfloat *value);

void glUniform4fv(GLint location, GLsizei count, const GLfloat *value);

void glUniform1iv(GLint location, GLsizei count, const GLint *value);

void glUniform2iv(GLint location, GLsizei count, const GLint *value);

void glUniform3iv(GLint location, GLsizei count, const GLint *value);

void glUniform4iv(GLint location, GLsizei count, const GLint *value);

location
:変更するuniform値の場所を指定します。

count
:変更する要素数を指定します。
対象となるuniform変数が配列でない場合は1、配列の場合は1以上である必要があります。

value
:指定されたuniform変数を更新するために使用される、count値の配列のポインタを指定します。

void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);

void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);

void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);

location
:変更するuniform値の場所を指定します。

count
:変更される行列数を指定します。
対象となるuniform値が行列の配列でない場合は1、行列の配列の場合は1以上である必要があります。

transpose
:uniform変数に読み込む値として、行列を変換するかどうかを指定します。
GL_FALSEにする必要があります。

value
:指定されたuniform値の更新に使用される、count値の配列のポインタを指定します。

glUniformは、uniform変数またはuniform変数配列の値を変更します。

変更するuniform変数の場所はlocationによって指定され、glGetUniformLocationによって返された値である必要があります。

glUniformは、glUseProgramを呼び出すことによって現在の状態の一部に作成されたプログラムオブジェクト上で操作されます。

コマンドglUniform{1|2|3|4}{f|i}は、引数として渡された値を使用して、locationによって指定されたuniform変数の値を変更するために使用されます。

コマンドで指定された数は、指定されたuniform変数(例えば、float、int、boolの場合は1。vec2、ivec2、bvec2の場合は2など)のデータ型の要素数と一致する必要があります。

接尾辞fは浮動小数点値が渡されることを示し、接尾辞iは整数値が渡されることを示し、この型は指定されたuniform変数のデータ型を一致する必要があります。

この関数のiの変形は、int、ivec2、ivec3、ivec4またはこれらの配列として定義されたuniform変数の値の提供に使用する必要があります。

fの変形は、float、vec2、vec3、vec4、またはこれらの配列の型のuniform変数の値の提供に使用する必要があります。

iまたはfの変形のいずれかが、bool、bvec2、bvec2、bvec4、またはこれらの配列の型のuniform変数の値の提供に使用されることがあります。

uniform変数は、入力値が0または0.0fの場合はfalseに設定され、それ以外の場合はtrueに設定されます。

プログラムオブジェクト内で定義されている全てのアクティブなuniform変数は、プログラムオブジェクトがリンクに成功している場合に0で初期化されています。

これらが再び0に初期化されている場合、次の成功したリンク操作がプログラムオブジェクト上で発生するまで、glUniformの呼び出しによってそれらに関連付けられた値は保持されます。

コマンドglUniform{1|2|3|4}{f|i}vは、単一のuniform変数またはuniform変数配列を変更するために使用されます。

これらのコマンドは、uniform変数またはuniform変数配列に読み込まれる値をカウントし、ポインタを渡します。

単一のuniform値の値を変更する場合は1のカウントを使用する必要があり、配列全体または配列の一部を変更する場合は1以上のカウントを使用することができます。

uniform変数配列内の任意の位置mから始まるn個の要素を読み込む場合、配列内の要素m + n -1は新しい値で置換されます。

m + n -1がuniform変数配列のサイズより大きい場合、配列の終端を超える全ての配列要素の値は無視されます。

コマンドの名前で指定された数はvalue内の各要素の成分数を示し、指定されたuniform変数(例えば、float、int、boolの場合は1、vec2、ivec2、bvec2の場合は2など)のデータ型の成分数と一致する必要があります。

コマンドの名前で指定されたデータ型は、glUniform{1|2|3|4}{f|i}のため、前述のように指定されたuniform変数のデータ型と一致する必要があります。

uniform変数配列の場合、配列の各要素はコマンドの名前で示される型であるとみなされます。
(例えば、glUniform3fまたはglUniform3fvは、vec3型のuniform変数配列の読み込みに使用することができます)

変更するuniform変数配列の要素数は、countで指定します。

コマンドglUniformMatrix{2|3|4}fvは、行列または行列の配列の変更に使用します。

コマンド名の数は行列の次元として解釈されます。

数2は2×2行列(すなわち4つの値)、数3は3×3行列(すなわち9つの値)、数4は4×4行列(すなわち16個の値)を示します。

各行列は列優先の順序で指定されていると仮定しています。

引数countは渡される行列の数を示します。

単一の行列の値を変更する場合は1のカウントを使用する必要があり、行列の配列の変更する場合は1以上のカウントを使用することができます。

glUniform1iとglUniform1ivは、サンプラータイプとして定義されているuniform変数の読み込みに使用することができる唯2つの関数です。

他の関数とサンプラーを読み込むと、GL_INVALID_OPERATIONエラーが発生します。

countが1より大きく、uniform変数が配列を示していない場合、GL_INVALID_OPERATIONエラーが発生し、指定されたuniform変数は変更されません。

前述の例外を除き、シェーダで定義されているuniform変数の型とサイズが、その値の読み込み使用されているコマンドの名前で指定された型とサイズに一致しない場合、GL_INVALID_OPERATIONエラーが発生し、指定されたuniform変数は変更されません。

locationが-1以外の値で、現在のプログラムオブジェクトで有効なuniform変数の場所を表していない場合、エラーが発生し、現在のプログラムオブジェクトのuniform変数のストレージは変更されません。

locationが-1の場合、渡されたデータは無視され、指定されたuniform変数は変更されません。

現在のプログラムオブジェクトが存在しない場合は、GL_INVALID_OPERATIONが発生します。

シェーダで宣言されたuniform変数がglUniformコマンドによって示されているサイズと一致しない場合、GL_INVALID_OPERATIONが発生します。

この関数の整数の変形の一つが、型float、vec2、vec3、vec4、またはこれらの配列のuniform変数の読み込みに使用された場合、あるいはこの関数の浮動小数点の変形の一つが、型int、ivec2、ivec3、ivec4、またはそれらの配列のuniform変数の読み込みに使用された場合は、GL_INVALID_OPERATIONが発生します。

locationが現在のプログラムオブジェクトの無効なuniformの場所で、locationが-1で無い場合、GL_INVALID_OPERATIONが発生します。

countが0未満の場合、GL_INVALID_VALUEが発生します。

transposeがGL_FALSEでない場合、GL_INVALID_VALUEが発生します。

countが1より大きく、示されているunifoem変数が配列変数でない場合、GL_INVALID_OPERATIONが発生します。

サンプラーがglUniform1iとglUniform1iv以外のコマンドを使用して読み込まれた場合、GL_INVALID_OPERATIONが発生します。

△ Back to INDEX

glUseProgram

void glUseProgram(GLuint program);

現在のレンダリング状態の一部としてプログラムをインストールします。

glUseProgramは、現在のレンダリング状態の一部として、programで指定されたプログラムオブジェクトをインストールします。

プログラムオブジェクト内には、glAttachShaderでアタッチに成功したシェーダオブジェクト、glCompileShaderでコンパイルに成功したシェーダオブジェクト、そしてglLinkProgramでリンクに成功したプログラムオブジェクトが一つ以上実行可能オブジェクトが生成されています。

プログラムオブジェクトには、全てコンパイルとリンクに成功した一つ以上のGL_VERTEX_SHADERタイプのシェーダオブジェクトと、一つ以上のGL_FRAGMENT_SHADERタイプのシェーダオブジェクトが含まれている場合、頂点とフラグメントのプロセッサ上で実行される、実行可能なものが含まれています。

プログラムオブジェクトを使用している間、アプリケーションはアタッチされたシェーダオブジェクトの変更、アタッチされたシェーダオブジェクトのコンパイル、追加のシェーダオブジェクトをアタッチ、そしてシェーダオブジェクトのデタッチや削除を自由に行うことができます。

これらの操作を行っても、現在の状態の一部である実行可能オブジェクトには影響しません。

ただし、現在使用されているプログラムオブジェクトを再リンクすると、リンクの操作が成功した場合、現在のレンダリング状態の一部としてプログラムオブジェクトがインストールされます。
glLinkProgram参照)

現在使用中のプログラムオブジェクトが再リンクに失敗した場合、リンクのステータスがGL_FALSEに設定されますが、実行可能オブジェクトと関連する状態はglUseProgramが以降呼び出されて使用からそれを削除するまで現在の状態の一部のままになります。

使用から削除された後は、再リンクが成功するまで現在の状態の一部にすることができません。

programが0の場合、現在のレンダリング状態は無効なプログラムオブジェクトを参照しており、全てのglDrawArraysまたはglDrawElementsコマンドによる頂点とフラグメントシェーダの実行結果は未定義になります。

テクスチャオブジェクトやバッファオブジェクトと同様に、プログラムオブジェクトの名前空間はコンテキストのセット間で共有されることがあり、その場合コンテキストのサーバ側と同じアドレス空間を共有します。

名前空間がコンテキスト間で共有されている場合、全てのアタッチされているオブジェクトとそれらのアタッチされているオブジェクトに関連するデータも、同様に共有されます。

アプリケーションは、オブジェクトが異なる実行スレッドからアクセスする場合に、APIの呼び出し間での同期を提供する責任があります。

programが0またはOpenGLによって生成された値でもない場合、GL_INVALID_VALUEが発生します。

programがプログラムオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

programが現在の状態の一部を作成できなかった場合、GL_INVALID_OPERATIONが発生します。

program:現在のレンダリング状態の一部として使用される、実行可能なプログラムオブジェクトの名前を指定します。

△ Back to INDEX



●V

glValidateProgram

プログラムオブジェクトを検証します。

void glValidateProgram(GLuint program);

glValidateProgramは、program内に含まれている実行可能オブジェクトが、与えられた現在のOpenGLの状態で実行できるかどうかをチェックします。

検証工程によって生成された情報は、programの情報ログ内に格納されます。

検証情報は、空の文字列、または現在のOpenGLの状態の残りと現在のプログラムオブジェクトがどのように相互作用するかに関する情報が含まれた文字列の場合があります。

これは、現在のプログラムの非効率、次善策、実行の失敗などについての原因に関する詳細な情報を伝える、OpenGLの実装方法を提供します。

検証操作の状態は、プログラムオブジェクトの状態の一部として格納されます。

この値は、検証に成功した場合はGL_TRUE、それ以外の場合はGL_FALSEに設定されます。

これは引数programとGL_VALIDATE_STATUSでglGetProgramivを呼び出すことによって、照会することができます。

検証が成功した場合、programは与えられた現在の状態で実行されることが保証されます。

それ以外の場合、programは実行を保証しません。

この関数は、通常アプリケーション開発工程中のみ有効です。

情報ログ内に格納されている情報文字列は完全に実装依存なため、アプリケーションが同一の情報文字列を生成するために、異なるOpenGLの実装を期待してないでください。

この関数は、プログラマブルシェーダが現在の状態の一部である間にレンダリングコマンドが発行された時、OpenGLの実装が実行する必要がある検証操作を模倣しています。

現在のプログラムオブジェクト内の2つのアクティブなサンプラーが異なるタイプでありながら、同じテクスチャ画像ユニットを参照している場合、glDrawArraysまたはglDrawElementsによってエラーGL_INVALID_OPERATIONが発生します。

レンダリングコマンドが発行された時に、アプリケーションがこれらのエラーを捕捉することは困難であるか、またはパフォーマンス低下の原因となります。

したがって、アプリケーション開発中にこれらの問題を発見するために、glValidateProgramを呼び出すことを勧めます。

programがOpenGLによって生成された値でない場合、GL_INVALID_VALUEが発生します。

programがプログラムオブジェクトでない場合、GL_INVALID_OPERATIONが発生します。

program
:検証するプログラムオブジェクトのハンドルを指定します。

△ Back to INDEX

glVertexAttribPointer

汎用頂点属性データの配列を定義します。

void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer);

glVertexAttribPointerは、レンダリング時に使用するインデックスindexにある汎用頂点属性の配列の、場所とデータフォーマットを指定します。

sizeは属性ごとの要素数を指定し、1、2、3、または4である必要があります。

typeは各要素のデータ型を指定し、strideはある属性から次の属性へのバイトストライドを指定しており、頂点と属性を単一の配列内にまとめたり、別々の配列に格納することができます。

GL_TRUEが設定されている場合、normalizedは[-1, 1](符号有り値の場合)または[0, 1](符号無し値の場合)の範囲にマップされた整数フォーマット内に格納された値を示し、アクセス時に浮動小数点に変換されます。

それ以外の場合、値は正規化されず、直接浮動小数点に変換されます。

汎用頂点属性配列が指定されている間、非ゼロで名付けられたバッファオブジェクトがGL_ARRAY_BUFFERターゲット(glBindBuffer参照)にバインドされている場合、pointerはバッファオブジェクトのデータストアへのバイトオフセットとしてみなされます。

また、バッファオブジェクトのバインディング(GL_ARRAY_BUFFER_BINDING)は、インデックスindexのための汎用頂点属性配列のクライアント側の状態(GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)として保存されます。

汎用頂点属性配列が指定されている場合、sizetypenormalizedstride、そしてpointerはクライアント側の状態として保存され、現在の頂点配列のバッファオブジェクトのバインディングに追加されます。

汎用頂点属性配列の有効/無効には、indexglEnableVertexAttribArrayやglDisableVertexAttribArrayを呼び出します。

有効にした場合、glDrawArraysやglDrawElementsが呼び出された時に、汎用頂点属性配列が使用されます。

各汎用頂点属性配列は初期状態で無効であり、glDrawElementsやglDrawArraysが呼び出された時にアクセスすることができません。

glVertexAttribPointerは、通常クライアント側に実装されます。

typeが有効な値でない場合、GL_INVALID_ENUMが発生します。

indexがGL_MAX_VERTEX_ATTRIBS以上の場合、GL_INVALID_VALUEが発生します。

sizeが1、2、3、または4でない場合、GL_INVALID_VALUEが発生します。

strideが負の場合、GL_INVALID_VALUEが発生します。

index
:変更する汎用頂点属性のインデックスを指定します。

size
:汎用頂点属性ごとの要素数を指定します。
1、2、3、または4である必要があります。
初期値は4です。

type
:配列内の各要素のデータ型を指定します。
シンボリック定数はGL_BYTE、GL_UNSIGNED_BYTE、GL_SHORT、GL_UNSIGNED_SHORT、GL_FIXED、GL_FLOATが使用できます。
初期値はGL_FLOATです。

normalized
:アクセス時に、固定小数点データ値が正規化されたもの(GL_TRUE)か固定小数点値として直接変換されたものか(GL_FALSE)を指定します。

stride
:連続した汎用頂点属性間のバイトオフセットを指定します。
strideが0の場合、汎用頂点属性は配列内で隙間無く格納されていると解釈されます。
初期値は0です。

pointer
:配列内の最初の汎用頂点属性の最初の要素へのポインタを指定します。
初期値は0です。

△ Back to INDEX

glViewport


void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);

ビューポートを設定します。

glViewportは、正規化デバイス座標系からウィンドウ座標系へと、xyのアフィン変換を指定します。

(xnd, ynd)を正規化デバイス座標系とすると、ウィンドウ座標系(xw, yw)は以下のように計算されます。

xw
= (xnd + 1) * (width / 2) + x

yw
= (ynd + 1) * (height / 2) + y

ビューポートの幅と高さは、実装に依存する範囲に暗黙的に固定されます。

この範囲の照会には、引数GL_MAX_VIEWPORT_DIMSでglGetを呼び出してください。

width
またはheightが負の場合、GL_INVALID_VALUEが発生します。

x
y:ビューポート矩形の左下角をピクセル単位で指定します。

初期値は(0, 0)です。

width
height:ビューポートの幅と高さを指定します。

GLコンテキストがウィンドウに最初にアタッチされている場合、widthheightはそのウィンドウの寸法に設定されます。

△ Back to INDEX



参考文献

OpenGL ES 2.0 Reference Pages

Wikipedia/マンハッタン距離

X Window System リファレンス/jman/GLGET

テン*シー*シー/iPhoneアプリ開発、その(100) ようやく終息OpenGL ESセットアップ

WisdomSoft/OpenGL入門/テクスチャ






Bose SoundSport wireless headphones
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
02 | 2017/03 | 03
Sun Mon Tue Wed Thu Fri Sat
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
Recent Articles
iTunes


Swift
Categories
Tips
WACOM


Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
BOSE

Bose SoundSport wireless headphones
ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
SQLite
OpenGL ES
Amazon


Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Profile

Author:水月杏香
永遠の初心者プログラマ。

QR Code
QR
Visitors