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 null if you don't want to
* * create a root object right away. (You can use the
* * rootClass 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, sharedContext will be set
* * to true. 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.
* *
* *
CAUTION: not a copy, but the actual object! Do not modify!
*/ static get all(): VectoradvanceTime() (with the time that has passed since the last frame)
* * and render().
*/
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 shareContext).
* *
* * This method also dispatches an Event.RENDER-event on the Starling
* * instance. That's the last opportunity to make changes before the display list is
* * rendered. When the rendering is completed, this method dispatches an
* * Event.RENDER_COMPLETE-event on the Starling instance too.
current one.
*/
makeCurrent(): void;
/**
* As soon as Starling is started, it will queue input events (keyboard/mouse/touch);
* * furthermore, the method nextFrame will be called once per Flash Player
* * frame. (Except when shareContext 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.)
* *
* * 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.
* */ stop(suspendRendering?: boolean): void; /** * Makes sure that the next frame is actually rendered. * * * *When skipUnchangedFrames 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 stage.setRequiresRedraw().
* *
rendermethods 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 default texture smoothing. This value will be used as the default value when
* * creating 'MeshStyle', 'FragmentFilter' or 'FilterEffect'.
* * Changing it won't have any impact on the existing meshes and filters.
* * @default "bilinear"
*/
get defaultTextureSmoothing(): string;
set defaultTextureSmoothing(value: string)
/**
* 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.
* *
* * Beware that the memory usage should be taken with a grain of salt. The value is
* * determined via System.totalMemory and does not take texture memory
* * into account. It is recommended to use Adobe Scout for reliable and comprehensive
* * memory analysis.
If you passed null 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 ROOT_CREATED event.
Beware: you cannot change the root class once the root object has been * * instantiated.
* */ 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, ornull
* * 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!
* *
* * 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 setRequiresRedraw() (ideally on the stage) whenever
* * those textures are changing. Otherwise, the changes won't show up.
starling.touchProcessor.setSystemGestureMargins() 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;