Diff for /np2/win9x/scrnmng.cpp between versions 1.17 and 1.21

version 1.17, 2004/05/23 15:01:45 version 1.21, 2005/05/14 19:38:59
Line 37  typedef struct { Line 37  typedef struct {
         UINT8                           r16b;          UINT8                           r16b;
         UINT8                           l16r;          UINT8                           l16r;
         UINT8                           l16g;          UINT8                           l16g;
         BYTE                            menudisp;          UINT8                           menudisp;
         int                                     menusize;          int                                     menusize;
         RECT                            scrn;          RECT                            scrn;
         RECT                            rect;          RECT                            rect;
Line 297  static void paletteset(void) { Line 297  static void paletteset(void) {
   
 static void make16mask(DWORD bmask, DWORD rmask, DWORD gmask) {  static void make16mask(DWORD bmask, DWORD rmask, DWORD gmask) {
   
         BYTE    sft;          UINT8   sft;
   
         sft = 0;          sft = 0;
         while((!(bmask & 0x80)) && (sft < 32)) {          while((!(bmask & 0x80)) && (sft < 32)) {
                 bmask <<= 1;                  bmask <<= 1;
                 sft++;                  sft++;
         }          }
         ddraw.pal16mask.p.b = (BYTE)bmask;          ddraw.pal16mask.p.b = (UINT8)bmask;
         ddraw.r16b = sft;          ddraw.r16b = sft;
   
         sft = 0;          sft = 0;
Line 312  static void make16mask(DWORD bmask, DWOR Line 312  static void make16mask(DWORD bmask, DWOR
                 rmask >>= 1;                  rmask >>= 1;
                 sft++;                  sft++;
         }          }
         ddraw.pal16mask.p.r = (BYTE)rmask;          ddraw.pal16mask.p.r = (UINT8)rmask;
         ddraw.l16r = sft;          ddraw.l16r = sft;
   
         sft = 0;          sft = 0;
Line 320  static void make16mask(DWORD bmask, DWOR Line 320  static void make16mask(DWORD bmask, DWOR
                 gmask >>= 1;                  gmask >>= 1;
                 sft++;                  sft++;
         }          }
         ddraw.pal16mask.p.g = (BYTE)gmask;          ddraw.pal16mask.p.g = (UINT8)gmask;
         ddraw.l16g = sft;          ddraw.l16g = sft;
 }  }
   
Line 336  void scrnmng_initialize(void) { Line 336  void scrnmng_initialize(void) {
         setwindowsize(hWndMain, 640, 400);          setwindowsize(hWndMain, 640, 400);
 }  }
   
 BOOL scrnmng_create(BYTE scrnmode) {  BRESULT scrnmng_create(UINT8 scrnmode) {
   
         DWORD                   winstyle;          DWORD                   winstyle;
         DWORD                   winstyleex;          DWORD                   winstyleex;
Line 391  BOOL scrnmng_create(BYTE scrnmode) { Line 391  BOOL scrnmng_create(BYTE scrnmode) {
                 ddraw2->SetCooperativeLevel(hWndMain,                  ddraw2->SetCooperativeLevel(hWndMain,
                                                                                 DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);                                                                                  DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
                 height = (np2oscfg.force400)?400:480;                  height = (np2oscfg.force400)?400:480;
                   bitcolor = np2oscfg.fscrnbpp;
                   if (bitcolor == 0) {
 #if !defined(SUPPORT_PC9821)  #if !defined(SUPPORT_PC9821)
                 bitcolor = (scrnmode & SCRNMODE_HIGHCOLOR)?16:8;                          bitcolor = (scrnmode & SCRNMODE_HIGHCOLOR)?16:8;
 #else  #else
                 bitcolor = 16;                          bitcolor = 16;
 #endif  #endif
                   }
                 if (ddraw2->SetDisplayMode(640, height, bitcolor, 0, 0) != DD_OK) {                  if (ddraw2->SetDisplayMode(640, height, bitcolor, 0, 0) != DD_OK) {
                         goto scre_err;                          goto scre_err;
                 }                  }
Line 428  BOOL scrnmng_create(BYTE scrnmode) { Line 431  BOOL scrnmng_create(BYTE scrnmode) {
                 }                  }
                 if (bitcolor == 8) {                  if (bitcolor == 8) {
                         paletteinit();                          paletteinit();
                         dclock_init8();                  }
                   else if (bitcolor == 16) {
                           make16mask(ddpf.dwBBitMask, ddpf.dwRBitMask, ddpf.dwGBitMask);
                   }
                   else if (bitcolor == 24) {
                   }
                   else if (bitcolor == 32) {
                 }                  }
                 else {                  else {
                         make16mask(ddpf.dwBBitMask, ddpf.dwRBitMask,                          goto scre_err;
                                                                                                                 ddpf.dwGBitMask);  
                         dclock_init16();  
                 }                  }
                   dclock_palset(bitcolor);
   
                 ZeroMemory(&ddsd, sizeof(ddsd));                  ZeroMemory(&ddsd, sizeof(ddsd));
                 ddsd.dwSize = sizeof(ddsd);                  ddsd.dwSize = sizeof(ddsd);
                 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;
                 ddsd.dwWidth = DCLOCK_X;                  ddsd.dwWidth = DCLOCK_WIDTH;
                 ddsd.dwHeight = DCLOCK_Y;                  ddsd.dwHeight = DCLOCK_HEIGHT;
                 ddraw2->CreateSurface(&ddsd, &ddraw.clocksurf, NULL);                  ddraw2->CreateSurface(&ddsd, &ddraw.clocksurf, NULL);
                 dclock_reset();                  dclock_reset();
         }          }
Line 485  BOOL scrnmng_create(BYTE scrnmode) { Line 493  BOOL scrnmng_create(BYTE scrnmode) {
                 }                  }
                 bitcolor = ddpf.dwRGBBitCount;                  bitcolor = ddpf.dwRGBBitCount;
                 if (bitcolor == 8) {                  if (bitcolor == 8) {
 #if !defined(SUPPORT_PC9821)  
                         paletteinit();                          paletteinit();
 #else  
                         goto scre_err;  
 #endif  
                 }                  }
                 else if (bitcolor == 16) {                  else if (bitcolor == 16) {
                         make16mask(ddpf.dwBBitMask, ddpf.dwRBitMask, ddpf.dwGBitMask);                          make16mask(ddpf.dwBBitMask, ddpf.dwRBitMask, ddpf.dwGBitMask);
Line 575  RGB16 scrnmng_makepal16(RGB32 pal32) { Line 579  RGB16 scrnmng_makepal16(RGB32 pal32) {
   
 void scrnmng_fullscrnmenu(int y) {  void scrnmng_fullscrnmenu(int y) {
   
         BYTE    menudisp;          UINT8   menudisp;
   
         if (scrnmng.flag & SCRNFLAG_FULLSCREEN) {          if (scrnmng.flag & SCRNFLAG_FULLSCREEN) {
                 menudisp = ((y >= 0) && (y < ddraw.menusize))?1:0;                  menudisp = ((y >= 0) && (y < ddraw.menusize))?1:0;
Line 668  const SCRNSURF *scrnmng_surflock(void) { Line 672  const SCRNSURF *scrnmng_surflock(void) {
                 return(NULL);                  return(NULL);
         }          }
         if (!(ddraw.scrnmode & SCRNMODE_ROTATE)) {          if (!(ddraw.scrnmode & SCRNMODE_ROTATE)) {
                 scrnsurf.ptr = (BYTE *)destscrn.lpSurface;                  scrnsurf.ptr = (UINT8 *)destscrn.lpSurface;
                 scrnsurf.xalign = scrnsurf.bpp >> 3;                  scrnsurf.xalign = scrnsurf.bpp >> 3;
                 scrnsurf.yalign = destscrn.lPitch;                  scrnsurf.yalign = destscrn.lPitch;
         }          }
         else if (!(ddraw.scrnmode & SCRNMODE_ROTATEDIR)) {          else if (!(ddraw.scrnmode & SCRNMODE_ROTATEDIR)) {
                 scrnsurf.ptr = (BYTE *)destscrn.lpSurface;                  scrnsurf.ptr = (UINT8 *)destscrn.lpSurface;
                 scrnsurf.ptr += (scrnsurf.width - 1) * destscrn.lPitch;                  scrnsurf.ptr += (scrnsurf.width - 1) * destscrn.lPitch;
                 scrnsurf.xalign = 0 - destscrn.lPitch;                  scrnsurf.xalign = 0 - destscrn.lPitch;
                 scrnsurf.yalign = scrnsurf.bpp >> 3;                  scrnsurf.yalign = scrnsurf.bpp >> 3;
         }          }
         else {          else {
                 scrnsurf.ptr = (BYTE *)destscrn.lpSurface;                  scrnsurf.ptr = (UINT8 *)destscrn.lpSurface;
                 scrnsurf.ptr += (scrnsurf.height - 1) * (scrnsurf.bpp >> 3);                  scrnsurf.ptr += (scrnsurf.height - 1) * (scrnsurf.bpp >> 3);
                 scrnsurf.xalign = destscrn.lPitch;                  scrnsurf.xalign = destscrn.lPitch;
                 scrnsurf.yalign = 0 - (scrnsurf.bpp >> 3);                  scrnsurf.yalign = 0 - (scrnsurf.bpp >> 3);
Line 753  void scrnmng_setmultiple(int multiple) { Line 757  void scrnmng_setmultiple(int multiple) {
         }          }
 }  }
   
 static const RECT rectclk = {0, 0, DCLOCK_X, DCLOCK_Y};  static const RECT rectclk = {0, 0, DCLOCK_WIDTH, DCLOCK_HEIGHT};
   
 void scrnmng_dispclock(void) {  void scrnmng_dispclock(void) {
   
         DDSURFACEDESC   dest;          DDSURFACEDESC   dest;
                                                                                                                                 // ver0.26                                                                                                                                  // ver0.26
         if ((ddraw.clocksurf) &&          if ((ddraw.clocksurf) &&
                 (ddraw.scrn.top >= DCLOCK_Y) && (dclock_disp())) {                  (ddraw.scrn.top >= DCLOCK_HEIGHT) && (dclock_disp())) {
                 dclock_make();                  dclock_make();
                 ZeroMemory(&dest, sizeof(dest));                  ZeroMemory(&dest, sizeof(dest));
                 dest.dwSize = sizeof(dest);                  dest.dwSize = sizeof(dest);
Line 768  void scrnmng_dispclock(void) { Line 772  void scrnmng_dispclock(void) {
                         if (scrnmng.bpp == 8) {                          if (scrnmng.bpp == 8) {
                                 dclock_out8(dest.lpSurface, dest.lPitch);                                  dclock_out8(dest.lpSurface, dest.lPitch);
                         }                          }
                         else {                          else if (scrnmng.bpp == 16) {
                                 dclock_out16(dest.lpSurface, dest.lPitch);                                  dclock_out16(dest.lpSurface, dest.lPitch);
                         }                          }
                           else if (scrnmng.bpp == 24) {
                                   dclock_out24(dest.lpSurface, dest.lPitch);
                           }
                           else if (scrnmng.bpp == 32) {
                                   dclock_out32(dest.lpSurface, dest.lPitch);
                           }
                         ddraw.clocksurf->Unlock(NULL);                          ddraw.clocksurf->Unlock(NULL);
                 }                  }
                 if (ddraw.primsurf->BltFast(640 - DCLOCK_X - 4,                  if (ddraw.primsurf->BltFast(640 - DCLOCK_WIDTH - 4,
                                                                         ddraw.height - DCLOCK_Y,                                                                           ddraw.height - DCLOCK_HEIGHT,
                                                                         ddraw.clocksurf, (RECT *)&rectclk,                                                                          ddraw.clocksurf, (RECT *)&rectclk,
                                                                         DDBLTFAST_WAIT) == DDERR_SURFACELOST) {                                                                          DDBLTFAST_WAIT) == DDERR_SURFACELOST) {
                         ddraw.primsurf->Restore();                          ddraw.primsurf->Restore();

Removed from v.1.17  
changed lines
  Added in v.1.21


RetroPC.NET-CVS <cvs@retropc.net>