diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 425cbebb2..672fafe62 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -10790,10 +10790,24 @@ function surface_is_painting_warp(surf) -- ... end +--- @param flag ShaderFlag +--- @return boolean +--- Gets if a custom shader flag (`SHADER_FLAG_*`) is enabled or not +function get_shader_flag_enabled(flag) + -- ... +end + --- @param flag ShaderFlag --- @param enabled boolean --- Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer -function enable_shader_flag(flag, enabled) +function set_shader_flag_enabled(flag, enabled) + -- ... +end + +--- @param flag ShaderFlag +--- @return number +--- Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer +function get_shader_flag_value(flag) -- ... end @@ -10804,9 +10818,15 @@ function set_shader_flag_value(flag, value) -- ... end +--- @return boolean +--- Gets if custom shader flags are enabled globally +function get_global_shader_flags_enabled() + -- ... +end + --- @param enabled boolean --- Enables custom shader flags as a global toggle, useful for disabling without manually going through every effect -function enable_shader_flags_global(enabled) +function set_global_shader_flags_enabled(enabled) -- ... end diff --git a/docs/lua/functions-6.md b/docs/lua/functions-6.md index 7deb9be1b..7a2ee4482 100644 --- a/docs/lua/functions-6.md +++ b/docs/lua/functions-6.md @@ -7576,1150 +7576,6 @@ Checks if the surface is a painting warp
- ---- -# functions from smlua_gfx_utils.h - -
- - -## [enable_shader_flag](#enable_shader_flag) - -### Description -Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer - -### Lua Example -`enable_shader_flag(flag, enabled)` - -### Parameters -| Field | Type | -| ----- | ---- | -| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) | -| enabled | `boolean` | - -### Returns -- None - -### C Prototype -`void enable_shader_flag(enum ShaderFlag flag, bool enabled);` - -[:arrow_up_small:](#) - -
- -## [set_shader_flag_value](#set_shader_flag_value) - -### Description -Sets a value for one of the custom shader flags (`SHADER_FLAG_*`) for the renderer - -### Lua Example -`set_shader_flag_value(flag, value)` - -### Parameters -| Field | Type | -| ----- | ---- | -| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) | -| value | `number` | - -### Returns -- None - -### C Prototype -`void set_shader_flag_value(enum ShaderFlag flag, f32 value);` - -[:arrow_up_small:](#) - -
- -## [enable_shader_flags_global](#enable_shader_flags_global) - -### Description -Enables custom shader flags as a global toggle, useful for disabling without manually going through every effect - -### Lua Example -`enable_shader_flags_global(enabled)` - -### Parameters -| Field | Type | -| ----- | ---- | -| enabled | `boolean` | - -### Returns -- None - -### C Prototype -`void enable_shader_flags_global(bool enabled);` - -[:arrow_up_small:](#) - -
- -## [clear_all_shader_flags](#clear_all_shader_flags) - -### Description -Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer - -### Lua Example -`clear_all_shader_flags()` - -### Parameters -- None - -### Returns -- None - -### C Prototype -`void clear_all_shader_flags(void);` - -[:arrow_up_small:](#) - -
- -## [set_override_fov](#set_override_fov) - -### Description -Sets the override FOV - -### Lua Example -`set_override_fov(fov)` - -### Parameters -| Field | Type | -| ----- | ---- | -| fov | `number` | - -### Returns -- None - -### C Prototype -`void set_override_fov(f32 fov);` - -[:arrow_up_small:](#) - -
- -## [set_override_near](#set_override_near) - -### Description -Sets the override near plane - -### Lua Example -`set_override_near(near)` - -### Parameters -| Field | Type | -| ----- | ---- | -| near | `number` | - -### Returns -- None - -### C Prototype -`void set_override_near(f32 near);` - -[:arrow_up_small:](#) - -
- -## [set_override_far](#set_override_far) - -### Description -Sets the override far plane - -### Lua Example -`set_override_far(far)` - -### Parameters -| Field | Type | -| ----- | ---- | -| far | `number` | - -### Returns -- None - -### C Prototype -`void set_override_far(f32 far);` - -[:arrow_up_small:](#) - -
- -## [get_lighting_dir](#get_lighting_dir) - -### Description -Gets a value of the global lighting direction - -### Lua Example -`local numberValue = get_lighting_dir(index)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | - -### Returns -- `number` - -### C Prototype -`f32 get_lighting_dir(u8 index);` - -[:arrow_up_small:](#) - -
- -## [set_lighting_dir](#set_lighting_dir) - -### Description -Sets a value of the global lighting direction - -### Lua Example -`set_lighting_dir(index, value)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | -| value | `number` | - -### Returns -- None - -### C Prototype -`void set_lighting_dir(u8 index, f32 value);` - -[:arrow_up_small:](#) - -
- -## [get_lighting_color](#get_lighting_color) - -### Description -Gets a value of the global lighting color - -### Lua Example -`local integerValue = get_lighting_color(index)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | - -### Returns -- `integer` - -### C Prototype -`u8 get_lighting_color(u8 index);` - -[:arrow_up_small:](#) - -
- -## [get_lighting_color_ambient](#get_lighting_color_ambient) - -### Description -Gets a value of the global ambient lighting color - -### Lua Example -`local integerValue = get_lighting_color_ambient(index)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | - -### Returns -- `integer` - -### C Prototype -`u8 get_lighting_color_ambient(u8 index);` - -[:arrow_up_small:](#) - -
- -## [set_lighting_color](#set_lighting_color) - -### Description -Sets a value of the global lighting color - -### Lua Example -`set_lighting_color(index, value)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | -| value | `integer` | - -### Returns -- None - -### C Prototype -`void set_lighting_color(u8 index, u8 value);` - -[:arrow_up_small:](#) - -
- -## [set_lighting_color_ambient](#set_lighting_color_ambient) - -### Description -Sets a value of the global lighting color (run this after `set_lighting_color` for the ambient color to not be overriden) - -### Lua Example -`set_lighting_color_ambient(index, value)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | -| value | `integer` | - -### Returns -- None - -### C Prototype -`void set_lighting_color_ambient(u8 index, u8 value);` - -[:arrow_up_small:](#) - -
- -## [get_vertex_color](#get_vertex_color) - -### Description -Gets a value of the global vertex shading color - -### Lua Example -`local integerValue = get_vertex_color(index)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | - -### Returns -- `integer` - -### C Prototype -`u8 get_vertex_color(u8 index);` - -[:arrow_up_small:](#) - -
- -## [set_vertex_color](#set_vertex_color) - -### Description -Sets a value of the global vertex shading color - -### Lua Example -`set_vertex_color(index, value)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | -| value | `integer` | - -### Returns -- None - -### C Prototype -`void set_vertex_color(u8 index, u8 value);` - -[:arrow_up_small:](#) - -
- -## [get_fog_color](#get_fog_color) - -### Description -Gets a value of the global fog color - -### Lua Example -`local integerValue = get_fog_color(index)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | - -### Returns -- `integer` - -### C Prototype -`u8 get_fog_color(u8 index);` - -[:arrow_up_small:](#) - -
- -## [set_fog_color](#set_fog_color) - -### Description -Sets a value of the global fog color - -### Lua Example -`set_fog_color(index, value)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | -| value | `integer` | - -### Returns -- None - -### C Prototype -`void set_fog_color(u8 index, u8 value);` - -[:arrow_up_small:](#) - -
- -## [get_fog_intensity](#get_fog_intensity) - -### Description -Gets the intensity of the fog - -### Lua Example -`local numberValue = get_fog_intensity()` - -### Parameters -- None - -### Returns -- `number` - -### C Prototype -`f32 get_fog_intensity(void);` - -[:arrow_up_small:](#) - -
- -## [set_fog_intensity](#set_fog_intensity) - -### Description -Sets the intensity of the fog (this value scales very quickly, 1.0 to 1.1 is a desirable range) - -### Lua Example -`set_fog_intensity(intensity)` - -### Parameters -| Field | Type | -| ----- | ---- | -| intensity | `number` | - -### Returns -- None - -### C Prototype -`void set_fog_intensity(f32 intensity);` - -[:arrow_up_small:](#) - -
- -## [get_skybox](#get_skybox) - -### Description -Gets the current skybox - -### Lua Example -`local integerValue = get_skybox()` - -### Parameters -- None - -### Returns -- `integer` - -### C Prototype -`s8 get_skybox(void);` - -[:arrow_up_small:](#) - -
- -## [set_override_skybox](#set_override_skybox) - -### Description -Sets the override skybox - -### Lua Example -`set_override_skybox(background)` - -### Parameters -| Field | Type | -| ----- | ---- | -| background | `integer` | - -### Returns -- None - -### C Prototype -`void set_override_skybox(s8 background);` - -[:arrow_up_small:](#) - -
- -## [get_skybox_color](#get_skybox_color) - -### Description -Gets a value of the global skybox color - -### Lua Example -`local integerValue = get_skybox_color(index)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | - -### Returns -- `integer` - -### C Prototype -`u8 get_skybox_color(u8 index);` - -[:arrow_up_small:](#) - -
- -## [set_skybox_color](#set_skybox_color) - -### Description -Sets a value of the global skybox color - -### Lua Example -`set_skybox_color(index, value)` - -### Parameters -| Field | Type | -| ----- | ---- | -| index | `integer` | -| value | `integer` | - -### Returns -- None - -### C Prototype -`void set_skybox_color(u8 index, u8 value);` - -[:arrow_up_small:](#) - -
- -## [gfx_parse](#gfx_parse) - -### Description -Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op` - -### Lua Example -`gfx_parse(cmd, func)` - -### Parameters -| Field | Type | -| ----- | ---- | -| cmd | `Pointer` <`Gfx`> | -| func | `Lua Function` () | - -### Returns -- None - -### C Prototype -`void gfx_parse(Gfx *cmd, LuaFunction func);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_op](#gfx_get_op) - -### Description -Gets the op of the display list command - -### Lua Example -`local integerValue = gfx_get_op(cmd)` - -### Parameters -| Field | Type | -| ----- | ---- | -| cmd | `Pointer` <`Gfx`> | - -### Returns -- `integer` - -### C Prototype -`u32 gfx_get_op(Gfx *cmd);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_display_list](#gfx_get_display_list) - -### Description -Gets the display list from a display list command if it has the op `G_DL` - -### Lua Example -`local pointerValue = gfx_get_display_list(cmd)` - -### Parameters -| Field | Type | -| ----- | ---- | -| cmd | `Pointer` <`Gfx`> | - -### Returns -- `Pointer` <`Gfx`> - -### C Prototype -`Gfx *gfx_get_display_list(Gfx *cmd);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_vertex_buffer](#gfx_get_vertex_buffer) - -### Description -Gets the vertex buffer from a display list command if it has the op `G_VTX` - -### Lua Example -`local pointerValue = gfx_get_vertex_buffer(cmd)` - -### Parameters -| Field | Type | -| ----- | ---- | -| cmd | `Pointer` <`Gfx`> | - -### Returns -- `Pointer` <`Vtx`> - -### C Prototype -`Vtx *gfx_get_vertex_buffer(Gfx *cmd);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_vertex_count](#gfx_get_vertex_count) - -### Description -Gets the number of vertices from a display list command if it has the op `G_VTX` - -### Lua Example -`local integerValue = gfx_get_vertex_count(cmd)` - -### Parameters -| Field | Type | -| ----- | ---- | -| cmd | `Pointer` <`Gfx`> | - -### Returns -- `integer` - -### C Prototype -`u16 gfx_get_vertex_count(Gfx *cmd);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_texture](#gfx_get_texture) - -### Description -Gets the texture from a display list command if it has an image related op - -### Lua Example -`local pointerValue = gfx_get_texture(cmd)` - -### Parameters -| Field | Type | -| ----- | ---- | -| cmd | `Pointer` <`Gfx`> | - -### Returns -- `Pointer` <`Texture`> - -### C Prototype -`Texture *gfx_get_texture(Gfx *cmd);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_from_name](#gfx_get_from_name) - -### Description -Gets a display list of the current mod from its name. Returns a pointer to the display list and its length - -### Lua Example -`local pointerValue, length = gfx_get_from_name(name)` - -### Parameters -| Field | Type | -| ----- | ---- | -| name | `string` | - -### Returns -- `Pointer` <`Gfx`> -- `integer` - -### C Prototype -`Gfx *gfx_get_from_name(const char *name, RET u32 *length);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_name](#gfx_get_name) - -### Description -Gets the name of a display list - -### Lua Example -`local stringValue = gfx_get_name(gfx)` - -### Parameters -| Field | Type | -| ----- | ---- | -| gfx | `Pointer` <`Gfx`> | - -### Returns -- `string` - -### C Prototype -`const char *gfx_get_name(Gfx *gfx);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_length](#gfx_get_length) - -### Description -Gets the max length of a display list - -### Lua Example -`local integerValue = gfx_get_length(gfx)` - -### Parameters -| Field | Type | -| ----- | ---- | -| gfx | `Pointer` <`Gfx`> | - -### Returns -- `integer` - -### C Prototype -`u32 gfx_get_length(Gfx *gfx);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_command](#gfx_get_command) - -### Description -Gets a command of a display list at position `offset` - -### Lua Example -`local pointerValue = gfx_get_command(gfx, offset)` - -### Parameters -| Field | Type | -| ----- | ---- | -| gfx | `Pointer` <`Gfx`> | -| offset | `integer` | - -### Returns -- `Pointer` <`Gfx`> - -### C Prototype -`Gfx *gfx_get_command(Gfx *gfx, u32 offset);` - -[:arrow_up_small:](#) - -
- -## [gfx_get_next_command](#gfx_get_next_command) - -### Description -Gets the next command of a given display list pointer. Intended to use in a for loop - -### Lua Example -`local pointerValue = gfx_get_next_command(gfx)` - -### Parameters -| Field | Type | -| ----- | ---- | -| gfx | `Pointer` <`Gfx`> | - -### Returns -- `Pointer` <`Gfx`> - -### C Prototype -`Gfx *gfx_get_next_command(Gfx *gfx);` - -[:arrow_up_small:](#) - -
- -## [gfx_copy](#gfx_copy) - -### Description -Copies `length` commands from display list `src` to display list `dest` - -### Lua Example -`gfx_copy(dest, src, length)` - -### Parameters -| Field | Type | -| ----- | ---- | -| dest | `Pointer` <`Gfx`> | -| src | `Pointer` <`Gfx`> | -| length | `integer` | - -### Returns -- None - -### C Prototype -`void gfx_copy(Gfx *dest, Gfx *src, u32 length);` - -[:arrow_up_small:](#) - -
- -## [gfx_create](#gfx_create) - -### Description -Creates a new named display list of `length` commands - -### Lua Example -`local pointerValue = gfx_create(name, length)` - -### Parameters -| Field | Type | -| ----- | ---- | -| name | `string` | -| length | `integer` | - -### Returns -- `Pointer` <`Gfx`> - -### C Prototype -`Gfx *gfx_create(const char *name, u32 length);` - -[:arrow_up_small:](#) - -
- -## [gfx_resize](#gfx_resize) - -### Description -Resizes a display list created by `gfx_create` - -### Lua Example -`gfx_resize(gfx, newLength)` - -### Parameters -| Field | Type | -| ----- | ---- | -| gfx | `Pointer` <`Gfx`> | -| newLength | `integer` | - -### Returns -- None - -### C Prototype -`void gfx_resize(Gfx *gfx, u32 newLength);` - -[:arrow_up_small:](#) - -
- -## [gfx_delete](#gfx_delete) - -### Description -Deletes a display list created by `gfx_create` - -### Lua Example -`gfx_delete(gfx)` - -### Parameters -| Field | Type | -| ----- | ---- | -| gfx | `Pointer` <`Gfx`> | - -### Returns -- None - -### C Prototype -`void gfx_delete(Gfx *gfx);` - -[:arrow_up_small:](#) - -
- -## [gfx_delete_all](#gfx_delete_all) - -### Description -Deletes all display lists created by `gfx_create` - -### Lua Example -`gfx_delete_all()` - -### Parameters -- None - -### Returns -- None - -### C Prototype -`void gfx_delete_all();` - -[:arrow_up_small:](#) - -
- -## [vtx_get_from_name](#vtx_get_from_name) - -### Description -Gets a vertex buffer of the current mod from its name. Returns a pointer to the vertex buffering and its vertex count - -### Lua Example -`local pointerValue, count = vtx_get_from_name(name)` - -### Parameters -| Field | Type | -| ----- | ---- | -| name | `string` | - -### Returns -- `Pointer` <`Vtx`> -- `integer` - -### C Prototype -`Vtx *vtx_get_from_name(const char *name, RET u32 *count);` - -[:arrow_up_small:](#) - -
- -## [vtx_get_name](#vtx_get_name) - -### Description -Gets the name of a vertex buffer - -### Lua Example -`local stringValue = vtx_get_name(vtx)` - -### Parameters -| Field | Type | -| ----- | ---- | -| vtx | `Pointer` <`Vtx`> | - -### Returns -- `string` - -### C Prototype -`const char *vtx_get_name(Vtx *vtx);` - -[:arrow_up_small:](#) - -
- -## [vtx_get_count](#vtx_get_count) - -### Description -Gets the max count of vertices of a vertex buffer - -### Lua Example -`local integerValue = vtx_get_count(vtx)` - -### Parameters -| Field | Type | -| ----- | ---- | -| vtx | `Pointer` <`Vtx`> | - -### Returns -- `integer` - -### C Prototype -`u32 vtx_get_count(Vtx *vtx);` - -[:arrow_up_small:](#) - -
- -## [vtx_get_vertex](#vtx_get_vertex) - -### Description -Gets a vertex of a vertex buffer at position `offset` - -### Lua Example -`local pointerValue = vtx_get_vertex(vtx, offset)` - -### Parameters -| Field | Type | -| ----- | ---- | -| vtx | `Pointer` <`Vtx`> | -| offset | `integer` | - -### Returns -- `Pointer` <`Vtx`> - -### C Prototype -`Vtx *vtx_get_vertex(Vtx *vtx, u32 offset);` - -[:arrow_up_small:](#) - -
- -## [vtx_get_next_vertex](#vtx_get_next_vertex) - -### Description -Gets the next vertex of a given vertex pointer. Intended to use in a for loop - -### Lua Example -`local pointerValue = vtx_get_next_vertex(vtx)` - -### Parameters -| Field | Type | -| ----- | ---- | -| vtx | `Pointer` <`Vtx`> | - -### Returns -- `Pointer` <`Vtx`> - -### C Prototype -`Vtx *vtx_get_next_vertex(Vtx *vtx);` - -[:arrow_up_small:](#) - -
- -## [vtx_copy](#vtx_copy) - -### Description -Copies `count` vertices from vertex buffer `src` to vertex buffer `dest` - -### Lua Example -`vtx_copy(dest, src, count)` - -### Parameters -| Field | Type | -| ----- | ---- | -| dest | `Pointer` <`Vtx`> | -| src | `Pointer` <`Vtx`> | -| count | `integer` | - -### Returns -- None - -### C Prototype -`void vtx_copy(Vtx *dest, Vtx *src, u32 count);` - -[:arrow_up_small:](#) - -
- -## [vtx_create](#vtx_create) - -### Description -Creates a new named vertex buffer of `count` vertices - -### Lua Example -`local pointerValue = vtx_create(name, count)` - -### Parameters -| Field | Type | -| ----- | ---- | -| name | `string` | -| count | `integer` | - -### Returns -- `Pointer` <`Vtx`> - -### C Prototype -`Vtx *vtx_create(const char *name, u32 count);` - -[:arrow_up_small:](#) - -
- -## [vtx_resize](#vtx_resize) - -### Description -Resizes a vertex buffer created by `vtx_create` - -### Lua Example -`vtx_resize(vtx, newCount)` - -### Parameters -| Field | Type | -| ----- | ---- | -| vtx | `Pointer` <`Vtx`> | -| newCount | `integer` | - -### Returns -- None - -### C Prototype -`void vtx_resize(Vtx *vtx, u32 newCount);` - -[:arrow_up_small:](#) - -
- -## [vtx_delete](#vtx_delete) - -### Description -Deletes a vertex buffer created by `vtx_create` - -### Lua Example -`vtx_delete(vtx)` - -### Parameters -| Field | Type | -| ----- | ---- | -| vtx | `Pointer` <`Vtx`> | - -### Returns -- None - -### C Prototype -`void vtx_delete(Vtx *vtx);` - -[:arrow_up_small:](#) - -
- -## [vtx_delete_all](#vtx_delete_all) - -### Description -Deletes all vertex buffers created by `vtx_create` - -### Lua Example -`vtx_delete_all()` - -### Parameters -- None - -### Returns -- None - -### C Prototype -`void vtx_delete_all();` - -[:arrow_up_small:](#) - -
--- [< prev](functions-5.md) | [1](functions.md) | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | 6 | [7](functions-7.md) | [next >](functions-7.md)] diff --git a/docs/lua/functions-7.md b/docs/lua/functions-7.md index 35b669390..c388517f1 100644 --- a/docs/lua/functions-7.md +++ b/docs/lua/functions-7.md @@ -5,6 +5,1217 @@ [< prev](functions-6.md) | [1](functions.md) | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | [6](functions-6.md) | 7] +--- +# functions from smlua_gfx_utils.h + +
+ + +## [get_shader_flag_enabled](#get_shader_flag_enabled) + +### Description +Gets if a custom shader flag (`SHADER_FLAG_*`) is enabled or not + +### Lua Example +`local booleanValue = get_shader_flag_enabled(flag)` + +### Parameters +| Field | Type | +| ----- | ---- | +| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) | + +### Returns +- `boolean` + +### C Prototype +`bool get_shader_flag_enabled(enum ShaderFlag flag);` + +[:arrow_up_small:](#) + +
+ +## [set_shader_flag_enabled](#set_shader_flag_enabled) + +### Description +Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer + +### Lua Example +`set_shader_flag_enabled(flag, enabled)` + +### Parameters +| Field | Type | +| ----- | ---- | +| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) | +| enabled | `boolean` | + +### Returns +- None + +### C Prototype +`void set_shader_flag_enabled(enum ShaderFlag flag, bool enabled);` + +[:arrow_up_small:](#) + +
+ +## [get_shader_flag_value](#get_shader_flag_value) + +### Description +Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer + +### Lua Example +`local numberValue = get_shader_flag_value(flag)` + +### Parameters +| Field | Type | +| ----- | ---- | +| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) | + +### Returns +- `number` + +### C Prototype +`f32 get_shader_flag_value(enum ShaderFlag flag);` + +[:arrow_up_small:](#) + +
+ +## [set_shader_flag_value](#set_shader_flag_value) + +### Description +Sets a value for one of the custom shader flags (`SHADER_FLAG_*`) for the renderer + +### Lua Example +`set_shader_flag_value(flag, value)` + +### Parameters +| Field | Type | +| ----- | ---- | +| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) | +| value | `number` | + +### Returns +- None + +### C Prototype +`void set_shader_flag_value(enum ShaderFlag flag, f32 value);` + +[:arrow_up_small:](#) + +
+ +## [get_global_shader_flags_enabled](#get_global_shader_flags_enabled) + +### Description +Gets if custom shader flags are enabled globally + +### Lua Example +`local booleanValue = get_global_shader_flags_enabled()` + +### Parameters +- None + +### Returns +- `boolean` + +### C Prototype +`bool get_global_shader_flags_enabled(void);` + +[:arrow_up_small:](#) + +
+ +## [set_global_shader_flags_enabled](#set_global_shader_flags_enabled) + +### Description +Enables custom shader flags as a global toggle, useful for disabling without manually going through every effect + +### Lua Example +`set_global_shader_flags_enabled(enabled)` + +### Parameters +| Field | Type | +| ----- | ---- | +| enabled | `boolean` | + +### Returns +- None + +### C Prototype +`void set_global_shader_flags_enabled(bool enabled);` + +[:arrow_up_small:](#) + +
+ +## [clear_all_shader_flags](#clear_all_shader_flags) + +### Description +Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer + +### Lua Example +`clear_all_shader_flags()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void clear_all_shader_flags(void);` + +[:arrow_up_small:](#) + +
+ +## [set_override_fov](#set_override_fov) + +### Description +Sets the override FOV + +### Lua Example +`set_override_fov(fov)` + +### Parameters +| Field | Type | +| ----- | ---- | +| fov | `number` | + +### Returns +- None + +### C Prototype +`void set_override_fov(f32 fov);` + +[:arrow_up_small:](#) + +
+ +## [set_override_near](#set_override_near) + +### Description +Sets the override near plane + +### Lua Example +`set_override_near(near)` + +### Parameters +| Field | Type | +| ----- | ---- | +| near | `number` | + +### Returns +- None + +### C Prototype +`void set_override_near(f32 near);` + +[:arrow_up_small:](#) + +
+ +## [set_override_far](#set_override_far) + +### Description +Sets the override far plane + +### Lua Example +`set_override_far(far)` + +### Parameters +| Field | Type | +| ----- | ---- | +| far | `number` | + +### Returns +- None + +### C Prototype +`void set_override_far(f32 far);` + +[:arrow_up_small:](#) + +
+ +## [get_lighting_dir](#get_lighting_dir) + +### Description +Gets a value of the global lighting direction + +### Lua Example +`local numberValue = get_lighting_dir(index)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | + +### Returns +- `number` + +### C Prototype +`f32 get_lighting_dir(u8 index);` + +[:arrow_up_small:](#) + +
+ +## [set_lighting_dir](#set_lighting_dir) + +### Description +Sets a value of the global lighting direction + +### Lua Example +`set_lighting_dir(index, value)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | +| value | `number` | + +### Returns +- None + +### C Prototype +`void set_lighting_dir(u8 index, f32 value);` + +[:arrow_up_small:](#) + +
+ +## [get_lighting_color](#get_lighting_color) + +### Description +Gets a value of the global lighting color + +### Lua Example +`local integerValue = get_lighting_color(index)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | + +### Returns +- `integer` + +### C Prototype +`u8 get_lighting_color(u8 index);` + +[:arrow_up_small:](#) + +
+ +## [get_lighting_color_ambient](#get_lighting_color_ambient) + +### Description +Gets a value of the global ambient lighting color + +### Lua Example +`local integerValue = get_lighting_color_ambient(index)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | + +### Returns +- `integer` + +### C Prototype +`u8 get_lighting_color_ambient(u8 index);` + +[:arrow_up_small:](#) + +
+ +## [set_lighting_color](#set_lighting_color) + +### Description +Sets a value of the global lighting color + +### Lua Example +`set_lighting_color(index, value)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | +| value | `integer` | + +### Returns +- None + +### C Prototype +`void set_lighting_color(u8 index, u8 value);` + +[:arrow_up_small:](#) + +
+ +## [set_lighting_color_ambient](#set_lighting_color_ambient) + +### Description +Sets a value of the global lighting color (run this after `set_lighting_color` for the ambient color to not be overriden) + +### Lua Example +`set_lighting_color_ambient(index, value)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | +| value | `integer` | + +### Returns +- None + +### C Prototype +`void set_lighting_color_ambient(u8 index, u8 value);` + +[:arrow_up_small:](#) + +
+ +## [get_vertex_color](#get_vertex_color) + +### Description +Gets a value of the global vertex shading color + +### Lua Example +`local integerValue = get_vertex_color(index)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | + +### Returns +- `integer` + +### C Prototype +`u8 get_vertex_color(u8 index);` + +[:arrow_up_small:](#) + +
+ +## [set_vertex_color](#set_vertex_color) + +### Description +Sets a value of the global vertex shading color + +### Lua Example +`set_vertex_color(index, value)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | +| value | `integer` | + +### Returns +- None + +### C Prototype +`void set_vertex_color(u8 index, u8 value);` + +[:arrow_up_small:](#) + +
+ +## [get_fog_color](#get_fog_color) + +### Description +Gets a value of the global fog color + +### Lua Example +`local integerValue = get_fog_color(index)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | + +### Returns +- `integer` + +### C Prototype +`u8 get_fog_color(u8 index);` + +[:arrow_up_small:](#) + +
+ +## [set_fog_color](#set_fog_color) + +### Description +Sets a value of the global fog color + +### Lua Example +`set_fog_color(index, value)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | +| value | `integer` | + +### Returns +- None + +### C Prototype +`void set_fog_color(u8 index, u8 value);` + +[:arrow_up_small:](#) + +
+ +## [get_fog_intensity](#get_fog_intensity) + +### Description +Gets the intensity of the fog + +### Lua Example +`local numberValue = get_fog_intensity()` + +### Parameters +- None + +### Returns +- `number` + +### C Prototype +`f32 get_fog_intensity(void);` + +[:arrow_up_small:](#) + +
+ +## [set_fog_intensity](#set_fog_intensity) + +### Description +Sets the intensity of the fog (this value scales very quickly, 1.0 to 1.1 is a desirable range) + +### Lua Example +`set_fog_intensity(intensity)` + +### Parameters +| Field | Type | +| ----- | ---- | +| intensity | `number` | + +### Returns +- None + +### C Prototype +`void set_fog_intensity(f32 intensity);` + +[:arrow_up_small:](#) + +
+ +## [get_skybox](#get_skybox) + +### Description +Gets the current skybox + +### Lua Example +`local integerValue = get_skybox()` + +### Parameters +- None + +### Returns +- `integer` + +### C Prototype +`s8 get_skybox(void);` + +[:arrow_up_small:](#) + +
+ +## [set_override_skybox](#set_override_skybox) + +### Description +Sets the override skybox + +### Lua Example +`set_override_skybox(background)` + +### Parameters +| Field | Type | +| ----- | ---- | +| background | `integer` | + +### Returns +- None + +### C Prototype +`void set_override_skybox(s8 background);` + +[:arrow_up_small:](#) + +
+ +## [get_skybox_color](#get_skybox_color) + +### Description +Gets a value of the global skybox color + +### Lua Example +`local integerValue = get_skybox_color(index)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | + +### Returns +- `integer` + +### C Prototype +`u8 get_skybox_color(u8 index);` + +[:arrow_up_small:](#) + +
+ +## [set_skybox_color](#set_skybox_color) + +### Description +Sets a value of the global skybox color + +### Lua Example +`set_skybox_color(index, value)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | +| value | `integer` | + +### Returns +- None + +### C Prototype +`void set_skybox_color(u8 index, u8 value);` + +[:arrow_up_small:](#) + +
+ +## [gfx_parse](#gfx_parse) + +### Description +Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op` + +### Lua Example +`gfx_parse(cmd, func)` + +### Parameters +| Field | Type | +| ----- | ---- | +| cmd | `Pointer` <`Gfx`> | +| func | `Lua Function` () | + +### Returns +- None + +### C Prototype +`void gfx_parse(Gfx *cmd, LuaFunction func);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_op](#gfx_get_op) + +### Description +Gets the op of the display list command + +### Lua Example +`local integerValue = gfx_get_op(cmd)` + +### Parameters +| Field | Type | +| ----- | ---- | +| cmd | `Pointer` <`Gfx`> | + +### Returns +- `integer` + +### C Prototype +`u32 gfx_get_op(Gfx *cmd);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_display_list](#gfx_get_display_list) + +### Description +Gets the display list from a display list command if it has the op `G_DL` + +### Lua Example +`local pointerValue = gfx_get_display_list(cmd)` + +### Parameters +| Field | Type | +| ----- | ---- | +| cmd | `Pointer` <`Gfx`> | + +### Returns +- `Pointer` <`Gfx`> + +### C Prototype +`Gfx *gfx_get_display_list(Gfx *cmd);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_vertex_buffer](#gfx_get_vertex_buffer) + +### Description +Gets the vertex buffer from a display list command if it has the op `G_VTX` + +### Lua Example +`local pointerValue = gfx_get_vertex_buffer(cmd)` + +### Parameters +| Field | Type | +| ----- | ---- | +| cmd | `Pointer` <`Gfx`> | + +### Returns +- `Pointer` <`Vtx`> + +### C Prototype +`Vtx *gfx_get_vertex_buffer(Gfx *cmd);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_vertex_count](#gfx_get_vertex_count) + +### Description +Gets the number of vertices from a display list command if it has the op `G_VTX` + +### Lua Example +`local integerValue = gfx_get_vertex_count(cmd)` + +### Parameters +| Field | Type | +| ----- | ---- | +| cmd | `Pointer` <`Gfx`> | + +### Returns +- `integer` + +### C Prototype +`u16 gfx_get_vertex_count(Gfx *cmd);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_texture](#gfx_get_texture) + +### Description +Gets the texture from a display list command if it has an image related op + +### Lua Example +`local pointerValue = gfx_get_texture(cmd)` + +### Parameters +| Field | Type | +| ----- | ---- | +| cmd | `Pointer` <`Gfx`> | + +### Returns +- `Pointer` <`Texture`> + +### C Prototype +`Texture *gfx_get_texture(Gfx *cmd);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_from_name](#gfx_get_from_name) + +### Description +Gets a display list of the current mod from its name. Returns a pointer to the display list and its length + +### Lua Example +`local pointerValue, length = gfx_get_from_name(name)` + +### Parameters +| Field | Type | +| ----- | ---- | +| name | `string` | + +### Returns +- `Pointer` <`Gfx`> +- `integer` + +### C Prototype +`Gfx *gfx_get_from_name(const char *name, RET u32 *length);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_name](#gfx_get_name) + +### Description +Gets the name of a display list + +### Lua Example +`local stringValue = gfx_get_name(gfx)` + +### Parameters +| Field | Type | +| ----- | ---- | +| gfx | `Pointer` <`Gfx`> | + +### Returns +- `string` + +### C Prototype +`const char *gfx_get_name(Gfx *gfx);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_length](#gfx_get_length) + +### Description +Gets the max length of a display list + +### Lua Example +`local integerValue = gfx_get_length(gfx)` + +### Parameters +| Field | Type | +| ----- | ---- | +| gfx | `Pointer` <`Gfx`> | + +### Returns +- `integer` + +### C Prototype +`u32 gfx_get_length(Gfx *gfx);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_command](#gfx_get_command) + +### Description +Gets a command of a display list at position `offset` + +### Lua Example +`local pointerValue = gfx_get_command(gfx, offset)` + +### Parameters +| Field | Type | +| ----- | ---- | +| gfx | `Pointer` <`Gfx`> | +| offset | `integer` | + +### Returns +- `Pointer` <`Gfx`> + +### C Prototype +`Gfx *gfx_get_command(Gfx *gfx, u32 offset);` + +[:arrow_up_small:](#) + +
+ +## [gfx_get_next_command](#gfx_get_next_command) + +### Description +Gets the next command of a given display list pointer. Intended to use in a for loop + +### Lua Example +`local pointerValue = gfx_get_next_command(gfx)` + +### Parameters +| Field | Type | +| ----- | ---- | +| gfx | `Pointer` <`Gfx`> | + +### Returns +- `Pointer` <`Gfx`> + +### C Prototype +`Gfx *gfx_get_next_command(Gfx *gfx);` + +[:arrow_up_small:](#) + +
+ +## [gfx_copy](#gfx_copy) + +### Description +Copies `length` commands from display list `src` to display list `dest` + +### Lua Example +`gfx_copy(dest, src, length)` + +### Parameters +| Field | Type | +| ----- | ---- | +| dest | `Pointer` <`Gfx`> | +| src | `Pointer` <`Gfx`> | +| length | `integer` | + +### Returns +- None + +### C Prototype +`void gfx_copy(Gfx *dest, Gfx *src, u32 length);` + +[:arrow_up_small:](#) + +
+ +## [gfx_create](#gfx_create) + +### Description +Creates a new named display list of `length` commands + +### Lua Example +`local pointerValue = gfx_create(name, length)` + +### Parameters +| Field | Type | +| ----- | ---- | +| name | `string` | +| length | `integer` | + +### Returns +- `Pointer` <`Gfx`> + +### C Prototype +`Gfx *gfx_create(const char *name, u32 length);` + +[:arrow_up_small:](#) + +
+ +## [gfx_resize](#gfx_resize) + +### Description +Resizes a display list created by `gfx_create` + +### Lua Example +`gfx_resize(gfx, newLength)` + +### Parameters +| Field | Type | +| ----- | ---- | +| gfx | `Pointer` <`Gfx`> | +| newLength | `integer` | + +### Returns +- None + +### C Prototype +`void gfx_resize(Gfx *gfx, u32 newLength);` + +[:arrow_up_small:](#) + +
+ +## [gfx_delete](#gfx_delete) + +### Description +Deletes a display list created by `gfx_create` + +### Lua Example +`gfx_delete(gfx)` + +### Parameters +| Field | Type | +| ----- | ---- | +| gfx | `Pointer` <`Gfx`> | + +### Returns +- None + +### C Prototype +`void gfx_delete(Gfx *gfx);` + +[:arrow_up_small:](#) + +
+ +## [gfx_delete_all](#gfx_delete_all) + +### Description +Deletes all display lists created by `gfx_create` + +### Lua Example +`gfx_delete_all()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void gfx_delete_all();` + +[:arrow_up_small:](#) + +
+ +## [vtx_get_from_name](#vtx_get_from_name) + +### Description +Gets a vertex buffer of the current mod from its name. Returns a pointer to the vertex buffering and its vertex count + +### Lua Example +`local pointerValue, count = vtx_get_from_name(name)` + +### Parameters +| Field | Type | +| ----- | ---- | +| name | `string` | + +### Returns +- `Pointer` <`Vtx`> +- `integer` + +### C Prototype +`Vtx *vtx_get_from_name(const char *name, RET u32 *count);` + +[:arrow_up_small:](#) + +
+ +## [vtx_get_name](#vtx_get_name) + +### Description +Gets the name of a vertex buffer + +### Lua Example +`local stringValue = vtx_get_name(vtx)` + +### Parameters +| Field | Type | +| ----- | ---- | +| vtx | `Pointer` <`Vtx`> | + +### Returns +- `string` + +### C Prototype +`const char *vtx_get_name(Vtx *vtx);` + +[:arrow_up_small:](#) + +
+ +## [vtx_get_count](#vtx_get_count) + +### Description +Gets the max count of vertices of a vertex buffer + +### Lua Example +`local integerValue = vtx_get_count(vtx)` + +### Parameters +| Field | Type | +| ----- | ---- | +| vtx | `Pointer` <`Vtx`> | + +### Returns +- `integer` + +### C Prototype +`u32 vtx_get_count(Vtx *vtx);` + +[:arrow_up_small:](#) + +
+ +## [vtx_get_vertex](#vtx_get_vertex) + +### Description +Gets a vertex of a vertex buffer at position `offset` + +### Lua Example +`local pointerValue = vtx_get_vertex(vtx, offset)` + +### Parameters +| Field | Type | +| ----- | ---- | +| vtx | `Pointer` <`Vtx`> | +| offset | `integer` | + +### Returns +- `Pointer` <`Vtx`> + +### C Prototype +`Vtx *vtx_get_vertex(Vtx *vtx, u32 offset);` + +[:arrow_up_small:](#) + +
+ +## [vtx_get_next_vertex](#vtx_get_next_vertex) + +### Description +Gets the next vertex of a given vertex pointer. Intended to use in a for loop + +### Lua Example +`local pointerValue = vtx_get_next_vertex(vtx)` + +### Parameters +| Field | Type | +| ----- | ---- | +| vtx | `Pointer` <`Vtx`> | + +### Returns +- `Pointer` <`Vtx`> + +### C Prototype +`Vtx *vtx_get_next_vertex(Vtx *vtx);` + +[:arrow_up_small:](#) + +
+ +## [vtx_copy](#vtx_copy) + +### Description +Copies `count` vertices from vertex buffer `src` to vertex buffer `dest` + +### Lua Example +`vtx_copy(dest, src, count)` + +### Parameters +| Field | Type | +| ----- | ---- | +| dest | `Pointer` <`Vtx`> | +| src | `Pointer` <`Vtx`> | +| count | `integer` | + +### Returns +- None + +### C Prototype +`void vtx_copy(Vtx *dest, Vtx *src, u32 count);` + +[:arrow_up_small:](#) + +
+ +## [vtx_create](#vtx_create) + +### Description +Creates a new named vertex buffer of `count` vertices + +### Lua Example +`local pointerValue = vtx_create(name, count)` + +### Parameters +| Field | Type | +| ----- | ---- | +| name | `string` | +| count | `integer` | + +### Returns +- `Pointer` <`Vtx`> + +### C Prototype +`Vtx *vtx_create(const char *name, u32 count);` + +[:arrow_up_small:](#) + +
+ +## [vtx_resize](#vtx_resize) + +### Description +Resizes a vertex buffer created by `vtx_create` + +### Lua Example +`vtx_resize(vtx, newCount)` + +### Parameters +| Field | Type | +| ----- | ---- | +| vtx | `Pointer` <`Vtx`> | +| newCount | `integer` | + +### Returns +- None + +### C Prototype +`void vtx_resize(Vtx *vtx, u32 newCount);` + +[:arrow_up_small:](#) + +
+ +## [vtx_delete](#vtx_delete) + +### Description +Deletes a vertex buffer created by `vtx_create` + +### Lua Example +`vtx_delete(vtx)` + +### Parameters +| Field | Type | +| ----- | ---- | +| vtx | `Pointer` <`Vtx`> | + +### Returns +- None + +### C Prototype +`void vtx_delete(Vtx *vtx);` + +[:arrow_up_small:](#) + +
+ +## [vtx_delete_all](#vtx_delete_all) + +### Description +Deletes all vertex buffers created by `vtx_create` + +### Lua Example +`vtx_delete_all()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void vtx_delete_all();` + +[:arrow_up_small:](#) + +
+ --- # functions from smlua_level_utils.h diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 0b2740bb2..a286da56d 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -1937,55 +1937,58 @@
- smlua_gfx_utils.h - - [enable_shader_flag](functions-6.md#enable_shader_flag) - - [set_shader_flag_value](functions-6.md#set_shader_flag_value) - - [enable_shader_flags_global](functions-6.md#enable_shader_flags_global) - - [clear_all_shader_flags](functions-6.md#clear_all_shader_flags) - - [set_override_fov](functions-6.md#set_override_fov) - - [set_override_near](functions-6.md#set_override_near) - - [set_override_far](functions-6.md#set_override_far) - - [get_lighting_dir](functions-6.md#get_lighting_dir) - - [set_lighting_dir](functions-6.md#set_lighting_dir) - - [get_lighting_color](functions-6.md#get_lighting_color) - - [get_lighting_color_ambient](functions-6.md#get_lighting_color_ambient) - - [set_lighting_color](functions-6.md#set_lighting_color) - - [set_lighting_color_ambient](functions-6.md#set_lighting_color_ambient) - - [get_vertex_color](functions-6.md#get_vertex_color) - - [set_vertex_color](functions-6.md#set_vertex_color) - - [get_fog_color](functions-6.md#get_fog_color) - - [set_fog_color](functions-6.md#set_fog_color) - - [get_fog_intensity](functions-6.md#get_fog_intensity) - - [set_fog_intensity](functions-6.md#set_fog_intensity) - - [get_skybox](functions-6.md#get_skybox) - - [set_override_skybox](functions-6.md#set_override_skybox) - - [get_skybox_color](functions-6.md#get_skybox_color) - - [set_skybox_color](functions-6.md#set_skybox_color) - - [gfx_parse](functions-6.md#gfx_parse) - - [gfx_get_op](functions-6.md#gfx_get_op) - - [gfx_get_display_list](functions-6.md#gfx_get_display_list) - - [gfx_get_vertex_buffer](functions-6.md#gfx_get_vertex_buffer) - - [gfx_get_vertex_count](functions-6.md#gfx_get_vertex_count) - - [gfx_get_texture](functions-6.md#gfx_get_texture) - - [gfx_get_from_name](functions-6.md#gfx_get_from_name) - - [gfx_get_name](functions-6.md#gfx_get_name) - - [gfx_get_length](functions-6.md#gfx_get_length) - - [gfx_get_command](functions-6.md#gfx_get_command) - - [gfx_get_next_command](functions-6.md#gfx_get_next_command) - - [gfx_copy](functions-6.md#gfx_copy) - - [gfx_create](functions-6.md#gfx_create) - - [gfx_resize](functions-6.md#gfx_resize) - - [gfx_delete](functions-6.md#gfx_delete) - - [gfx_delete_all](functions-6.md#gfx_delete_all) - - [vtx_get_from_name](functions-6.md#vtx_get_from_name) - - [vtx_get_name](functions-6.md#vtx_get_name) - - [vtx_get_count](functions-6.md#vtx_get_count) - - [vtx_get_vertex](functions-6.md#vtx_get_vertex) - - [vtx_get_next_vertex](functions-6.md#vtx_get_next_vertex) - - [vtx_copy](functions-6.md#vtx_copy) - - [vtx_create](functions-6.md#vtx_create) - - [vtx_resize](functions-6.md#vtx_resize) - - [vtx_delete](functions-6.md#vtx_delete) - - [vtx_delete_all](functions-6.md#vtx_delete_all) + - [get_shader_flag_enabled](functions-7.md#get_shader_flag_enabled) + - [set_shader_flag_enabled](functions-7.md#set_shader_flag_enabled) + - [get_shader_flag_value](functions-7.md#get_shader_flag_value) + - [set_shader_flag_value](functions-7.md#set_shader_flag_value) + - [get_global_shader_flags_enabled](functions-7.md#get_global_shader_flags_enabled) + - [set_global_shader_flags_enabled](functions-7.md#set_global_shader_flags_enabled) + - [clear_all_shader_flags](functions-7.md#clear_all_shader_flags) + - [set_override_fov](functions-7.md#set_override_fov) + - [set_override_near](functions-7.md#set_override_near) + - [set_override_far](functions-7.md#set_override_far) + - [get_lighting_dir](functions-7.md#get_lighting_dir) + - [set_lighting_dir](functions-7.md#set_lighting_dir) + - [get_lighting_color](functions-7.md#get_lighting_color) + - [get_lighting_color_ambient](functions-7.md#get_lighting_color_ambient) + - [set_lighting_color](functions-7.md#set_lighting_color) + - [set_lighting_color_ambient](functions-7.md#set_lighting_color_ambient) + - [get_vertex_color](functions-7.md#get_vertex_color) + - [set_vertex_color](functions-7.md#set_vertex_color) + - [get_fog_color](functions-7.md#get_fog_color) + - [set_fog_color](functions-7.md#set_fog_color) + - [get_fog_intensity](functions-7.md#get_fog_intensity) + - [set_fog_intensity](functions-7.md#set_fog_intensity) + - [get_skybox](functions-7.md#get_skybox) + - [set_override_skybox](functions-7.md#set_override_skybox) + - [get_skybox_color](functions-7.md#get_skybox_color) + - [set_skybox_color](functions-7.md#set_skybox_color) + - [gfx_parse](functions-7.md#gfx_parse) + - [gfx_get_op](functions-7.md#gfx_get_op) + - [gfx_get_display_list](functions-7.md#gfx_get_display_list) + - [gfx_get_vertex_buffer](functions-7.md#gfx_get_vertex_buffer) + - [gfx_get_vertex_count](functions-7.md#gfx_get_vertex_count) + - [gfx_get_texture](functions-7.md#gfx_get_texture) + - [gfx_get_from_name](functions-7.md#gfx_get_from_name) + - [gfx_get_name](functions-7.md#gfx_get_name) + - [gfx_get_length](functions-7.md#gfx_get_length) + - [gfx_get_command](functions-7.md#gfx_get_command) + - [gfx_get_next_command](functions-7.md#gfx_get_next_command) + - [gfx_copy](functions-7.md#gfx_copy) + - [gfx_create](functions-7.md#gfx_create) + - [gfx_resize](functions-7.md#gfx_resize) + - [gfx_delete](functions-7.md#gfx_delete) + - [gfx_delete_all](functions-7.md#gfx_delete_all) + - [vtx_get_from_name](functions-7.md#vtx_get_from_name) + - [vtx_get_name](functions-7.md#vtx_get_name) + - [vtx_get_count](functions-7.md#vtx_get_count) + - [vtx_get_vertex](functions-7.md#vtx_get_vertex) + - [vtx_get_next_vertex](functions-7.md#vtx_get_next_vertex) + - [vtx_copy](functions-7.md#vtx_copy) + - [vtx_create](functions-7.md#vtx_create) + - [vtx_resize](functions-7.md#vtx_resize) + - [vtx_delete](functions-7.md#vtx_delete) + - [vtx_delete_all](functions-7.md#vtx_delete_all)
diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 25a7d42b6..86c6d90df 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -32124,21 +32124,55 @@ int smlua_func_network_player_palette_to_color(lua_State* L) { // smlua_gfx_utils.h // /////////////////////// -int smlua_func_enable_shader_flag(lua_State* L) { +int smlua_func_get_shader_flag_enabled(lua_State* L) { if (L == NULL) { return 0; } int top = lua_gettop(L); - if (top != 2) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "enable_shader_flag", 2, top); + if (top != 1) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "get_shader_flag_enabled", 1, top); return 0; } int flag = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "enable_shader_flag"); return 0; } - bool enabled = smlua_to_boolean(L, 2); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "enable_shader_flag"); return 0; } + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "get_shader_flag_enabled"); return 0; } - enable_shader_flag(flag, enabled); + lua_pushboolean(L, get_shader_flag_enabled(flag)); + + return 1; +} + +int smlua_func_set_shader_flag_enabled(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 2) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_shader_flag_enabled", 2, top); + return 0; + } + + int flag = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_shader_flag_enabled"); return 0; } + bool enabled = smlua_to_boolean(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "set_shader_flag_enabled"); return 0; } + + set_shader_flag_enabled(flag, enabled); + + return 1; +} + +int smlua_func_get_shader_flag_value(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 1) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "get_shader_flag_value", 1, top); + return 0; + } + + int flag = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "get_shader_flag_value"); return 0; } + + lua_pushnumber(L, get_shader_flag_value(flag)); return 1; } @@ -32162,19 +32196,34 @@ int smlua_func_set_shader_flag_value(lua_State* L) { return 1; } -int smlua_func_enable_shader_flags_global(lua_State* L) { +int smlua_func_get_global_shader_flags_enabled(UNUSED lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 0) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "get_global_shader_flags_enabled", 0, top); + return 0; + } + + + lua_pushboolean(L, get_global_shader_flags_enabled()); + + return 1; +} + +int smlua_func_set_global_shader_flags_enabled(lua_State* L) { if (L == NULL) { return 0; } int top = lua_gettop(L); if (top != 1) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "enable_shader_flags_global", 1, top); + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_global_shader_flags_enabled", 1, top); return 0; } bool enabled = smlua_to_boolean(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "enable_shader_flags_global"); return 0; } + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_global_shader_flags_enabled"); return 0; } - enable_shader_flags_global(enabled); + set_global_shader_flags_enabled(enabled); return 1; } @@ -38872,9 +38921,12 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "network_player_palette_to_color", smlua_func_network_player_palette_to_color); // smlua_gfx_utils.h - smlua_bind_function(L, "enable_shader_flag", smlua_func_enable_shader_flag); + smlua_bind_function(L, "get_shader_flag_enabled", smlua_func_get_shader_flag_enabled); + smlua_bind_function(L, "set_shader_flag_enabled", smlua_func_set_shader_flag_enabled); + smlua_bind_function(L, "get_shader_flag_value", smlua_func_get_shader_flag_value); smlua_bind_function(L, "set_shader_flag_value", smlua_func_set_shader_flag_value); - smlua_bind_function(L, "enable_shader_flags_global", smlua_func_enable_shader_flags_global); + smlua_bind_function(L, "get_global_shader_flags_enabled", smlua_func_get_global_shader_flags_enabled); + smlua_bind_function(L, "set_global_shader_flags_enabled", smlua_func_set_global_shader_flags_enabled); smlua_bind_function(L, "clear_all_shader_flags", smlua_func_clear_all_shader_flags); smlua_bind_function(L, "set_override_fov", smlua_func_set_override_fov); smlua_bind_function(L, "set_override_near", smlua_func_set_override_near); diff --git a/src/pc/lua/utils/smlua_gfx_utils.c b/src/pc/lua/utils/smlua_gfx_utils.c index 6bc75b4ae..8d18ad889 100644 --- a/src/pc/lua/utils/smlua_gfx_utils.c +++ b/src/pc/lua/utils/smlua_gfx_utils.c @@ -4,17 +4,31 @@ #include "game/skybox.h" #include "geo_commands.h" -void enable_shader_flag(enum ShaderFlag flag, bool enabled) { +bool get_shader_flag_enabled(enum ShaderFlag flag) { + if (flag < 0 || flag >= SHADER_FLAG_MAX) { return false; } + return gShaderFlags[flag]; +} + +void set_shader_flag_enabled(enum ShaderFlag flag, bool enabled) { if (flag < 0 || flag >= SHADER_FLAG_MAX) { return; } gShaderFlags[flag] = enabled ? 1 : 0; } +f32 get_shader_flag_value(enum ShaderFlag flag) { + if (flag < 0 || flag >= SHADER_FLAG_MAX) { return 0.0f; } + return gShaderFlagValues[flag]; +} + void set_shader_flag_value(enum ShaderFlag flag, f32 value) { if (flag < 0 || flag >= SHADER_FLAG_MAX) { return; } gShaderFlagValues[flag] = value; } -void enable_shader_flags_global(bool enabled) { +bool get_global_shader_flags_enabled(void) { + return gShaderFlagsEnabled; +} + +void set_global_shader_flags_enabled(bool enabled) { gShaderFlagsEnabled = enabled; } diff --git a/src/pc/lua/utils/smlua_gfx_utils.h b/src/pc/lua/utils/smlua_gfx_utils.h index 801da6936..117dd52f3 100644 --- a/src/pc/lua/utils/smlua_gfx_utils.h +++ b/src/pc/lua/utils/smlua_gfx_utils.h @@ -13,12 +13,18 @@ Gfx *gfx_allocate_internal(Gfx *gfx, u32 length); Vtx *vtx_allocate_internal(Vtx *vtx, u32 count); u32 gfx_get_length_no_sentinel(const Gfx *gfx); +/* |description|Gets if a custom shader flag (`SHADER_FLAG_*`) is enabled or not|descriptionEnd| */ +bool get_shader_flag_enabled(enum ShaderFlag flag); /* |description|Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */ -void enable_shader_flag(enum ShaderFlag flag, bool enabled); +void set_shader_flag_enabled(enum ShaderFlag flag, bool enabled); +/* |description|Gets a value for one of the custom shader flags (`SHADER_FLAG_*`)*/ +f32 get_shader_flag_value(enum ShaderFlag flag); /* |description|Sets a value for one of the custom shader flags (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */ void set_shader_flag_value(enum ShaderFlag flag, f32 value); +/* |description|Gets if custom shader flags are enabled globally|descriptionEnd| */ +bool get_global_shader_flags_enabled(void); /* |description|Enables custom shader flags as a global toggle, useful for disabling without manually going through every effect|descriptionEnd| */ -void enable_shader_flags_global(bool enabled); +void set_global_shader_flags_enabled(bool enabled); /* |description|Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */ void clear_all_shader_flags(void);