mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-29 17:15:40 +00:00
626 lines
21 KiB
HLSL
626 lines
21 KiB
HLSL
|
////////////////////////////////////////////////////////////
|
||
|
// BASIC MACROS FOR RESHADE 4 //
|
||
|
// AUTHOR: TREYM //
|
||
|
////////////////////////////////////////////////////////////
|
||
|
// Modified by dddfault //
|
||
|
// //
|
||
|
// Changelogs : //
|
||
|
// Added Sampler texture boundary resolver option //
|
||
|
// Added float2 parameters option //
|
||
|
////////////////////////////////////////////////////////////
|
||
|
// Macros Guide: //
|
||
|
////////////////////////////////////////////////////////////
|
||
|
|
||
|
/* //////////////////////////////////////////////////// *
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
Usage of these macros is very simple once you understand
|
||
|
the syntax and variable names. Let's start with a Simple
|
||
|
integer slider. To begin, type:
|
||
|
|
||
|
UI_INT
|
||
|
|
||
|
Next we need to add _S to indicate that this is a
|
||
|
"slider" widget. Follow the syntax below:
|
||
|
|
||
|
UI_INT_S(INT_NAME, "Label", "Tooltip", 0, 100, 50)
|
||
|
|
||
|
Using just a single line of code, we have created a UI
|
||
|
tweakable integer named INT_NAME with a minimum value of
|
||
|
0, a maximum value of 100, and a default value of 50.
|
||
|
|
||
|
Next, let's create that same widget, but within a UI
|
||
|
category. This time, we'll type:
|
||
|
|
||
|
CAT_INT_S(INT_NAME, "Category", "Label", "Tooltip", 0, 100, 50)
|
||
|
|
||
|
As you can see, the syntax follows the same pattern but
|
||
|
with a new input for "Category"
|
||
|
|
||
|
Below you will find a useful list of examples to get you
|
||
|
started. I hope you find these useful and they help your
|
||
|
workflow. Happy coding!
|
||
|
|
||
|
- TreyM
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
Widget Types
|
||
|
Input = _I
|
||
|
Slider = _S
|
||
|
Drag = _D
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
BOOLEAN Macro
|
||
|
UI_BOOL(BOOL_NAME, "Label", "Tooltip", true)
|
||
|
|
||
|
BOOLEAN Categorized Macro
|
||
|
CAT_BOOL(BOOL_NAME, "Category", "Label", "Tooltip", true)
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
INTEGER Combo Widget
|
||
|
UI_COMBO(INT_NAME, "Label", "Tooltip", 0, 2, 0, "Item 1\0Item 2\0Item 3\0")
|
||
|
|
||
|
INTEGER Drag Widget
|
||
|
UI_INT_D(INT_NAME, "Label", "Tooltip", 0, 100, 50)
|
||
|
|
||
|
INTEGER Input Widget
|
||
|
UI_INT_I(INT_NAME, "Label", "Tooltip", 0, 100, 50)
|
||
|
|
||
|
INTEGER Radio Widget
|
||
|
UI_RADIO(INT_NAME, "Label", "Tooltip", 0, 2, 0, " Item 1 \0 Item 2 \0 Item 3\0")
|
||
|
|
||
|
INTEGER Slider Widget
|
||
|
UI_INT_S(INT_NAME, "Label", "Tooltip", 0, 100, 50)
|
||
|
|
||
|
INTEGER Categorized Combo Widget
|
||
|
CAT_COMBO(INT_NAME, "Category", "Label", "Tooltip", 0, 2, 0, " Item 1 \0 Item 2 \0 Item 3\0")
|
||
|
|
||
|
INTEGER Categorized Drag Widget
|
||
|
CAT_INT_D(INT_NAME, "Category", "Label", "Tooltip", 0, 100, 50)
|
||
|
|
||
|
INTEGER Categorized Input Widget
|
||
|
CAT_INT_I(INT_NAME, "Category", "Label", "Tooltip", 0, 100, 50)
|
||
|
|
||
|
INTEGER Categorized Radio Widget
|
||
|
CAT_RADIO(INT_NAME, "Category", "Label", "Tooltip", 0, 2, 0, " Item 1 \0 Item 2 \0 Item 3\0")
|
||
|
|
||
|
INTEGER Categorized Slider Widget
|
||
|
CAT_INT_S(INT_NAME, "Category", "Label", "Tooltip", 0, 100, 50)
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
FLOAT Drag Widget
|
||
|
UI_FLOAT_D(FLOAT_NAME, "Label", "Tooltip", 0.0, 1.0, 0.5)
|
||
|
|
||
|
FLOAT Input Widget
|
||
|
UI_FLOAT_I(FLOAT_NAME, "Label", "Tooltip", 0.0, 1.0, 0.5)
|
||
|
|
||
|
FLOAT Slider Widget
|
||
|
UI_FLOAT_S(FLOAT_NAME, "Label", "Tooltip", 0.0, 1.0, 0.5)
|
||
|
|
||
|
FLOAT Categorized Drag Widget
|
||
|
CAT_FLOAT_D(FLOAT_NAME, "Category", "Label", "Tooltip", 0.0, 1.0, 0.5)
|
||
|
|
||
|
FLOAT Categorized Input Widget
|
||
|
CAT_FLOAT_I(FLOAT_NAME, "Category", "Label", "Tooltip", 0.0, 1.0, 0.5)
|
||
|
|
||
|
FLOAT Categorized Slider Widget
|
||
|
CAT_FLOAT_S(FLOAT_NAME, "Category", "Label", "Tooltip", 0.0, 1.0, 0.5)
|
||
|
|
||
|
FLOAT macro with full control (value after "Tooltip" is ui_step)
|
||
|
UI_FLOAT_FULL(FLOAT_NAME, "ui_type", "Label", "Tooltip", 0.1, 0.0, 1.0, 0.5)
|
||
|
|
||
|
FLOAT Categorized macro with full control (value after "Tooltip" is ui_step)
|
||
|
CAT_FLOAT_FULL(FLOAT_NAME, "ui_type", "Category", "Label", "Tooltip", 0.1, 0.0, 1.0, 0.5)
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
FLOAT2 Drag Widget
|
||
|
UI_FLOAT2_D(FLOAT_NAME, "Label", "Tooltip", 0.0, 1.0, 0.5, 0.5)
|
||
|
|
||
|
FLOAT2 Input Widget
|
||
|
UI_FLOAT2_I(FLOAT_NAME, "Label", "Tooltip", 0.0, 1.0, 0.5, 0.5)
|
||
|
|
||
|
FLOAT2 Slider Widget
|
||
|
UI_FLOAT2_S(FLOAT_NAME, "Label", "Tooltip", 0.0, 1.0, 0.5, 0.5)
|
||
|
|
||
|
FLOAT2 Categorized Drag Widget
|
||
|
CAT_FLOAT2_D(FLOAT_NAME, "Category", "Label", "Tooltip", 0.0, 1.0, 0.5, 0.5)
|
||
|
|
||
|
FLOAT2 Categorized Input Widget
|
||
|
CAT_FLOAT2_I(FLOAT_NAME, "Category", "Label", "Tooltip", 0.0, 1.0, 0.5, 0.5)
|
||
|
|
||
|
FLOAT2 Categorized Slider Widget
|
||
|
CAT_FLOAT2_S(FLOAT_NAME, "Category", "Label", "Tooltip", 0.0, 1.0, 0.5, 0.5)
|
||
|
|
||
|
FLOAT2 macro with full control (value after "Tooltip" is ui_step)
|
||
|
UI_FLOAT2_FULL(FLOAT_NAME, "ui_type", "Label", "Tooltip", 0.1, 0.0, 1.0, 0.5, 0.5)
|
||
|
|
||
|
FLOAT2 Categorized macro with full control (value after "Tooltip" is ui_step)
|
||
|
CAT_FLOAT2_FULL(FLOAT_NAME, "ui_type", "Category", "Label", "Tooltip", 0.1, 0.0, 1.0, 0.5, 0.5)
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
FLOAT3 Drag Widget
|
||
|
UI_FLOAT3_D(FLOAT_NAME, "Label", "Tooltip", 0.5, 0.5, 0.5)
|
||
|
|
||
|
FLOAT3 Input Widget
|
||
|
UI_FLOAT3_I(FLOAT_NAME, "Label", "Tooltip", 0.5, 0.5, 0.5)
|
||
|
|
||
|
FLOAT3 Slider Widget
|
||
|
UI_FLOAT3_S(FLOAT_NAME, "Label", "Tooltip", 0.5, 0.5, 0.5)
|
||
|
|
||
|
FLOAT3 Categorized Drag Widget
|
||
|
CAT_FLOAT3_D(FLOAT_NAME, "Category", "Label", "Tooltip", 0.5, 0.5, 0.5)
|
||
|
|
||
|
FLOAT3 Categorized Input Widget
|
||
|
CAT_FLOAT3_I(FLOAT_NAME, "Category", "Label", "Tooltip", 0.5, 0.5, 0.5)
|
||
|
|
||
|
FLOAT3 Categorized Slider Widget
|
||
|
CAT_FLOAT3_S(FLOAT_NAME, "Category", "Label", "Tooltip", 0.5, 0.5, 0.5)
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
FLOAT3 Color Widget
|
||
|
UI_COLOR(FLOAT_NAME, "Label", "Tooltip", 0.5, 0.5, 0.5)
|
||
|
|
||
|
FLOAT3 Categorized Color Widget
|
||
|
CAT_COLOR(FLOAT_NAME, "Category", "Label", "Tooltip", 0.5, 0.5, 0.5)
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
SAMPLER Macro
|
||
|
SAMPLER(SamplerName, TextureName)
|
||
|
|
||
|
SAMPLER Macro with texture boundary resolver option
|
||
|
SAMPLER_UV(SamplerName, TextureName, ResolverType)
|
||
|
|
||
|
TEXTURE Macro
|
||
|
TEXTURE(TextureName, "TexturePath")
|
||
|
|
||
|
TEXTURE Full Macro
|
||
|
TEXTURE_FULL(TextureName, "TexturePath", Width, Height, Format)
|
||
|
|
||
|
* //////////////////////////////////////////////////// *
|
||
|
|
||
|
TECHNIQUE Macro
|
||
|
TECHNIQUE(TechniqueName, PassMacro)
|
||
|
|
||
|
PASS Macro
|
||
|
PASS(PassID, VertexShader, PixelShader)
|
||
|
|
||
|
PASS Macro with RenderTarget
|
||
|
PASS_RT(PassID, VertexShader, PixelShader, RenderTarget)
|
||
|
|
||
|
////////////////////////////////////////////////////
|
||
|
* //////////////////////////////////////////////////// */
|
||
|
|
||
|
// INTEGER MACROS ////////////////////////////////
|
||
|
#define UI_COMBO(var, label, tooltip, minval, maxval, defval, items) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "combo"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_items = items; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_COMBO(var, category, label, tooltip, minval, maxval, defval, items) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "combo"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_items = items; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define UI_INT_I(var, label, tooltip, minval, maxval, defval) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "input"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_INT_I(var, category, label, tooltip, minval, maxval, defval) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "input"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define UI_INT_S(var, label, tooltip, minval, maxval, defval) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "slider"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_INT_S(var, category, label, tooltip, minval, maxval, defval) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "slider"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define UI_INT_D(var, label, tooltip, minval, maxval, defval) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "drag"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_INT_D(var, category, label, tooltip, minval, maxval, defval) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "drag"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define UI_RADIO(var, label, tooltip, minval, maxval, defval, items) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "radio"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_items = items; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_RADIO(var, category, label, tooltip, minval, maxval, defval, items) \
|
||
|
uniform int var \
|
||
|
< \
|
||
|
ui_type = "radio"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_items = items; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
// BOOL MACROS ///////////////////////////////////
|
||
|
#define UI_BOOL(var, label, tooltip, def) \
|
||
|
uniform bool var \
|
||
|
< \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = def;
|
||
|
|
||
|
#define CAT_BOOL(var, category, label, tooltip, def) \
|
||
|
uniform bool var \
|
||
|
< \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = def;
|
||
|
|
||
|
// FLOAT MACROS //////////////////////////////////
|
||
|
#define UI_FLOAT_D(var, label, tooltip, minval, maxval, defval) \
|
||
|
uniform float var \
|
||
|
< \
|
||
|
ui_type = "drag"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_FLOAT_D(var, category, label, tooltip, minval, maxval, defval) \
|
||
|
uniform float var \
|
||
|
< \
|
||
|
ui_type = "drag"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define UI_FLOAT_FULL(var, uitype, label, tooltip, uistep, minval, maxval, defval) \
|
||
|
uniform float var \
|
||
|
< \
|
||
|
ui_type = uitype; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_step = uistep; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_FLOAT_FULL(var, uitype, category, label, tooltip, uistep, minval, maxval, defval) \
|
||
|
uniform float var \
|
||
|
< \
|
||
|
ui_type = uitype; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_step = uistep; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define UI_FLOAT_I(var, label, tooltip, minval, maxval, defval) \
|
||
|
uniform float var \
|
||
|
< \
|
||
|
ui_type = "input"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_FLOAT_I(var, category, label, tooltip, minval, maxval, defval) \
|
||
|
uniform float var \
|
||
|
< \
|
||
|
ui_type = "input"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define UI_FLOAT_S(var, label, tooltip, minval, maxval, defval) \
|
||
|
uniform float var \
|
||
|
< \
|
||
|
ui_type = "slider"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define CAT_FLOAT_S(var, category, label, tooltip, minval, maxval, defval) \
|
||
|
uniform float var \
|
||
|
< \
|
||
|
ui_type = "slider"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = defval;
|
||
|
|
||
|
#define UI_FLOAT2_D(var, label, tooltip, minval, maxval, defval1, defval2) \
|
||
|
uniform float2 var \
|
||
|
< \
|
||
|
ui_type = "drag"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = float2(defval1, defval2);
|
||
|
|
||
|
#define CAT_FLOAT2_D(var, category, label, tooltip, minval, maxval, defval1, defval2) \
|
||
|
uniform float2 var \
|
||
|
< \
|
||
|
ui_type = "drag"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = float2(defval1, defval2);
|
||
|
|
||
|
#define UI_FLOAT2_FULL(var, uitype, label, tooltip, uistep, minval, maxval, defval1, defval2) \
|
||
|
uniform float2 var \
|
||
|
< \
|
||
|
ui_type = uitype; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_step = uistep; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = float2(defval1, defval2);
|
||
|
|
||
|
#define CAT_FLOAT2_FULL(var, uitype, category, label, tooltip, uistep, minval, defval1, defval2) \
|
||
|
uniform float2 var \
|
||
|
< \
|
||
|
ui_type = uitype; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_step = uistep; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = float2(defval1, defval2);
|
||
|
|
||
|
#define UI_FLOAT2_I(var, label, tooltip, minval, maxval, defval1, defval2) \
|
||
|
uniform float2 var \
|
||
|
< \
|
||
|
ui_type = "input"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = float2(defval1, defval2);
|
||
|
|
||
|
#define CAT_FLOAT2_I(var, category, label, tooltip, minval, maxval, defval1, defval2) \
|
||
|
uniform float2 var \
|
||
|
< \
|
||
|
ui_type = "input"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = float2(defval1, defval2);
|
||
|
|
||
|
#define UI_FLOAT2_S(var, label, tooltip, minval, maxval, defval1, defval2) \
|
||
|
uniform float2 var \
|
||
|
< \
|
||
|
ui_type = "slider"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = float2(defval1, defval2);
|
||
|
|
||
|
#define CAT_FLOAT2_S(var, category, label, tooltip, minval, maxval, defval1, defval2) \
|
||
|
uniform float2 var \
|
||
|
< \
|
||
|
ui_type = "slider"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
ui_min = minval; \
|
||
|
ui_max = maxval; \
|
||
|
> = float2(defval1, defval2);
|
||
|
|
||
|
#define UI_FLOAT3_D(var, label, tooltip, defval1, defval2, defval3) \
|
||
|
uniform float3 var \
|
||
|
< \
|
||
|
ui_type = "drag"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = float3(defval1, defval2, defval3);
|
||
|
|
||
|
#define CAT_FLOAT3_D(var, category, label, tooltip, defval1, defval2, defval3) \
|
||
|
uniform float3 var \
|
||
|
< \
|
||
|
ui_type = "drag"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = float3(defval1, defval2, defval3);
|
||
|
|
||
|
#define UI_FLOAT3_I(var, label, tooltip, defval1, defval2, defval3) \
|
||
|
uniform float3 var \
|
||
|
< \
|
||
|
ui_type = "input"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = float3(defval1, defval2, defval3);
|
||
|
|
||
|
#define CAT_FLOAT3_I(var, category, label, tooltip, defval1, defval2, defval3) \
|
||
|
uniform float3 var \
|
||
|
< \
|
||
|
ui_type = "input"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = float3(defval1, defval2, defval3);
|
||
|
|
||
|
#define UI_FLOAT3_S(var, label, tooltip, defval1, defval2, defval3) \
|
||
|
uniform float3 var \
|
||
|
< \
|
||
|
ui_type = "slider"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = float3(defval1, defval2, defval3);
|
||
|
|
||
|
#define CAT_FLOAT3_S(var, category, label, tooltip, defval1, defval2, defval3) \
|
||
|
uniform float3 var \
|
||
|
< \
|
||
|
ui_type = "slider"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = float3(defval1, defval2, defval3);
|
||
|
|
||
|
|
||
|
// COLOR WIDGET MACROS ///////////////////////////
|
||
|
#define UI_COLOR(var, label, tooltip, defval1, defval2, defval3) \
|
||
|
uniform float3 var \
|
||
|
< \
|
||
|
ui_type = "color"; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = float3(defval1, defval2, defval3);
|
||
|
|
||
|
#define CAT_COLOR(var, category, label, tooltip, defval1, defval2, defval3) \
|
||
|
uniform float3 var \
|
||
|
< \
|
||
|
ui_type = "color"; \
|
||
|
ui_category = category; \
|
||
|
ui_label = label; \
|
||
|
ui_tooltip = tooltip; \
|
||
|
> = float3(defval1, defval2, defval3);
|
||
|
|
||
|
|
||
|
// SAMPLER MACRO /////////////////////////////////
|
||
|
#define SAMPLER(sname, tname) \
|
||
|
sampler sname \
|
||
|
{ \
|
||
|
Texture = tname; \
|
||
|
};
|
||
|
|
||
|
#define SAMPLER_UV(sname, tname, addUVW) \
|
||
|
sampler sname \
|
||
|
{ \
|
||
|
Texture = tname; \
|
||
|
AddressU = addUVW; \
|
||
|
AddressV = addUVW; \
|
||
|
AddressW = addUVW; \
|
||
|
};
|
||
|
|
||
|
|
||
|
// TEXTURE MACROs ////////////////////////////////
|
||
|
#define TEXTURE(tname, src) \
|
||
|
texture tname <source=src;> \
|
||
|
{ \
|
||
|
Width = BUFFER_WIDTH; \
|
||
|
Height = BUFFER_HEIGHT; \
|
||
|
Format = RGBA8; \
|
||
|
};
|
||
|
|
||
|
#define TEXTURE_FULL(tname, src, width, height, fomat) \
|
||
|
texture tname <source=src;> \
|
||
|
{ \
|
||
|
Width = width; \
|
||
|
Height = height; \
|
||
|
Format = fomat; \
|
||
|
};
|
||
|
|
||
|
|
||
|
// TECHNIQUE MACROS //////////////////////////////
|
||
|
#define TECHNIQUE(tname, pass) \
|
||
|
technique tname \
|
||
|
{ \
|
||
|
pass \
|
||
|
}
|
||
|
|
||
|
#define PASS(ID, vs, ps) pass \
|
||
|
{ \
|
||
|
VertexShader = vs; \
|
||
|
PixelShader = ps; \
|
||
|
}
|
||
|
|
||
|
#define PASS_RT(ID, vs, ps, rt) pass \
|
||
|
{ \
|
||
|
VertexShader = vs; \
|
||
|
PixelShader = ps; \
|
||
|
RenderTarget = rt; \
|
||
|
}
|