Difference between revisions of "LGUI2:canvas"

From Lavish Software Wiki
Jump to navigation Jump to search
 
Line 71: Line 71:
  
 
{{LGUI2:Element}}
 
{{LGUI2:Element}}
[[Category:LavishGUI 2 Bordered Elements]]
 

Latest revision as of 18:59, 2 October 2019

A LavishGUI 2 canvas element is basically a blank slate to use to draw custom graphics, via Canvas Operations


Defining a canvas element

An canvas element is an Element with additional canvas properties to do canvas things.


canvas element properties
fonts A JSON object containing a list of named Font definitions
brushes A JSON object containing a list of named Brush definitions
initialize A JSON array containing a list of Canvas Operations to Batch (queue for processing) when the canvas is created or resized
batch A JSON array containing a list of Canvas Operations to queue for processing (after automatically Batching "initialize" if required)


Examples

A canvas with a custom, scalable stick figure, including per-vertex diffuse lighting

LGUI2_Canvas_Stick_Figure.png

{
    "type":"canvas",
    "name":"c1",
    "width":256,
    "height":256,
    "brushes":{
        "test1":{"color":"#ffcccc66"}
    },
    "initialize":[
        {
            "op":"pushBrush",
            "brush":"test1"
        },
        {
            "op":"drawCircle",
            "x":0.5,
            "y":0.2,
            "radius":0.1          
        },
        {
            "op":"drawPrimitives",
            "type":"lineList",
            "vertices":[
                [0.5,0.3,0,0,"#ffff0000"],
                [0.5,0.6,0,0,"#ffff0000"],

                [0.5,0.35,0,0,"#ffff0000"],
                [0.35,0.15,0,0,"#ff00ff00"],

                [0.5,0.35,0,0,"#ffff0000"],
                [0.65,0.15,0,0,"#ff00ff00"], 

                [0.5,0.6,0,0,"#ffff0000"],
                [0.35,0.8,0,0,"#ff00ff00"],

                [0.5,0.6,0,0,"#ffff0000"],
                [0.65,0.8,0,0,"#ff00ff00"]
            ]
        }
    ]
}


LavishGUI 2 Element Types

LavishGUI 2 LavishScript Object Types

Core API (see Using LavishGUI 2 from LavishScript)
lgui2 - lgui2animateargs - lgui2animationtype - lgui2elementref - lgui2eventargs - lgui2eventhandler - lgui2elementtype - lgui2itemviewgeneratorargs - lgui2inputbinding - lgui2layer - lgui2skin - lgui2trigger
Enums
elgui2animationframestate - elgui2dpad - elgui2edge - elgui2fontflags - elgui2horizontalalignment - elgui2imageorientation - elgui2progresstext - elgui2scrollbar - elgui2sizetocontent - elgui2verticalignment - elgui2visibility
Element Components
lgui2animation - lgui2brush - lgui2fontstyle - lgui2margins - lgui2item - lgui2property - lgui2radialitem - lgui2radialgaugeneedle
Element Base Types
lgui2element - lgui2bordered - lgui2contentbase - lgui2headeredcontentbase - lgui2itemlist
Elements