OpenGL エクステンション

../../_images/FE_logo_345_60.png
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関数の基本セットだけが利用可能です。

索引と検索