--- np2/win9xc/scrnmng.cpp 2003/12/08 00:55:34 1.3 +++ np2/win9xc/scrnmng.cpp 2004/03/23 18:34:05 1.5 @@ -21,7 +21,8 @@ typedef struct { LPDIRECTDRAWSURFACE backsurf; LPDIRECTDRAWCLIPPER clipper; LPDIRECTDRAWPALETTE palette; - BYTE scrnmode; + UINT8 enable; + UINT8 scrnmode; int width; int height; int extend; @@ -30,9 +31,10 @@ typedef struct { RECT rect; #if defined(SUPPORT_16BPP) RGB32 pal16mask; - BYTE r16b; - BYTE l16r; - BYTE l16g; + UINT8 r16b; + UINT8 l16r; + UINT8 l16g; + UINT8 padding16; #endif #if defined(SUPPORT_8BPP) PALETTEENTRY pal[256]; @@ -287,7 +289,7 @@ void scrnmng_initialize(void) { setwindowsize(640, 400); } -BOOL scrnmng_create(BYTE scrnmode) { +BOOL scrnmng_create(UINT8 scrnmode) { DWORD winstyle; DWORD winstyleex; @@ -327,12 +329,21 @@ BOOL scrnmng_create(BYTE scrnmode) { ddraw.ddraw1->QueryInterface(IID_IDirectDraw2, (void **)&ddraw2); ddraw.ddraw2 = ddraw2; +#if defined(SUPPORT_PC9821) + scrnmode |= SCRNMODE_HIGHCOLOR; +#endif if (scrnmode & SCRNMODE_FULLSCREEN) { ddraw2->SetCooperativeLevel(hWndMain, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_ALLOWREBOOT); if (!(scrnmode & SCRNMODE_HIGHCOLOR)) { #if defined(SUPPORT_8BPP) bitcolor = 8; +#elif defined(SUPPORT_16BPP) + bitcolor = 16; +#elif defined(SUPPORT_32BPP) + bitcolor = 32; +#elif defined(SUPPORT_24BPP) + bitcolor = 24; #else goto scre_err; #endif @@ -447,6 +458,7 @@ BOOL scrnmng_create(BYTE scrnmode) { } scrnmng.bpp = (BYTE)bitcolor; scrnsurf.bpp = bitcolor; + ddraw.enable = TRUE; ddraw.scrnmode = scrnmode; ddraw.width = 640; ddraw.height = 480; @@ -505,7 +517,7 @@ UINT16 scrnmng_makepal16(RGB32 pal32) { void scrnmng_topwinui(void) { - mouse_running(MOUSE_STOP); + mousemng_disable(MOUSEPROC_WINUI); if (!ddraw.cliping++) { // ver0.28 if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { ddraw.primsurf->SetClipper(ddraw.clipper); @@ -529,7 +541,7 @@ void scrnmng_clearwinui(void) { if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { clearoutfullscreen(); } - mouse_running(MOUSE_CONT); + mousemng_enable(MOUSEPROC_WINUI); } void scrnmng_setwidth(int posx, int width) { @@ -628,3 +640,10 @@ void scrnmng_update(void) { } } +void scrnmng_restoresize(void) { + + if ((ddraw.enable) && (!(ddraw.scrnmode & SCRNMODE_FULLSCREEN))) { + renewalclientsize(); + } +} +