--- np2/win9xc/scrnmng.cpp 2003/10/16 17:59:21 1.1.1.1 +++ np2/win9xc/scrnmng.cpp 2004/02/13 20:31:55 1.4 @@ -1,6 +1,8 @@ #include "compiler.h" #include +#ifndef __GNUC__ #include +#endif #include "resource.h" #include "np2.h" #include "mousemng.h" @@ -19,7 +21,7 @@ typedef struct { LPDIRECTDRAWSURFACE backsurf; LPDIRECTDRAWCLIPPER clipper; LPDIRECTDRAWPALETTE palette; - BYTE scrnmode; + UINT8 scrnmode; int width; int height; int extend; @@ -28,9 +30,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]; @@ -60,10 +63,8 @@ static void setwindowsize(int width, int GetWindowRect(hWndMain, &rectwindow); GetClientRect(hWndMain, &rectclient); - width += np2oscfg.paddingx * 2; width += rectwindow.right - rectwindow.left; width -= rectclient.right - rectclient.left; - height += np2oscfg.paddingy * 2; height += rectwindow.bottom - rectwindow.top; height -= rectclient.bottom - rectclient.top; @@ -108,14 +109,12 @@ static void renewalclientsize(void) { int width; int height; - int extend; int multiple; int scrnwidth; int scrnheight; width = min(scrnstat.width, ddraw.width); height = min(scrnstat.height, ddraw.height); - extend = 0; // ÉÁ²èÈϰϡÁ if (ddraw.scrnmode & SCRNMODE_FULLSCREEN) { @@ -129,35 +128,28 @@ static void renewalclientsize(void) { else { multiple = scrnstat.multiple; if (!(ddraw.scrnmode & SCRNMODE_ROTATE)) { - if (np2oscfg.paddingx) { - extend = min(scrnstat.extend, ddraw.extend); - } scrnwidth = (width * multiple) >> 3; scrnheight = (height * multiple) >> 3; - ddraw.rect.right = width + extend; + ddraw.rect.right = width; ddraw.rect.bottom = height; - ddraw.scrn.left = np2oscfg.paddingx - extend; - ddraw.scrn.top = np2oscfg.paddingy; + ddraw.scrn.left = 0; + ddraw.scrn.top = 0; } else { - if (np2oscfg.paddingy) { - extend = min(scrnstat.extend, ddraw.extend); - } scrnwidth = (height * multiple) >> 3; scrnheight = (width * multiple) >> 3; ddraw.rect.right = height; - ddraw.rect.bottom = width + extend; - ddraw.scrn.left = np2oscfg.paddingx; - ddraw.scrn.top = np2oscfg.paddingy - extend; + ddraw.rect.bottom = width; + ddraw.scrn.left = 0; + ddraw.scrn.top = 0; } - ddraw.scrn.right = np2oscfg.paddingx + scrnwidth; - ddraw.scrn.bottom = np2oscfg.paddingy + scrnheight; + ddraw.scrn.right = scrnwidth; + ddraw.scrn.bottom = scrnheight; setwindowsize(scrnwidth, scrnheight); setwindowsize(scrnwidth, scrnheight); } scrnsurf.width = width; scrnsurf.height = height; - scrnsurf.extend = extend; } static void clearoutofrect(const RECT *target, const RECT *base) { @@ -267,7 +259,7 @@ static void make16mask(DWORD bmask, DWOR ddraw.r16b = sft; sft = 0; - while((rmask & 0xffffff0) && (sft < 32)) { + while((rmask & 0xffffff00) && (sft < 32)) { rmask >>= 1; sft++; } @@ -275,7 +267,7 @@ static void make16mask(DWORD bmask, DWOR ddraw.l16r = sft; sft = 0; - while((gmask & 0xffffff0) && (sft < 32)) { + while((gmask & 0xffffff00) && (sft < 32)) { gmask >>= 1; sft++; } @@ -291,12 +283,12 @@ void scrnmng_initialize(void) { scrnstat.width = 640; scrnstat.height = 400; - scrnstat.extend = 1; + scrnstat.extend = 0; scrnstat.multiple = 8; setwindowsize(640, 400); } -BOOL scrnmng_create(BYTE scrnmode) { +BOOL scrnmng_create(UINT8 scrnmode) { DWORD winstyle; DWORD winstyleex; @@ -342,6 +334,12 @@ BOOL scrnmng_create(BYTE scrnmode) { 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 @@ -414,12 +412,12 @@ BOOL scrnmng_create(BYTE scrnmode) { ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; if (!(scrnmode & SCRNMODE_ROTATE)) { - ddsd.dwWidth = 641; + ddsd.dwWidth = 640; ddsd.dwHeight = 480; } else { ddsd.dwWidth = 480; - ddsd.dwHeight = 641; + ddsd.dwHeight = 640; } if (ddraw2->CreateSurface(&ddsd, &ddraw.backsurf, NULL) != DD_OK) { @@ -514,19 +512,23 @@ 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); } +#ifndef __GNUC__ WINNLSEnableIME(hWndMain, TRUE); +#endif } } void scrnmng_clearwinui(void) { if ((ddraw.cliping > 0) && (!(--ddraw.cliping))) { +#ifndef __GNUC__ WINNLSEnableIME(hWndMain, FALSE); +#endif if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { ddraw.primsurf->SetClipper(0); } @@ -534,7 +536,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) { @@ -545,8 +547,7 @@ void scrnmng_setwidth(int posx, int widt void scrnmng_setextend(int extend) { - scrnstat.extend = extend; - renewalclientsize(); + (void)extend; } void scrnmng_setheight(int posy, int height) {