Wiki Page Content

Differences between revisions 7 and 8
Revision 7 as of 2010-08-30 00:15:45
Size: 1740
Editor: SheenaSmith
Comment: minor change
Revision 8 as of 2010-08-30 00:31:12
Size: 2014
Editor: Sam Lantinga
Comment: Fixed code example for SDL 1.3
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
||<tablewidth="100%" style="color: #FF0000;" :> DRAFT||
Line 24: Line 23:
*<<BR>>
Line 26: Line 24:
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 );
if ( (screen
=SDL_SetVideoMode( 640, 480, 16, SDL_OPENGL )) == NULL ) {
    fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError());
    SDL_Quit();
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, "Couldn't create window: %s\n", SDL_GetError());
Line 36: Line 38:

context = SDL_GL_CreateContext(window);
if (!context) {
    fprintf(stderr, "Couldn't create context: %s\n", SDL_GetError());
    return;
}

printf("Red size: %d, Green size: %d, Blue size: %d\n",
    SDL_GL_GetAttribute(SDL_GL_RED_SIZE),
    SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE),
    SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE));
Line 37: Line 50:
<<BR>>*

<<Color2(green,The SDL_!SetVideoMode part of the example needs to be updated.)>>
Line 42: Line 52:
This function sets the OpenGL attribute '''attr''' to '''value'''. The requested attributes will take effect after creating an OpenGL context. You should use [[SDL_GL_GetAttribute]]() to check the values after creating the context, since the values obtained can differ from the requested ones. This function sets the OpenGL attribute '''attr''' to '''value'''. The requested attributes should be set before creating an OpenGL window. You should use [[SDL_GL_GetAttribute]]() to check the values after creating the OpenGL context, since the values obtained can differ from the requested ones.

SDL_GL_SetAttribute

Use this function to set an OpenGL window attribute before window creation.

Syntax

int SDL_GL_SetAttribute(SDL_GLattr attr,
                        int        value)

Function Parameters

attr

the SDL_GLattr to set; see Remarks for details

value

the desired value for the attribute

Return Value

Returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

Code Examples

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, "Couldn't create window: %s\n", SDL_GetError());
    return;
}

context = SDL_GL_CreateContext(window);
if (!context) {
    fprintf(stderr, "Couldn't create context: %s\n", SDL_GetError());
    return;
}

printf("Red size: %d, Green size: %d, Blue size: %d\n",
    SDL_GL_GetAttribute(SDL_GL_RED_SIZE),
    SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE),
    SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE));

Remarks

This function sets the OpenGL attribute attr to value. The requested attributes should be set before creating an OpenGL window. You should use SDL_GL_GetAttribute() to check the values after creating the OpenGL context, since the values obtained can differ from the requested ones.

attr can be one of these values:

SDL_GL_RED_SIZE

the minimum number of bits for the red channel of the color buffer; defaults to 3

SDL_GL_GREEN_SIZE

the minimum number of bits for the green channel of the color buffer; defaults to 3

SDL_GL_BLUE_SIZE

the minimum number of bits for the blue channel of the color buffer; defaults to 2

SDL_GL_ALPHA_SIZE

the minimum number of bits for the alpha channel of the color buffer; defaults to 0

SDL_GL_BUFFER_SIZE

the minimum number of bits for frame buffer size; defaults to 0

SDL_GL_DOUBLEBUFFER

whether the output is single or double buffered; defaults to double buffering on

SDL_GL_DEPTH_SIZE

the minimum number of bits in the depth buffer; defaults to 16

SDL_GL_STENCIL_SIZE

the minimum number of bits in the stencil buffer; defaults to 0

SDL_GL_ACCUM_RED_SIZE

the minimum number of bits for the red channel of the accumulation buffer; defaults to 0

SDL_GL_ACCUM_GREEN_SIZE

the minimum number of bits for the green channel of the accumulation buffer; defaults to 0

SDL_GL_ACCUM_BLUE_SIZE

the minimum number of bits for the blue channel of the accumulation buffer; defaults to 0

SDL_GL_ACCUM_ALPHA_SIZE

the minimum number of bits for the alpha channel of the accumulation buffer; defaults to 0

SDL_GL_STEREO

whether the output is stereo 3D; defaults to off

SDL_GL_MULTISAMPLEBUFFERS

the number of buffers used for multisample anti-aliasing; defaults to 0; see Remarks for details

SDL_GL_MULTISAMPLESAMPLES

the number of samples used around the current pixel used for multisample anti-aliasing; defaults to 0; see Remarks for details

SDL_GL_ACCELERATED_VISUAL

set to 1 to require hardware acceleration, set to 0 to force software rendering; defaults to allow either

SDL_GL_RETAINED_BACKING

not used (deprecated)

SDL_GL_CONTEXT_MAJOR_VERSION

OpenGL context major version; see Remarks for details

SDL_GL_CONTEXT_MINOR_VERSION

OpenGL context minor version; see Remarks for details

SDL_GL_CONTEXT_FLAGS

some combination of 0 or more of elements of the SDL_GLcontextFlag enumeration; defaults to 0

SDL_GL_CONTEXT_PROFILE_MASK

type of GL context (Core, Compatibility, ES). See SDL_GLprofile; default value depends on platform

SDL_GL_SHARE_WITH_CURRENT_CONTEXT

OpenGL context sharing; defaults to 0

SDL_GL_FRAMEBUFFER_SRGB_CAPABLE

requests sRGB capable visual; defaults to 0 (>= SDL 2.0.1)

SDL_GL_CONTEXT_RELEASE_BEHAVIOR

sets context the release behavior; defaults to 1 (>= SDL 2.0.4)

SDL_GL_CONTEXT_EGL

not used (deprecated)


CategoryAPI, CategoryVideo

None: SDL_GL_SetAttribute (last edited 2015-04-26 19:19:56 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit