Diff for /np2/win9x/scrnmng.cpp between versions 1.19 and 1.24

version 1.19, 2005/02/07 14:46:14 version 1.24, 2007/01/08 07:52:01
Line 9 Line 9
 #include        "mousemng.h"  #include        "mousemng.h"
 #include        "scrnmng.h"  #include        "scrnmng.h"
 #include        "sysmng.h"  #include        "sysmng.h"
 #include        "dclock.h"  
 #include        "menu.h"  #include        "menu.h"
 #include        "np2class.h"  #include        "np2class.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "scrndraw.h"  #include        "scrndraw.h"
 #include        "palettes.h"  #include        "palettes.h"
   
   #if defined(SUPPORT_DCLOCK)
   #include        "dclock.h"
   #endif
   
 extern WINLOCEX np2_winlocexallwin(HWND base);  extern WINLOCEX np2_winlocexallwin(HWND base);
   
Line 25  typedef struct { Line 27  typedef struct {
         LPDIRECTDRAW2           ddraw2;          LPDIRECTDRAW2           ddraw2;
         LPDIRECTDRAWSURFACE     primsurf;          LPDIRECTDRAWSURFACE     primsurf;
         LPDIRECTDRAWSURFACE     backsurf;          LPDIRECTDRAWSURFACE     backsurf;
   #if defined(SUPPORT_DCLOCK)
         LPDIRECTDRAWSURFACE     clocksurf;          LPDIRECTDRAWSURFACE     clocksurf;
   #endif
         LPDIRECTDRAWCLIPPER     clipper;          LPDIRECTDRAWCLIPPER     clipper;
         LPDIRECTDRAWPALETTE     palette;          LPDIRECTDRAWPALETTE     palette;
         UINT                            scrnmode;          UINT                            scrnmode;
Line 41  typedef struct { Line 45  typedef struct {
         int                                     menusize;          int                                     menusize;
         RECT                            scrn;          RECT                            scrn;
         RECT                            rect;          RECT                            rect;
           RECT                            scrnclip;
           RECT                            rectclip;
         PALETTEENTRY            pal[256];          PALETTEENTRY            pal[256];
 } DDRAW;  } DDRAW;
   
Line 125  static void renewalclientsize(BOOL winlo Line 131  static void renewalclientsize(BOOL winlo
         int                     width;          int                     width;
         int                     height;          int                     height;
         int                     extend;          int                     extend;
           UINT            fscrnmod;
         int                     multiple;          int                     multiple;
         int                     scrnwidth;          int                     scrnwidth;
         int                     scrnheight;          int                     scrnheight;
           int                     tmpcy;
         WINLOCEX        wlex;          WINLOCEX        wlex;
   
         width = min(scrnstat.width, ddraw.width);          width = min(scrnstat.width, ddraw.width);
Line 138  static void renewalclientsize(BOOL winlo Line 146  static void renewalclientsize(BOOL winlo
         if (ddraw.scrnmode & SCRNMODE_FULLSCREEN) {          if (ddraw.scrnmode & SCRNMODE_FULLSCREEN) {
                 ddraw.rect.right = width;                  ddraw.rect.right = width;
                 ddraw.rect.bottom = height;                  ddraw.rect.bottom = height;
                 ddraw.scrn.left = (ddraw.width - width) / 2;                  scrnwidth = width;
                 ddraw.scrn.top = (ddraw.height - height) / 2;                  scrnheight = height;
                 ddraw.scrn.right = ddraw.scrn.left + width;                  fscrnmod = np2oscfg.fscrnmod & FSCRNMOD_ASPECTMASK;
                 ddraw.scrn.bottom = ddraw.scrn.top + height;                  switch(fscrnmod) {
                           default:
                           case FSCRNMOD_NORESIZE:
                                   break;
   
                           case FSCRNMOD_ASPECTFIX8:
                                   scrnwidth = (ddraw.width << 3) / width;
                                   scrnheight = (ddraw.height << 3) / height;
                                   multiple = min(scrnwidth, scrnheight);
                                   scrnwidth = (width * multiple) >> 3;
                                   scrnheight = (height * multiple) >> 3;
                                   break;
   
                           case FSCRNMOD_ASPECTFIX:
                                   scrnwidth = ddraw.width;
                                   scrnheight = (scrnwidth * height) / width;
                                   if (scrnheight >= ddraw.height) {
                                           scrnheight = ddraw.height;
                                           scrnwidth = (scrnheight * width) / height;
                                   }
                                   break;
   
                           case FSCRNMOD_LARGE:
                                   scrnwidth = ddraw.width;
                                   scrnheight = ddraw.height;
                                   break;
                   }
                   ddraw.scrn.left = (ddraw.width - scrnwidth) / 2;
                   ddraw.scrn.top = (ddraw.height - scrnheight) / 2;
                   ddraw.scrn.right = ddraw.scrn.left + scrnwidth;
                   ddraw.scrn.bottom = ddraw.scrn.top + scrnheight;
   
                   // メニュー表示時の描画領域
                   ddraw.rectclip = ddraw.rect;
                   ddraw.scrnclip = ddraw.scrn;
                   if (ddraw.scrnclip.top < ddraw.menusize) {
                           ddraw.scrnclip.top = ddraw.menusize;
                           tmpcy = ddraw.height - ddraw.menusize;
                           if (scrnheight > tmpcy) {
                                   switch(fscrnmod) {
                                           default:
                                           case FSCRNMOD_NORESIZE:
                                                   tmpcy = min(tmpcy, height);
                                                   ddraw.rectclip.bottom = tmpcy;
                                                   break;
   
                                           case FSCRNMOD_ASPECTFIX8:
                                           case FSCRNMOD_ASPECTFIX:
                                                   ddraw.rectclip.bottom = (tmpcy * height) / scrnheight;
                                                   break;
   
                                           case FSCRNMOD_LARGE:
                                                   break;
                                   }
                           }
                           ddraw.scrnclip.bottom = ddraw.menusize + tmpcy;
                   }
         }          }
         else {          else {
                 multiple = scrnstat.multiple;                  multiple = scrnstat.multiple;
Line 169  static void renewalclientsize(BOOL winlo Line 233  static void renewalclientsize(BOOL winlo
                 }                  }
                 ddraw.scrn.right = np2oscfg.paddingx + scrnwidth;                  ddraw.scrn.right = np2oscfg.paddingx + scrnwidth;
                 ddraw.scrn.bottom = np2oscfg.paddingy + scrnheight;                  ddraw.scrn.bottom = np2oscfg.paddingy + scrnheight;
   
                 wlex = NULL;                  wlex = NULL;
                 if (winloc) {                  if (winloc) {
                         wlex = np2_winlocexallwin(hWndMain);                          wlex = np2_winlocexallwin(hWndMain);
Line 250  static void clearoutscreen(void) { Line 315  static void clearoutscreen(void) {
 static void clearoutfullscreen(void) {  static void clearoutfullscreen(void) {
   
         RECT    base;          RECT    base;
   const RECT      *scrn;
   
         base.left = 0;          base.left = 0;
         base.top = (GetWindowLong(hWndMain, NP2GWL_HMENU))?0:ddraw.menusize;          base.top = 0;
         base.right = ddraw.width;                       // (+ ddraw.extend)          base.right = ddraw.width;
         base.bottom = ddraw.height;          base.bottom = ddraw.height;
         clearoutofrect(&ddraw.scrn, &base);          if (GetWindowLongPtr(hWndMain, NP2GWLP_HMENU)) {
                   scrn = &ddraw.scrn;
                   base.top = 0;
           }
           else {
                   scrn = &ddraw.scrnclip;
                   base.top = ddraw.menusize;
           }
           clearoutofrect(scrn, &base);
   #if defined(SUPPORT_DCLOCK)
         dclock_redraw();          dclock_redraw();
   #endif
 }  }
   
 static void paletteinit(void) {  static void paletteinit(void) {
Line 267  static void paletteinit(void) { Line 343  static void paletteinit(void) {
         hdc = GetDC(hWndMain);          hdc = GetDC(hWndMain);
         GetSystemPaletteEntries(hdc, 0, 256, ddraw.pal);          GetSystemPaletteEntries(hdc, 0, 256, ddraw.pal);
         ReleaseDC(hWndMain, hdc);          ReleaseDC(hWndMain, hdc);
   #if defined(SUPPORT_DCLOCK)
         for (i=0; i<4; i++) {          for (i=0; i<4; i++) {
                 ddraw.pal[i+START_PALORG].peBlue = dclockpal.pal32[i].p.b;                  ddraw.pal[i+START_PALORG].peBlue = dclockpal.pal32[i].p.b;
                 ddraw.pal[i+START_PALORG].peRed = dclockpal.pal32[i].p.r;                  ddraw.pal[i+START_PALORG].peRed = dclockpal.pal32[i].p.r;
                 ddraw.pal[i+START_PALORG].peGreen = dclockpal.pal32[i].p.g;                  ddraw.pal[i+START_PALORG].peGreen = dclockpal.pal32[i].p.g;
                 ddraw.pal[i+START_PALORG].peFlags = PC_RESERVED | PC_NOCOLLAPSE;                  ddraw.pal[i+START_PALORG].peFlags = PC_RESERVED | PC_NOCOLLAPSE;
         }          }
   #endif
         for (i=0; i<NP2PAL_TOTAL; i++) {          for (i=0; i<NP2PAL_TOTAL; i++) {
                 ddraw.pal[i+START_PAL].peFlags = PC_RESERVED | PC_NOCOLLAPSE;                  ddraw.pal[i+START_PAL].peFlags = PC_RESERVED | PC_NOCOLLAPSE;
         }          }
Line 336  void scrnmng_initialize(void) { Line 414  void scrnmng_initialize(void) {
         setwindowsize(hWndMain, 640, 400);          setwindowsize(hWndMain, 640, 400);
 }  }
   
 BOOL scrnmng_create(UINT8 scrnmode) {  BRESULT scrnmng_create(UINT8 scrnmode) {
   
         DWORD                   winstyle;          DWORD                   winstyle;
         DWORD                   winstyleex;          DWORD                   winstyleex;
Line 344  BOOL scrnmng_create(UINT8 scrnmode) { Line 422  BOOL scrnmng_create(UINT8 scrnmode) {
         LPDIRECTDRAW2   ddraw2;          LPDIRECTDRAW2   ddraw2;
         DDSURFACEDESC   ddsd;          DDSURFACEDESC   ddsd;
         DDPIXELFORMAT   ddpf;          DDPIXELFORMAT   ddpf;
         UINT                    bitcolor;          int                             width;
         int                             height;          int                             height;
           UINT                    bitcolor;
           UINT                    fscrnmod;
           DEVMODE                 devmode;
   
         ZeroMemory(&scrnmng, sizeof(scrnmng));          ZeroMemory(&scrnmng, sizeof(scrnmng));
         winstyle = GetWindowLong(hWndMain, GWL_STYLE);          winstyle = GetWindowLong(hWndMain, GWL_STYLE);
Line 387  BOOL scrnmng_create(UINT8 scrnmode) { Line 468  BOOL scrnmng_create(UINT8 scrnmode) {
         ddraw.ddraw2 = ddraw2;          ddraw.ddraw2 = ddraw2;
   
         if (scrnmode & SCRNMODE_FULLSCREEN) {          if (scrnmode & SCRNMODE_FULLSCREEN) {
   #if defined(SUPPORT_DCLOCK)
                 dclock_init();                  dclock_init();
   #endif
                 ddraw2->SetCooperativeLevel(hWndMain,                  ddraw2->SetCooperativeLevel(hWndMain,
                                                                                 DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);                                                                                  DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
                 height = (np2oscfg.force400)?400:480;                  width = np2oscfg.fscrn_cx;
                   height = np2oscfg.fscrn_cy;
                   bitcolor = np2oscfg.fscrnbpp;
                   fscrnmod = np2oscfg.fscrnmod;
                   if ((fscrnmod & (FSCRNMOD_SAMERES | FSCRNMOD_SAMEBPP)) &&
                           (EnumDisplaySettings(NULL, ENUM_REGISTRY_SETTINGS, &devmode))) {
                           if (fscrnmod & FSCRNMOD_SAMERES) {
                                   width = devmode.dmPelsWidth;
                                   height = devmode.dmPelsHeight;
                           }
                           if (fscrnmod & FSCRNMOD_SAMEBPP) {
                                   bitcolor = devmode.dmBitsPerPel;
                           }
                   }
                   if ((width == 0) || (height == 0)) {
                           width = 640;
                           height = (np2oscfg.force400)?400:480;
                   }
                   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(width, height, bitcolor, 0, 0) != DD_OK) {
                         goto scre_err;                          goto scre_err;
                 }                  }
                 ddraw2->CreateClipper(0, &ddraw.clipper, NULL);                  ddraw2->CreateClipper(0, &ddraw.clipper, NULL);
Line 422  BOOL scrnmng_create(UINT8 scrnmode) { Line 524  BOOL scrnmng_create(UINT8 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;
                 ddsd.dwWidth = 640;                  ddsd.dwWidth = 640;
                 ddsd.dwHeight = height;                  ddsd.dwHeight = 480;
                 if (ddraw2->CreateSurface(&ddsd, &ddraw.backsurf, NULL) != DD_OK) {                  if (ddraw2->CreateSurface(&ddsd, &ddraw.backsurf, NULL) != DD_OK) {
                         goto scre_err;                          goto scre_err;
                 }                  }
                 if (bitcolor == 8) {                  if (bitcolor == 8) {
                         paletteinit();                          paletteinit();
                         dclock_init8();  
                 }                  }
                 else {                  else if (bitcolor == 16) {
                         make16mask(ddpf.dwBBitMask, ddpf.dwRBitMask, ddpf.dwGBitMask);                          make16mask(ddpf.dwBBitMask, ddpf.dwRBitMask, ddpf.dwGBitMask);
                         dclock_init16();  
                 }                  }
                   else if (bitcolor == 24) {
                   }
                   else if (bitcolor == 32) {
                   }
                   else {
                           goto scre_err;
                   }
   #if defined(SUPPORT_DCLOCK)
                   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();
   #endif
         }          }
         else {          else {
                 ddraw2->SetCooperativeLevel(hWndMain, DDSCL_NORMAL);                  ddraw2->SetCooperativeLevel(hWndMain, DDSCL_NORMAL);
Line 470  BOOL scrnmng_create(UINT8 scrnmode) { Line 579  BOOL scrnmng_create(UINT8 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 + 1;
                         ddsd.dwHeight = 480;                          ddsd.dwHeight = 480;
                 }                  }
                 else {                  else {
                         ddsd.dwWidth = 480;                          ddsd.dwWidth = 480;
                         ddsd.dwHeight = 641;                          ddsd.dwHeight = 640 + 1;
                 }                  }
                   width = 640;
                 height = 480;                  height = 480;
   
                 if (ddraw2->CreateSurface(&ddsd, &ddraw.backsurf, NULL) != DD_OK) {                  if (ddraw2->CreateSurface(&ddsd, &ddraw.backsurf, NULL) != DD_OK) {
Line 484  BOOL scrnmng_create(UINT8 scrnmode) { Line 594  BOOL scrnmng_create(UINT8 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 505  BOOL scrnmng_create(UINT8 scrnmode) { Line 611  BOOL scrnmng_create(UINT8 scrnmode) {
         scrnmng.bpp = (UINT8)bitcolor;          scrnmng.bpp = (UINT8)bitcolor;
         scrnsurf.bpp = bitcolor;          scrnsurf.bpp = bitcolor;
         ddraw.scrnmode = scrnmode;          ddraw.scrnmode = scrnmode;
         ddraw.width = 640;          ddraw.width = width;
         ddraw.height = height;          ddraw.height = height;
         ddraw.cliping = 0;          ddraw.cliping = 0;
         renewalclientsize(FALSE);          renewalclientsize(FALSE);
Line 522  void scrnmng_destroy(void) { Line 628  void scrnmng_destroy(void) {
         if (scrnmng.flag & SCRNFLAG_FULLSCREEN) {          if (scrnmng.flag & SCRNFLAG_FULLSCREEN) {
                 np2class_enablemenu(hWndMain, (!np2oscfg.wintype));                  np2class_enablemenu(hWndMain, (!np2oscfg.wintype));
         }          }
   #if defined(SUPPORT_DCLOCK)
         if (ddraw.clocksurf) {          if (ddraw.clocksurf) {
                 ddraw.clocksurf->Release();                  ddraw.clocksurf->Release();
                 ddraw.clocksurf = NULL;                  ddraw.clocksurf = NULL;
         }          }
   #endif
         if (ddraw.backsurf) {          if (ddraw.backsurf) {
                 ddraw.backsurf->Release();                  ddraw.backsurf->Release();
                 ddraw.backsurf = NULL;                  ddraw.backsurf = NULL;
Line 696  void scrnmng_update(void) { Line 804  void scrnmng_update(void) {
   
         POINT   clip;          POINT   clip;
         RECT    dst;          RECT    dst;
           RECT    *rect;
           RECT    *scrn;
         HRESULT r;          HRESULT r;
   
         if (scrnmng.palchanged) {          if (scrnmng.palchanged) {
Line 708  void scrnmng_update(void) { Line 818  void scrnmng_update(void) {
                                 scrnmng.allflash = 0;                                  scrnmng.allflash = 0;
                                 clearoutfullscreen();                                  clearoutfullscreen();
                         }                          }
                         r = ddraw.primsurf->Blt(&ddraw.scrn, ddraw.backsurf, &ddraw.rect,                          if (GetWindowLongPtr(hWndMain, NP2GWLP_HMENU)) {
                                   rect = &ddraw.rect;
                                   scrn = &ddraw.scrn;
                           }
                           else {
                                   rect = &ddraw.rectclip;
                                   scrn = &ddraw.scrnclip;
                           }
                           r = ddraw.primsurf->Blt(scrn, ddraw.backsurf, rect,
                                                                                                                         DDBLT_WAIT, NULL);                                                                                                                          DDBLT_WAIT, NULL);
                         if (r == DDERR_SURFACELOST) {                          if (r == DDERR_SURFACELOST) {
                                 ddraw.backsurf->Restore();                                  ddraw.backsurf->Restore();
                                 ddraw.primsurf->Restore();                                  ddraw.primsurf->Restore();
                                 ddraw.primsurf->Blt(&ddraw.scrn, ddraw.backsurf, &ddraw.rect,                                  ddraw.primsurf->Blt(scrn, ddraw.backsurf, rect,
                                                                                                                         DDBLT_WAIT, NULL);                                                                                                                          DDBLT_WAIT, NULL);
                         }                          }
                 }                  }
Line 752  void scrnmng_setmultiple(int multiple) { Line 870  void scrnmng_setmultiple(int multiple) {
         }          }
 }  }
   
 static const RECT rectclk = {0, 0, DCLOCK_X, DCLOCK_Y};  
   // ----
   
   #if defined(SUPPORT_DCLOCK)
   static const RECT rectclk = {0, 0, DCLOCK_WIDTH, DCLOCK_HEIGHT};
   
   BOOL scrnmng_isdispclockclick(const POINT *pt) {
   
           if (pt->y >= (ddraw.height - DCLOCK_HEIGHT)) {
                   return(TRUE);
           }
           else {
                   return(FALSE);
           }
   }
   
 void scrnmng_dispclock(void) {  void scrnmng_dispclock(void) {
   
         DDSURFACEDESC   dest;          DDSURFACEDESC   dest;
   const RECT                      *scrn;
                                                                                                                                 // ver0.26                                                                                                                                  // ver0.26
         if ((ddraw.clocksurf) &&          if (!ddraw.clocksurf) {
                 (ddraw.scrn.top >= DCLOCK_Y) && (dclock_disp())) {                  return;
                 dclock_make();          }
                 ZeroMemory(&dest, sizeof(dest));          if (!dclock_disp()) {
                 dest.dwSize = sizeof(dest);                  return;
                 if (ddraw.clocksurf->Lock(NULL, &dest, DDLOCK_WAIT, NULL) == DD_OK) {          }
                         if (scrnmng.bpp == 8) {          if (GetWindowLongPtr(hWndMain, NP2GWLP_HMENU)) {
                                 dclock_out8(dest.lpSurface, dest.lPitch);                  scrn = &ddraw.scrn;
                         }          }
                         else {          else {
                                 dclock_out16(dest.lpSurface, dest.lPitch);                  scrn = &ddraw.scrnclip;
                         }          }
                         ddraw.clocksurf->Unlock(NULL);          if ((scrn->bottom + DCLOCK_HEIGHT) > ddraw.height) {
                   return;
           }
           dclock_make();
           ZeroMemory(&dest, sizeof(dest));
           dest.dwSize = sizeof(dest);
           if (ddraw.clocksurf->Lock(NULL, &dest, DDLOCK_WAIT, NULL) == DD_OK) {
                   if (scrnmng.bpp == 8) {
                           dclock_out8(dest.lpSurface, dest.lPitch);
                   }
                   else if (scrnmng.bpp == 16) {
                           dclock_out16(dest.lpSurface, dest.lPitch);
                   }
                   else if (scrnmng.bpp == 24) {
                           dclock_out24(dest.lpSurface, dest.lPitch);
                 }                  }
                 if (ddraw.primsurf->BltFast(640 - DCLOCK_X - 4,                  else if (scrnmng.bpp == 32) {
                                                                         ddraw.height - DCLOCK_Y,                          dclock_out32(dest.lpSurface, dest.lPitch);
                   }
                   ddraw.clocksurf->Unlock(NULL);
           }
           if (ddraw.primsurf->BltFast(ddraw.width - DCLOCK_WIDTH - 4,
                                                                           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();
                         ddraw.clocksurf->Restore();                  ddraw.clocksurf->Restore();
                 }  
                 dclock_cntdown(np2oscfg.DRAW_SKIP);  
         }          }
           dclock_cntdown(np2oscfg.DRAW_SKIP);
 }  }
   #endif
   
   
 // ----  // ----

Removed from v.1.19  
changed lines
  Added in v.1.24


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