Update kong

This commit is contained in:
luboslenco
2025-04-11 10:06:07 +02:00
parent d48bdfbb31
commit 8b4284f8dd
32 changed files with 5805 additions and 1697 deletions
+108 -81
View File
@@ -10,6 +10,88 @@ static function *functions = NULL;
static function_id functions_size = 1024;
/*static*/ function_id next_function_index = 0;
////
static void add_func_float2_float2(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
init_type_ref(&f->return_type, add_name("float2"));
f->return_type.type = find_type_by_ref(&f->return_type);
f->parameter_names[0] = add_name("a");
init_type_ref(&f->parameter_types[0], add_name("float2"));
f->parameter_types[0].type = find_type_by_ref(&f->parameter_types[0]);
f->parameters_size = 1;
f->block = NULL;
}
static void add_func_float3_float3_float_float(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
init_type_ref(&f->return_type, add_name("float3"));
f->return_type.type = find_type_by_ref(&f->return_type);
f->parameter_names[0] = add_name("a");
init_type_ref(&f->parameter_types[0], add_name("float3"));
f->parameter_types[0].type = find_type_by_ref(&f->parameter_types[0]);
f->parameter_names[1] = add_name("b");
init_type_ref(&f->parameter_types[1], add_name("float"));
f->parameter_types[1].type = find_type_by_ref(&f->parameter_types[1]);
f->parameter_names[2] = add_name("c");
init_type_ref(&f->parameter_types[2], add_name("float"));
f->parameter_types[2].type = find_type_by_ref(&f->parameter_types[2]);
f->parameters_size = 3;
f->block = NULL;
}
static void add_func_float3_float3_float3_float(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
init_type_ref(&f->return_type, add_name("float3"));
f->return_type.type = find_type_by_ref(&f->return_type);
f->parameter_names[0] = add_name("a");
init_type_ref(&f->parameter_types[0], add_name("float3"));
f->parameter_types[0].type = find_type_by_ref(&f->parameter_types[0]);
f->parameter_names[1] = add_name("b");
init_type_ref(&f->parameter_types[1], add_name("float3"));
f->parameter_types[1].type = find_type_by_ref(&f->parameter_types[1]);
f->parameter_names[2] = add_name("c");
init_type_ref(&f->parameter_types[2], add_name("float"));
f->parameter_types[2].type = find_type_by_ref(&f->parameter_types[2]);
f->parameters_size = 3;
f->block = NULL;
}
static void add_func_float4_float4_float4_float(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
init_type_ref(&f->return_type, add_name("float4"));
f->return_type.type = find_type_by_ref(&f->return_type);
f->parameter_names[0] = add_name("a");
init_type_ref(&f->parameter_types[0], add_name("float4"));
f->parameter_types[0].type = find_type_by_ref(&f->parameter_types[0]);
f->parameter_names[1] = add_name("b");
init_type_ref(&f->parameter_types[1], add_name("float4"));
f->parameter_types[1].type = find_type_by_ref(&f->parameter_types[1]);
f->parameter_names[2] = add_name("c");
init_type_ref(&f->parameter_types[2], add_name("float"));
f->parameter_types[2].type = find_type_by_ref(&f->parameter_types[2]);
f->parameters_size = 3;
f->block = NULL;
}
////
static void add_func_int(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
@@ -192,72 +274,6 @@ static void add_func_float3_float3_float3(char *name) {
f->block = NULL;
}
static void add_func_float3_float3_float_float(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
init_type_ref(&f->return_type, add_name("float3"));
f->return_type.type = find_type_by_ref(&f->return_type);
f->parameter_names[0] = add_name("a");
init_type_ref(&f->parameter_types[0], add_name("float3"));
f->parameter_types[0].type = find_type_by_ref(&f->parameter_types[0]);
f->parameter_names[1] = add_name("b");
init_type_ref(&f->parameter_types[1], add_name("float"));
f->parameter_types[1].type = find_type_by_ref(&f->parameter_types[1]);
f->parameter_names[2] = add_name("c");
init_type_ref(&f->parameter_types[2], add_name("float"));
f->parameter_types[2].type = find_type_by_ref(&f->parameter_types[2]);
f->parameters_size = 3;
f->block = NULL;
}
static void add_func_float3_float3_float3_float(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
init_type_ref(&f->return_type, add_name("float3"));
f->return_type.type = find_type_by_ref(&f->return_type);
f->parameter_names[0] = add_name("a");
init_type_ref(&f->parameter_types[0], add_name("float3"));
f->parameter_types[0].type = find_type_by_ref(&f->parameter_types[0]);
f->parameter_names[1] = add_name("b");
init_type_ref(&f->parameter_types[1], add_name("float3"));
f->parameter_types[1].type = find_type_by_ref(&f->parameter_types[1]);
f->parameter_names[2] = add_name("c");
init_type_ref(&f->parameter_types[2], add_name("float"));
f->parameter_types[2].type = find_type_by_ref(&f->parameter_types[2]);
f->parameters_size = 3;
f->block = NULL;
}
static void add_func_float4_float4_float4_float(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
init_type_ref(&f->return_type, add_name("float4"));
f->return_type.type = find_type_by_ref(&f->return_type);
f->parameter_names[0] = add_name("a");
init_type_ref(&f->parameter_types[0], add_name("float4"));
f->parameter_types[0].type = find_type_by_ref(&f->parameter_types[0]);
f->parameter_names[1] = add_name("b");
init_type_ref(&f->parameter_types[1], add_name("float4"));
f->parameter_types[1].type = find_type_by_ref(&f->parameter_types[1]);
f->parameter_names[2] = add_name("c");
init_type_ref(&f->parameter_types[2], add_name("float"));
f->parameter_types[2].type = find_type_by_ref(&f->parameter_types[2]);
f->parameters_size = 3;
f->block = NULL;
}
static void add_func_void_uint_uint(char *name) {
function_id func = add_function(add_name(name));
function *f = get_function(func);
@@ -770,7 +786,10 @@ void functions_init(void) {
add_func_int("group_index");
add_func_int("instance_id");
////
// add_func_float3_float_float_float("lerp");
add_func_float_float_float_float("lerp");
////
add_func_float3("world_ray_origin");
add_func_float3("world_ray_direction");
add_func_float("ray_length");
@@ -789,7 +808,10 @@ void functions_init(void) {
add_func_float3x3("object_to_world3x3");
add_func_float3_float3_float3("reflect");
add_func_uint("primitive_index");
////
// add_func_float3_float3("abs");
add_func_float_float("abs");
////
add_func_float_float_float("floor");
add_func_float_float_float("ceil");
add_func_float_float_float("round");
@@ -807,21 +829,26 @@ void functions_init(void) {
add_func_float_float("saturate");
add_func_float_float("ddx");
add_func_float_float("ddy");
add_func_float_float("ddx2"); ////
add_func_float_float("ddy2"); ////
add_func_float_float("ddx3"); ////
add_func_float_float("ddy3"); ////
add_func_float3_float3_float_float("clamp3"); ////
add_func_float3_float3_float3("min3"); ////
add_func_float3_float3_float3("max3"); ////
add_func_float3_float3_float3("step3"); ////
add_func_float3_float3_float3("pow3"); ////
add_func_float3_float3_float3("floor3"); ////
add_func_float3_float3_float3("ceil3"); ////
add_func_float3_float3("abs3"); ////
add_func_float3_float3("frac3"); ////
add_func_float3_float3_float3_float("lerp3"); ////
add_func_float4_float4_float4_float("lerp4"); ////
////
add_func_float2_float2("ddx2");
add_func_float2_float2("ddy2");
add_func_float3_float3("ddx3");
add_func_float3_float3("ddy3");
add_func_float3_float3_float_float("clamp3");
add_func_float3_float3_float3("min3");
add_func_float3_float3_float3("max3");
add_func_float3_float3_float3("step3");
add_func_float3_float3_float3("pow3");
add_func_float3_float3_float3("floor3");
add_func_float3_float3_float3("ceil3");
add_func_float3_float3("abs3");
add_func_float3_float3("frac3");
add_func_float3_float3_float3_float("lerp3");
add_func_float4_float4_float4_float("lerp4");
////
add_func_void_uint_uint("set_mesh_output_counts");