Skip to content

Documentation / scene / ScreenAdapter

Class: ScreenAdapter ​

Defined in: libs/scene/src/app/screen.ts:96

Adapts a given physical viewport to a logical design resolution, and provides coordinate transforms between canvas and logical spaces.

Constructors ​

Constructor ​

new ScreenAdapter(config?): ScreenAdapter

Defined in: libs/scene/src/app/screen.ts:108

Creates a new ScreenAdapter.

Parameters ​

config? ​

Immutable<ScreenConfig>

Optional initial screen configuration. If omitted, a default of 1280 x 720 with cover mode is used.

Returns ​

ScreenAdapter

Accessors ​

config ​

Get Signature ​

get config(): Immutable<ScreenConfig>

Defined in: libs/scene/src/app/screen.ts:118

Returns the current design resolution configuration.

Returns ​

Immutable<ScreenConfig>

Set Signature ​

set config(config): void

Defined in: libs/scene/src/app/screen.ts:121

Parameters ​
config ​

Immutable<ScreenConfig>

Returns ​

void


viewport ​

Get Signature ​

get viewport(): readonly number[]

Defined in: libs/scene/src/app/screen.ts:129

Returns the viewport of the screen

Returns ​

readonly number[]

Set Signature ​

set viewport(vp): void

Defined in: libs/scene/src/app/screen.ts:132

Parameters ​
vp ​

readonly number[]

Returns ​

void


version ​

Get Signature ​

get version(): number

Defined in: libs/scene/src/app/screen.ts:141

Returns the version of the screen adapter

Returns ​

number


transform ​

Get Signature ​

get transform(): Immutable<ResolutionTransform>

Defined in: libs/scene/src/app/screen.ts:148

Returns the calculated resolution transform

Returns ​

Immutable<ResolutionTransform>

Methods ​

calculateResolutionTransform() ​

calculateResolutionTransform(viewportX, viewportY, viewportWidth, viewportHeight): object

Defined in: libs/scene/src/app/screen.ts:171

Computes the resolution transform for a given viewport in canvas coordinates.

Parameters ​

viewportX ​

number

X position of the provided viewport (CSS pixels).

viewportY ​

number

Y position of the provided viewport (CSS pixels).

viewportWidth ​

number

Width of the provided viewport (CSS pixels).

viewportHeight ​

number

Height of the provided viewport (CSS pixels).

Returns ​

object

A ResolutionTransform describing the adjusted viewport and coordinate transforms. If any dimension is non-positive, a transform with zero-sized viewport and identity-like transforms is returned.

viewportX ​

viewportX: number

viewportY ​

viewportY: number

viewportWidth ​

viewportWidth: number = 0

viewportHeight ​

viewportHeight: number = 0

croppedViewport ​

croppedViewport: object

croppedViewport.x ​

x: number = viewportX

croppedViewport.y ​

y: number = viewportY

croppedViewport.width ​

width: number = 0

croppedViewport.height ​

height: number = 0

canvasToViewport ​

canvasToViewport: object

canvasToViewport.scaleX ​

scaleX: number = 1

canvasToViewport.scaleY ​

scaleY: number = 1

canvasToViewport.offsetX ​

offsetX: number = 0

canvasToViewport.offsetY ​

offsetY: number = 0

canvasToLogic ​

canvasToLogic: object

canvasToLogic.scaleX ​

scaleX: number = 1

canvasToLogic.scaleY ​

scaleY: number = 1

canvasToLogic.offsetX ​

offsetX: number = 0

canvasToLogic.offsetY ​

offsetY: number = 0


canvasPosToViewport() ​

canvasPosToViewport(canvasPos, viewportPosOut?): Vector2

Defined in: libs/scene/src/app/screen.ts:344

Converts canvas coordinates into adjusted viewport-local coordinates.

Parameters ​

canvasPos ​

Vector2

Point in canvas coordinates (CSS pixels).

viewportPosOut? ​

Vector2

Optional output vector. If provided, it will be written into and returned; otherwise a new Vector2 is allocated.

Returns ​

Vector2

The point in viewport-local coordinates.

Remarks ​

This is mainly intended for picking / hit testing within the active rendering region, where (0, 0) corresponds to the top-left of the adapted viewport.


canvasPosToLogic() ​

canvasPosToLogic(canvasPos, logicPosOut?): Vector2

Defined in: libs/scene/src/app/screen.ts:360

Converts canvas coordinates into logical coordinates in the design resolution space.

Parameters ​

canvasPos ​

Vector2

Point in canvas coordinates (CSS pixels).

logicPosOut? ​

Vector2

Optional output vector. If provided, it will be written into and returned; otherwise a new Vector2 is allocated.

Returns ​

Vector2

The point in logical (design resolution) coordinates.

Remarks ​

This is mainly intended for UI editing and interaction, so that logic works consistently in the designWidth × designHeight coordinate system.


transformPoint() ​

transformPoint(transform, pointIn, pointOut?): Vector2

Defined in: libs/scene/src/app/screen.ts:377

Applies a 2D affine transform to a point.

The transform is applied as:

out.x = in.x * scaleX + offsetX out.y = in.y * scaleY + offsetY

Parameters ​

transform ​

PointTransform

Transform parameters (scale and offset).

pointIn ​

Vector2

Input point.

pointOut? ​

Vector2

Optional output vector. If provided, it will be written into and returned; otherwise a new Vector2 is allocated.

Returns ​

Vector2

The transformed point.


resolveViewport() ​

resolveViewport(): void

Defined in: libs/scene/src/app/screen.ts:386

Resolves the current viewport, updating internal state as needed.

Returns ​

void

Released under the MIT License.