From efd41e85fb53061b1c022a5f485e7c6137546ed5 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 10 Feb 2011 00:05:10 -0800 Subject: [PATCH] Add more intrinsic function overloads. This is getting out of control now. --- mojoshader_compiler.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/mojoshader_compiler.c b/mojoshader_compiler.c index d9766995..86954128 100644 --- a/mojoshader_compiler.c +++ b/mojoshader_compiler.c @@ -3394,9 +3394,18 @@ static Context *build_context(MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) dt = get_usertype(ctx, typestr "4"); code; \ } while (0) -#define ADD_INTRINSIC_VECTOR_FLOAT(code) ADD_INTRINSIC_VECTOR("float", code) -#define ADD_INTRINSIC_VECTOR_INT(code) ADD_INTRINSIC_VECTOR("int", code) -#define ADD_INTRINSIC_VECTOR_BOOL(code) ADD_INTRINSIC_VECTOR("bool", code) +#define ADD_INTRINSIC_VECTOR_FLOAT(code) { \ + ADD_INTRINSIC_VECTOR("float", code); \ + ADD_INTRINSIC_VECTOR("half", code); \ + ADD_INTRINSIC_VECTOR("double", code); \ +} +#define ADD_INTRINSIC_VECTOR_INT(code) { \ + ADD_INTRINSIC_VECTOR("int", code); \ + ADD_INTRINSIC_VECTOR("uint", code); \ +} +#define ADD_INTRINSIC_VECTOR_BOOL(code) { \ + ADD_INTRINSIC_VECTOR("bool", code); \ +} #define ADD_INTRINSIC_MATRIX(typestr, code) do { \ const MOJOSHADER_astDataType *dt; \ @@ -3418,9 +3427,18 @@ static Context *build_context(MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) dt = get_usertype(ctx, typestr "4x4"); code; \ } while (0) -#define ADD_INTRINSIC_MATRIX_FLOAT(code) ADD_INTRINSIC_MATRIX("float", code) -#define ADD_INTRINSIC_MATRIX_INT(code) ADD_INTRINSIC_MATRIX("int", code) -#define ADD_INTRINSIC_MATRIX_BOOL(code) ADD_INTRINSIC_MATRIX("bool", code) +#define ADD_INTRINSIC_MATRIX_FLOAT(code) { \ + ADD_INTRINSIC_MATRIX("float", code); \ + ADD_INTRINSIC_MATRIX("half", code); \ + ADD_INTRINSIC_MATRIX("double", code); \ +} +#define ADD_INTRINSIC_MATRIX_INT(code) { \ + ADD_INTRINSIC_MATRIX("int", code); \ + ADD_INTRINSIC_MATRIX("uint", code); \ +} +#define ADD_INTRINSIC_MATRIX_BOOL(code) { \ + ADD_INTRINSIC_MATRIX("bool", code); \ +} #define ADD_INTRINSIC_ANY(scalar, typestr, code) do { \ { const MOJOSHADER_astDataType *dt = scalar; code; } \