Diff for /np2/wince/scrnmng.cpp between versions 1.9 and 1.10

version 1.9, 2004/07/15 13:48:40 version 1.10, 2004/07/17 20:43:02
Line 58  typedef struct { Line 58  typedef struct {
         int             dstpos;          int             dstpos;
 } DRAWRECT;  } DRAWRECT;
   
   
   // ---- GX DLL¤Č¤«
   
   #if !defined(WIN32_PLATFORM_PSPC) || !defined(SIZE_VGA)
   
   #define GXGETDISPLAYPROPERTIES()        GXGetDisplayProperties()
   #define GXBEGINDRAW()                           GXBeginDraw()
   #define GXENDDRAW()                                     GXEndDraw()
   
   #else // PocketPC2003SE VGA
   
   typedef struct {
           WORD    wFormat;
           WORD    wBPP;
           VOID    *pFramePointer;
           int             cxStride;
           int             cyStride;
           int             cxPixels;
           int             cyPixels;
   } RAWFRAMEBUFFERINFO;
   
   #define GETRAWFRAMEBUFFER       0x00020001
   
   enum {
           RFBIFMT_565             = 1,
           RFBIFMT_555             = 2,
           RFBIFMT_OTHER   = 3
   };
   
   static  RAWFRAMEBUFFERINFO      rfbi;
   
   static GXDisplayProperties GXGETDISPLAYPROPERTIES(void) {
   
           HDC                                     hdc;
           GXDisplayProperties     ret;
   
           hdc = GetDC(NULL);
           ExtEscape(hdc, GETRAWFRAMEBUFFER, 0, NULL, sizeof(rfbi), (char *)&rfbi);
           ReleaseDC(NULL, hdc);
           ret.cxWidth = rfbi.cxPixels;
           ret.cyHeight = rfbi.cyPixels;
           ret.cbxPitch = rfbi.cxStride;
           ret.cbyPitch = rfbi.cyStride;
           ret.cBPP = rfbi.wBPP;
           ret.ffFormat = 0;
           switch(rfbi.wBPP) {
                   case RFBIFMT_565:
                           ret.ffFormat |= kfDirect565;
                           break;
   
                   case RFBIFMT_555:
                           ret.ffFormat |= kfDirect555;
                           break;
           }
           return(ret);
   }
   #define GXBEGINDRAW()           (rfbi.pFramePointer)
   #define GXENDDRAW()
   #endif
   
   
   // ----
   
 static BOOL calcdrawrect(DRAWRECT *dr, VRAMHDL s, const RECT_T *rt) {  static BOOL calcdrawrect(DRAWRECT *dr, VRAMHDL s, const RECT_T *rt) {
   
         int             pos;          int             pos;
Line 132  BOOL scrnmng_create(HWND hWnd, LONG widt Line 195  BOOL scrnmng_create(HWND hWnd, LONG widt
                 return(FAILURE);                  return(FAILURE);
         }          }
         if (GXOpenDisplay(hWnd, GX_FULLSCREEN) == 0) {          if (GXOpenDisplay(hWnd, GX_FULLSCREEN) == 0) {
                 MessageBox(hWnd, STRLITERAL("Couldn't GameX Object"),                  MessageBox(hWnd, STRLITERAL("Couldn't GAPI Object"),
                                                                                         errmsg, MB_OK | MB_ICONSTOP);                                                                                          errmsg, MB_OK | MB_ICONSTOP);
                 return(FAILURE);                  return(FAILURE);
         }          }
         gx_dp = GXGetDisplayProperties();          gx_dp = GXGETDISPLAYPROPERTIES();
         if (gx_dp.cBPP != 16) {          if (gx_dp.cBPP != 16) {
                 MessageBox(hWnd, STRLITERAL("Only 16bit color support..."),                  MessageBox(hWnd, STRLITERAL("Only 16bit color support..."),
                                                                                         errmsg, MB_OK | MB_ICONSTOP);                                                                                          errmsg, MB_OK | MB_ICONSTOP);
Line 242  const SCRNSURF *scrnmng_surflock(void) { Line 305  const SCRNSURF *scrnmng_surflock(void) {
                 return(NULL);                  return(NULL);
         }          }
         if (scrnmng.vram == NULL) {          if (scrnmng.vram == NULL) {
                 scrnsurf.ptr = (BYTE *)GXBeginDraw() + scrnmng.start;                  scrnsurf.ptr = (BYTE *)GXBEGINDRAW() + scrnmng.start;
                 scrnsurf.xalign = scrnmng.xalign;                  scrnsurf.xalign = scrnmng.xalign;
                 scrnsurf.yalign = scrnmng.yalign;                  scrnsurf.yalign = scrnmng.yalign;
         }          }
Line 297  const BYTE  *a; Line 360  const BYTE  *a;
                 return;                  return;
         }          }
         p = scrnmng.vram->ptr + (dr.srcpos * 2);          p = scrnmng.vram->ptr + (dr.srcpos * 2);
         q = (BYTE *)GXBeginDraw() + dr.dstpos;          q = (BYTE *)GXBEGINDRAW() + dr.dstpos;
         a = menuvram->alpha + dr.srcpos;          a = menuvram->alpha + dr.srcpos;
         salign = menuvram->width - dr.width;          salign = menuvram->width - dr.width;
         dalign = dr.yalign - (dr.width * dr.xalign);          dalign = dr.yalign - (dr.width * dr.xalign);
Line 315  const BYTE  *a; Line 378  const BYTE  *a;
                 q += dalign;                  q += dalign;
                 a += salign;                  a += salign;
         } while(--dr.height);          } while(--dr.height);
         GXEndDraw();          GXENDDRAW();
 }  }
   
 void scrnmng_surfunlock(const SCRNSURF *surf) {  void scrnmng_surfunlock(const SCRNSURF *surf) {
Line 338  void scrnmng_surfunlock(const SCRNSURF * Line 401  void scrnmng_surfunlock(const SCRNSURF *
                                 softkbd_paint(&vram, palcnv, TRUE);                                  softkbd_paint(&vram, palcnv, TRUE);
                         }                          }
 #endif  #endif
                         GXEndDraw();                          GXENDDRAW();
                 }                  }
                 else {                  else {
                         if (menuvram) {                          if (menuvram) {
Line 397  void scrnmng_clear(BOOL logo) { Line 460  void scrnmng_clear(BOOL logo) {
         if (logo) {          if (logo) {
                 bmp = (void *)bmpdata_solvedata(nekop2_bmp);                  bmp = (void *)bmpdata_solvedata(nekop2_bmp);
         }          }
         p = (BYTE *)GXBeginDraw();          p = (BYTE *)GXBEGINDRAW();
         q = p;          q = p;
         y = gx_dp.cyHeight;          y = gx_dp.cyHeight;
         yalign = gx_dp.cbyPitch - (gx_dp.cbxPitch * gx_dp.cxWidth);          yalign = gx_dp.cbyPitch - (gx_dp.cbxPitch * gx_dp.cxWidth);
Line 410  void scrnmng_clear(BOOL logo) { Line 473  void scrnmng_clear(BOOL logo) {
                 q += yalign;                  q += yalign;
         } while(--y);          } while(--y);
         bmp16draw(bmp, p + scrnmng.start, scrnmng.width, scrnmng.height,          bmp16draw(bmp, p + scrnmng.start, scrnmng.width, scrnmng.height,
                                                                                                 scrnmng.xalign, scrnmng.yalign);        GXEndDraw();                                                                                                  scrnmng.xalign, scrnmng.yalign);        GXENDDRAW();
         if (bmp) {          if (bmp) {
                 _MFREE(bmp);                  _MFREE(bmp);
         }          }
Line 491  const BYTE  *q; Line 554  const BYTE  *q;
         }          }
         p = scrnmng.vram->ptr + (dr.srcpos * 2);          p = scrnmng.vram->ptr + (dr.srcpos * 2);
         q = menuvram->ptr + (dr.srcpos * 2);          q = menuvram->ptr + (dr.srcpos * 2);
         r = (BYTE *)GXBeginDraw() + dr.dstpos;          r = (BYTE *)GXBEGINDRAW() + dr.dstpos;
         a = menuvram->alpha + dr.srcpos;          a = menuvram->alpha + dr.srcpos;
         salign = menuvram->width;          salign = menuvram->width;
         dalign = dr.yalign - (dr.width * dr.xalign);          dalign = dr.yalign - (dr.width * dr.xalign);
Line 514  const BYTE  *q; Line 577  const BYTE  *q;
                 r += dalign;                  r += dalign;
                 a += salign;                  a += salign;
         } while(--dr.height);          } while(--dr.height);
         GXEndDraw();          GXENDDRAW();
 }  }
   
   

Removed from v.1.9  
changed lines
  Added in v.1.10


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