[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