view docs/man3/SDL_GLattr.3 @ 1544:ab1e4c41ab71

Fixed bug #33 Mike Frysinger wrote: > with libsdl-1.2.9, some games (like bomberclone) started > segfaulting in Gentoo [...snip...] > the last change in the last hunk: [...snip...] > if i change the statement to read: > (table[which].blit_features & GetBlitFeatures()) == GetBlitFeatures() > bomberclone no longer segfaults on my box Alex Volkov wrote: > The test "(table[which].blit_features & GetBlitFeatures()) == > table[which].blit_features)" is correct, and the previous > "(table[which].cpu_mmx == SDL_HasMMX())" was actually broken. I think there is potentially a slightly different cause of the above problem. During the introduction of the Altivec code, the blit_table struct field 'alpha' got changed from a straightforward enum to a bitmask, which makes perfect sense by itself. However, now the table driven blitter selection code in SDL_CalculateBlitN() can choose the wrong blitters when searching for a NO_ALPHA blitter because of the following code: int a_need = 0; ... (a_need & table[which].alpha) == a_need && When searching through the normal_blit_2[] table, a SET_ALPHA blitter (like Blit_RGB565_ARGB8888) can now be selected instead of a NO_ALPHA one, causing alpha channel bits to appear in a non-alpha destination surface. I suppose this could theoretically be an indirect cause of the segfault mentioned above. I *think* this can be fixed by changing to int a_need = NO_ALPHA;
author Sam Lantinga <slouken@libsdl.org>
date Wed, 15 Mar 2006 15:47:49 +0000
parents e5bc29de3f0a
children 546f7c1eb755
line wrap: on
line source

.TH "SDL_GLattr" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference" 
.SH "NAME"
SDL_GLattr\- SDL GL Attributes
.SH "ATTRIBUTES"
.TP 20
\fBSDL_GL_RED_SIZE\fP
Size of the framebuffer red component, in bits
.TP 20
\fBSDL_GL_GREEN_SIZE\fP
Size of the framebuffer green component, in bits
.TP 20
\fBSDL_GL_BLUE_SIZE\fP
Size of the framebuffer blue component, in bits
.TP 20
\fBSDL_GL_ALPHA_SIZE\fP
Size of the framebuffer alpha component, in bits
.TP 20
\fBSDL_GL_DOUBLEBUFFER\fP
0 or 1, enable or disable double buffering
.TP 20
\fBSDL_GL_BUFFER_SIZE\fP
Size of the framebuffer, in bits
.TP 20
\fBSDL_GL_DEPTH_SIZE\fP
Size of the depth buffer, in bits
.TP 20
\fBSDL_GL_STENCIL_SIZE\fP
Size of the stencil buffer, in bits
.TP 20
\fBSDL_GL_ACCUM_RED_SIZE\fP
Size of the accumulation buffer red component, in bits
.TP 20
\fBSDL_GL_ACCUM_GREEN_SIZE\fP
Size of the accumulation buffer green component, in bits
.TP 20
\fBSDL_GL_ACCUM_BLUE_SIZE\fP
Size of the accumulation buffer blue component, in bits
.TP 20
\fBSDL_GL_ACCUM_ALPHA_SIZE\fP
Size of the accumulation buffer alpha component, in bits
.SH "DESCRIPTION"
.PP
While you can set most OpenGL attributes normally, the attributes list above must be known \fIbefore\fP SDL sets the video mode\&. These attributes a set and read with \fI\fBSDL_GL_SetAttribute\fP\fR and \fI\fBSDL_GL_GetAttribute\fP\fR\&.
.SH "SEE ALSO"
.PP
\fI\fBSDL_GL_SetAttribute\fP\fR, \fI\fBSDL_GL_GetAttribute\fP\fR
...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01