Skip to main content
Version: latest - a1.73.x βš–οΈ

πŸ–ΌοΈ Canvas

Canvas is an entity which you can draw onto it.

πŸ’‚Authority
This class can only be spawned on 🟧 Client side.
πŸ§‘β€πŸ’»API Source
This page is auto-generated! The Functions, Properties and Events described here are defined in our GitHub's API Repository! Feel free to commit suggestions and changes to the source .json API files!

πŸŽ’ Examples​

Client/Index.lua
-- Spawns a Canvas
local my_canvas = Canvas(
true,
Color.TRANSPARENT,
0,
true
)

-- Subscribes for Update, we can only Draw inside this event
my_canvas:Subscribe("Update", function(self, width, height)
-- Draws a Text in the middle of the screen
self:DrawText("Hello World!", Vector2D(width / 2, height / 2))

-- Draws a red line Horizontally
self:DrawLine(Vector2D(0, height / 2), Vector2D(width, height / 2), 10, Color.RED)
end)

-- Forces the canvas to repaint, this will make it trigger the Update event
my_canvas:Repaint()

-- Applies the Canvas material into a Prop
any_prop:SetMaterialFromCanvas(my_canvas)
tip

You can use the output Texture from a Canvas with :SetMaterialFromCanvas() method!

πŸ›  Constructors​

Default Constructor

No description provided

local my_canvas = Canvas(is_visible?, clear_color?, auto_repaint_rate?, should_clear_before_update?, auto_resize?, width?, height?, screen_position?)
TypeNameDefaultDescription
is_visibletrueWhether to draw it on screen
Colorclear_colorColor.TRANSPARENTColor to clear with (background color)
auto_repaint_rate-1Rate to auto repaint (call Update event), pass 0 for every frame, -1 to disable
should_clear_before_updatetrueWhether to clear with Clear Color before updates
auto_resizetrueAuto resize with screen's size
width0If not using auto_resize
height0If not using auto_resize
Vector2Dscreen_positionVector2D(0, 0)If not using auto_resize, offset when drawing to screen

πŸ—Ώ Static Functions​

This class doesn't have own static functions.

🦠 Functions​

ReturnsNameDescription
Clear the Canvas with a specific Color
Draws an unfilled box on the Canvas
Draws a line on the Canvas
Draws a Material on the Canvas
Draws a SceneCapture on the Canvas
Draws a WebUI on the Canvas
Draws a N-Polygon on the Canvas
Draws a filled Rect on the Canvas
Draws a Text on the Canvas
Draws a Texture on the Canvas
Vector2DGets the Canvas Size
Forces the repaint
Resizes the Canvas if not using auto_resize
Sets the repaint rate
Sets if the canvas should auto resize to screen size
Sets the Canvas Screen Position offset
Sets if it's visible on screen

Clear

Clear the Canvas with a specific Color

my_canvas:Clear(clear_color)
TypeParameterDefaultDescription
Colorclear_color Required parameter No description provided

DrawBox

Draws an unfilled box on the Canvas

This method can only be called from inside Update event

my_canvas:DrawBox(screen_position, screen_size, thickness, render_color?, blend_mode?)
TypeParameterDefaultDescription
Vector2Dscreen_position Required parameter No description provided
Vector2Dscreen_size Required parameter No description provided
thickness Required parameter No description provided
Colorrender_color?Color.WHITENo description provided
blend_mode?BlendMode.OpaqueNo description provided

DrawLine

Draws a line on the Canvas

This method can only be called from inside Update event

my_canvas:DrawLine(screen_position_a, screen_position_b, thickness, render_color, blend_mode?)
TypeParameterDefaultDescription
Vector2Dscreen_position_a Required parameter No description provided
Vector2Dscreen_position_b Required parameter No description provided
thickness Required parameter No description provided
Colorrender_color Required parameter No description provided
blend_mode?BlendMode.OpaqueNo description provided

DrawMaterial

Draws a Material on the Canvas

This method can only be called from inside Update event

Note: Due how Unreal handles Render Targets, drawing material on Canvas result on a weird translucent effect. Hope in the future to be improved.

my_canvas:DrawMaterial(material_path, screen_position, screen_size, coordinate_position, coordinate_size?, rotation?, pivot_point?, blend_mode?)
TypeParameterDefaultDescription
material_path Required parameter No description provided
Vector2Dscreen_position Required parameter No description provided
Vector2Dscreen_size Required parameter No description provided
Vector2Dcoordinate_position Required parameter No description provided
Vector2Dcoordinate_size?Vector2D(1, 1)No description provided
rotation?0No description provided
Vector2Dpivot_point?Vector2D(0.5, 0.5)No description provided
blend_mode?BlendMode.OpaqueNo description provided

DrawMaterialFromSceneCapture

Draws a SceneCapture on the Canvas

This method can only be called from inside Update event

Note: Due how Unreal handles Render Targets, drawing material on Canvas result on a weird translucent effect. Hope in the future to be improved.

my_canvas:DrawMaterialFromSceneCapture(scenecapture_entity, screen_position, screen_size, coordinate_position, coordinate_size?, rotation?, pivot_point?, blend_mode?)
TypeParameterDefaultDescription
SceneCapturescenecapture_entity Required parameter No description provided
Vector2Dscreen_position Required parameter No description provided
Vector2Dscreen_size Required parameter No description provided
Vector2Dcoordinate_position Required parameter No description provided
Vector2Dcoordinate_size?Vector2D(1, 1)No description provided
rotation?0No description provided
Vector2Dpivot_point?Vector2D(0.5, 0.5)No description provided
blend_mode?BlendMode.OpaqueNo description provided

DrawMaterialFromWebUI

Draws a WebUI on the Canvas

This method can only be called from inside Update event

Note: Due how Unreal handles Render Targets, drawing material on Canvas result on a weird translucent effect. Hope in the future to be improved.

my_canvas:DrawMaterialFromWebUI(webui_entity, screen_position, screen_size, coordinate_position, coordinate_size?, rotation?, pivot_point?, blend_mode?)
TypeParameterDefaultDescription
WebUIwebui_entity Required parameter No description provided
Vector2Dscreen_position Required parameter No description provided
Vector2Dscreen_size Required parameter No description provided
Vector2Dcoordinate_position Required parameter No description provided
Vector2Dcoordinate_size?Vector2D(1, 1)No description provided
rotation?0No description provided
Vector2Dpivot_point?Vector2D(0.5, 0.5)No description provided
blend_mode?BlendMode.OpaqueNo description provided

DrawPolygon

Draws a N-Polygon on the Canvas

This method can only be called from inside Update event

my_canvas:DrawPolygon(texture_path, screen_position, radius?, number_of_sides?, render_color?, blend_mode?)
TypeParameterDefaultDescription
texture_path Required parameter Pass empty to use default white Texture
Vector2Dscreen_position Required parameter No description provided
Vector2Dradius?Vector2D(1, 1)No description provided
number_of_sides?3No description provided
Colorrender_color?Color.WHITENo description provided
blend_mode?BlendMode.OpaqueNo description provided

DrawRect

Draws a fille Rect on the Canvas

This method can only be called from inside Update event

my_canvas:DrawRect(texture_path, screen_position, screen_size, render_color?, blend_mode?)
TypeParameterDefaultDescription
texture_path Required parameter Pass empty to use default white Texture
Vector2Dscreen_position Required parameter No description provided
Vector2Dscreen_size Required parameter No description provided
Colorrender_color?Color.WHITENo description provided
blend_mode?BlendMode.OpaqueNo description provided

DrawText

Draws a Text on the Canvas

This method can only be called from inside Update event

Shadow and Outline won't work properly with Transparent clear_color

my_canvas:DrawText(text, screen_position, font_type?, font_size?, text_color?, kerning?, center_x?, center_y?, shadow_color?, shadow_offset?, outlined?, outline_color?)
TypeParameterDefaultDescription
text Required parameter No description provided
Vector2Dscreen_position Required parameter No description provided
font_type?FontType.RobotoNo description provided
font_size?12No description provided
Colortext_color?Color.WHITENo description provided
kerning?0No description provided
center_x?falseNo description provided
center_y?falseNo description provided
Colorshadow_color?Color.TRANSPARENTNo description provided
Vector2Dshadow_offset?Vector2D(1, 1)No description provided
outlined?falseNo description provided
Coloroutline_color?Color.BLACKNo description provided

DrawTexture

Draws a Texture on the Canvas

This method can only be called from inside Update event

my_canvas:DrawTexture(texture_path, screen_position, screen_size, coordinate_position, coordinate_size?, render_color?, blend_mode?, rotation?, pivot_point?)
TypeParameterDefaultDescription
texture_path Required parameter No description provided
Vector2Dscreen_position Required parameter No description provided
Vector2Dscreen_size Required parameter No description provided
Vector2Dcoordinate_position Required parameter No description provided
Vector2Dcoordinate_size?Vector2D(1, 1)No description provided
Colorrender_color?Color.WHITENo description provided
blend_mode?BlendMode.OpaqueNo description provided
rotation?0No description provided
Vector2Dpivot_point?Vector2D(0.5, 0.5)No description provided

GetSize

Gets the Canvas Size

β€” Returns Vector2D (the current size).

local ret = my_canvas:GetSize()

Repaint

Forces the repaint, this will trigger Update event

my_canvas:Repaint()

Resize

Resizes the Canvas if not using auto_resize

my_canvas:Resize(width, height)
TypeParameterDefaultDescription
width Required parameter No description provided
height Required parameter No description provided

SetAutoRepaintRate

Sets it to -1 to stop auto repainting or 0 to repaint every frame

my_canvas:SetAutoRepaintRate(auto_repaint_rate)
TypeParameterDefaultDescription
auto_repaint_rate Required parameter No description provided

SetAutoResize

Sets if the canvas should auto resize to screen size

my_canvas:SetAutoResize(auto_resize)
TypeParameterDefaultDescription
auto_resize Required parameter No description provided

SetScreenPosition

Sets the Canvas Screen Position offset

my_canvas:SetScreenPosition(screen_position)
TypeParameterDefaultDescription
Vector2Dscreen_position Required parameter No description provided

SetVisibility

Sets if it's visible on screen

my_canvas:SetVisibility(visible)
TypeParameterDefaultDescription
visible Required parameter No description provided

πŸš€ Events​

NameDescription
Called when the Canvas needs to be painted

You can only call :Draw...() methods from inside this event

Update

Called when the Canvas needs to be painted

You can only call :Draw...() methods from inside this event
Canvas.Subscribe("Update", function(self, width, height)
-- Update was called
end)
TypeArgumentDescription
CanvasselfNo description provided
widthNo description provided
heightNo description provided