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()