|
Size: 1740
Comment: minor change
|
Size: 2014
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.
Contents
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) |
