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
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