Skip to content

Renderer

System that controls graphical rendering.


EnableStatsOverlay

Enable the stats overlay which can be used for displaying performance information. When enabling, a mode string can be passed in to specify which stats mode to use. Possible values are "Performance", "Memory", "Network".

Sig: Renderer.EnableStatsOverlay(enable, mode="Performance") - Arg: boolean enable Enable stats overlay - Arg: string mode Which mode to enable. Possible values: "Performance", "Memory", "Network"


EnableConsole

Enable the console. The console will display log messages on screen. It currently doesn't accept any sort of console commands.

Sig: Renderer.EnableConsole(enable) - Arg: boolean enable Enable console


DirtyAllWidgets

Dirty all widgets. Probably shouldn't be called...

Sig: Renderer.DirtyAllWidgets()


GetFrameNumber

Get the current frame number.

Sig: frameNum = Renderer.GetFrameNumber() - Ret: integer frameNum Frame number


GetFrameIndex

Get the frame index. Either 0 or 1.

Sig: index = Renderer.GetFrameIndex() - Ret: integer index Frame index


GetScreenIndex

Get the screen index that is currently being rendered to. Not sure if this is useful to Lua code.

Sig: index = Renderer.GetScreenIndex() - Ret: integer index Screen index being rendered


GetScreenResolution

Get the screen resolution.

Sig: res = Renderer.GetScreenResolution(index=1) - Arg: integer index Screen index - Ret: Vector res Screen resolution (width in x, height in y)


GetGlobalUiScale

Get the global UI scale.

Sig: scale = Renderer.GetGlobalUiScale() - Ret: number scale Global UI scale


SetGlobalUiScale

Set the global UI scale.

Sig: Renderer.SetGlobalUiScale(scale) - Arg: number scale Global UI scale


SetDebugMode

Set the debug mode. Debug mode: - 0 = None - 1 = Shadow map - 2 = Wireframe - 3 = Collision

Sig: Renderer.SetDebugMode(mode) - Arg: integer mode Debug mode


GetDebugMode

Get the debug mode. Debug mode: - 0 = None - 1 = Shadow map - 2 = Wireframe - 3 = Collision

Sig: mode = Renderer.GetDebugMode() - Ret: integer mode Debug mode


EnableProxyRendering

Enable proxy rendering. Proxy rendering is used to visualize where non-renderable components are located. For instance, Node3D, PointLight3D, Box3D...

Sig: Renderer.EnableProxyRendering(enable) - Arg: boolean enable Enable proxy rendering


IsProxyRenderingEnabled

Check if proxy rendering is enabled. Proxy rendering is used to visualize where non-renderable components are located. For instance, Node3D, PointLight3D, Box3D...

Sig: enabled = Renderer.IsProxyRenderingEnabled() - Ret: boolean enabled Is proxy rendering enabled


SetBoundsDebugMode

Enable bounds debug rendering.

Bounds Debug Mode: - 0 = Off - 1 = All primitives - 2 = Selected primitive

Sig: Renderer.SetBoundsDebugMode(mode) - Arg: integer mode Bounds debug mode


GetBoundsDebugMode

Get the bounds debug rendering mode.

Bounds Debug Mode: - 0 = Off - 1 = All primitives - 2 = Selected primitive

Sig: mode = Renderer.GetBoundsDebugMode() - Ret: integer mode Bounds debug mode


EnableFrustumCulling

Enable/disable frustum culling. This is enabled by default. Disabling this will hurt performance.

Sig: Renderer.EnableFrustumCulling(enable) - Arg: boolean enable Enable frustum culling


IsFrustumCullingEnabled

Check if frustum culling is enabled.

Sig: enabled = Renderer.IsFrustumCullingEnabled() - Ret: boolean enabled Frustum culling enabled


AddDebugDraw

Add a debug draw.

Sig: Renderer.AddDebugDraw(mesh, pos, rot=Vec(0,0,0), scale=Vec(1,1,1), color=Vec(0.25, 0.25, 1.0, 1.0), life=0, material=nil) - Arg: StaticMesh mesh Mesh to render - Arg: Vector pos Position - Arg: Vector rot Rotation - Arg: Vector scale Scale - Arg: Vector color Color (for wireframe rendering) - Arg: number life Life of draw (0 = draw for current frame only) - Arg: Material material Material to render. Wireframe draw if nil.


AddDebugLine

Add a debug line.

Sig: Renderer.AddDebugLine(start, end, color, life) - Arg: Vector start Line start position - Arg: Vector end Line end position - Arg: Vector color Line color - Arg: number life Life of draw (0 = draw for current frame only)


Enable3dRendering

Enable/disable 3D rendering.

Sig: Renderer.Enable3dRendering(enable) - Arg: boolean enable Enable 3D rendering


Is3dRenderingEnabled

Check if 3D rendering is enabled.

Sig: enabled = Renderer.Is3dRenderingEnabled() - Ret: boolean enabled Is 3D rendering enabled


Enable2dRendering

Enable/disable 2D rendering.

Sig: Renderer.Enable2dRendering(enable) - Arg: boolean enable Enable 2D rendering


Is2dRenderingEnabled

Check if 2D rendering is enabled.

Sig: enabled = Renderer.Is2dRenderingEnabled() - Ret: boolean enabled Is 2D rendering enabled


IsLightFadeEnabled

Check if light fade is enabled. Light fading is a way to reduce the number of active lights to improve performance. The lights closest to the camera will be visible.

Sig: enabled = Renderer.IsLightFadeEnabled() - Ret: boolean enabled Is light fade enabled


EnableLightFade

Set whether light fade is enabled. Light fading is a way to reduce the number of active lights to improve performance. The lights closest to the camera will be visible.

Sig: Renderer.EnableLightFade(enable) - Arg: boolean enable Enable light fade


SetLightFadeLimit

Set the maximum number of lights that can be rendered when light fade is enabled.

Sig: Renderer.SetLightFadeLimit(limit) - Arg: integer limit Light count limit


GetLightFadeLimit

Get the maximum number of lights that can be rendered when light fade is enabled.

Sig: limit = Renderer.GetLightFadeLimit() - Ret: integer limit Light count limit


SetLightFadeSpeed

Set the light fade in/out speed when light fade is enabled. Light fade speed of 1 = completely fade out a light from full brightness to nothing in the span of one second.

Sig: Renderer.SetLightFadeSpeed(speed) - Arg: number speed Fade speed


GetLightFadeSpeed

Get the light fade in/out speed when light fade is enabled.

Sig: speed = Renderer.GetLightFadeSpeed() - Ret: number speed Fade speed


SetResolutionScale

Set the resolution scale. Only supported on Vulkan platforms.

Sig: Renderer.SetResolutionScale(scale) - Arg: number scale Resolution scale (1.0 = 100% resolution)


GetResolutionScale

Get the resolution scale. Resolution scale is only supported on Vulkan platforms.

Sig: scale = Renderer.GetResolutionScale() - Ret: number scale Resolution scale


SetClearColor

Set the scene images's clear color. On platforms with multiple screens, the same clear color will be used for both. Make sure to provide an alpha of 1.0 to be able to see the color. NOTE: Currently on Wii and GameCube, a non-zero alpha will break shadow mesh rendering, so it's best to stick to black with zero alpha if you are using shadow meshes.

Sig: Renderer.SetClearColor(color) - Arg: Vector color Clear color


GetRAMUsage

Get the current process RAM usage in megabytes. On Windows this returns the working set size. On Linux/Android it returns VmRSS from /proc. On 3DS/Dolphin it returns free bytes of the main memory pool.

Sig: ram = Renderer.GetRAMUsage() - Ret: number ram RAM usage in MB


GetVRAMUsage

Get the current VRAM usage in megabytes. On Vulkan platforms this returns the total bytes allocated through the VRAM allocator. On 3DS it returns free VRAM. Returns 0 on platforms without GPU memory tracking.

Sig: vram = Renderer.GetVRAMUsage() - Ret: number vram VRAM usage in MB


GetRAM1Usage

Get platform-specific memory pool 1 usage in megabytes. On 3DS this is linear heap free space. On Wii/GameCube this is MEM1 (arena 1) free space. Returns 0 on Windows/Linux/Android.

Sig: ram1 = Renderer.GetRAM1Usage() - Ret: number ram1 RAM pool 1 usage in MB


GetRAM2Usage

Get platform-specific memory pool 2 usage in megabytes. On 3DS this is VRAM free space. On Wii this is MEM2 (arena 2) free space. Returns 0 on Windows/Linux/Android/GameCube.

Sig: ram2 = Renderer.GetRAM2Usage() - Ret: number ram2 RAM pool 2 usage in MB


GetCPUUsage

Get the CPU usage as a percentage (0-100). On Windows this measures process CPU time vs wall time. On Linux it parses /proc/self/stat. Returns 0 on 3DS/Dolphin/Android.

Sig: cpu = Renderer.GetCPUUsage() - Ret: number cpu CPU usage percentage


AddDebugResourcesWidget

Create a DebugResourcesWidget and attach it as a child of the given parent widget. The widget displays live progress bars for RAM, VRAM, and FPS. It auto-updates every 0.5 seconds for memory and every frame for FPS.

Sig: widget = Renderer.AddDebugResourcesWidget(parent, showMultipleRAM=true, showFPS=true, showVRAM=true) - Arg: Node parent Parent widget to attach to - Arg: boolean showMultipleRAM Show RAM1/RAM2 rows (default true) - Arg: boolean showFPS Show FPS row (default true) - Arg: boolean showVRAM Show VRAM row (default true) - Ret: DebugResourcesWidget widget The created widget

Example:

-- Create a debug resources panel on a UI canvas
local panel = Renderer.AddDebugResourcesWidget(myCanvas, true, true, true)

-- Position it
panel:SetAnchorMode(AnchorMode.TopRight)
panel:SetPosition(-310, 10)

-- Hide it later
panel:SetVisible(false)

-- Or destroy it
panel:Destroy()