http://bugs.winehq.org/show_bug.cgi?id=7881 ------- Additional Comments From focht(a)gmx.net 2007-28-03 15:11 ------- Hello, from what i've seen looking at java jni code it basically boils down to following (took the code directly from java impl. into a small C test program): Java_sun_awt_Win32GraphicsDevice_getDefaultPixIDImpl calls ---> Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported calls ---> int max = ::DescribePixelFormat(hDC, (int)pixFmtID, sizeof(PIXELFORMATDESCRIPTOR), &pfd); params: hDC = ::GetDC( ::GetDesktopWindow()) (desktop hdc) pixFmtId = 1 output: --- native windows --- DescribePixelFormat(): max=100, pfd.cColorBits=32, pfd.iPixelType=0, pfd.dwFlags=0x34 Java_sun_awt_Win32GraphicsDevice_getDefaultPixIDImpl() returns 1 --- native windows --- --- wine linux --- DescribePixelFormat(): max=1, pfd.cColorBits=32, pfd.iPixelType=0, pfd.dwFlags=0x25 Java_sun_awt_Win32GraphicsDevice_getDefaultPixIDImpl() returns 0 --- wine linux --- return "0" means no suitable Pixel Format id found -> exception thrown. The problem is the "flags" field in pixel format descriptor. Windows returns 0x34: PFD_SUPPORT_OPENGL | PFD_SUPPORT_GDI | PFD_DRAW_TO_WINDOW Wine returns 0x25: PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER The "required" flags field in that JRE implementation is: PFD_SUPPORT_GDI | PFD_DRAW_TO_WINDOW Basically: ((pfd.dwFlags & REQUIRED_FLAGS) == REQUIRED_FLAGS) to satisfy function call (valid pixel id) For windows this condition is satisfied - for the wine case not (PFD_SUPPORT_GDI bits missing). The wine X11 driver doesnt honour this value in wine/dlls/winex11.drv/opengl.c:X11DRV_DescribePixelFormat() and X11DRV_ChoosePixelFormat(). Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.