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

# SDL_GL_SetAttribute

ウィンドウを生成する前にOpenGLウィンドウの属性を設定する

## 構文

`int SDL_GL_SetAttribute(SDL_GLattr attr, int value)`

## 引数

attr | 設定するOpenGL属性 (詳細を参照すること)
value | 設定する属性の値

## 戻り値

成功のとき0, 失敗のとき負の数のエラーコードを戻す. SDL_GetError()を呼んで詳細を知ることができる.

## サンプルコード

``

    SDL_Window *window;
    SDL_GLContext context;

    SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
    SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5);
    SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);

    window = SDL_CreateWindow("OpenGL Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_OPENGL);
    if (!window) {
        fprintf(stderr, "ウィンドウを生成できなかった: %s\n", SDL_GetError());
        return;
    }

    context = SDL_GL_CreateContext(window);
    if (!context) {
        fprintf(stderr, "コンテキストを生成できなかった: %s\n", SDL_GetError());
        return;
    }

    int r, g, b;
    SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &r);
    SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &g);
    SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &b);

    printf("赤のサイズ: %d, 緑のサイズ: %d, 青のサイズ: %d\n", r, g, b);

## 詳細

この関数はOpenGL属性attrの値をvalueに設定する. 属性はOpenGLウィンドウを生成する前に設定する必要がある. 要求した値とは異なることがありうるので, OpenGLコンテキストを生成した後にSDL_GL_GetAttribute()で値をチェックする必要がある.

attrはSDL_GLattr列挙体の値の1つである.

## 関連項目(関数)

SDL_GL_GetAttribute
SDL_GL_ResetAttributes

## SDL Wikiへのリンク

SDL_GL_SetAttribute - SDL Wiki