OpenGL エクステンション¶
Fabric Engine version 2.4.0
Copyright (c) 2010-2017 Fabric Software Inc. All rights reserved.
FabricOGL
エクステンションは OpenGL
ライブラリをラップし、KLの関数一式を公開します。
注釈
FabricOGL
エクステンションは(OpenGL自体がどうかに関係なく)スレッドセーフではありません。FabricOGL
エクステンションの関数はセットアップのため、適切なOpenGLコンテキストを必要とします。コンテキストのテストには cpglHaveContext 関数を使用します。全OpenGL関数は FabricOGL.kl ファイルで確認できます。
require FabricOGL;
operator entry() {
report( cpglHaveContext() );
}
/*
** Output:
false
*/
よりよいデバッグをサポートするために、 cpglSetDebugTrace 関数を使用できます。OpenGLの呼び出しごとでの適切なエラーチェックのために cpglSetAlwaysValidateContext 関数を使用できます。
require FabricOGL;
operator entry() {
cpglSetDebugTrace(true);
cpglSetAlwaysValidateContext(true);
// since there is no context, this should fail
glUseProgram(12);
}
/*
** Output:
FabricOGL: glewInit();
Error: FabricOGL: Fabric::OGL::glewInit: ERROR: Missing GL version
KL stack trace:
[ST] 1 operator.entry() (stdin):9
[ST] 2 kl.internal.entry.stub.cpu()
Error: FabricOGL: FabricOGL: glUseProgram: unsupported on this hardware
KL stack trace:
[ST] 1 operator.entry() (stdin):9
[ST] 2 kl.internal.entry.stub.cpu()
*/
大体のC言語のOpenGL関数群はKLに直接 1対1 対応します。現在 FabricOGL
エクステンションは OpenGL extensions をサポートしておらず、OpenGL関数の基本セットだけが利用可能です。