cleanup win32 os detection
This commit is contained in:
@@ -2040,22 +2040,14 @@ _grValidateState()
|
||||
/* Check for alpha test optimization */
|
||||
if (NOTVALID(alphaMode) || NOTVALID(fbzMode) || NOTVALID(stencilMode)) {
|
||||
updateAlphaMode = FXTRUE;
|
||||
// KoolSmoky - need to recheck this.
|
||||
/*if((LOADARG(grAlphaBlendFunction, rgb_sf) == GR_BLEND_SRC_ALPHA) &&
|
||||
if((LOADARG(grAlphaBlendFunction, rgb_sf) == GR_BLEND_SRC_ALPHA) &&
|
||||
(LOADARG(grAlphaBlendFunction, rgb_df) == GR_BLEND_ONE_MINUS_SRC_ALPHA) &&
|
||||
(LOADARG(grAlphaBlendFunction, rgb_op) == GR_BLEND_OP_ADD) &&
|
||||
(LOADARG(grDepthMask, enable) == FXFALSE) &&
|
||||
((LOADARG(grStencilMask, value) == 0x00) ||
|
||||
(gc->state.grEnableArgs.stencil_mode == FXFALSE))) {*/
|
||||
if(LOADARG(grDepthMask, enable) == FXFALSE) {
|
||||
if((LOADARG(grAlphaBlendFunction, rgb_df) == GR_BLEND_ONE_MINUS_SRC_ALPHA) &&
|
||||
(LOADARG(grAlphaBlendFunction, rgb_op) == GR_BLEND_OP_ADD) &&
|
||||
(LOADARG(grDepthMask, enable) == FXFALSE) &&
|
||||
((LOADARG(grStencilMask, value) == 0x00) ||
|
||||
(gc->state.grEnableArgs.stencil_mode == FXFALSE))) {
|
||||
//GDBG_PRINTF("Alpha test optimization enabled.\n");
|
||||
alphaTestOptimization = FXTRUE;
|
||||
}
|
||||
(gc->state.grEnableArgs.stencil_mode == FXFALSE))) {
|
||||
//GDBG_PRINTF("Alpha test optimization enabled.\n");
|
||||
alphaTestOptimization = FXTRUE;
|
||||
} else {
|
||||
//GDBG_PRINTF("Alpha test optimization disabled.\n");
|
||||
}
|
||||
|
||||
@@ -2157,12 +2157,13 @@ struct _GlideRoot_s {
|
||||
} deviceArchProcs;
|
||||
|
||||
#if (GLIDE_PLATFORM & GLIDE_OS_WIN32)
|
||||
#define OS_WIN32_95 0
|
||||
#define OS_WIN32_98 1
|
||||
#define OS_WIN32_ME 2
|
||||
#define OS_WIN32_NT4 3
|
||||
#define OS_WIN32_2K 4
|
||||
#define OS_WIN32_XP 5
|
||||
#define OS_UNKNOWN 0
|
||||
#define OS_WIN32_95 1
|
||||
#define OS_WIN32_98 2
|
||||
#define OS_WIN32_ME 3
|
||||
#define OS_WIN32_NT4 4
|
||||
#define OS_WIN32_2K 5
|
||||
#define OS_WIN32_XP 6
|
||||
FxI32 OS;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1300,12 +1300,72 @@ _GlideInitEnvironment(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (GLIDE_PLATFORM & GLIDE_OS_WIN32)
|
||||
_GlideRoot.OS = hwcGetOS();
|
||||
#endif
|
||||
|
||||
/* dBorca - play safe */
|
||||
grErrorSetCallback(_grErrorDefaultCallback);
|
||||
|
||||
#if (GLIDE_PLATFORM & GLIDE_OS_WIN32)
|
||||
/* Detect Windows OS before we detect glide devices */
|
||||
{
|
||||
OSVERSIONINFO ovi;
|
||||
|
||||
ovi.dwOSVersionInfoSize = sizeof ( ovi );
|
||||
GetVersionEx ( &ovi );
|
||||
|
||||
/*XXX: [koolsmoky] I'm too lazy, set default as winxp */
|
||||
_GlideRoot.OS = OS_WIN32_XP/*OS_UNKNOWN*/;
|
||||
|
||||
if (ovi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
|
||||
if(ovi.dwMajorVersion == 4) {
|
||||
if (ovi.dwMinorVersion >= 90) {
|
||||
_GlideRoot.OS = OS_WIN32_ME;
|
||||
} else if (ovi.dwMinorVersion >= 10) {
|
||||
_GlideRoot.OS = OS_WIN32_98;
|
||||
} else {
|
||||
_GlideRoot.OS = OS_WIN32_95;
|
||||
}
|
||||
}
|
||||
} else if (ovi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
|
||||
if(ovi.dwMajorVersion == 4) {
|
||||
_GlideRoot.OS = OS_WIN32_NT4;
|
||||
} else if(ovi.dwMajorVersion == 5) {
|
||||
if (ovi.dwMinorVersion >= 1) {
|
||||
_GlideRoot.OS = OS_WIN32_XP;
|
||||
} else {
|
||||
_GlideRoot.OS = OS_WIN32_2K;
|
||||
}
|
||||
} else {
|
||||
_GlideRoot.OS = OS_WIN32_XP;
|
||||
}
|
||||
}
|
||||
|
||||
switch(_GlideRoot.OS) {
|
||||
case OS_WIN32_95:
|
||||
GDBG_INFO(80, "Detected Windows 95\n");
|
||||
break;
|
||||
case OS_WIN32_98:
|
||||
GDBG_INFO(80, "Detected Windows 98\n");
|
||||
break;
|
||||
case OS_WIN32_ME:
|
||||
GDBG_INFO(80, "Detected Windows Me\n");
|
||||
break;
|
||||
case OS_WIN32_NT4:
|
||||
GDBG_INFO(80, "Detected Windows NT 4.0\n");
|
||||
break;
|
||||
case OS_WIN32_2K:
|
||||
GDBG_INFO(80, "Detected Windows 2000\n");
|
||||
break;
|
||||
case OS_WIN32_XP:
|
||||
GDBG_INFO(80, "Detected Windows XP\n");
|
||||
break;
|
||||
default:
|
||||
GDBG_INFO(80, "Unknown Windows\n");
|
||||
break;
|
||||
}
|
||||
|
||||
/* Pass retrieved OS info into minihwc */
|
||||
hwcSetOSInfo(&_GlideRoot.OS);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* KoolSmoky - detect glide devices before we check for user
|
||||
** environment tweaks.
|
||||
@@ -1336,6 +1396,22 @@ _GlideInitEnvironment(void)
|
||||
/* Get CPU Info */
|
||||
_cpuid (&_GlideRoot.CPUType);
|
||||
|
||||
/* Check for vendor specific optimization cases */
|
||||
GDBG_INFO( 0," CPU Vendor: %s\n", _GlideRoot.CPUType.v_name);
|
||||
GDBG_INFO(80," MMX Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_MMX ? 'Y' : 'N');
|
||||
GDBG_INFO(80," SSE Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_SSE ? 'Y' : 'N');
|
||||
GDBG_INFO(80," SSE2 Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_SSE2 ? 'Y' : 'N');
|
||||
GDBG_INFO(80," 3DNow Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_3DNOW ? 'Y' : 'N');
|
||||
GDBG_INFO(80," MMX+ Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_MMXPLUS ? 'Y' : 'N');
|
||||
GDBG_INFO(80,"3DNow+ Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_3DNOWPLUS ? 'Y' : 'N');
|
||||
|
||||
/* No CPU Extensions Allowed */
|
||||
if (GLIDE_GETENV("FX_GLIDE_NO_CPU_EXTENSIONS", 0L))
|
||||
{
|
||||
_GlideRoot.CPUType.feature = _GlideRoot.CPUType.os_support = 0;
|
||||
GDBG_INFO(0,"CPU Extensions disabled\n");
|
||||
}
|
||||
|
||||
#if !DRI_BUILD
|
||||
/* Pass retrieved CPU Info into minihwc */
|
||||
hwcSetCPUInfo(&_GlideRoot.CPUType);
|
||||
@@ -1356,22 +1432,6 @@ _GlideInitEnvironment(void)
|
||||
_GlideRoot.deviceArchProcs.nullVertexListProcs = _vertexListProcs[ARRAY_LAST(_vertexListProcs)];
|
||||
_GlideRoot.deviceArchProcs.nullTexProcs = _texDownloadProcs + ARRAY_LAST(_texDownloadProcs);
|
||||
#undef ARRAY_LAST
|
||||
|
||||
/* Check for vendor specific optimization cases */
|
||||
GDBG_INFO( 0," CPU Vendor: %s\n", _GlideRoot.CPUType.v_name);
|
||||
GDBG_INFO(80," MMX Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_MMX ? 'Y' : 'N');
|
||||
GDBG_INFO(80," SSE Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_SSE ? 'Y' : 'N');
|
||||
GDBG_INFO(80," SSE2 Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_SSE2 ? 'Y' : 'N');
|
||||
GDBG_INFO(80," 3DNow Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_3DNOW ? 'Y' : 'N');
|
||||
GDBG_INFO(80," MMX+ Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_MMXPLUS ? 'Y' : 'N');
|
||||
GDBG_INFO(80,"3DNow+ Support: %c\n", _GlideRoot.CPUType.os_support&_CPU_FEATURE_3DNOWPLUS ? 'Y' : 'N');
|
||||
|
||||
/* No CPU Extensions Allowed */
|
||||
if (GLIDE_GETENV("FX_GLIDE_NO_CPU_EXTENSIONS", 0L))
|
||||
{
|
||||
_GlideRoot.CPUType.feature = _GlideRoot.CPUType.os_support = 0;
|
||||
GDBG_INFO(0,"CPU Extensions disabled\n");
|
||||
}
|
||||
|
||||
#if GL_MMX
|
||||
if (_GlideRoot.CPUType.os_support & _CPU_FEATURE_MMX) { /* check for MMX feature */
|
||||
|
||||
@@ -419,8 +419,8 @@ GR_EXT_ENTRY(grSurfaceReleaseContext, void , (GrContext_t ctx) )
|
||||
*/
|
||||
#if (GLIDE_OS & GLIDE_OS_WIN32)
|
||||
if ((_GlideRoot.OS == OS_WIN32_95) ||
|
||||
(_GlideRoot.OS == OS_WIN32_98) ||
|
||||
(_GlideRoot.OS == OS_WIN32_ME))
|
||||
(_GlideRoot.OS == OS_WIN32_98) ||
|
||||
(_GlideRoot.OS == OS_WIN32_ME))
|
||||
hwcUnmapMemory9x ( gc->bInfo );
|
||||
#endif
|
||||
|
||||
|
||||
@@ -982,6 +982,10 @@ static __inline int min (int x, int y)
|
||||
static hwcInfo hInfo;
|
||||
static _p_info *CPUInfo = NULL;
|
||||
|
||||
#if (GLIDE_PLATFORM & GLIDE_OS_WIN32)
|
||||
static FxI32 *OSInfo = NULL;
|
||||
#endif
|
||||
|
||||
#define MAX_ERROR_SIZE 1024
|
||||
static char errorString[MAX_ERROR_SIZE];
|
||||
static FxU32 fenceVar;
|
||||
@@ -1090,9 +1094,7 @@ static hwcBoardInfo *curBI = NULL;
|
||||
static void
|
||||
getRegPath(char *regpath)
|
||||
{
|
||||
FxI32 OS = hwcGetOS();
|
||||
|
||||
if (OS == OS_WIN32_NT4) {
|
||||
if ((FxI32)OSInfo == OS_WIN32_NT4) {
|
||||
HKEY hKey;
|
||||
DWORD type ;
|
||||
char strval[256];
|
||||
@@ -1120,7 +1122,7 @@ getRegPath(char *regpath)
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
} else if ((OS == OS_WIN32_2K) || (OS == OS_WIN32_XP)) {
|
||||
} else if (((FxI32)OSInfo == OS_WIN32_2K) || ((FxI32)OSInfo == OS_WIN32_XP)) {
|
||||
HKEY hKey;
|
||||
|
||||
GDBG_INFO(80, "getRegPath: get registry path on 2K/XP\n");
|
||||
@@ -1198,7 +1200,6 @@ hwcInit(FxU32 vID, FxU32 dID)
|
||||
EnumDisplayDevicesProc enumDisplayDevicesProc;
|
||||
int monitor;
|
||||
int num_monitor = 0; /* number of 3Dfx devices */
|
||||
FxI32 OS = hwcGetOS();
|
||||
|
||||
GDBG_INFO(80, "%s\n", FN_NAME);
|
||||
errorString[0] = '\0';
|
||||
@@ -1365,7 +1366,7 @@ hwcInit(FxU32 vID, FxU32 dID)
|
||||
data[num_monitor].dc = hdc;
|
||||
strcpy(data[num_monitor].DeviceName, DispDev.DeviceName);
|
||||
|
||||
if ( (OS == OS_WIN32_98) || (OS == OS_WIN32_ME) ) {
|
||||
if ( ((FxI32)OSInfo == OS_WIN32_98) || ((FxI32)OSInfo == OS_WIN32_ME) ) {
|
||||
strcpy(data[num_monitor].RegPath, DispDev.DeviceKey);
|
||||
} else {
|
||||
char *pdest;
|
||||
@@ -4232,9 +4233,9 @@ hwcInitVideo(hwcBoardInfo *bInfo, FxBool tiled, FxVideoTimingInfo *vidTiming,
|
||||
#ifdef HWC_EXT_INIT
|
||||
hwcExtRequest_t ctxReq;
|
||||
hwcExtResult_t ctxRes;
|
||||
FxI32 OS = hwcGetOS();
|
||||
#endif
|
||||
FxI32 useV56KdacFix = 2;
|
||||
FxI32 overlaymode;
|
||||
|
||||
{
|
||||
FxU32 refresh;
|
||||
@@ -4532,69 +4533,56 @@ hwcInitVideo(hwcBoardInfo *bInfo, FxBool tiled, FxVideoTimingInfo *vidTiming,
|
||||
}
|
||||
#endif
|
||||
|
||||
/* NOTE: This may over 'blur' the output, but we enable filtering if in fsaa even for 32bit color. */
|
||||
if (NULL == GETENV("SSTH3_OVERLAYMODE")) {
|
||||
/* We are in optimal mode by default */
|
||||
overlaymode = 1; /* We are in optimal mode by default */
|
||||
if (GETENV("SSTH3_OVERLAYMODE")) {
|
||||
overlaymode = atoi(GETENV("SSTH3_OVERLAYMODE"));
|
||||
}
|
||||
/* NOTE: Not sure if the hw handles this, but we enable filtering if in fsaa even for 32bit color. */
|
||||
switch(overlaymode) {
|
||||
default:
|
||||
case 1: /* Optimal */
|
||||
if(bpp == 32 &&
|
||||
!((useV56KdacFix != 0) && IS_NAPALM(bInfo->pciInfo.deviceID) && (bInfo->h3pixelSample > 1))) { /* 32bpp and not fsaa */
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
} else
|
||||
/* make sure that if 2x video mode or SLI mode is enabled, we use the 4x1 filter. */
|
||||
if((bInfo->vidInfo.xRes >= 1024) || /* can't tell the difference for resolutions larger than 1024*768 */
|
||||
(vidProcCfg & SST_VIDEO_2X_MODE_EN) ||
|
||||
(IS_NAPALM(bInfo->pciInfo.deviceID) && (bInfo->h3nwaySli > 1))) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_4X4;
|
||||
} else {
|
||||
/* make sure that if 2x video mode or SLI mode is enabled, we use the 4x1 filter. */
|
||||
if((bInfo->vidInfo.xRes >= 1024) || /* can't tell the difference for resolutions larger than 1024*768 */
|
||||
(vidProcCfg & SST_VIDEO_2X_MODE_EN) ||
|
||||
(IS_NAPALM(bInfo->pciInfo.deviceID) && (bInfo->h3nwaySli > 1))) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_4X4;
|
||||
} else {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_2X2;
|
||||
}
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_2X2;
|
||||
}
|
||||
} else {
|
||||
switch(atoi(GETENV("SSTH3_OVERLAYMODE"))) {
|
||||
default:
|
||||
case 1: /* Optimal */
|
||||
if(bpp == 32 &&
|
||||
!((useV56KdacFix != 0) && IS_NAPALM(bInfo->pciInfo.deviceID) && (bInfo->h3pixelSample > 1))) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
} else {
|
||||
if((bInfo->vidInfo.xRes >= 1024) ||
|
||||
(vidProcCfg & SST_VIDEO_2X_MODE_EN) ||
|
||||
(IS_NAPALM(bInfo->pciInfo.deviceID) && (bInfo->h3nwaySli > 1))) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_4X4;
|
||||
} else {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_2X2;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2: /* Normal */
|
||||
if(bpp == 32) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
} else {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_4X4;
|
||||
}
|
||||
break;
|
||||
case 3: /* High */
|
||||
if(bpp == 32) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
} else
|
||||
if((vidProcCfg & SST_VIDEO_2X_MODE_EN) ||
|
||||
(IS_NAPALM(bInfo->pciInfo.deviceID) && (bInfo->h3nwaySli > 1))) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_4X4;
|
||||
} else {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_2X2;
|
||||
}
|
||||
break;
|
||||
case 4: /* Very High */
|
||||
if(bpp == 32) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
} else {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_BILINEAR;
|
||||
}
|
||||
break;
|
||||
case -1: /* Disabled */
|
||||
/* use this just in case */
|
||||
break;
|
||||
case 2: /* Normal */
|
||||
if(bpp == 32) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
break;
|
||||
} else {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_4X4;
|
||||
}
|
||||
break;
|
||||
case 3: /* High */
|
||||
if(bpp == 32) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
} else
|
||||
if((vidProcCfg & SST_VIDEO_2X_MODE_EN) ||
|
||||
(IS_NAPALM(bInfo->pciInfo.deviceID) && (bInfo->h3nwaySli > 1))) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_4X4;
|
||||
} else {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_2X2;
|
||||
}
|
||||
break;
|
||||
case 4: /* Very High */
|
||||
if(bpp == 32) {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
} else {
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_BILINEAR;
|
||||
}
|
||||
break;
|
||||
case -1: /* Disabled */
|
||||
/* use this just in case */
|
||||
vidProcCfg |= SST_OVERLAY_FILTER_POINT;
|
||||
break;
|
||||
}
|
||||
|
||||
if (bInfo->h3pixelSample < 2)
|
||||
@@ -4621,7 +4609,8 @@ hwcInitVideo(hwcBoardInfo *bInfo, FxBool tiled, FxVideoTimingInfo *vidTiming,
|
||||
|
||||
/* set up desktop pixel format */
|
||||
/* Also turn off all filtering, as it seems to screw up multi-chip configs. */
|
||||
vidProcCfg &= ~(SST_DESKTOP_PIXEL_FORMAT|SST_OVERLAY_FILTER_MODE);
|
||||
/* [koolsmoky] Hmm, there seem to be no screw ups... */
|
||||
vidProcCfg &= ~(SST_DESKTOP_PIXEL_FORMAT/*|SST_OVERLAY_FILTER_MODE*/);
|
||||
switch(vidProcCfg & SST_OVERLAY_PIXEL_FORMAT) {
|
||||
case SST_OVERLAY_PIXEL_RGB32U:
|
||||
vidProcCfg |= SST_DESKTOP_PIXEL_RGB32;
|
||||
@@ -4774,9 +4763,9 @@ hwcInitVideo(hwcBoardInfo *bInfo, FxBool tiled, FxVideoTimingInfo *vidTiming,
|
||||
|
||||
GDBG_INFO(80, FN_NAME ": HWC_MINIVDD_HACK\n");
|
||||
|
||||
if ((OS == OS_WIN32_NT4) ||
|
||||
(OS == OS_WIN32_2K) ||
|
||||
(OS == OS_WIN32_XP))
|
||||
if (((FxI32)OSInfo == OS_WIN32_NT4) ||
|
||||
((FxI32)OSInfo == OS_WIN32_2K) ||
|
||||
((FxI32)OSInfo == OS_WIN32_XP))
|
||||
{
|
||||
FxU32 retVal = FXTRUE;
|
||||
ctxReq.which = HWCEXT_SLI_AA_REQUEST ;
|
||||
@@ -5439,10 +5428,6 @@ hwcRestoreVideo(hwcBoardInfo *bInfo)
|
||||
{
|
||||
#define FN_NAME "hwcRestoreVideo"
|
||||
|
||||
#ifdef HWC_EXT_INIT
|
||||
FxI32 OS = hwcGetOS();
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
hwcIdleHardwareWithTimeout(bInfo);
|
||||
|
||||
@@ -5467,9 +5452,9 @@ hwcRestoreVideo(hwcBoardInfo *bInfo)
|
||||
|
||||
GDBG_INFO(80, FN_NAME ": HWC_MINIVDD_HACK\n");
|
||||
|
||||
if ((OS == OS_WIN32_NT4) ||
|
||||
(OS == OS_WIN32_2K) ||
|
||||
(OS == OS_WIN32_XP))
|
||||
if (((FxI32)OSInfo == OS_WIN32_NT4) ||
|
||||
((FxI32)OSInfo == OS_WIN32_2K) ||
|
||||
((FxI32)OSInfo == OS_WIN32_XP))
|
||||
{
|
||||
hwcExtRequest_t ctxReq ;
|
||||
hwcExtResult_t ctxRes ;
|
||||
@@ -8961,7 +8946,6 @@ hwcShareContextData(hwcBoardInfo *bInfo, FxU32 **data)
|
||||
#if HWC_EXT_INIT
|
||||
hwcExtRequest_t ctxReq;
|
||||
hwcExtResult_t ctxRes;
|
||||
FxI32 OS = hwcGetOS();
|
||||
|
||||
GDBG_INFO(80, FN_NAME "\n");
|
||||
|
||||
@@ -8969,9 +8953,9 @@ hwcShareContextData(hwcBoardInfo *bInfo, FxU32 **data)
|
||||
|
||||
if( HWCEXT_PROTOCOL( bInfo->boardNum ) )
|
||||
{
|
||||
if ((OS == OS_WIN32_NT4) ||
|
||||
(OS == OS_WIN32_2K) ||
|
||||
(OS == OS_WIN32_XP))
|
||||
if (((FxI32)OSInfo == OS_WIN32_NT4) ||
|
||||
((FxI32)OSInfo == OS_WIN32_2K) ||
|
||||
((FxI32)OSInfo == OS_WIN32_XP))
|
||||
{
|
||||
hwcExtRequest_t
|
||||
ctxReq;
|
||||
@@ -9139,12 +9123,11 @@ hwcUnmapMemory()
|
||||
FxU32 i;
|
||||
hwcExtRequest_t ctxReq;
|
||||
hwcExtResult_t ctxRes;
|
||||
FxI32 OS = hwcGetOS();
|
||||
|
||||
if ( curBI ) {
|
||||
if ((OS == OS_WIN32_NT4) ||
|
||||
(OS == OS_WIN32_2K) ||
|
||||
(OS == OS_WIN32_XP))
|
||||
if (((FxI32)OSInfo == OS_WIN32_NT4) ||
|
||||
((FxI32)OSInfo == OS_WIN32_2K) ||
|
||||
((FxI32)OSInfo == OS_WIN32_XP))
|
||||
{
|
||||
hwcExtRequest_t
|
||||
ctxReq;
|
||||
@@ -9677,70 +9660,15 @@ static FxI32 valarray[SST_SIPROCESS_OSC_CNTR + 1]; // is this how you do an
|
||||
}
|
||||
|
||||
void
|
||||
hwcSetCPUInfo(_p_info *CPUInfo_)
|
||||
hwcSetCPUInfo(_p_info *cpuInfo)
|
||||
{
|
||||
CPUInfo = CPUInfo_;
|
||||
CPUInfo = cpuInfo;
|
||||
} /* hwcSetCPUInfo */
|
||||
|
||||
#ifdef __WIN32__
|
||||
FxI32
|
||||
hwcGetOS()
|
||||
#if (GLIDE_PLATFORM & GLIDE_OS_WIN32)
|
||||
void
|
||||
hwcSetOSInfo(FxI32 *osInfo)
|
||||
{
|
||||
static FxI32 OS = -1;
|
||||
OSVERSIONINFO ovi;
|
||||
|
||||
if ( OS != -1 ) return OS;
|
||||
|
||||
ovi.dwOSVersionInfoSize = sizeof ( ovi );
|
||||
GetVersionEx ( &ovi );
|
||||
|
||||
if (ovi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
|
||||
if(ovi.dwMajorVersion == 4) {
|
||||
if (ovi.dwMinorVersion >= 90) {
|
||||
OS = OS_WIN32_ME;
|
||||
} else if (ovi.dwMinorVersion >= 10) {
|
||||
OS = OS_WIN32_98;
|
||||
} else {
|
||||
OS = OS_WIN32_95;
|
||||
}
|
||||
}
|
||||
} else if (ovi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
|
||||
if(ovi.dwMajorVersion == 4) {
|
||||
OS = OS_WIN32_NT4;
|
||||
} else if(ovi.dwMajorVersion >= 5) {
|
||||
if (ovi.dwMinorVersion >= 1) {
|
||||
OS = OS_WIN32_XP;
|
||||
} else {
|
||||
OS = OS_WIN32_2K;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch(OS) {
|
||||
case OS_WIN32_95:
|
||||
GDBG_INFO(80, "hwcGetOS: OS = win95\n");
|
||||
break;
|
||||
case OS_WIN32_98:
|
||||
GDBG_INFO(80, "hwcGetOS: OS = win98\n");
|
||||
break;
|
||||
case OS_WIN32_ME:
|
||||
GDBG_INFO(80, "hwcGetOS: OS = winme\n");
|
||||
break;
|
||||
case OS_WIN32_NT4:
|
||||
GDBG_INFO(80, "hwcGetOS: OS = winnt4.0\n");
|
||||
break;
|
||||
case OS_WIN32_2K:
|
||||
GDBG_INFO(80, "hwcGetOS: OS = win2k\n");
|
||||
break;
|
||||
case OS_WIN32_XP:
|
||||
GDBG_INFO(80, "hwcGetOS: OS = winxp\n");
|
||||
break;
|
||||
default:
|
||||
GDBG_INFO(80, "hwcGetOS: OS = unknown\n");
|
||||
break;
|
||||
}
|
||||
|
||||
return OS;
|
||||
#undef FN_NAME
|
||||
} /* hwcGetOS */
|
||||
#endif /* __WIN32__ */
|
||||
OSInfo = osInfo;
|
||||
} /* hwcSetOSInfo */
|
||||
#endif
|
||||
|
||||
@@ -617,16 +617,6 @@ hwcCheckMemSize(hwcBoardInfo *bInfo, FxU32 xres, FxU32 yres, FxU32 nColBuffers,
|
||||
FxU32 nAuxBuffers, FxBool tiled);
|
||||
|
||||
#ifdef __WIN32__
|
||||
|
||||
#define OS_WIN32_95 0
|
||||
#define OS_WIN32_98 1
|
||||
#define OS_WIN32_ME 2
|
||||
#define OS_WIN32_NT4 3
|
||||
#define OS_WIN32_2K 4
|
||||
#define OS_WIN32_XP 5
|
||||
FxI32
|
||||
hwcGetOS();
|
||||
|
||||
FxU32
|
||||
hwcAllocWinContext(hwcBoardInfo* bInfo);
|
||||
|
||||
@@ -765,6 +755,18 @@ extern void hwcAAReadRegion(hwcBoardInfo *bInfo, FxU32 colBufNum,
|
||||
|
||||
void hwcCalcSipValue(hwcBoardInfo *bInfo, FxU32 chipNum, FxU32 *nandChain, FxU32 *norChain);
|
||||
|
||||
void hwcSetCPUInfo (_p_info *CPUInfo_);
|
||||
void hwcSetCPUInfo (_p_info *cpuInfo);
|
||||
|
||||
#if (GLIDE_PLATFORM & GLIDE_OS_WIN32)
|
||||
/* values must be in sync with fxglide.h */
|
||||
#define OS_UNKNOWN 0
|
||||
#define OS_WIN32_95 1
|
||||
#define OS_WIN32_98 2
|
||||
#define OS_WIN32_ME 3
|
||||
#define OS_WIN32_NT4 4
|
||||
#define OS_WIN32_2K 5
|
||||
#define OS_WIN32_XP 6
|
||||
void hwcSetOSInfo(FxI32 *osInfo);
|
||||
#endif
|
||||
|
||||
#endif /* MINIHWC_H not defined */
|
||||
|
||||
@@ -229,16 +229,16 @@ setVideoMode( void *hwnd, int xRes, int yRes, int h3pixelSize, int refresh, void
|
||||
/* KoolSmoky - Hack for win95. make a disp struct if we don't get anything
|
||||
* from EnumDisplaySettings.
|
||||
*/
|
||||
if ((devMode.dmBitsPerPel < 8UL) || (devMode.dmBitsPerPel > 32UL) || (hwcGetOS() == OS_WIN32_95)) {
|
||||
if ((devMode.dmBitsPerPel < 8UL) || (devMode.dmBitsPerPel > 32UL)) {
|
||||
devMode.dmSize = sizeof(DEVMODE);
|
||||
devMode.dmPelsWidth = GetSystemMetrics(SM_CXSCREEN);
|
||||
devMode.dmPelsHeight = GetSystemMetrics(SM_CYSCREEN);
|
||||
devMode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
|
||||
{
|
||||
{
|
||||
HDC hdc = GetDC(NULL); /* grab DC of desktop */
|
||||
devMode.dmBitsPerPel = (DWORD)GetDeviceCaps(hdc, BITSPIXEL) ;
|
||||
ReleaseDC(NULL, hdc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GDBG_INFO(80, "DeviceName: %s Display mode: %dx%dx%dbpp!\n", devicename, devMode.dmPelsWidth, devMode.dmPelsHeight, devMode.dmBitsPerPel);
|
||||
|
||||
Reference in New Issue
Block a user