import { RectangleRegion } from '../basic/Region'; /** * Parameters for creating p5ex.ScalableCanvas instance. */ export interface ScalableCanvasParameters { /** * Scaled width (the actual pixel size of the canvas). */ scaledWidth: number; /** * Scaled height (the actual pixel size of the canvas). */ scaledHeight: number; /** * Internal length of the short side of screen. */ nonScaledShortSideLength: number; } /** * (To be filled) * @hideConstructor */ export declare class ScalableCanvas { static readonly DUMMY_PARAMETERS: ScalableCanvasParameters; /** * Corresponding canvas element. * (The official p5.js type description defines it as an HTMLCanvasElement object, * however it should actually be handled as a p5.Renderer instance.) */ readonly canvasElement: any; readonly region: RectangleRegion; private readonly p; private nonScaledShortSideLength; private _scaleFactor; private _inversedScaleFactor; private _nonScaledWidth; private _nonScaledHeight; private _aspectRatio; /** * (To be filled) */ readonly scaleFactor: number; /** * (To be filled) */ readonly nonScaledWidth: number; /** * (To be filled) */ readonly nonScaledHeight: number; /** * (To be filled) */ readonly aspectRatio: number; constructor(p5Instance: p5, parameter: ScalableCanvasParameters, node: HTMLElement, rendererType?: RENDERER); /** * (To be filled) * @param parameter */ resize(parameter: ScalableCanvasParameters): void; /** * (To be filled) */ updateSize(): void; /** * Runs scale() of the current p5 instance for fitting the sketch to the current canvas. * Should be called every frame before drawing objects on the canvas. */ scale(): void; /** * Runs scale() with the inversed scale factor. */ cancelScale(): void; /** * Converts a length value on the scaled canvas to the non-scaled one. * Typically used for interpreting mouseX and mouseY. * @param {number} scaledLength - scaled length value */ getNonScaledValueOf(scaledLength: number): number; } /** * (To Be Filled) */ export declare type ScalableCanvasType = 'SQUARE640x640' | 'RECT640x480' | 'FULL' | 'CUSTOM'; /** * (To be filled) * (This is not implemented as an enum because it is not supported by rollup) */ export declare const ScalableCanvasTypes: { SQUARE640x640: ScalableCanvasType; RECT640x480: ScalableCanvasType; FULL: ScalableCanvasType; CUSTOM: ScalableCanvasType; };