home *** CD-ROM | disk | FTP | other *** search
/ Chip Special: HTML & Java / Chip-Special_1997-01_HTML-a-Java.bin / javasdk / sdk-java.exe / SDKJava.cab / Samples / directX / d3drm / Viewer / Stretch.java < prev    next >
Encoding:
Java Source  |  1996-10-10  |  3.1 KB  |  137 lines

  1. import java.awt.*;
  2. import java.awt.peer.ComponentPeer;
  3. import java.applet.*;
  4. import com.ms.com.*;
  5. import com.ms.com.*;
  6. import com.ms.awt.*;
  7. import com.ms.awt.peer.*;
  8. import com.ms.directX.*;
  9.  
  10. public class Stretch extends Canvas implements ddConstants
  11. {
  12.     dDraw            dd;                    // DirectDraw object
  13.     ddSurface        ddsPrimary;            // DirectDraw primary surface
  14.     ddSurface        ddsOne = null;        // Offscreen surface 1
  15.     ddPalette        ddPal;                // DirectDraw palette
  16.     int             hwnd;
  17.     String             szBitmap;
  18.  
  19.     //////////////////////////////////////////////////////////////////////////
  20.     //
  21.  
  22.     ddSurface LoadBitmap(dDraw dd, String bitmapFile, int dx, int dy)
  23.     {
  24.         ddSurface        pdds = null;
  25.         dBitmap        bm;
  26.         ddSurfaceDesc     ddsd;    
  27.  
  28.         bm = new dBitmap();
  29.         bm.filename (bitmapFile);
  30.         bm.initWidth(dx);
  31.         bm.initHeight(dy);
  32.  
  33.         if( bm.loaded() != 0 )
  34.         {
  35.             //
  36.             // create a DirectDrawSurface for this bitmap
  37.             //
  38.             ddsd          = new ddSurfaceDesc();
  39.             ddsd.dwFlags    = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
  40.             ddsd.ddsCaps  = DDSCAPS_OFFSCREENPLAIN;
  41.             ddsd.width    = bm.width();
  42.             ddsd.height   = bm.height();
  43.             
  44.             pdds = dd.CreateSurface( ddsd, null);
  45.             pdds.CopyBitmap(bm, 0, 0, 0, 0);
  46.         }
  47.         
  48.     return pdds;
  49.     }
  50.  
  51.     //////////////////////////////////////////////////////////////////////////
  52.     //
  53.     // basically the doInit from stretch
  54.     //
  55.     
  56.     FlickStretch doInit()
  57.     {
  58.         ComponentPeer p = getPeer();
  59.         ComponentPeerX peer = (ComponentPeerX)p;
  60.         hwnd = peer.gethwnd();
  61.         
  62.         ddClipper        Clipper;    // clipper for primary
  63.         ddSurfaceDesc     ddsd;        // dont forget sizeof!        
  64.         
  65.         //
  66.         // create the main DirectDraw object
  67.         //
  68.         dd = new dDraw();
  69.         dd.SetCooperativeLevel(hwnd, DDSCL_NORMAL);
  70.  
  71.         //
  72.         // Create the primary surface
  73.         //
  74.         ddsd         = new ddSurfaceDesc();
  75.         ddsd.dwFlags   = DDSD_CAPS ;
  76.         ddsd.ddsCaps = DDSCAPS_PRIMARYSURFACE;
  77.         ddsPrimary   = dd.CreateSurface(ddsd, null); 
  78.  
  79.         //
  80.         // create a clipper for the primary surface
  81.         //
  82.         Clipper = dd.CreateClipper(0, null);
  83.         Clipper.SetHWnd(0, hwnd);            
  84.         ddsPrimary.SetClipper( Clipper );
  85.  
  86.         //
  87.         // load our palette
  88.         //
  89.         ddPal = dd.LoadPaletteFromBitmap(szBitmap);
  90.         if( ddPal != null)
  91.         {
  92.             //
  93.             // make sure to set the palette before loading bitmaps.
  94.             //
  95.             ddsPrimary.SetPalette(ddPal);
  96.         }
  97.         
  98.         //
  99.         // load our bitmap
  100.         //
  101.         ddsOne = LoadBitmap(dd, szBitmap, 0, 0);
  102.  
  103.         if( ddsOne == null)
  104.         {
  105.             return null;
  106.         }
  107.         
  108.         FlickStretch f = new FlickStretch(dd, ddsPrimary, ddsOne, szBitmap, peer);
  109.         return f;
  110.     }
  111.  
  112.     //////////////////////////////////////////////////////////////////////////
  113.  
  114.     Stretch(TestGraph tg)
  115.     {
  116.         super();
  117.         szBitmap = tg.getFileName("DONUT.BMP");
  118.     }
  119.     
  120.     //////////////////////////////////////////////////////////////////////////
  121.  
  122.     public Dimension minimumSize() 
  123.     {
  124.         return new Dimension(64,64);
  125.     }
  126.  
  127.     //////////////////////////////////////////////////////////////////////////
  128.  
  129.     public Dimension preferredSize() 
  130.     {
  131.         return new Dimension(64,64);
  132.     }
  133.     
  134.     //////////////////////////////////////////////////////////////////////////
  135. }
  136.  
  137.