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.