Programming for Palm OS/C/Off-screen windows

      Be sure to focus on your offscreen window after all the events have been delivered for the start-up of your application.


      to create an offscreen window

      (and to remember the original window that your application started with)

       WinHandle  offWin;
       WinHandle  sysWin;
      
       Coord             width  = 160;
       Coord             height = 160;
       WindowFormatType  format = screenFormat;
       UInt16            error;
       offWin = WinCreateOffscreenWindow( width, height, format, &error);
       sysWin = WinGetDrawWindow();
      


      to release an offscreen window

       Boolean  eraseIt = false;
       if ( offWin != NULL)
       {
         WinDeleteWindow( offWin, eraseIt);
       }
      


      to focus on an offscreen window

       WinSetDrawWindow( offWin);
      

      After this invocation, functions such as WinEraseRectangle, WinDrawLine and so on will draw to the offscreen window.


      to blit your offscreen drawing to the original window

       WinHandle         srcWin;
       WinHandle         destWin;
       RectangleType     r;
       Coord             destX;
       Coord             destY;
       WinDrawOperation  mode;
       
       srcWin = offWin;
       destWin = sysWin;
       r.topLeft.x = 0;
       r.topLeft.y = 0;
       r.extent.x = 160;
       r.extent.y = 160;
       destX = 0;
       destY = 0;
       mode = winPaint;
       WinCopyRectangle( srcWin, destWin, &r, destX, destY, mode);
      
      Last modified on 2 June 2009, at 23:14