- OpenGL 3.0 2008年8月11日にリリース
OpenGL 3.0 で フル 3.0 コンテキストを使用する場合は完全上位互換です。
(OpenGL 1.0 から OpenGL 2.1 までの全ての機能を含みます。)
前方互換コンテキストを使用する場合は、推奨されない機能(OpenGL 2.1 までの機能の多く)がサポートされずエラーが発生します。
前方互換コンテキストをサポートする場合、
拡張機能の
WGL_ARB_create_context等を用いることで前方互換コンテキストを使用することができます。
次の機能拡張が実装されました。
次の機能が非推奨となりました。(将来、削除される予定です。)
- Application-generated object names
buffer, query, texture objects は glGen* で作成しなければなりません。
glGen* で返された値でないものを使用すると INVALID OPERATION が発生します。
- Color index mode [OpenGL ES 相当]
カラーインデックスモードは推奨されません。
- OpenGL Shading Language versions 1.10 and 1.20
GLSL 1.10, 1.20 は推奨されません。これらは推奨しない API に依存するためです。
GLSL 1.30 以降を使用してください。
- Begin / End primitive specification [OpenGL ES 相当]
glBegin/glEnd でプリミティブを定義するのは推奨されません。
属性配列を使用してください。
しかしながら、glVertexAttrib*と現在の頂点属性は、属性配列に省略時の値を提供するために保有されます。
- Edge flags and fixed-function vertex processing [OpenGL ES 2.0 相当]
glColorPointer, glEdgeFlagPointer, glFogCoordPointer, glIndexPointer,
glNormalPointer, glSecondaryColorPointer, glTexCoordPointer,
glVertexPointer, glEnableClientState, glDisableClientState,
glClientActiveTexture は推奨されません。
属性配列に置き換わっているものは属性配列を使用してください。
glFrustum, glLoadIdentity, glLoadMatrix,
glLoadTransposeMatrix, glMatrixMode, glMultMatrix, glMultTransposeMatrix,
glOrtho, glPopMatrix, glPushMatrix, glRotate,
glScale, glTranslate は推奨されません。
シェーダで同等の処理を行って下さい。
glEnable/glDisable による GL_RESCALE_NORMAL, GL_NORMALIZE の有効化/無効化処理は推奨されません。
シェーダで同等の処理を行って下さい。
テクスチャ座標の自動生成機能 glTexGen* と glEnable/glDisable による GL_TEXTURE_GEN_* の指定は推奨されません。
シェーダで同等の処理を行って下さい。
glMaterial*, glLight*, glLightModel*, glColorMaterial と glEnable/glDisable による
GL_LIGHTING の指定は推奨されません。
GL_VERTEX_PROGRAM_TWO_SIDE, glLIGHTi と GL_COLOR_MATERIAL の指定は推奨されません。
シェーダで同等の処理を行って下さい。
全ての頂点配列、マルチテクスチャ、マトリックス、マトリックススタック、法線とテクスチャコーディネート、
ライティングのステートは推奨されません。
シェーダで同等の処理を行って下さい。
エッジフラグは常に TRUE として扱います。
glFrontFace、glClampColor、glShadeModel は非推奨ではないことに注意してください。
- Client vertex arrays
全ての頂点属性配列は
デフォルトの頂点属性配列オブジェクト(ネームがゼロ)は推奨されません。
バッファオブジェクトまたは頂点配列オブジェクトがバインドされていない状態で glVertexAttribPointer を呼ぶと、
INVALID OPERATION エラーが発生します。
- Rectangles [OpenGL ES 相当]
glRect* は推奨されません。他のプリミティブで代用してください。
- Current raster position [OpenGL ES 相当]
glRasterPos*, glWindowPos* と 関連ステートは推奨されません。
- Two-sided color selection [OpenGL ES 相当]
表面と裏面の色分けは推奨されません。
- Non-sprite points [OpenGL ES 2.0 相当]
GL_POINT_SMOOTH, GL_POINT_SPRITE と関連ステートは推奨されません。
点は常にポイントスプライトが有効となります。
- Wide lines and line stipple
glLineWidth は非推奨ではありませんが、1.0より大きな値は
INVALID_VALUE エラーが発生します。
glLineStipple と glEnable/glDisable による GL_LINE_STIPPLE の指定は推奨されません。
- Quadrilateral and polygon primitives [OpenGL ES 相当]
GL_POLYGON, GL_QUADS, GL_QUAD_STRIP、非三角形ポリゴンのラスタライズ化および関係ステートは推奨されません。
- Separate polygon draw mode
glPolygonMode の GL_FRONT と GL_BACK の
どの面がラスタライズされても、多角形は同じモードでいつも描かれます。
- Polygon Stipple [OpenGL ES 相当]
glPolygonStipple と glEnable/glDisable による GL_POLYGON_STIPPLE の指定、
および関係ステートは推奨されません。
- Pixel transfer modes and operations
all pixel transfer modes, including pixel maps, shift and bias, color table lookup, color matrix, and convolution
に関係するコマンドおよび関係ステートは推奨されません。
- Pixel drawing [OpenGL ES 相当]
glDrawPixels と glPixelZoom は推奨されません。
- Bitmaps [OpenGL ES 相当]
Bitmaps は推奨されません。
- Legacy OpenGL 1.0 pixel formats
glTexImage* や他のコマンドで、内部形式として 値1、2、3、および4 を指定することは推奨されません。
- Legacy pixel formats
全ての外部形式、内部形式の
GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY は推奨されません。
- Depth texture mode
GL_DEPTH_TEXTURE_MODE は推奨されません。
GLSL 1.30 ではデプステクスチャサンプラーは (r, r, r, 1) を常に返します。
- Texture wrap mode CLAMP [OpenGL ES 相当]
テクスチャパラメタの GL_TEXTURE_WRAP_S、GL_TEXTURE_WRAP_T、
GL_TEXTURE_WRAP_R で GL_CLAMP の使用は推奨されません。
- Texture borders [OpenGL ES 相当]
glTexImage* のボーダーは常に 0 でなければなりません。
glTexParameter で GL_TEXTURE_BORDER_COLOR を指定することや、
texture wrap モードで GL_CLAMP_TO_BORDER を指定すること、
および関連ステートは推奨されません。
- Automatic mipmap generation
自動ミップマップ生成機能である glTexParameter で GL_GENERATE_MIPMAP を指定することおよび関連ステートは推奨されません。
- Fixed-function fragment processing [OpenGL ES 2.0 相当]
glAreTexturesResident, glPrioritizeTextures, glTexParameter で GL_TEXTURE_PRIORITY を指定することは推奨されません。
glTexEnv で GL_TEXTURE_ENV に関連するパラメータの設定は推奨されません。
glEnable/glDisable で GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_CUBE_MAP を設定することは推奨されません。
glEnable/glDisable で GL_COLOR_SUM を設定することは推奨されていません。
glEnable/glDisable で GL_FOG を設定することや glFog と関連パラメータの設定、および関連ステートは推奨されていません。
- Alpha test [OpenGL ES 2.0 相当]
glAlphaFunc と glEnable/glDisable で GL_ALPHA_TEST を設定すること、および関連ステートは推奨されません。
- Accumulation buffers [OpenGL ES 相当]
glClearAccum と glClear で GL_ACCUM_BUFFER_BIT を設定すること、および関連ステートは推奨されません。
glAccum は推奨されません。
アキュムレーションバッファのコンポーネントサイズを示すフレームバッファステートの GL_ACCUM_*_BITS および関連ステートは推奨されません。
GLX や WGL のようなウィンドウバインディング API では、アキュムレーションバッファをサポートしないものを選択するか、
あるいはアキュムレーションバッファを無視します。
- Context framebuffer size queries
フレームバッファサイズを示す GL_RED_BITS, GL_GREEN_BITS, GL_BLUE_BITS, GL_ALPHA_BITS, GL_DEPTH_BITS, GL_STENCIL_BITS は推奨されません。
- Evaluators [OpenGL ES 相当]
glMap*, glEvalCoord*, glMapGrid*, glEvalMesh*, glEvalPoint* と glEnable/glDisable で全ての evaluator map の設定、および関連ステートは推奨されません。
- Selection and feedback modes [OpenGL ES 相当]
glRenderMode, glInitNames, glPopName, glPushName, glLoadName, glSelectBuffer,
glFeedbackBuffer, glPassThrough
および関連ステートは推奨されません。
- Display lists [OpenGL ES 相当]
glNewList, glEndList, glCallList, glCallLists, glListBase, glGenLists,
glIsList, glDeleteLists および関連ステートは推奨されません。
- Hints
glHint で GL_PERSPECTIVE_CORRECTION_HINT, GL_FOG_HINT, GL_GENERATE_MIPMAP_HINT を設定することは推奨されていません。
- Attribute stacks [OpenGL ES 相当]
glPushAttrib, glPushClientAttrib, glPopAttrib, glPopClientAttrib,
GL_MAX_ATTRIB_STACK_DEPTH, GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
GL_ALL_ATTRIB_BITS, GL_CLIENT_ALL_ATTRIB_BITS は推奨されません。
- Unified extension string
glGetString で GL_EXTENSIONS を指定することは推奨されません。
- Token names and queries
これまでに言及していない推奨しないステートに対するトークンとクエリーの全て。
推奨しないステートであるエントリーポイントについてのクエリー。
次のトークンが変更になりました。(互換性のために古いトークンも使えます。)
- Changed Tokens
新しいトークン | 古いトークン |
GL_COMPARE_REF_TO_TEXTURE | GL_COMPARE_R_TO_TEXTURE |
GL_MAX_VARYING_COMPONENTS | GL_MAX_VARYING_FLOATS |
GL_MAX_CLIP_DISTANCES | GL_MAX_CLIP_PLANES |
GL_CLIP_DISTANCEi | GL_CLIP_PLANEi |
|
注意: 洋書です。
3.0, 3.1 対応(第7版)
|