Mercurial > sdl-ios-xcode
annotate src/video/wincommon/SDL_wingl_c.h @ 773:da0a2ad35bf4
Date: Sun, 4 Jan 2004 23:48:19 +0100
From: Max Horn
Subject: Re: Again Audio CD patch
Am 04.01.2004 um 22:38 schrieb Sam Lantinga:
>
> Okay, I fixed the buffering problems by simply using a 4 second buffer
> instead of a 1 second buffer. However, using your code I can't play an
> entire CD - the playback stops after the first song.
>
Found the problem: FSReadFork returns eofErr when the file is finished.
However, we check its return value for errors, and if anything but
noErr occurs, the reader thread aborts its current iteration. That is
bad, because it aborts before it can ever set the flag which tells that
the file is over (also, any remaining data which FSRead did return is
lost - so you'd not hear about to 4 seconds from the end of the file.
Furthermore, the computed data size was 8 bytes to high (I forgot to
account for the fact that the size of an (A)IFF chunk always contains
the chunk header & size fields, too). This is enough to make it work.
However, the end condition is rather fragile, so I tuned some other
things to be pessimistic (check for <= 0 instead of == 0, when eofErr
is encountered enforce mReadFilePosition == mFileLength). You never
know...
The attached patch fixes the issue for me.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 05 Jan 2004 00:57:51 +0000 |
parents | b8d311d90021 |
children | c9b51268668f |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
769
b8d311d90021
Updated copyright information for 2004 (Happy New Year!)
Sam Lantinga <slouken@libsdl.org>
parents:
655
diff
changeset
|
3 Copyright (C) 1997-2004 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 | |
252
e8157fcb3114
Updated the source with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
20 slouken@libsdl.org |
0 | 21 */ |
22 | |
23 #ifdef SAVE_RCSID | |
24 static char rcsid = | |
25 "@(#) $Id$"; | |
26 #endif | |
27 | |
28 /* WGL implementation of SDL OpenGL support */ | |
29 | |
30 #include "SDL_sysvideo.h" | |
31 | |
32 | |
33 struct SDL_PrivateGLData { | |
34 int gl_active; /* to stop switching drivers while we have a valid context */ | |
35 | |
36 #ifdef HAVE_OPENGL | |
37 PIXELFORMATDESCRIPTOR GL_pfd; | |
38 HDC GL_hdc; | |
39 HGLRC GL_hrc; | |
655
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
40 int pixel_format; |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
41 int wgl_arb_pixel_format; |
0 | 42 |
43 void * (WINAPI *wglGetProcAddress)(const char *proc); | |
44 | |
45 HGLRC (WINAPI *wglCreateContext)(HDC hdc); | |
46 | |
47 BOOL (WINAPI *wglDeleteContext)(HGLRC hglrc); | |
48 | |
49 BOOL (WINAPI *wglMakeCurrent)(HDC hdc, HGLRC hglrc); | |
655
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
50 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
51 BOOL (WINAPI *wglChoosePixelFormatARB)(HDC hdc, const int *piAttribIList, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
52 const FLOAT *pfAttribFList, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
53 UINT nMaxFormats, int *piFormats, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
54 UINT *nNumFormats); |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
55 BOOL (WINAPI *wglGetPixelFormatAttribivARB)(HDC hdc, int iPixelFormat, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
56 int iLayerPlane, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
57 UINT nAttributes, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
58 const int *piAttributes, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
59 int *piValues); |
0 | 60 #endif /* HAVE_OPENGL */ |
61 }; | |
62 | |
63 /* Old variable names */ | |
64 #define gl_active (this->gl_data->gl_active) | |
65 #define GL_pfd (this->gl_data->GL_pfd) | |
66 #define GL_hdc (this->gl_data->GL_hdc) | |
67 #define GL_hrc (this->gl_data->GL_hrc) | |
655
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
68 #define pixel_format (this->gl_data->pixel_format) |
0 | 69 |
70 /* OpenGL functions */ | |
71 extern int WIN_GL_SetupWindow(_THIS); | |
72 extern void WIN_GL_ShutDown(_THIS); | |
73 #ifdef HAVE_OPENGL | |
74 extern int WIN_GL_MakeCurrent(_THIS); | |
75 extern int WIN_GL_GetAttribute(_THIS, SDL_GLattr attrib, int* value); | |
76 extern void WIN_GL_SwapBuffers(_THIS); | |
77 extern void WIN_GL_UnloadLibrary(_THIS); | |
78 extern int WIN_GL_LoadLibrary(_THIS, const char* path); | |
79 extern void *WIN_GL_GetProcAddress(_THIS, const char* proc); | |
80 #endif | |
81 | |
655
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
82 #ifdef HAVE_OPENGL |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
83 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
84 #ifndef WGL_ARB_pixel_format |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
85 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
86 #define WGL_DRAW_TO_WINDOW_ARB 0x2001 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
87 #define WGL_DRAW_TO_BITMAP_ARB 0x2002 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
88 #define WGL_ACCELERATION_ARB 0x2003 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
89 #define WGL_NEED_PALETTE_ARB 0x2004 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
90 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
91 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
92 #define WGL_SWAP_METHOD_ARB 0x2007 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
93 #define WGL_NUMBER_OVERLAYS_ARB 0x2008 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
94 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
95 #define WGL_TRANSPARENT_ARB 0x200A |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
96 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
97 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
98 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
99 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
100 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
101 #define WGL_SHARE_DEPTH_ARB 0x200C |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
102 #define WGL_SHARE_STENCIL_ARB 0x200D |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
103 #define WGL_SHARE_ACCUM_ARB 0x200E |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
104 #define WGL_SUPPORT_GDI_ARB 0x200F |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
105 #define WGL_SUPPORT_OPENGL_ARB 0x2010 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
106 #define WGL_DOUBLE_BUFFER_ARB 0x2011 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
107 #define WGL_STEREO_ARB 0x2012 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
108 #define WGL_PIXEL_TYPE_ARB 0x2013 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
109 #define WGL_COLOR_BITS_ARB 0x2014 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
110 #define WGL_RED_BITS_ARB 0x2015 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
111 #define WGL_RED_SHIFT_ARB 0x2016 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
112 #define WGL_GREEN_BITS_ARB 0x2017 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
113 #define WGL_GREEN_SHIFT_ARB 0x2018 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
114 #define WGL_BLUE_BITS_ARB 0x2019 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
115 #define WGL_BLUE_SHIFT_ARB 0x201A |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
116 #define WGL_ALPHA_BITS_ARB 0x201B |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
117 #define WGL_ALPHA_SHIFT_ARB 0x201C |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
118 #define WGL_ACCUM_BITS_ARB 0x201D |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
119 #define WGL_ACCUM_RED_BITS_ARB 0x201E |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
120 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
121 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
122 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
123 #define WGL_DEPTH_BITS_ARB 0x2022 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
124 #define WGL_STENCIL_BITS_ARB 0x2023 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
125 #define WGL_AUX_BUFFERS_ARB 0x2024 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
126 #define WGL_NO_ACCELERATION_ARB 0x2025 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
127 #define WGL_GENERIC_ACCELERATION_ARB 0x2026 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
128 #define WGL_FULL_ACCELERATION_ARB 0x2027 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
129 #define WGL_SWAP_EXCHANGE_ARB 0x2028 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
130 #define WGL_SWAP_COPY_ARB 0x2029 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
131 #define WGL_SWAP_UNDEFINED_ARB 0x202A |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
132 #define WGL_TYPE_RGBA_ARB 0x202B |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
133 #define WGL_TYPE_COLORINDEX_ARB 0x202C |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
134 #endif |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
135 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
136 #ifndef WGL_ARB_multisample |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
137 #define WGL_SAMPLE_BUFFERS_ARB 0x2041 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
138 #define WGL_SAMPLES_ARB 0x2042 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
139 #endif |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
140 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
141 #endif |