home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 39 / IOPROG_39.ISO / SOFT / sdkjava40.exe / data1.cab / fg_Samples / Samples / DirectX / dinput / DDraw.java next >
Encoding:
Java Source  |  2000-05-04  |  2.2 KB  |  94 lines

  1. //
  2. // (C) Copyright 1995 - 1999 Microsoft Corporation.  All rights reserved.
  3. //
  4. import java.awt.*;
  5. import java.awt.peer.ComponentPeer;
  6. import java.applet.*;
  7. import java.net.URL;
  8. import com.ms.com.*;
  9. import com.ms.awt.*;
  10. import com.ms.awt.peer.*;
  11. import com.ms.directX.*;
  12.  
  13. public class DDraw extends Applet implements Runnable, DirectXConstants
  14. {
  15.     boolean    StandAlone = false;
  16.     boolean    running = true;
  17.     URL url;
  18.     Thread t; 
  19.     DDrawCanvas ddrawcanvas;
  20.     
  21.     ////////////////////////////////////////////////////////////////////////////
  22.     public static void main(String args[])
  23.     {
  24.         DDrawFrame frame = new DDrawFrame("DirectDraw for Java");
  25.  
  26.         // Must show Frame before we size it so insets() will return valid values
  27.         frame.show();
  28.         frame.hide();
  29.         frame.resize(frame.insets().left + frame.insets().right  + 640,
  30.                      frame.insets().top  + frame.insets().bottom + 480);
  31.  
  32.         DDraw applet = new DDraw();
  33.         frame.add("Center", applet);
  34.  
  35.         applet.StandAlone = true;
  36.         applet.init();
  37.         frame.show();
  38.         applet.start();
  39.     }
  40.  
  41.     //////////////////////////////////////////////////////////////////////////
  42.     public void init()
  43.     {
  44.         if ( StandAlone == false )
  45.             url = getCodeBase();
  46.  
  47.         BorderLayout bl = new BorderLayout();
  48.         setLayout(bl);
  49.  
  50.         ddrawcanvas = new DDrawCanvas();
  51.         add("Center", ddrawcanvas);
  52.         show();
  53.  
  54.         Dimension d = bl.preferredLayoutSize(this);
  55.         resize(d.width, d.height);
  56.     }
  57.  
  58.     //////////////////////////////////////////////////////////////////////////
  59.     public void start()
  60.     {
  61.         if ( ddrawcanvas != null )
  62.             ddrawcanvas.init(url);
  63.  
  64.         requestFocus();
  65.  
  66.         t = new Thread(this);
  67.         running = true;
  68.         t.start();
  69.     }
  70.  
  71.     //////////////////////////////////////////////////////////////////////////
  72.     public void stop()
  73.     {
  74.         running = false;
  75.         t.stop();
  76.     }
  77.  
  78.     //////////////////////////////////////////////////////////////////////////
  79.     public void run()
  80.     {
  81.         while (running)
  82.             ddrawcanvas.updateFrame();
  83.  
  84.         ddrawcanvas.ddPal            = null;                
  85.         ddrawcanvas.ddclipper        = null;            
  86.         ddrawcanvas.ddsOffscreen    = null;        
  87.         ddrawcanvas.ddsPrimary        = null;            
  88.         ddrawcanvas.dd                = null;                    
  89.         ddrawcanvas                    = null;
  90.  
  91.         System.gc();
  92.     }
  93. }
  94.