starling-framework
Version:
A fast, productive library for 2D cross-platform development.
317 lines • 14 kB
TypeScript
import Painter from "../rendering/Painter";
import TouchProcessor from "../events/TouchProcessor";
import EventDispatcher from "../events/EventDispatcher";
import Stage from "../display/Stage";
import DisplayObject from "../display/DisplayObject";
import Juggler from "../animation/Juggler";
import Rectangle from "openfl/geom/Rectangle";
import Context3DRenderMode from "openfl/display3D/Context3DRenderMode";
import Context3DProfile from "openfl/display3D/Context3DProfile";
import Context3D from "openfl/display3D/Context3D";
import Stage3D from "openfl/display/Stage3D";
import openfl_display_Stage from "openfl/display/Stage";
import Sprite from "openfl/display/Sprite";
import Vector from "openfl/Vector";
declare namespace starling.core {
/**
* Dispatched when a new render context is created. The 'data' property references the context.
*/
export class Starling extends EventDispatcher {
/**
* Creates a new Starling instance.
* * @param rootClass A subclass of 'starling.display.DisplayObject'. It will be created
* * as soon as initialization is finished and will become the first child
* * of the Starling stage. Pass <code>null</code> if you don't want to
* * create a root object right away. (You can use the
* * <code>rootClass</code> property later to make that happen.)
* * @param stage The Flash (2D) stage.
* * @param viewPort A rectangle describing the area into which the content will be
* * rendered. Default: stage size
* * @param stage3D The Stage3D object into which the content will be rendered. If it
* * already contains a context, <code>sharedContext</code> will be set
* * to <code>true</code>. Default: the first available Stage3D.
* * @param renderMode The Context3D render mode that should be requested.
* * Use this parameter if you want to force "software" rendering.
* * @param profile The Context3D profile that should be requested.
* *
* * <ul>
* * <li>If you pass a profile String, this profile is enforced.</li>
* * <li>Pass an Array of profiles to make Starling pick the first
* * one that works (starting with the first array element).</li>
* * <li>Pass the String "auto" to make Starling pick the best available
* * profile automatically.</li>
* * </ul>
*
*/
constructor(rootClass: any, stage: openfl_display_Stage, viewPort?: Rectangle, stage3D?: Stage3D, renderMode?: Context3DRenderMode, profile?: any, sharedContext?: boolean);
/**
* The version of the Starling framework.
*/
static VERSION: string;
/**
* The currently active Starling instance.
*/
static get current(): Starling;
/**
* All Starling instances. <p>CAUTION: not a copy, but the actual object! Do not modify!</p>
*/
static get all(): Vector<Starling>;
/**
* The render context of the currently active Starling instance.
*/
static get currentContext(): Context3D;
/**
* The default juggler of the currently active Starling instance.
*/
static get currentJuggler(): Juggler;
/**
* The contentScaleFactor of the currently active Starling instance.
*/
static get currentContentScaleFactor(): number;
/**
* Indicates if multitouch input should be supported. You can enable or disable
* * multitouch at any time; just beware that any current touches will be cancelled.
*/
static get multitouchEnabled(): boolean;
static set multitouchEnabled(value: boolean)
/**
* Disposes all children of the stage and the render context; removes all registered
* * event listeners.
*/
dispose(): void;
/**
* Calls <code>advanceTime()</code> (with the time that has passed since the last frame)
* * and <code>render()</code>.
*/
nextFrame(): void;
/**
* Dispatches ENTER_FRAME events on the display list, advances the Juggler
* * and processes touches.
*/
advanceTime(passedTime: number): void;
/**
* Renders the complete display list. Before rendering, the context is cleared; afterwards,
* * it is presented (to avoid this, enable <code>shareContext</code>).
* *
* * <p>This method also dispatches an <code>Event.RENDER</code>-event on the Starling
* * instance. That's the last opportunity to make changes before the display list is
* * rendered.</p>
*/
render(): void;
/**
* Stops Starling right away and displays an error message on the native overlay.
* * This method will also cause Starling to dispatch a FATAL_ERROR event.
*/
stopWithFatalError(message: string): void;
/**
* Make this Starling instance the <code>current</code> one.
*/
makeCurrent(): void;
/**
* As soon as Starling is started, it will queue input events (keyboard/mouse/touch);
* * furthermore, the method <code>nextFrame</code> will be called once per Flash Player
* * frame. (Except when <code>shareContext</code> is enabled: in that case, you have to
* * call that method manually.)
*/
start(): void;
/**
* Stops all logic and input processing, effectively freezing the app in its current state.
* * Per default, rendering will continue: that's because the classic display list
* * is only updated when stage3D is. (If Starling stopped rendering, conventional Flash
* * contents would freeze, as well.)
* *
* * <p>However, if you don't need classic Flash contents, you can stop rendering, too.
* * On some mobile systems (e.g. iOS), you are even required to do so if you have
* * activated background code execution.</p>
*
*/
stop(suspendRendering?: boolean): void;
/**
* Makes sure that the next frame is actually rendered.
* *
* * <p>When <code>skipUnchangedFrames</code> is enabled, some situations require that you
* * manually force a redraw, e.g. when a RenderTexture is changed. This method is the
* * easiest way to do so; it's just a shortcut to <code>stage.setRequiresRedraw()</code>.
* * </p>
*
*/
setRequiresRedraw(): void;
/**
* Indicates if this Starling instance is started.
*/
get isStarted(): boolean;
/**
* The default juggler of this instance. Will be advanced once per frame.
*/
get juggler(): Juggler;
/**
* The painter, which is used for all rendering. The same instance is passed to all
* * <code>render</code>methods each frame.
*/
get painter(): Painter;
/**
* The render context of this instance.
*/
get context(): Context3D;
/**
* Indicates if multitouch simulation with "Shift" and "Ctrl"/"Cmd"-keys is enabled.
* * @default false
*/
get simulateMultitouch(): boolean;
set simulateMultitouch(value: boolean)
/**
* Indicates if Stage3D render methods will report errors. It's recommended to activate
* * this when writing custom rendering code (shaders, etc.), since you'll get more detailed
* * error messages. However, it has a very negative impact on performance, and it prevents
* * ATF textures from being restored on a context loss. Never activate for release builds!
* *
* * @default false
*/
get enableErrorChecking(): boolean;
set enableErrorChecking(value: boolean)
/**
* The antialiasing level. 0 - no antialasing, 16 - maximum antialiasing. @default 0
*/
get antiAliasing(): number;
set antiAliasing(value: number)
/**
* The viewport into which Starling contents will be rendered.
*/
get viewPort(): Rectangle;
set viewPort(value: Rectangle)
/**
* The ratio between viewPort width and stage width. Useful for choosing a different
* * set of textures depending on the display resolution.
*/
get contentScaleFactor(): number;
/**
* A Flash Sprite placed directly on top of the Starling content. Use it to display native
* * Flash components.
*/
get nativeOverlay(): Sprite;
/**
* If enabled, touches or mouse events on the native overlay won't be propagated to
* * Starling. @default false
*/
get nativeOverlayBlocksTouches(): boolean;
set nativeOverlayBlocksTouches(value: boolean)
/**
* Indicates if a small statistics box (with FPS, memory usage and draw count) is
* * displayed.
* *
* * <p>Beware that the memory usage should be taken with a grain of salt. The value is
* * determined via <code>System.totalMemory</code> and does not take texture memory
* * into account. It is recommended to use Adobe Scout for reliable and comprehensive
* * memory analysis.</p>
*
*/
get showStats(): boolean;
set showStats(value: boolean)
/**
* Displays the statistics box at a certain position.
*/
showStatsAt(horizontalAlign?: string, verticalAlign?: string, scale?: number): void;
/**
* The Starling stage object, which is the root of the display tree that is rendered.
*/
get stage(): Stage;
/**
* The Flash Stage3D object Starling renders into.
*/
get stage3D(): Stage3D;
/**
* The Flash (2D) stage object Starling renders beneath.
*/
get nativeStage(): openfl_display_Stage;
/**
* The instance of the root class provided in the constructor. Available as soon as
* * the event 'ROOT_CREATED' has been dispatched.
*/
get root(): DisplayObject;
/**
* The class that will be instantiated by Starling as the 'root' display object.
* * Must be a subclass of 'starling.display.DisplayObject'.
* *
* * <p>If you passed <code>null</code> as first parameter to the Starling constructor,
* * you can use this property to set the root class at a later time. As soon as the class
* * is instantiated, Starling will dispatch a <code>ROOT_CREATED</code> event.</p>
* *
* * <p>Beware: you cannot change the root class once the root object has been
* * instantiated.</p>
*
*/
get rootClass(): any;
set rootClass(value: any)
/**
* Indicates if another Starling instance (or another Stage3D framework altogether)
* * uses the same render context. If enabled, Starling will not execute any destructive
* * context operations (e.g. not call 'configureBackBuffer', 'clear', 'present', etc.
* * This has to be done manually, then. @default false
*/
get shareContext(): boolean;
set shareContext(value: boolean)
/**
* The Context3D profile of the current render context, or <code>null</code>
* * if the context has not been created yet.
*/
get profile(): Context3DProfile;
/**
* Indicates that if the device supports HiDPI screens Starling will attempt to allocate
* * a larger back buffer than indicated via the viewPort size. Note that this is used
* * on Desktop only; mobile AIR apps still use the "requestedDisplayResolution" parameter
* * the application descriptor XML. @default false
*/
get supportHighResolutions(): boolean;
set supportHighResolutions(value: boolean)
/**
* If enabled, the Stage3D back buffer will change its size according to the browser zoom
* * value - similar to what's done when "supportHighResolutions" is enabled. The resolution
* * is updated on the fly when the zoom factor changes. Only relevant for the browser plugin.
* * @default false
*/
get supportBrowserZoom(): boolean;
set supportBrowserZoom(value: boolean)
/**
* When enabled, Starling will skip rendering the stage if it hasn't changed since the
* * last frame. This is great for apps that remain static from time to time, since it will
* * greatly reduce power consumption. You should activate this whenever possible!
* *
* * <p>The reason why it's disabled by default is just that it causes problems with Render-
* * and VideoTextures. When you use those, you either have to disable this property
* * temporarily, or call <code>setRequiresRedraw()</code> (ideally on the stage) whenever
* * those textures are changing. Otherwise, the changes won't show up.</p>
* *
* * @default false
*
*/
get skipUnchangedFrames(): boolean;
set skipUnchangedFrames(value: boolean)
/**
* The TouchProcessor is passed all mouse and touch input and is responsible for
* * dispatching TouchEvents to the Starling display tree. If you want to handle these
* * types of input manually, pass your own custom subclass to this property.
*/
get touchProcessor(): TouchProcessor;
set touchProcessor(value: TouchProcessor)
/**
* When enabled, all touches that start very close to the screen edges are discarded.
* * On mobile, such touches often indicate swipes that are meant to use OS features.
* * Per default, margins of 15 points at the top, bottom, and left side of the screen are
* * checked. Call <code>starling.touchProcessor.setSystemGestureMargins()</code> to adapt
* * the margins in each direction. @default true on mobile, false on desktop
*
*/
get discardSystemGestures(): boolean;
set discardSystemGestures(value: boolean)
/**
* The number of frames that have been rendered since this instance was created.
*/
get frameID(): number;
/**
* Indicates if the Context3D object is currently valid (i.e. it hasn't been lost or
* * disposed).
*/
get contextValid(): boolean;
}
}
export default starling.core.Starling;