Package gwt.g2d.client.framework

Source Code of gwt.g2d.client.framework.AbstractApp

/*
* Copyright 2009 Hao Nguyen
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package gwt.g2d.client.framework;

import gwt.g2d.client.graphics.Surface;
import gwt.g2d.client.util.FpsTimer;
import gwt.g2d.shared.math.Vector2;

import com.google.gwt.user.client.Timer;

/**
* Abstract class for running and rendering an application.
*
* This class is deprecated and will be removed in future release. Please
* consider using {@link FpsTimer} instead.
*
* @author hao1300@gmail.com
*/
@Deprecated
public abstract class AbstractApp
  private Surface primarySurface;
  private Timer timer;
  private boolean paused;
 
  public AbstractApp(Surface surface) {
    primarySurface = surface;
  }
 
  public AbstractApp(int width, int height) {
    this(new Surface(width, height));
  }
 
  public AbstractApp(Vector2 size) {
    this(new Surface(size));
  }
 
  /**
   * Gets the primary surface for the application.
   */
  public final Surface getPrimarySurface() {
    return primarySurface;
  }
 
  /**
   * Gets whether the application is paused.
   */
  public boolean isPaused() {
    return paused;
  }
 
  /**
   * Sets whether the application is paused.
   * Pausing the application will not take place immediately; instead, it will
   * be paused before the next update loop.
   */
  public void setPaused(boolean paused) {
    this.paused = paused;
  }
 
  /**
   * Exits the application.
   */
  public void exit() {
    timer.cancel();
  }
 
  /**
   * Runs the application at the desired FPS.
   * The application will try to call update and draw as many times as the
   * given frames per second, but it may be called less often if there is a
   * performance hit in either method.
   *
   * @param fps the number of frames per second to run the application at.
   */
  public void run(int fps) {
    initialize();
    timer = new Timer() {
      @Override
      public void run() {
        if (isPaused()) {
          return;
        }
        update();
      }
    };
    timer.scheduleRepeating(1000 / fps);
  }
 
  /**
   * Performs initialization logics before the application right before the
   * application is run.
   */
  public abstract void initialize();
 
  /**
   * Updates the application.
   * Override this method to perform the actions that occurs every fps.
   */
  public abstract void update();
}
TOP

Related Classes of gwt.g2d.client.framework.AbstractApp

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.