[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: ddraw fullscreen-app problem in latest CVS
From: "TAKESHIMA Hidenori" <hidenori () a2 ! ctktv ! ne ! jp>
Date: 2001-10-25 10:38:44
[Download RAW message or body]
I can run some full-screen app in 2001/10/20 cvs.
but, in the latest cvs, wine may crash in creating the
fullscreen-primary surface...
(I don't know why, but since wine-server protocol has been updated?????)
ddrawtst.c is a minimal test program that crashes the latest cvs.
My environment is:
debian2.3-woody, XFree86-4.1.0-7.
No permission to access /dev/kmem directly.
["ddrawtst.c" (application/octet-stream)]
#include <windows.h>
#include <ddraw.h>
CHAR g_szAppClassName[] = "AppClass";
IDirectDraw* pdd=NULL;
IDirectDrawSurface* psurf=NULL;
LRESULT WINAPI AppWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
DDSURFACEDESC desc;
switch( uMsg )
{
case WM_DESTROY:
IDirectDrawSurface_Release(psurf); psurf=NULL;
IDirectDraw_RestoreDisplayMode(pdd);
IDirectDraw_Release(pdd); pdd=NULL;
PostQuitMessage(0);
break;
case WM_CREATE:
DirectDrawCreate(NULL,&pdd,NULL);
IDirectDraw_SetCooperativeLevel(pdd,hwnd,DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN);
IDirectDraw_SetDisplayMode(pdd,800,600,16);
ZeroMemory(&desc,sizeof(desc));
desc.dwSize=sizeof(desc);
desc.dwFlags = DDSD_CAPS;
desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
IDirectDraw_CreateSurface(pdd,&desc,&psurf,NULL);
break;
}
return DefWindowProc( hwnd, uMsg, wParam, lParam );
}
int WINAPI WinMain( HINSTANCE hCurInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow )
{
MSG msg;
WNDCLASS wc;
HWND hwnd;
wc.style = 0;
wc.lpfnWndProc = AppWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hCurInst;
wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = (HBRUSH)GetStockObject( BLACK_BRUSH );
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szAppClassName;
if (!RegisterClass(&wc)) return -1;
hwnd = CreateWindowEx( 0L, g_szAppClassName, NULL, WS_POPUP,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
0, 0, hCurInst, NULL );
if ( !hwnd ) return -1;
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while ( GetMessage(&msg,0,0,0) > 0 )
{
DispatchMessage(&msg);
}
return 0;
}
["ddrawtst.spec" (application/octet-stream)]
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic