目次 - SDL 3.0 API(機能別) - ディスプレイとウィンドウ - SDL_GL_ExtensionSupported

SDL_GL_ExtensionSupported

カレントコンテキストでOpenGL拡張に対応しているか否かをチェックする

ヘッダ

SDL3/SDL_video.h

構文

bool SDL_GL_ExtensionSupported(const char *extension);

引数

const char *extensionチェックする拡張の名前

戻り値

(bool) 拡張に対応していれば真, それ以外のとき偽を戻す.

詳細

この関数はカレントコンテキストで動作する. つまり, コンテキストが生成されていて, 関数が呼ばれる前にカレントである必要がある. 生成したコンテキスト全てが同じように拡張が使える, または既に存在するコンテキストから再生成したとき同じ拡張が使えるとみなしてはならない.

また, 大きな負荷が掛かる可能性がある. この関数O(1)ではない. 必要なときに毎回この関数を呼ぶのではなく, GLコンテキストを生成した後に取り扱う拡張をチェックしてその情報を保存するべきである.

スレッドセーフ

この関数を呼べるのはメインスレッドのみである.

バージョン

SDL 3.2.0以降

サンプルコード

    extern void draw_to_the_screen_with_framebuffer_blit(void);
    extern void draw_to_the_screen_with_a_textured_quad(void);

    if (SDL_GL_ExtensionSupported("GL_EXT_framebuffer_blit")) {
        draw_to_the_screen_with_framebuffer_blit();   // 速い!
    } else {
        draw_to_the_screen_with_a_textured_quad();  // 遅い!
    }

SDL Wikiへのリンク

SDL_GL_ExtensionSupported - SDL Wiki