OpenGL driver in x11drv with old ABI
Michael Karcher
michael.karcher at dpk.berlin.fido.de
Sun Apr 7 17:43:43 CDT 2002
Hello Wine Maintainers,
you recently changed the DC_FUNCTIONS to take PHYSDEVs intead of DCs as
first parameter, but you forgot to reflect these changes in
graphics/x11drv/opengl.c. This made OpenGL crash on GetPixelFormat. The
patch is included.
Michael Karcher
Index: graphics/x11drv/opengl.c
===================================================================
RCS file: /home/wine/wine/graphics/x11drv/opengl.c,v
retrieving revision 1.5
diff -u -r1.5 opengl.c
--- graphics/x11drv/opengl.c 9 Mar 2002 23:50:38 -0000 1.5
+++ graphics/x11drv/opengl.c 7 Apr 2002 22:34:54 -0000
@@ -84,20 +84,19 @@
Equivalent of glXChooseVisual
*/
-int X11DRV_ChoosePixelFormat(DC *dc,
+int X11DRV_ChoosePixelFormat(X11DRV_PDEVICE *physDev,
const PIXELFORMATDESCRIPTOR *ppfd) {
#define TEST_AND_ADD1(t,a) if (t) att_list[att_pos++] = a
#define TEST_AND_ADD2(t,a,b) if (t) { att_list[att_pos++] = a; att_list[att_pos++] = b; }
#define NULL_TEST_AND_ADD2(tv,a,b) att_list[att_pos++] = a; att_list[att_pos++] = ((tv) == 0 ? 0 : b)
#define ADD2(a,b) att_list[att_pos++] = a; att_list[att_pos++] = b
- X11DRV_PDEVICE *physDev = (X11DRV_PDEVICE *)dc->physDev;
int att_list[64];
int att_pos = 0;
XVisualInfo *vis;
if (TRACE_ON(opengl)) {
- TRACE("(%p,%p)\n", dc, ppfd);
+ TRACE("(%p,%p)\n", physDev, ppfd);
dump_PIXELFORMATDESCRIPTOR((PIXELFORMATDESCRIPTOR *) ppfd);
}
@@ -162,16 +161,15 @@
Get the pixel-format descriptor associated to the given id
*/
-int X11DRV_DescribePixelFormat(DC *dc,
+int X11DRV_DescribePixelFormat(X11DRV_PDEVICE *physDev,
int iPixelFormat,
UINT nBytes,
PIXELFORMATDESCRIPTOR *ppfd) {
- X11DRV_PDEVICE *physDev = (X11DRV_PDEVICE *)dc->physDev;
XVisualInfo *vis;
int value;
int rb,gb,bb,ab;
- TRACE("(%p,%d,%d,%p)\n", dc, iPixelFormat, nBytes, ppfd);
+ TRACE("(%p,%d,%d,%p)\n", physDev, iPixelFormat, nBytes, ppfd);
if (nBytes < sizeof(PIXELFORMATDESCRIPTOR)) {
ERR("Wrong structure size !\n");
@@ -275,10 +273,8 @@
Get the pixel-format id used by this DC
*/
-int X11DRV_GetPixelFormat(DC *dc) {
- X11DRV_PDEVICE *physDev = (X11DRV_PDEVICE *)dc->physDev;
-
- TRACE("(%p): returns %d\n", dc, physDev->current_pf);
+int X11DRV_GetPixelFormat(X11DRV_PDEVICE *physDev) {
+ TRACE("(%p): returns %d\n", physDev, physDev->current_pf);
return physDev->current_pf;
}
@@ -287,12 +283,10 @@
Set the pixel-format id used by this DC
*/
-BOOL X11DRV_SetPixelFormat(DC *dc,
+BOOL X11DRV_SetPixelFormat(X11DRV_PDEVICE *physDev,
int iPixelFormat,
const PIXELFORMATDESCRIPTOR *ppfd) {
- X11DRV_PDEVICE *physDev = (X11DRV_PDEVICE *)dc->physDev;
-
- TRACE("(%p,%d,%p)\n", dc, iPixelFormat, ppfd);
+ TRACE("(%p,%d,%p)\n", physDev, iPixelFormat, ppfd);
physDev->current_pf = iPixelFormat;
@@ -303,10 +297,8 @@
Swap the buffers of this DC
*/
-BOOL X11DRV_SwapBuffers(DC *dc) {
- X11DRV_PDEVICE *physDev = (X11DRV_PDEVICE *)dc->physDev;
-
- TRACE("(%p)\n", dc);
+BOOL X11DRV_SwapBuffers(X11DRV_PDEVICE *physDev) {
+ TRACE("(%p)\n", physDev);
ENTER_GL();
glXSwapBuffers(gdi_display, physDev->drawable);
Index: include/x11drv.h
===================================================================
RCS file: /home/wine/wine/include/x11drv.h,v
retrieving revision 1.100
diff -u -r1.100 x11drv.h
--- include/x11drv.h 3 Apr 2002 21:18:50 -0000 1.100
+++ include/x11drv.h 7 Apr 2002 22:34:55 -0000
@@ -176,11 +176,13 @@
extern BOOL X11DRV_SetDeviceGammaRamp( X11DRV_PDEVICE *physDev, LPVOID ramp );
/* OpenGL / X11 driver functions */
-extern int X11DRV_ChoosePixelFormat(DC *dc, const PIXELFORMATDESCRIPTOR *pppfd) ;
-extern int X11DRV_DescribePixelFormat(DC *dc, int iPixelFormat, UINT nBytes, PIXELFORMATDESCRIPTOR *ppfd) ;
-extern int X11DRV_GetPixelFormat(DC *dc) ;
-extern BOOL X11DRV_SetPixelFormat(DC *dc, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd) ;
-extern BOOL X11DRV_SwapBuffers(DC *dc) ;
+extern int X11DRV_ChoosePixelFormat(X11DRV_PDEVICE *physDev,
+ const PIXELFORMATDESCRIPTOR *pppfd);
+extern int X11DRV_DescribePixelFormat(X11DRV_PDEVICE *physDev,
+ int iPixelFormat, UINT nBytes,
+ PIXELFORMATDESCRIPTOR *ppfd);
+extern int X11DRV_GetPixelFormat(X11DRV_PDEVICE *physDev);
+extern BOOL X11DRV_SwapBuffers(X11DRV_PDEVICE *physDev);
/* X11 driver internal functions */
More information about the wine-patches
mailing list