Difference between revisions of "Viewport"
(completed the methods description) |
|||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | |||
<!-- GIDEROSOBJ:Viewport --> | <!-- GIDEROSOBJ:Viewport --> | ||
− | ''' | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> |
− | ''' | + | '''Available since:''' Gideros 2016.04<br/> |
− | ''' | + | '''Inherits from:''' [[Sprite]]<br/> |
− | === | + | === 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. | 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. | ||
− | === | + | === Examples === |
− | '''Displaying same Bitmap in multiple views | + | '''Displaying same Bitmap in multiple views''' |
<source lang="lua"> | <source lang="lua"> | ||
-- content we want to display in multiple views | -- content we want to display in multiple views | ||
Line 19: | Line 18: | ||
view1:setClip(0,0,300,300) | view1:setClip(0,0,300,300) | ||
view1:setContent(content) | view1:setContent(content) | ||
− | |||
-- add some transformations, just to see the difference | -- add some transformations, just to see the difference | ||
view1:setTransform(Matrix.new(1.7320507764816, -1.0000001192093, 1.0000001192093, 1.7320507764816, 50, 50)) | view1:setTransform(Matrix.new(1.7320507764816, -1.0000001192093, 1.0000001192093, 1.7320507764816, 50, 50)) | ||
− | |||
-- add view to stage | -- add view to stage | ||
stage:addChild(view1) | stage:addChild(view1) | ||
− | |||
-- now setup view 2 as a 200x200 window | -- now setup view 2 as a 200x200 window | ||
Line 32: | Line 28: | ||
view2:setPosition(0,300) -- lower down the screen | view2:setPosition(0,300) -- lower down the screen | ||
view2:setContent(content) | view2:setContent(content) | ||
− | |||
-- add some transformations, just to see the difference | -- add some transformations, just to see the difference | ||
view2:setTransform(Matrix.new(0.32139378786087, -0.38302224874496, 0.38302224874496, 0.32139378786087, 30, 30)) | view2:setTransform(Matrix.new(0.32139378786087, -0.38302224874496, 0.38302224874496, 0.32139378786087, 30, 30)) | ||
− | |||
-- add view to stage | -- add view to stage | ||
stage:addChild(view2) | stage:addChild(view2) | ||
Line 42: | Line 36: | ||
{|- | {|- | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Methods === |
− | [[ | + | [[Viewport.new]] ''creates a new viewport''<br/><!--GIDEROSMTD:Viewport.new() creates a new viewport--> |
− | <!-- GIDEROSMTD:Viewport.new() creates a new viewport--> | + | [[Viewport:lookAngles]] ''sets up the viewport look angle transform matrix (eye position, pitch, yaw and roll angles)''<br/><!--GIDEROSMTD:Viewport:lookAngles(eyex,eyey,eyez,pitch,yaw,roll) sets up the viewport look angle transform matrix--> |
− | [[ | + | [[Viewport:lookAt]] ''sets up the viewport look at transform matrix (eye, target position and up direction)''<br/><!--GIDEROSMTD:Viewport:lookAt(eyex,eyey,eyez,targetx,targety,targetz,upx,upy,upz) sets up the viewport look at transform matrix--> |
− | <!-- GIDEROSMTD:Viewport:lookAngles(eyex,eyey,eyez,pitch,yaw,roll) --> | + | [[Viewport:setClip]] ''sets the viewport size''<br/><!--GIDEROSMTD:Viewport:setClip(x,y,width,height) sets the viewport size--> |
− | [[ | + | [[Viewport:setContent]] ''sets the viewport content (sprite)''<br/><!--GIDEROSMTD:Viewport:setContent(sprite) sets the viewport content--> |
− | <!-- GIDEROSMTD:Viewport:lookAt(eyex,eyey,eyez,targetx,targety,targetz,upx,upy,upz) --> | + | [[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:setTransform]] ''sets the content transform matrix before it being displayed''<br/><!--GIDEROSMTD:Viewport:setTransform(transform) sets the content transform matrix before it being displayed--> |
− | <!-- GIDEROSMTD:Viewport:setClip(x,y,width,height) sets the viewport size --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Viewport:setContent(content | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Viewport:setProjection(matrix) specifies a projection matrix to use when displaying the content --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Viewport:setTransform(transform) | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Events === |
− | === | + | === Constants === |
|} | |} | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} |
Revision as of 01:42, 24 December 2020
Supported platforms:
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.
Examples
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)
MethodsViewport.new creates a new viewport |
EventsConstants |