|
|
| version 1.1.1.1, 2003/10/16 17:59:21 | version 1.3, 2003/12/08 00:55:34 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include <ddraw.h> | #include <ddraw.h> |
| #ifndef __GNUC__ | |
| #include <winnls32.h> | #include <winnls32.h> |
| #endif | |
| #include "resource.h" | #include "resource.h" |
| #include "np2.h" | #include "np2.h" |
| #include "mousemng.h" | #include "mousemng.h" |
| Line 60 static void setwindowsize(int width, int | Line 62 static void setwindowsize(int width, int |
| GetWindowRect(hWndMain, &rectwindow); | GetWindowRect(hWndMain, &rectwindow); |
| GetClientRect(hWndMain, &rectclient); | GetClientRect(hWndMain, &rectclient); |
| width += np2oscfg.paddingx * 2; | |
| width += rectwindow.right - rectwindow.left; | width += rectwindow.right - rectwindow.left; |
| width -= rectclient.right - rectclient.left; | width -= rectclient.right - rectclient.left; |
| height += np2oscfg.paddingy * 2; | |
| height += rectwindow.bottom - rectwindow.top; | height += rectwindow.bottom - rectwindow.top; |
| height -= rectclient.bottom - rectclient.top; | height -= rectclient.bottom - rectclient.top; |
| Line 108 static void renewalclientsize(void) { | Line 108 static void renewalclientsize(void) { |
| int width; | int width; |
| int height; | int height; |
| int extend; | |
| int multiple; | int multiple; |
| int scrnwidth; | int scrnwidth; |
| int scrnheight; | int scrnheight; |
| width = min(scrnstat.width, ddraw.width); | width = min(scrnstat.width, ddraw.width); |
| height = min(scrnstat.height, ddraw.height); | height = min(scrnstat.height, ddraw.height); |
| extend = 0; | |
| // ÉÁ²èÈϰϡÁ | // ÉÁ²èÈϰϡÁ |
| if (ddraw.scrnmode & SCRNMODE_FULLSCREEN) { | if (ddraw.scrnmode & SCRNMODE_FULLSCREEN) { |
| Line 129 static void renewalclientsize(void) { | Line 127 static void renewalclientsize(void) { |
| else { | else { |
| multiple = scrnstat.multiple; | multiple = scrnstat.multiple; |
| if (!(ddraw.scrnmode & SCRNMODE_ROTATE)) { | if (!(ddraw.scrnmode & SCRNMODE_ROTATE)) { |
| if (np2oscfg.paddingx) { | |
| extend = min(scrnstat.extend, ddraw.extend); | |
| } | |
| scrnwidth = (width * multiple) >> 3; | scrnwidth = (width * multiple) >> 3; |
| scrnheight = (height * multiple) >> 3; | scrnheight = (height * multiple) >> 3; |
| ddraw.rect.right = width + extend; | ddraw.rect.right = width; |
| ddraw.rect.bottom = height; | ddraw.rect.bottom = height; |
| ddraw.scrn.left = np2oscfg.paddingx - extend; | ddraw.scrn.left = 0; |
| ddraw.scrn.top = np2oscfg.paddingy; | ddraw.scrn.top = 0; |
| } | } |
| else { | else { |
| if (np2oscfg.paddingy) { | |
| extend = min(scrnstat.extend, ddraw.extend); | |
| } | |
| scrnwidth = (height * multiple) >> 3; | scrnwidth = (height * multiple) >> 3; |
| scrnheight = (width * multiple) >> 3; | scrnheight = (width * multiple) >> 3; |
| ddraw.rect.right = height; | ddraw.rect.right = height; |
| ddraw.rect.bottom = width + extend; | ddraw.rect.bottom = width; |
| ddraw.scrn.left = np2oscfg.paddingx; | ddraw.scrn.left = 0; |
| ddraw.scrn.top = np2oscfg.paddingy - extend; | ddraw.scrn.top = 0; |
| } | } |
| ddraw.scrn.right = np2oscfg.paddingx + scrnwidth; | ddraw.scrn.right = scrnwidth; |
| ddraw.scrn.bottom = np2oscfg.paddingy + scrnheight; | ddraw.scrn.bottom = scrnheight; |
| setwindowsize(scrnwidth, scrnheight); | setwindowsize(scrnwidth, scrnheight); |
| setwindowsize(scrnwidth, scrnheight); | setwindowsize(scrnwidth, scrnheight); |
| } | } |
| scrnsurf.width = width; | scrnsurf.width = width; |
| scrnsurf.height = height; | scrnsurf.height = height; |
| scrnsurf.extend = extend; | |
| } | } |
| static void clearoutofrect(const RECT *target, const RECT *base) { | static void clearoutofrect(const RECT *target, const RECT *base) { |
| Line 267 static void make16mask(DWORD bmask, DWOR | Line 258 static void make16mask(DWORD bmask, DWOR |
| ddraw.r16b = sft; | ddraw.r16b = sft; |
| sft = 0; | sft = 0; |
| while((rmask & 0xffffff0) && (sft < 32)) { | while((rmask & 0xffffff00) && (sft < 32)) { |
| rmask >>= 1; | rmask >>= 1; |
| sft++; | sft++; |
| } | } |
| Line 275 static void make16mask(DWORD bmask, DWOR | Line 266 static void make16mask(DWORD bmask, DWOR |
| ddraw.l16r = sft; | ddraw.l16r = sft; |
| sft = 0; | sft = 0; |
| while((gmask & 0xffffff0) && (sft < 32)) { | while((gmask & 0xffffff00) && (sft < 32)) { |
| gmask >>= 1; | gmask >>= 1; |
| sft++; | sft++; |
| } | } |
| Line 291 void scrnmng_initialize(void) { | Line 282 void scrnmng_initialize(void) { |
| scrnstat.width = 640; | scrnstat.width = 640; |
| scrnstat.height = 400; | scrnstat.height = 400; |
| scrnstat.extend = 1; | scrnstat.extend = 0; |
| scrnstat.multiple = 8; | scrnstat.multiple = 8; |
| setwindowsize(640, 400); | setwindowsize(640, 400); |
| } | } |
| Line 414 BOOL scrnmng_create(BYTE scrnmode) { | Line 405 BOOL scrnmng_create(BYTE scrnmode) { |
| ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; | ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; |
| ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; | ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; |
| if (!(scrnmode & SCRNMODE_ROTATE)) { | if (!(scrnmode & SCRNMODE_ROTATE)) { |
| ddsd.dwWidth = 641; | ddsd.dwWidth = 640; |
| ddsd.dwHeight = 480; | ddsd.dwHeight = 480; |
| } | } |
| else { | else { |
| ddsd.dwWidth = 480; | ddsd.dwWidth = 480; |
| ddsd.dwHeight = 641; | ddsd.dwHeight = 640; |
| } | } |
| if (ddraw2->CreateSurface(&ddsd, &ddraw.backsurf, NULL) != DD_OK) { | if (ddraw2->CreateSurface(&ddsd, &ddraw.backsurf, NULL) != DD_OK) { |
| Line 519 void scrnmng_topwinui(void) { | Line 510 void scrnmng_topwinui(void) { |
| if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { | if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { |
| ddraw.primsurf->SetClipper(ddraw.clipper); | ddraw.primsurf->SetClipper(ddraw.clipper); |
| } | } |
| #ifndef __GNUC__ | |
| WINNLSEnableIME(hWndMain, TRUE); | WINNLSEnableIME(hWndMain, TRUE); |
| #endif | |
| } | } |
| } | } |
| void scrnmng_clearwinui(void) { | void scrnmng_clearwinui(void) { |
| if ((ddraw.cliping > 0) && (!(--ddraw.cliping))) { | if ((ddraw.cliping > 0) && (!(--ddraw.cliping))) { |
| #ifndef __GNUC__ | |
| WINNLSEnableIME(hWndMain, FALSE); | WINNLSEnableIME(hWndMain, FALSE); |
| #endif | |
| if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { | if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { |
| ddraw.primsurf->SetClipper(0); | ddraw.primsurf->SetClipper(0); |
| } | } |
| Line 545 void scrnmng_setwidth(int posx, int widt | Line 540 void scrnmng_setwidth(int posx, int widt |
| void scrnmng_setextend(int extend) { | void scrnmng_setextend(int extend) { |
| scrnstat.extend = extend; | (void)extend; |
| renewalclientsize(); | |
| } | } |
| void scrnmng_setheight(int posy, int height) { | void scrnmng_setheight(int posy, int height) { |