Difference between revisions of "Viewport"

From GiderosMobile
m
 
(2 intermediate revisions by 2 users not shown)
Line 10: Line 10:
 
Useful for split screen games, mini maps and so on.
 
Useful for split screen games, mini maps and so on.
  
=== Examples ===
+
=== Example ===
 
'''Displaying same Bitmap in multiple views'''
 
'''Displaying same Bitmap in multiple views'''
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
-- content we want to display in multiple views
 
-- content we want to display in multiple views
 
local content = Bitmap.new(Texture.new("ball.png"))
 
local content = Bitmap.new(Texture.new("ball.png"))
Line 34: Line 34:
 
-- add view to stage
 
-- add view to stage
 
stage:addChild(view2)
 
stage:addChild(view2)
</source>
+
</syntaxhighlight>
  
 
{|-
 
{|-
Line 45: Line 45:
 
[[Viewport:setContent]] ''sets the viewport content (sprite)''<br/><!--GIDEROSMTD:Viewport:setContent(content) sets the viewport content (sprite)-->
 
[[Viewport:setContent]] ''sets the viewport content (sprite)''<br/><!--GIDEROSMTD:Viewport:setContent(content) sets the viewport content (sprite)-->
 
[[Viewport:setProjection]] ''specifies a projection matrix to use when displaying the content''<br/><!--GIDEROSMTD:Viewport:setProjection(matrix) specifies a projection matrix to use when displaying the content-->
 
[[Viewport:setProjection]] ''specifies a projection matrix to use when displaying the content''<br/><!--GIDEROSMTD:Viewport:setProjection(matrix) specifies a projection matrix to use when displaying the content-->
 +
[[Viewport:setTarget]] ''sets a rt as target''<br/><!--GIDEROSMTD:Viewport:setTarget(rt) sets a rt as target-->
 
[[Viewport:setTransform]] ''sets the content transform matrix before it being displayed''<br/><!--GIDEROSMTD:Viewport:setTransform(transform) sets the content transform matrix before it being displayed-->
 
[[Viewport:setTransform]] ''sets the content transform matrix before it being displayed''<br/><!--GIDEROSMTD:Viewport:setTransform(transform) sets the content transform matrix before it being displayed-->
  

Latest revision as of 00:13, 21 February 2024

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2016.04
Inherits from: Sprite

Description

A Viewport sprite allows to display another view of a tree hierarchy already on stage. Sprites can't have two parents, but thanks to Viewport you can display the same Sprite twice on the stage.

Useful for split screen games, mini maps and so on.

Example

Displaying same Bitmap in multiple views

-- content we want to display in multiple views
local content = Bitmap.new(Texture.new("ball.png"))

-- now setup view 1 as a 300x300 window
view1=Viewport.new()
view1:setClip(0,0,300,300)
view1:setContent(content)
-- add some transformations, just to see the difference
view1:setTransform(Matrix.new(1.7320507764816, -1.0000001192093, 1.0000001192093, 1.7320507764816, 50, 50))
-- add view to stage
stage:addChild(view1)

-- now setup view 2 as a 200x200 window
view2=Viewport.new()
view2:setClip(0,0,200,200)
view2:setPosition(0,300) -- lower down the screen
view2:setContent(content)
-- add some transformations, just to see the difference
view2:setTransform(Matrix.new(0.32139378786087, -0.38302224874496, 0.38302224874496, 0.32139378786087, 30, 30))
-- add view to stage
stage:addChild(view2)

Methods

Viewport.new creates a new viewport
Viewport:lookAngles sets up the viewport look angle transform matrix (eye position, pitch, yaw and roll angles)
Viewport:lookAt sets up the viewport look at transform matrix (eye, target position and up direction)
Viewport:setClip sets the viewport size
Viewport:setContent sets the viewport content (sprite)
Viewport:setProjection specifies a projection matrix to use when displaying the content
Viewport:setTarget sets a rt as target
Viewport:setTransform sets the content transform matrix before it being displayed

Events

Constants