Mercurial > sdl-ios-xcode
annotate include/SDL_byteorder.h @ 638:b0108e9dea53
Date: Sun, 11 May 2003 19:59:06 +0300
From: Pasi K?rkk?inen
Subject: [PATCH] fix SDL OpenGL segfault with DRI/Mesa drivers and Glew
Hello!
The attached patch fixes a bug in SDL which causes SDL to crash in
X11_GL_Shutdown() if you are using DRI/Mesa drivers AND glew
(http://glew.sf.net).
The bug is caused by a namespace collision affecting dlsym() to fetch wrong
pointer for glXReleaseBuffersMESA() (uninitialized pointer from glew because
the extension is NOT supported by the driver) and then SDL calling it in
X11_GL_Shutdown().
SDL should check if the glXReleaseBuffersMESA() is really supported by the
driver (from the extensions string) before calling it.
Attached patch adds extension string parsing to check if
glXReleaseBuffersMESA() is really supported (and this way
prevents the segfault).
Availability of the extensions should be _always_ checked from the
extensions string rather than using dlsym()!
Please add it to the next version of SDL.
Thanks to gltron and author of glew to help fixing this.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 28 Jun 2003 17:27:33 +0000 |
parents | d37660186e58 |
children | b8d311d90021 |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
297
f6ffac90895c
Updated copyright information for 2002
Sam Lantinga <slouken@libsdl.org>
parents:
251
diff
changeset
|
3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga |
0 | 4 |
5 This library is free software; you can redistribute it and/or | |
6 modify it under the terms of the GNU Library General Public | |
7 License as published by the Free Software Foundation; either | |
8 version 2 of the License, or (at your option) any later version. | |
9 | |
10 This library is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 Library General Public License for more details. | |
14 | |
15 You should have received a copy of the GNU Library General Public | |
16 License along with this library; if not, write to the Free | |
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | |
19 Sam Lantinga | |
251
b8688cfdc232
Updated the headers with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents:
173
diff
changeset
|
20 slouken@libsdl.org |
0 | 21 */ |
22 | |
23 #ifdef SAVE_RCSID | |
24 static char rcsid = | |
25 "@(#) $Id$"; | |
26 #endif | |
27 | |
28 /* Macros for determining the byte-order of this platform */ | |
29 | |
30 #ifndef _SDL_byteorder_h | |
31 #define _SDL_byteorder_h | |
32 | |
33 /* The two types of endianness */ | |
34 #define SDL_LIL_ENDIAN 1234 | |
35 #define SDL_BIG_ENDIAN 4321 | |
36 | |
37 /* Pardon the mess, I'm trying to determine the endianness of this host. | |
38 I'm doing it by preprocessor defines rather than some sort of configure | |
39 script so that application code can use this too. The "right" way would | |
40 be to dynamically generate this file on install, but that's a lot of work. | |
41 */ | |
24
71bf2ad74dfa
Fixed endian detection on IA64 architectures (thanks Bill!)
Sam Lantinga <slouken@lokigames.com>
parents:
1
diff
changeset
|
42 #if defined(__i386__) || defined(__ia64__) || defined(WIN32) || \ |
0 | 43 (defined(__alpha__) || defined(__alpha)) || \ |
44 defined(__arm__) || \ | |
1
cf2af46e9e2a
Changes since SDL 1.2.0 release
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
45 (defined(__mips__) && defined(__MIPSEL__)) || \ |
173
83018110dce8
Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
24
diff
changeset
|
46 defined(__SYMBIAN32__) || \ |
530
d37660186e58
Added check for AMD x86-64 ("Hammer") architecture in byte order determination.
Ryan C. Gordon <icculus@icculus.org>
parents:
297
diff
changeset
|
47 defined(__x86_64__) || \ |
1
cf2af46e9e2a
Changes since SDL 1.2.0 release
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
48 defined(__LITTLE_ENDIAN__) |
0 | 49 #define SDL_BYTEORDER SDL_LIL_ENDIAN |
50 #else | |
51 #define SDL_BYTEORDER SDL_BIG_ENDIAN | |
52 #endif | |
53 | |
54 #endif /* _SDL_byteorder_h */ |