using System; using System.Runtime.InteropServices; namespace TwoMGFX { internal class MojoShader { #if OLD_CONTENT_PROCESSORS const string mojoshader_dll = "libmojoshader_32.dll"; #else const string mojoshader_dll = "libmojoshader_64.dll"; #endif public partial class NativeConstants { /// _INCL_MOJOSHADER_H_ -> /// Error generating expression: Value cannot be null. ///Parameter name: node public const string _INCL_MOJOSHADER_H_ = ""; /// _INCL_MOJOSHADER_VERSION_H_ -> /// Error generating expression: Value cannot be null. ///Parameter name: node public const string _INCL_MOJOSHADER_VERSION_H_ = ""; /// MOJOSHADER_VERSION -> 1111 public const int MOJOSHADER_VERSION = 1111; /// MOJOSHADER_CHANGESET -> "hg-1111:91a6af79b5e4" public const string MOJOSHADER_CHANGESET = "hg-1111:91a6af79b5e4"; /// MOJOSHADER_POSITION_NONE -> (-3) public const int MOJOSHADER_POSITION_NONE = -3; /// MOJOSHADER_POSITION_BEFORE -> (-2) public const int MOJOSHADER_POSITION_BEFORE = -2; /// MOJOSHADER_POSITION_AFTER -> (-1) public const int MOJOSHADER_POSITION_AFTER = -1; /// MOJOSHADER_PROFILE_D3D -> "d3d" public const string MOJOSHADER_PROFILE_D3D = "d3d"; /// MOJOSHADER_PROFILE_BYTECODE -> "bytecode" public const string MOJOSHADER_PROFILE_BYTECODE = "bytecode"; /// MOJOSHADER_PROFILE_GLSL -> "glsl" public const string MOJOSHADER_PROFILE_GLSL = "glsl"; /// MOJOSHADER_PROFILE_GLSL120 -> "glsl120" public const string MOJOSHADER_PROFILE_GLSL120 = "glsl120"; /// MOJOSHADER_PROFILE_ARB1 -> "arb1" public const string MOJOSHADER_PROFILE_ARB1 = "arb1"; /// MOJOSHADER_PROFILE_NV2 -> "nv2" public const string MOJOSHADER_PROFILE_NV2 = "nv2"; /// MOJOSHADER_PROFILE_NV3 -> "nv3" public const string MOJOSHADER_PROFILE_NV3 = "nv3"; /// MOJOSHADER_PROFILE_NV4 -> "nv4" public const string MOJOSHADER_PROFILE_NV4 = "nv4"; /// MOJOSHADER_SRC_PROFILE_HLSL_VS_1_1 -> "hlsl_vs_1_1" public const string MOJOSHADER_SRC_PROFILE_HLSL_VS_1_1 = "hlsl_vs_1_1"; /// MOJOSHADER_SRC_PROFILE_HLSL_VS_2_0 -> "hlsl_vs_2_0" public const string MOJOSHADER_SRC_PROFILE_HLSL_VS_2_0 = "hlsl_vs_2_0"; /// MOJOSHADER_SRC_PROFILE_HLSL_VS_3_0 -> "hlsl_vs_3_0" public const string MOJOSHADER_SRC_PROFILE_HLSL_VS_3_0 = "hlsl_vs_3_0"; /// MOJOSHADER_SRC_PROFILE_HLSL_PS_1_1 -> "hlsl_ps_1_1" public const string MOJOSHADER_SRC_PROFILE_HLSL_PS_1_1 = "hlsl_ps_1_1"; /// MOJOSHADER_SRC_PROFILE_HLSL_PS_1_2 -> "hlsl_ps_1_2" public const string MOJOSHADER_SRC_PROFILE_HLSL_PS_1_2 = "hlsl_ps_1_2"; /// MOJOSHADER_SRC_PROFILE_HLSL_PS_1_3 -> "hlsl_ps_1_3" public const string MOJOSHADER_SRC_PROFILE_HLSL_PS_1_3 = "hlsl_ps_1_3"; /// MOJOSHADER_SRC_PROFILE_HLSL_PS_1_4 -> "hlsl_ps_1_4" public const string MOJOSHADER_SRC_PROFILE_HLSL_PS_1_4 = "hlsl_ps_1_4"; /// MOJOSHADER_SRC_PROFILE_HLSL_PS_2_0 -> "hlsl_ps_2_0" public const string MOJOSHADER_SRC_PROFILE_HLSL_PS_2_0 = "hlsl_ps_2_0"; /// MOJOSHADER_SRC_PROFILE_HLSL_PS_3_0 -> "hlsl_ps_3_0" public const string MOJOSHADER_SRC_PROFILE_HLSL_PS_3_0 = "hlsl_ps_3_0"; // MOJOSHADER_AST_DATATYPE_CONST -> (1 << 31) public const int MOJOSHADER_AST_DATATYPE_CONST = (1) << (31); } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_uniform { /// MOJOSHADER_uniformType->Anonymous_cf91fd71_65e4_4c31_a6d5_9488d7f3d32a public MOJOSHADER_uniformType type; /// int public int index; /// int public int array_count; /// int public int constant; /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_constant { /// MOJOSHADER_uniformType->Anonymous_cf91fd71_65e4_4c31_a6d5_9488d7f3d32a public MOJOSHADER_uniformType type; /// int public int index; /// Anonymous_5371dd6a_e42a_47c1_91d1_a2af9a8283be public Anonymous_5371dd6a_e42a_47c1_91d1_a2af9a8283be value; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_sampler { /// MOJOSHADER_samplerType->Anonymous_a752a39b_b479_42b0_9502_e39ba7d86100 public MOJOSHADER_samplerType type; /// int public int index; /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; /// int public int texbem; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_samplerMap { /// int public int index; /// MOJOSHADER_samplerType->Anonymous_a752a39b_b479_42b0_9502_e39ba7d86100 public MOJOSHADER_samplerType type; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_attribute { /// MOJOSHADER_usage->Anonymous_9c01433d_7bb5_4c50_bf77_e65cef0661b5 public MOJOSHADER_usage usage; /// int public int index; /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; } [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] public struct MOJOSHADER_swizzle { /// MOJOSHADER_usage->Anonymous_9c01433d_7bb5_4c50_bf77_e65cef0661b5 public MOJOSHADER_usage usage; /// unsigned int public uint index; /// unsigned char[4] [MarshalAs(UnmanagedType.ByValTStr, SizeConst=4)] public string swizzles; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_symbolTypeInfo { /// MOJOSHADER_symbolClass->Anonymous_681c4b26_94f7_4142_a8e9_b970fe0b60df public MOJOSHADER_symbolClass parameter_class; /// MOJOSHADER_symbolType->Anonymous_d8534f21_7f44_465d_8843_40a435dbb54a public MOJOSHADER_symbolType parameter_type; /// unsigned int public uint rows; /// unsigned int public uint columns; /// unsigned int public uint elements; /// unsigned int public uint member_count; /// MOJOSHADER_symbolStructMember* public IntPtr members; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_symbolStructMember { /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; /// MOJOSHADER_symbolTypeInfo public MOJOSHADER_symbolTypeInfo info; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_symbol { /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; /// MOJOSHADER_symbolRegisterSet->Anonymous_9ff7ac54_131c_43b0_a295_9830d24ac76b public MOJOSHADER_symbolRegisterSet register_set; /// unsigned int public uint register_index; /// unsigned int public uint register_count; /// MOJOSHADER_symbolTypeInfo public MOJOSHADER_symbolTypeInfo info; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_error { /// char* [MarshalAs(UnmanagedType.LPStr)] public string error; /// char* [MarshalAs(UnmanagedType.LPStr)] public string filename; /// int public int error_position; } public enum MOJOSHADER_preshaderOpcode { MOJOSHADER_PRESHADEROP_NOP, MOJOSHADER_PRESHADEROP_MOV, MOJOSHADER_PRESHADEROP_NEG, MOJOSHADER_PRESHADEROP_RCP, MOJOSHADER_PRESHADEROP_FRC, MOJOSHADER_PRESHADEROP_EXP, MOJOSHADER_PRESHADEROP_LOG, MOJOSHADER_PRESHADEROP_RSQ, MOJOSHADER_PRESHADEROP_SIN, MOJOSHADER_PRESHADEROP_COS, MOJOSHADER_PRESHADEROP_ASIN, MOJOSHADER_PRESHADEROP_ACOS, MOJOSHADER_PRESHADEROP_ATAN, MOJOSHADER_PRESHADEROP_MIN, MOJOSHADER_PRESHADEROP_MAX, MOJOSHADER_PRESHADEROP_LT, MOJOSHADER_PRESHADEROP_GE, MOJOSHADER_PRESHADEROP_ADD, MOJOSHADER_PRESHADEROP_MUL, MOJOSHADER_PRESHADEROP_ATAN2, MOJOSHADER_PRESHADEROP_DIV, MOJOSHADER_PRESHADEROP_CMP, MOJOSHADER_PRESHADEROP_MOVC, MOJOSHADER_PRESHADEROP_DOT, MOJOSHADER_PRESHADEROP_NOISE, MOJOSHADER_PRESHADEROP_SCALAR_OPS, /// MOJOSHADER_PRESHADEROP_MIN_SCALAR -> MOJOSHADER_PRESHADEROP_SCALAR_OPS MOJOSHADER_PRESHADEROP_MIN_SCALAR = MOJOSHADER_preshaderOpcode.MOJOSHADER_PRESHADEROP_SCALAR_OPS, MOJOSHADER_PRESHADEROP_MAX_SCALAR, MOJOSHADER_PRESHADEROP_LT_SCALAR, MOJOSHADER_PRESHADEROP_GE_SCALAR, MOJOSHADER_PRESHADEROP_ADD_SCALAR, MOJOSHADER_PRESHADEROP_MUL_SCALAR, MOJOSHADER_PRESHADEROP_ATAN2_SCALAR, MOJOSHADER_PRESHADEROP_DIV_SCALAR, MOJOSHADER_PRESHADEROP_DOT_SCALAR, MOJOSHADER_PRESHADEROP_NOISE_SCALAR, } public enum MOJOSHADER_preshaderOperandType { /// MOJOSHADER_PRESHADEROPERAND_LITERAL -> 1 MOJOSHADER_PRESHADEROPERAND_LITERAL = 1, /// MOJOSHADER_PRESHADEROPERAND_INPUT -> 2 MOJOSHADER_PRESHADEROPERAND_INPUT = 2, /// MOJOSHADER_PRESHADEROPERAND_OUTPUT -> 4 MOJOSHADER_PRESHADEROPERAND_OUTPUT = 4, /// MOJOSHADER_PRESHADEROPERAND_TEMP -> 7 MOJOSHADER_PRESHADEROPERAND_TEMP = 7, /// MOJOSHADER_PRESHADEROPERAND_UNKN -> 0xff MOJOSHADER_PRESHADEROPERAND_UNKN = 255, } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_preshaderOperand { /// MOJOSHADER_preshaderOperandType public MOJOSHADER_preshaderOperandType type; /// unsigned int public uint index; /// int public int indexingType; /// unsigned int public uint indexingIndex; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_preshaderInstruction { /// MOJOSHADER_preshaderOpcode public MOJOSHADER_preshaderOpcode opcode; /// unsigned int public uint element_count; /// unsigned int public uint operand_count; /// MOJOSHADER_preshaderOperand[4] [MarshalAs(UnmanagedType.ByValArray, SizeConst=4, ArraySubType=UnmanagedType.Struct)] public MOJOSHADER_preshaderOperand[] operands; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_preshader { /// unsigned int public uint literal_count; /// double* public IntPtr literals; /// unsigned int public uint temp_count; /// unsigned int public uint symbol_count; /// MOJOSHADER_symbol* public IntPtr symbols; /// unsigned int public uint instruction_count; /// MOJOSHADER_preshaderInstruction* public IntPtr instructions; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_parseData { /// int public int error_count; /// MOJOSHADER_error* public IntPtr errors; /// char* [MarshalAs(UnmanagedType.LPStr)] public string profile; /// char* [MarshalAs(UnmanagedType.LPStr)] public string output; /// int public int output_len; /// int public int instruction_count; /// MOJOSHADER_shaderType->Anonymous_96517ad6_cc69_4542_8537_054e63919d54 public MOJOSHADER_shaderType shader_type; /// int public int major_ver; /// int public int minor_ver; /// int public int uniform_count; /// MOJOSHADER_uniform* public IntPtr uniforms; /// int public int constant_count; /// MOJOSHADER_constant* public IntPtr constants; /// int public int sampler_count; /// MOJOSHADER_sampler* public IntPtr samplers; /// int public int attribute_count; /// MOJOSHADER_attribute* public IntPtr attributes; /// int public int output_count; /// MOJOSHADER_attribute* public IntPtr outputs; /// int public int swizzle_count; /// MOJOSHADER_swizzle* public IntPtr swizzles; /// int public int symbol_count; /// MOJOSHADER_symbol* public IntPtr symbols; /// MOJOSHADER_preshader* public IntPtr preshader; /// MOJOSHADER_malloc public IntPtr malloc; /// MOJOSHADER_free public IntPtr free; /// void* public IntPtr malloc_data; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_effectParam { /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; /// char* [MarshalAs(UnmanagedType.LPStr)] public string semantic; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_effectState { /// unsigned int public uint type; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_effectPass { /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; /// unsigned int public uint state_count; /// MOJOSHADER_effectState* public IntPtr states; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_effectTechnique { /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; /// unsigned int public uint pass_count; /// MOJOSHADER_effectPass* public IntPtr passes; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_effectTexture { /// unsigned int public uint param; /// char* [MarshalAs(UnmanagedType.LPStr)] public string name; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_effectShader { /// unsigned int public uint technique; /// unsigned int public uint pass; /// MOJOSHADER_parseData* public IntPtr shader; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_effect { /// int public int error_count; /// MOJOSHADER_error* public IntPtr errors; /// char* [MarshalAs(UnmanagedType.LPStr)] public string profile; /// int public int param_count; /// MOJOSHADER_effectParam* public IntPtr @params; /// int public int technique_count; /// MOJOSHADER_effectTechnique* public IntPtr techniques; /// int public int texture_count; /// MOJOSHADER_effectTexture* public IntPtr textures; /// int public int shader_count; /// MOJOSHADER_effectShader* public IntPtr shaders; /// MOJOSHADER_malloc public IntPtr malloc; /// MOJOSHADER_free public IntPtr free; /// void* public IntPtr malloc_data; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_preprocessorDefine { /// char* [MarshalAs(UnmanagedType.LPStr)] public string identifier; /// char* [MarshalAs(UnmanagedType.LPStr)] public string definition; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_preprocessData { /// int public int error_count; /// MOJOSHADER_error* public IntPtr errors; /// char* [MarshalAs(UnmanagedType.LPStr)] public string output; /// int public int output_len; /// MOJOSHADER_malloc public IntPtr malloc; /// MOJOSHADER_free public IntPtr free; /// void* public IntPtr malloc_data; } /// Return Type: int ///inctype: MOJOSHADER_includeType->Anonymous_f1eed39d_7d1b_46d4_972e_a3229d15c26e ///fname: char* ///parent: char* ///outdata: char** ///outbytes: unsigned int* ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* public delegate int MOJOSHADER_includeOpen(MOJOSHADER_includeType inctype, [In()] [MarshalAs(UnmanagedType.LPStr)] string fname, [In()] [MarshalAs(UnmanagedType.LPStr)] string parent, ref IntPtr outdata, ref uint outbytes, IntPtr m, IntPtr f, IntPtr d); /// Return Type: void ///data: char* ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* public delegate void MOJOSHADER_includeClose([In()] [MarshalAs(UnmanagedType.LPStr)] string data, IntPtr m, IntPtr f, IntPtr d); public enum MOJOSHADER_astDataTypeType { MOJOSHADER_AST_DATATYPE_NONE, MOJOSHADER_AST_DATATYPE_BOOL, MOJOSHADER_AST_DATATYPE_INT, MOJOSHADER_AST_DATATYPE_UINT, MOJOSHADER_AST_DATATYPE_FLOAT, MOJOSHADER_AST_DATATYPE_FLOAT_SNORM, MOJOSHADER_AST_DATATYPE_FLOAT_UNORM, MOJOSHADER_AST_DATATYPE_HALF, MOJOSHADER_AST_DATATYPE_DOUBLE, MOJOSHADER_AST_DATATYPE_STRING, MOJOSHADER_AST_DATATYPE_SAMPLER_1D, MOJOSHADER_AST_DATATYPE_SAMPLER_2D, MOJOSHADER_AST_DATATYPE_SAMPLER_3D, MOJOSHADER_AST_DATATYPE_SAMPLER_CUBE, MOJOSHADER_AST_DATATYPE_SAMPLER_STATE, MOJOSHADER_AST_DATATYPE_SAMPLER_COMPARISON_STATE, MOJOSHADER_AST_DATATYPE_STRUCT, MOJOSHADER_AST_DATATYPE_ARRAY, MOJOSHADER_AST_DATATYPE_VECTOR, MOJOSHADER_AST_DATATYPE_MATRIX, MOJOSHADER_AST_DATATYPE_BUFFER, MOJOSHADER_AST_DATATYPE_FUNCTION, MOJOSHADER_AST_DATATYPE_USER, } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astDataTypeStructMember { /// MOJOSHADER_astDataType* public IntPtr datatype; /// char* [MarshalAs(UnmanagedType.LPStr)] public string identifier; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astDataTypeStruct { /// MOJOSHADER_astDataTypeType public MOJOSHADER_astDataTypeType type; /// MOJOSHADER_astDataTypeStructMember* public IntPtr members; /// int public int member_count; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astDataTypeArray { /// MOJOSHADER_astDataTypeType public MOJOSHADER_astDataTypeType type; /// MOJOSHADER_astDataType* public IntPtr @base; /// int public int elements; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astDataTypeMatrix { /// MOJOSHADER_astDataTypeType public MOJOSHADER_astDataTypeType type; /// MOJOSHADER_astDataType* public IntPtr @base; /// int public int rows; /// int public int columns; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astDataTypeBuffer { /// MOJOSHADER_astDataTypeType public MOJOSHADER_astDataTypeType type; /// MOJOSHADER_astDataType* public IntPtr @base; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astDataTypeFunction { /// MOJOSHADER_astDataTypeType public MOJOSHADER_astDataTypeType type; /// MOJOSHADER_astDataType* public IntPtr retval; /// MOJOSHADER_astDataType** public IntPtr @params; /// int public int num_params; /// int public int intrinsic; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astDataTypeUser { /// MOJOSHADER_astDataTypeType public MOJOSHADER_astDataTypeType type; /// MOJOSHADER_astDataType* public IntPtr details; /// char* public IntPtr name; } [StructLayout(LayoutKind.Explicit)] public struct MOJOSHADER_astDataType { /// MOJOSHADER_astDataTypeType [FieldOffset(0)] public MOJOSHADER_astDataTypeType type; /// MOJOSHADER_astDataTypeArray [FieldOffset(0)] public MOJOSHADER_astDataTypeArray array; /// MOJOSHADER_astDataTypeStruct [FieldOffset(0)] public MOJOSHADER_astDataTypeStruct structure; /// MOJOSHADER_astDataTypeVector->MOJOSHADER_astDataTypeArray [FieldOffset(0)] public MOJOSHADER_astDataTypeArray vector; /// MOJOSHADER_astDataTypeMatrix [FieldOffset(0)] public MOJOSHADER_astDataTypeMatrix matrix; /// MOJOSHADER_astDataTypeBuffer [FieldOffset(0)] public MOJOSHADER_astDataTypeBuffer buffer; /// MOJOSHADER_astDataTypeUser [FieldOffset(0)] public MOJOSHADER_astDataTypeUser user; /// MOJOSHADER_astDataTypeFunction [FieldOffset(0)] public MOJOSHADER_astDataTypeFunction function; } public enum MOJOSHADER_astNodeType { MOJOSHADER_AST_OP_START_RANGE, MOJOSHADER_AST_OP_START_RANGE_UNARY, MOJOSHADER_AST_OP_PREINCREMENT, MOJOSHADER_AST_OP_PREDECREMENT, MOJOSHADER_AST_OP_NEGATE, MOJOSHADER_AST_OP_COMPLEMENT, MOJOSHADER_AST_OP_NOT, MOJOSHADER_AST_OP_POSTINCREMENT, MOJOSHADER_AST_OP_POSTDECREMENT, MOJOSHADER_AST_OP_CAST, MOJOSHADER_AST_OP_END_RANGE_UNARY, MOJOSHADER_AST_OP_START_RANGE_BINARY, MOJOSHADER_AST_OP_COMMA, MOJOSHADER_AST_OP_MULTIPLY, MOJOSHADER_AST_OP_DIVIDE, MOJOSHADER_AST_OP_MODULO, MOJOSHADER_AST_OP_ADD, MOJOSHADER_AST_OP_SUBTRACT, MOJOSHADER_AST_OP_LSHIFT, MOJOSHADER_AST_OP_RSHIFT, MOJOSHADER_AST_OP_LESSTHAN, MOJOSHADER_AST_OP_GREATERTHAN, MOJOSHADER_AST_OP_LESSTHANOREQUAL, MOJOSHADER_AST_OP_GREATERTHANOREQUAL, MOJOSHADER_AST_OP_EQUAL, MOJOSHADER_AST_OP_NOTEQUAL, MOJOSHADER_AST_OP_BINARYAND, MOJOSHADER_AST_OP_BINARYXOR, MOJOSHADER_AST_OP_BINARYOR, MOJOSHADER_AST_OP_LOGICALAND, MOJOSHADER_AST_OP_LOGICALOR, MOJOSHADER_AST_OP_ASSIGN, MOJOSHADER_AST_OP_MULASSIGN, MOJOSHADER_AST_OP_DIVASSIGN, MOJOSHADER_AST_OP_MODASSIGN, MOJOSHADER_AST_OP_ADDASSIGN, MOJOSHADER_AST_OP_SUBASSIGN, MOJOSHADER_AST_OP_LSHIFTASSIGN, MOJOSHADER_AST_OP_RSHIFTASSIGN, MOJOSHADER_AST_OP_ANDASSIGN, MOJOSHADER_AST_OP_XORASSIGN, MOJOSHADER_AST_OP_ORASSIGN, MOJOSHADER_AST_OP_DEREF_ARRAY, MOJOSHADER_AST_OP_END_RANGE_BINARY, MOJOSHADER_AST_OP_START_RANGE_TERNARY, MOJOSHADER_AST_OP_CONDITIONAL, MOJOSHADER_AST_OP_END_RANGE_TERNARY, MOJOSHADER_AST_OP_START_RANGE_DATA, MOJOSHADER_AST_OP_IDENTIFIER, MOJOSHADER_AST_OP_INT_LITERAL, MOJOSHADER_AST_OP_FLOAT_LITERAL, MOJOSHADER_AST_OP_STRING_LITERAL, MOJOSHADER_AST_OP_BOOLEAN_LITERAL, MOJOSHADER_AST_OP_END_RANGE_DATA, MOJOSHADER_AST_OP_START_RANGE_MISC, MOJOSHADER_AST_OP_DEREF_STRUCT, MOJOSHADER_AST_OP_CALLFUNC, MOJOSHADER_AST_OP_CONSTRUCTOR, MOJOSHADER_AST_OP_END_RANGE_MISC, MOJOSHADER_AST_OP_END_RANGE, MOJOSHADER_AST_COMPUNIT_START_RANGE, MOJOSHADER_AST_COMPUNIT_FUNCTION, MOJOSHADER_AST_COMPUNIT_TYPEDEF, MOJOSHADER_AST_COMPUNIT_STRUCT, MOJOSHADER_AST_COMPUNIT_VARIABLE, MOJOSHADER_AST_COMPUNIT_END_RANGE, MOJOSHADER_AST_STATEMENT_START_RANGE, MOJOSHADER_AST_STATEMENT_EMPTY, MOJOSHADER_AST_STATEMENT_BREAK, MOJOSHADER_AST_STATEMENT_CONTINUE, MOJOSHADER_AST_STATEMENT_DISCARD, MOJOSHADER_AST_STATEMENT_BLOCK, MOJOSHADER_AST_STATEMENT_EXPRESSION, MOJOSHADER_AST_STATEMENT_IF, MOJOSHADER_AST_STATEMENT_SWITCH, MOJOSHADER_AST_STATEMENT_FOR, MOJOSHADER_AST_STATEMENT_DO, MOJOSHADER_AST_STATEMENT_WHILE, MOJOSHADER_AST_STATEMENT_RETURN, MOJOSHADER_AST_STATEMENT_TYPEDEF, MOJOSHADER_AST_STATEMENT_STRUCT, MOJOSHADER_AST_STATEMENT_VARDECL, MOJOSHADER_AST_STATEMENT_END_RANGE, MOJOSHADER_AST_MISC_START_RANGE, MOJOSHADER_AST_FUNCTION_PARAMS, MOJOSHADER_AST_FUNCTION_SIGNATURE, MOJOSHADER_AST_SCALAR_OR_ARRAY, MOJOSHADER_AST_TYPEDEF, MOJOSHADER_AST_PACK_OFFSET, MOJOSHADER_AST_VARIABLE_LOWLEVEL, MOJOSHADER_AST_ANNOTATION, MOJOSHADER_AST_VARIABLE_DECLARATION, MOJOSHADER_AST_STRUCT_DECLARATION, MOJOSHADER_AST_STRUCT_MEMBER, MOJOSHADER_AST_SWITCH_CASE, MOJOSHADER_AST_ARGUMENTS, MOJOSHADER_AST_MISC_END_RANGE, MOJOSHADER_AST_END_RANGE, } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astNodeInfo { /// MOJOSHADER_astNodeType public MOJOSHADER_astNodeType type; /// char* public IntPtr filename; /// unsigned int public uint line; } public enum MOJOSHADER_astVariableAttributes { // MOJOSHADER_AST_VARATTR_EXTERN -> (1<<0) MOJOSHADER_AST_VARATTR_EXTERN = (1) << (0), // MOJOSHADER_AST_VARATTR_NOINTERPOLATION -> (1<<1) MOJOSHADER_AST_VARATTR_NOINTERPOLATION = (1) << (1), // MOJOSHADER_AST_VARATTR_SHARED -> (1<<2) MOJOSHADER_AST_VARATTR_SHARED = (1) << (2), // MOJOSHADER_AST_VARATTR_STATIC -> (1<<3) MOJOSHADER_AST_VARATTR_STATIC = (1) << (3), // MOJOSHADER_AST_VARATTR_UNIFORM -> (1<<4) MOJOSHADER_AST_VARATTR_UNIFORM = (1) << (4), // MOJOSHADER_AST_VARATTR_VOLATILE -> (1<<5) MOJOSHADER_AST_VARATTR_VOLATILE = (1) << (5), // MOJOSHADER_AST_VARATTR_CONST -> (1<<6) MOJOSHADER_AST_VARATTR_CONST = (1) << (6), // MOJOSHADER_AST_VARATTR_ROWMAJOR -> (1<<7) MOJOSHADER_AST_VARATTR_ROWMAJOR = (1) << (7), // MOJOSHADER_AST_VARATTR_COLUMNMAJOR -> (1<<8) MOJOSHADER_AST_VARATTR_COLUMNMAJOR = (1) << (8), } public enum MOJOSHADER_astIfAttributes { MOJOSHADER_AST_IFATTR_NONE, MOJOSHADER_AST_IFATTR_BRANCH, MOJOSHADER_AST_IFATTR_FLATTEN, MOJOSHADER_AST_IFATTR_IFALL, MOJOSHADER_AST_IFATTR_IFANY, MOJOSHADER_AST_IFATTR_PREDICATE, MOJOSHADER_AST_IFATTR_PREDICATEBLOCK, } public enum MOJOSHADER_astSwitchAttributes { MOJOSHADER_AST_SWITCHATTR_NONE, MOJOSHADER_AST_SWITCHATTR_FLATTEN, MOJOSHADER_AST_SWITCHATTR_BRANCH, MOJOSHADER_AST_SWITCHATTR_FORCECASE, MOJOSHADER_AST_SWITCHATTR_CALL, } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astGeneric { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpression { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astArguments { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astExpression* public IntPtr argument; /// MOJOSHADER_astArguments* public IntPtr next; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionUnary { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astExpression* public IntPtr operand; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionBinary { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astExpression* public IntPtr left; /// MOJOSHADER_astExpression* public IntPtr right; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionTernary { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astExpression* public IntPtr left; /// MOJOSHADER_astExpression* public IntPtr center; /// MOJOSHADER_astExpression* public IntPtr right; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionIdentifier { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// char* public IntPtr identifier; /// int public int index; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionIntLiteral { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// int public int value; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionFloatLiteral { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// double public double value; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionStringLiteral { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// char* public IntPtr @string; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionBooleanLiteral { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// int public int value; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionConstructor { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astArguments* public IntPtr args; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionDerefStruct { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astExpression* public IntPtr identifier; /// char* public IntPtr member; /// int public int isswizzle; /// int public int member_index; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionCallFunction { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astExpressionIdentifier* public IntPtr identifier; /// MOJOSHADER_astArguments* public IntPtr args; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionCast { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astExpression* public IntPtr operand; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astCompilationUnit { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astCompilationUnit* public IntPtr next; } public enum MOJOSHADER_astFunctionStorageClass { MOJOSHADER_AST_FNSTORECLS_NONE, MOJOSHADER_AST_FNSTORECLS_INLINE, } public enum MOJOSHADER_astInputModifier { MOJOSHADER_AST_INPUTMOD_NONE, MOJOSHADER_AST_INPUTMOD_IN, MOJOSHADER_AST_INPUTMOD_OUT, MOJOSHADER_AST_INPUTMOD_INOUT, MOJOSHADER_AST_INPUTMOD_UNIFORM, } public enum MOJOSHADER_astInterpolationModifier { MOJOSHADER_AST_INTERPMOD_NONE, MOJOSHADER_AST_INTERPMOD_LINEAR, MOJOSHADER_AST_INTERPMOD_CENTROID, MOJOSHADER_AST_INTERPMOD_NOINTERPOLATION, MOJOSHADER_AST_INTERPMOD_NOPERSPECTIVE, MOJOSHADER_AST_INTERPMOD_SAMPLE, } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astFunctionParameters { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astInputModifier public MOJOSHADER_astInputModifier input_modifier; /// char* public IntPtr identifier; /// char* public IntPtr semantic; /// MOJOSHADER_astInterpolationModifier public MOJOSHADER_astInterpolationModifier interpolation_modifier; /// MOJOSHADER_astExpression* public IntPtr initializer; /// MOJOSHADER_astFunctionParameters* public IntPtr next; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astFunctionSignature { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// char* public IntPtr identifier; /// MOJOSHADER_astFunctionParameters* public IntPtr @params; /// MOJOSHADER_astFunctionStorageClass public MOJOSHADER_astFunctionStorageClass storage_class; /// char* public IntPtr semantic; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astScalarOrArray { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// char* public IntPtr identifier; /// int public int isarray; /// MOJOSHADER_astExpression* public IntPtr dimension; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astAnnotations { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astExpression* public IntPtr initializer; /// MOJOSHADER_astAnnotations* public IntPtr next; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astPackOffset { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// char* public IntPtr ident1; /// char* public IntPtr ident2; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astVariableLowLevel { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astPackOffset* public IntPtr packoffset; /// char* public IntPtr register_name; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astStructMembers { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// char* public IntPtr semantic; /// MOJOSHADER_astScalarOrArray* public IntPtr details; /// MOJOSHADER_astInterpolationModifier public MOJOSHADER_astInterpolationModifier interpolation_mod; /// MOJOSHADER_astStructMembers* public IntPtr next; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astStructDeclaration { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// char* public IntPtr name; /// MOJOSHADER_astStructMembers* public IntPtr members; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astVariableDeclaration { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// int public int attributes; /// MOJOSHADER_astDataType* public IntPtr datatype; /// MOJOSHADER_astStructDeclaration* public IntPtr anonymous_datatype; /// MOJOSHADER_astScalarOrArray* public IntPtr details; /// char* public IntPtr semantic; /// MOJOSHADER_astAnnotations* public IntPtr annotations; /// MOJOSHADER_astExpression* public IntPtr initializer; /// MOJOSHADER_astVariableLowLevel* public IntPtr lowlevel; /// MOJOSHADER_astVariableDeclaration* public IntPtr next; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astBlockStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// MOJOSHADER_astStatement* public IntPtr statements; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astReturnStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// MOJOSHADER_astExpression* public IntPtr expr; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astExpressionStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// MOJOSHADER_astExpression* public IntPtr expr; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astIfStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// int public int attributes; /// MOJOSHADER_astExpression* public IntPtr expr; /// MOJOSHADER_astStatement* public IntPtr statement; /// MOJOSHADER_astStatement* public IntPtr else_statement; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astSwitchCases { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astExpression* public IntPtr expr; /// MOJOSHADER_astStatement* public IntPtr statement; /// MOJOSHADER_astSwitchCases* public IntPtr next; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astSwitchStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// int public int attributes; /// MOJOSHADER_astExpression* public IntPtr expr; /// MOJOSHADER_astSwitchCases* public IntPtr cases; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astWhileStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// int public int unroll; /// MOJOSHADER_astExpression* public IntPtr expr; /// MOJOSHADER_astStatement* public IntPtr statement; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astForStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// int public int unroll; /// MOJOSHADER_astVariableDeclaration* public IntPtr var_decl; /// MOJOSHADER_astExpression* public IntPtr initializer; /// MOJOSHADER_astExpression* public IntPtr looptest; /// MOJOSHADER_astExpression* public IntPtr counter; /// MOJOSHADER_astStatement* public IntPtr statement; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astTypedef { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astDataType* public IntPtr datatype; /// int public int isconst; /// MOJOSHADER_astScalarOrArray* public IntPtr details; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astTypedefStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// MOJOSHADER_astTypedef* public IntPtr type_info; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astVarDeclStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// MOJOSHADER_astVariableDeclaration* public IntPtr declaration; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astStructStatement { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astStatement* public IntPtr next; /// MOJOSHADER_astStructDeclaration* public IntPtr struct_info; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astCompilationUnitFunction { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astCompilationUnit* public IntPtr next; /// MOJOSHADER_astFunctionSignature* public IntPtr declaration; /// MOJOSHADER_astStatement* public IntPtr definition; /// int public int index; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astCompilationUnitTypedef { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astCompilationUnit* public IntPtr next; /// MOJOSHADER_astTypedef* public IntPtr type_info; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astCompilationUnitStruct { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astCompilationUnit* public IntPtr next; /// MOJOSHADER_astStructDeclaration* public IntPtr struct_info; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astCompilationUnitVariable { /// MOJOSHADER_astNodeInfo public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astCompilationUnit* public IntPtr next; /// MOJOSHADER_astVariableDeclaration* public IntPtr declaration; } [StructLayout(LayoutKind.Explicit)] public struct MOJOSHADER_astNode { /// MOJOSHADER_astNodeInfo [FieldOffset(0)] public MOJOSHADER_astNodeInfo ast; /// MOJOSHADER_astGeneric [FieldOffset(0)] public MOJOSHADER_astGeneric generic; /// MOJOSHADER_astExpression [FieldOffset(0)] public MOJOSHADER_astExpression expression; /// MOJOSHADER_astArguments [FieldOffset(0)] public MOJOSHADER_astArguments arguments; /// MOJOSHADER_astExpressionUnary [FieldOffset(0)] public MOJOSHADER_astExpressionUnary unary; /// MOJOSHADER_astExpressionBinary [FieldOffset(0)] public MOJOSHADER_astExpressionBinary binary; /// MOJOSHADER_astExpressionTernary [FieldOffset(0)] public MOJOSHADER_astExpressionTernary ternary; /// MOJOSHADER_astExpressionIdentifier [FieldOffset(0)] public MOJOSHADER_astExpressionIdentifier identifier; /// MOJOSHADER_astExpressionIntLiteral [FieldOffset(0)] public MOJOSHADER_astExpressionIntLiteral intliteral; /// MOJOSHADER_astExpressionFloatLiteral [FieldOffset(0)] public MOJOSHADER_astExpressionFloatLiteral floatliteral; /// MOJOSHADER_astExpressionStringLiteral [FieldOffset(0)] public MOJOSHADER_astExpressionStringLiteral stringliteral; /// MOJOSHADER_astExpressionBooleanLiteral [FieldOffset(0)] public MOJOSHADER_astExpressionBooleanLiteral boolliteral; /// MOJOSHADER_astExpressionConstructor [FieldOffset(0)] public MOJOSHADER_astExpressionConstructor constructor; /// MOJOSHADER_astExpressionDerefStruct [FieldOffset(0)] public MOJOSHADER_astExpressionDerefStruct derefstruct; /// MOJOSHADER_astExpressionCallFunction [FieldOffset(0)] public MOJOSHADER_astExpressionCallFunction callfunc; /// MOJOSHADER_astExpressionCast [FieldOffset(0)] public MOJOSHADER_astExpressionCast cast; /// MOJOSHADER_astCompilationUnit [FieldOffset(0)] public MOJOSHADER_astCompilationUnit compunit; /// MOJOSHADER_astFunctionParameters [FieldOffset(0)] public MOJOSHADER_astFunctionParameters @params; /// MOJOSHADER_astFunctionSignature [FieldOffset(0)] public MOJOSHADER_astFunctionSignature funcsig; /// MOJOSHADER_astScalarOrArray [FieldOffset(0)] public MOJOSHADER_astScalarOrArray soa; /// MOJOSHADER_astAnnotations [FieldOffset(0)] public MOJOSHADER_astAnnotations annotations; /// MOJOSHADER_astPackOffset [FieldOffset(0)] public MOJOSHADER_astPackOffset packoffset; /// MOJOSHADER_astVariableLowLevel [FieldOffset(0)] public MOJOSHADER_astVariableLowLevel varlowlevel; /// MOJOSHADER_astStructMembers [FieldOffset(0)] public MOJOSHADER_astStructMembers structmembers; /// MOJOSHADER_astStructDeclaration [FieldOffset(0)] public MOJOSHADER_astStructDeclaration structdecl; /// MOJOSHADER_astVariableDeclaration [FieldOffset(0)] public MOJOSHADER_astVariableDeclaration vardecl; /// MOJOSHADER_astStatement [FieldOffset(0)] public MOJOSHADER_astStatement stmt; /// MOJOSHADER_astEmptyStatement->MOJOSHADER_astStatement [FieldOffset(0)] public MOJOSHADER_astStatement emptystmt; /// MOJOSHADER_astBreakStatement->MOJOSHADER_astStatement [FieldOffset(0)] public MOJOSHADER_astStatement breakstmt; /// MOJOSHADER_astContinueStatement->MOJOSHADER_astStatement [FieldOffset(0)] public MOJOSHADER_astStatement contstmt; /// MOJOSHADER_astDiscardStatement->MOJOSHADER_astStatement [FieldOffset(0)] public MOJOSHADER_astStatement discardstmt; /// MOJOSHADER_astBlockStatement [FieldOffset(0)] public MOJOSHADER_astBlockStatement blockstmt; /// MOJOSHADER_astReturnStatement [FieldOffset(0)] public MOJOSHADER_astReturnStatement returnstmt; /// MOJOSHADER_astExpressionStatement [FieldOffset(0)] public MOJOSHADER_astExpressionStatement exprstmt; /// MOJOSHADER_astIfStatement [FieldOffset(0)] public MOJOSHADER_astIfStatement ifstmt; /// MOJOSHADER_astSwitchCases [FieldOffset(0)] public MOJOSHADER_astSwitchCases cases; /// MOJOSHADER_astSwitchStatement [FieldOffset(0)] public MOJOSHADER_astSwitchStatement switchstmt; /// MOJOSHADER_astWhileStatement [FieldOffset(0)] public MOJOSHADER_astWhileStatement whilestmt; /// MOJOSHADER_astDoStatement->MOJOSHADER_astWhileStatement [FieldOffset(0)] public MOJOSHADER_astWhileStatement dostmt; /// MOJOSHADER_astForStatement [FieldOffset(0)] public MOJOSHADER_astForStatement forstmt; /// MOJOSHADER_astTypedef [FieldOffset(0)] public MOJOSHADER_astTypedef typdef; /// MOJOSHADER_astTypedefStatement [FieldOffset(0)] public MOJOSHADER_astTypedefStatement typedefstmt; /// MOJOSHADER_astVarDeclStatement [FieldOffset(0)] public MOJOSHADER_astVarDeclStatement vardeclstmt; /// MOJOSHADER_astStructStatement [FieldOffset(0)] public MOJOSHADER_astStructStatement structstmt; /// MOJOSHADER_astCompilationUnitFunction [FieldOffset(0)] public MOJOSHADER_astCompilationUnitFunction funcunit; /// MOJOSHADER_astCompilationUnitTypedef [FieldOffset(0)] public MOJOSHADER_astCompilationUnitTypedef typedefunit; /// MOJOSHADER_astCompilationUnitStruct [FieldOffset(0)] public MOJOSHADER_astCompilationUnitStruct structunit; /// MOJOSHADER_astCompilationUnitVariable [FieldOffset(0)] public MOJOSHADER_astCompilationUnitVariable varunit; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_astData { /// int public int error_count; /// MOJOSHADER_error* public IntPtr errors; /// char* [MarshalAs(UnmanagedType.LPStr)] public string source_profile; /// MOJOSHADER_astNode* public IntPtr ast; /// MOJOSHADER_malloc public IntPtr malloc; /// MOJOSHADER_free public IntPtr free; /// void* public IntPtr malloc_data; /// void* public IntPtr opaque; } public enum MOJOSHADER_irNodeType { MOJOSHADER_IR_START_RANGE_EXPR, MOJOSHADER_IR_CONSTANT, MOJOSHADER_IR_TEMP, MOJOSHADER_IR_BINOP, MOJOSHADER_IR_MEMORY, MOJOSHADER_IR_CALL, MOJOSHADER_IR_ESEQ, MOJOSHADER_IR_ARRAY, MOJOSHADER_IR_CONVERT, MOJOSHADER_IR_SWIZZLE, MOJOSHADER_IR_CONSTRUCT, MOJOSHADER_IR_END_RANGE_EXPR, MOJOSHADER_IR_START_RANGE_STMT, MOJOSHADER_IR_MOVE, MOJOSHADER_IR_EXPR_STMT, MOJOSHADER_IR_JUMP, MOJOSHADER_IR_CJUMP, MOJOSHADER_IR_SEQ, MOJOSHADER_IR_LABEL, MOJOSHADER_IR_DISCARD, MOJOSHADER_IR_END_RANGE_STMT, MOJOSHADER_IR_START_RANGE_MISC, MOJOSHADER_IR_EXPRLIST, MOJOSHADER_IR_END_RANGE_MISC, MOJOSHADER_IR_END_RANGE, } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irNodeInfo { /// MOJOSHADER_irNodeType public MOJOSHADER_irNodeType type; /// char* public IntPtr filename; /// unsigned int public uint line; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irGeneric { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; } public enum MOJOSHADER_irBinOpType { MOJOSHADER_IR_BINOP_ADD, MOJOSHADER_IR_BINOP_SUBTRACT, MOJOSHADER_IR_BINOP_MULTIPLY, MOJOSHADER_IR_BINOP_DIVIDE, MOJOSHADER_IR_BINOP_MODULO, MOJOSHADER_IR_BINOP_AND, MOJOSHADER_IR_BINOP_OR, MOJOSHADER_IR_BINOP_XOR, MOJOSHADER_IR_BINOP_LSHIFT, MOJOSHADER_IR_BINOP_RSHIFT, MOJOSHADER_IR_BINOP_UNKNOWN, } public enum MOJOSHADER_irConditionType { MOJOSHADER_IR_COND_EQL, MOJOSHADER_IR_COND_NEQ, MOJOSHADER_IR_COND_LT, MOJOSHADER_IR_COND_GT, MOJOSHADER_IR_COND_LEQ, MOJOSHADER_IR_COND_GEQ, MOJOSHADER_IR_COND_UNKNOWN, } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irExprInfo { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_astDataTypeType public MOJOSHADER_astDataTypeType type; /// int public int elements; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irConstant { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// Anonymous_3a13e6d2_72d8_4c86_b5bf_9aff36c73111 public Anonymous_3a13e6d2_72d8_4c86_b5bf_9aff36c73111 value; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irTemp { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// int public int index; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irBinOp { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// MOJOSHADER_irBinOpType public MOJOSHADER_irBinOpType op; /// MOJOSHADER_irExpression* public IntPtr left; /// MOJOSHADER_irExpression* public IntPtr right; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irMemory { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// int public int index; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irCall { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// int public int index; /// MOJOSHADER_irExprList* public IntPtr args; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irESeq { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// MOJOSHADER_irStatement* public IntPtr stmt; /// MOJOSHADER_irExpression* public IntPtr expr; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irArray { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// MOJOSHADER_irExpression* public IntPtr array; /// MOJOSHADER_irExpression* public IntPtr element; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irConvert { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// MOJOSHADER_irExpression* public IntPtr expr; } [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] public struct MOJOSHADER_irSwizzle { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// MOJOSHADER_irExpression* public IntPtr expr; /// char[4] public IntPtr channels; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irConstruct { /// MOJOSHADER_irExprInfo public MOJOSHADER_irExprInfo info; /// MOJOSHADER_irExprList* public IntPtr args; } [StructLayout(LayoutKind.Explicit)] public struct MOJOSHADER_irExpression { /// MOJOSHADER_irNodeInfo [FieldOffset(0)] public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irExprInfo [FieldOffset(0)] public MOJOSHADER_irExprInfo info; /// MOJOSHADER_irConstant [FieldOffset(0)] public MOJOSHADER_irConstant constant; /// MOJOSHADER_irTemp [FieldOffset(0)] public MOJOSHADER_irTemp temp; /// MOJOSHADER_irBinOp [FieldOffset(0)] public MOJOSHADER_irBinOp binop; /// MOJOSHADER_irMemory [FieldOffset(0)] public MOJOSHADER_irMemory memory; /// MOJOSHADER_irCall [FieldOffset(0)] public MOJOSHADER_irCall call; /// MOJOSHADER_irESeq [FieldOffset(0)] public MOJOSHADER_irESeq eseq; /// MOJOSHADER_irArray [FieldOffset(0)] public MOJOSHADER_irArray array; /// MOJOSHADER_irConvert [FieldOffset(0)] public MOJOSHADER_irConvert convert; /// MOJOSHADER_irSwizzle [FieldOffset(0)] public MOJOSHADER_irSwizzle swizzle; /// MOJOSHADER_irConstruct [FieldOffset(0)] public MOJOSHADER_irConstruct construct; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irMove { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irExpression* public IntPtr dst; /// MOJOSHADER_irExpression* public IntPtr src; /// int public int writemask; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irExprStmt { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irExpression* public IntPtr expr; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irJump { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; /// int public int label; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irCJump { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irConditionType public MOJOSHADER_irConditionType cond; /// MOJOSHADER_irExpression* public IntPtr left; /// MOJOSHADER_irExpression* public IntPtr right; /// int public int iftrue; /// int public int iffalse; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irSeq { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irStatement* public IntPtr first; /// MOJOSHADER_irStatement* public IntPtr next; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irLabel { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; /// int public int index; } [StructLayout(LayoutKind.Explicit)] public struct MOJOSHADER_irStatement { /// MOJOSHADER_irNodeInfo [FieldOffset(0)] public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irGeneric [FieldOffset(0)] public MOJOSHADER_irGeneric generic; /// MOJOSHADER_irMove [FieldOffset(0)] public MOJOSHADER_irMove move; /// MOJOSHADER_irExprStmt [FieldOffset(0)] public MOJOSHADER_irExprStmt expr; /// MOJOSHADER_irJump [FieldOffset(0)] public MOJOSHADER_irJump jump; /// MOJOSHADER_irCJump [FieldOffset(0)] public MOJOSHADER_irCJump cjump; /// MOJOSHADER_irSeq [FieldOffset(0)] public MOJOSHADER_irSeq seq; /// MOJOSHADER_irLabel [FieldOffset(0)] public MOJOSHADER_irLabel label; /// MOJOSHADER_irDiscard->MOJOSHADER_irGeneric [FieldOffset(0)] public MOJOSHADER_irGeneric discard; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_irExprList { /// MOJOSHADER_irNodeInfo public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irExpression* public IntPtr expr; /// MOJOSHADER_irExprList* public IntPtr next; } [StructLayout(LayoutKind.Explicit)] public struct MOJOSHADER_irMisc { /// MOJOSHADER_irNodeInfo [FieldOffset(0)] public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irGeneric [FieldOffset(0)] public MOJOSHADER_irGeneric generic; /// MOJOSHADER_irExprList [FieldOffset(0)] public MOJOSHADER_irExprList exprlist; } [StructLayout(LayoutKind.Explicit)] public struct MOJOSHADER_irNode { /// MOJOSHADER_irNodeInfo [FieldOffset(0)] public MOJOSHADER_irNodeInfo ir; /// MOJOSHADER_irGeneric [FieldOffset(0)] public MOJOSHADER_irGeneric generic; /// MOJOSHADER_irExpression [FieldOffset(0)] public MOJOSHADER_irExpression expr; /// MOJOSHADER_irStatement [FieldOffset(0)] public MOJOSHADER_irStatement stmt; /// MOJOSHADER_irMisc [FieldOffset(0)] public MOJOSHADER_irMisc misc; } [StructLayout(LayoutKind.Sequential)] public struct MOJOSHADER_compileData { /// int public int error_count; /// MOJOSHADER_error* public IntPtr errors; /// int public int warning_count; /// MOJOSHADER_error* public IntPtr warnings; /// char* [MarshalAs(UnmanagedType.LPStr)] public string source_profile; /// char* [MarshalAs(UnmanagedType.LPStr)] public string output; /// int public int output_len; /// int public int symbol_count; /// MOJOSHADER_symbol* public IntPtr symbols; /// MOJOSHADER_malloc public IntPtr malloc; /// MOJOSHADER_free public IntPtr free; /// void* public IntPtr malloc_data; } /// Return Type: void* ///fnname: char* ///data: void* public delegate IntPtr MOJOSHADER_glGetProcAddress([In()] [MarshalAs(UnmanagedType.LPStr)] string fnname, IntPtr data); [StructLayout(LayoutKind.Explicit)] public struct Anonymous_5371dd6a_e42a_47c1_91d1_a2af9a8283be { /// float[4] [MarshalAs(UnmanagedType.ByValArray, SizeConst=4, ArraySubType=UnmanagedType.R4)] [FieldOffset(0)] public IntPtr f; /// int[4] [MarshalAs(UnmanagedType.ByValArray, SizeConst=4, ArraySubType=UnmanagedType.I4)] [FieldOffset(0)] public IntPtr i; /// int [FieldOffset(0)] public int b; } [StructLayout(LayoutKind.Explicit)] public struct Anonymous_3a13e6d2_72d8_4c86_b5bf_9aff36c73111 { /// int[16] [MarshalAs(UnmanagedType.ByValArray, SizeConst=16, ArraySubType=UnmanagedType.I4)] [FieldOffset(0)] public IntPtr ival; /// float[16] [MarshalAs(UnmanagedType.ByValArray, SizeConst=16, ArraySubType=UnmanagedType.R4)] [FieldOffset(0)] public IntPtr fval; } public enum MOJOSHADER_uniformType { /// MOJOSHADER_UNIFORM_UNKNOWN -> -1 MOJOSHADER_UNIFORM_UNKNOWN = -1, MOJOSHADER_UNIFORM_FLOAT, MOJOSHADER_UNIFORM_INT, MOJOSHADER_UNIFORM_BOOL, } public enum MOJOSHADER_samplerType { /// MOJOSHADER_SAMPLER_UNKNOWN -> -1 MOJOSHADER_SAMPLER_UNKNOWN = -1, MOJOSHADER_SAMPLER_2D = 0, MOJOSHADER_SAMPLER_CUBE = 1, MOJOSHADER_SAMPLER_VOLUME = 2, MOJOSHADER_SAMPLER_1D = 3, } public enum MOJOSHADER_usage { /// MOJOSHADER_USAGE_UNKNOWN -> -1 MOJOSHADER_USAGE_UNKNOWN = -1, MOJOSHADER_USAGE_POSITION, MOJOSHADER_USAGE_BLENDWEIGHT, MOJOSHADER_USAGE_BLENDINDICES, MOJOSHADER_USAGE_NORMAL, MOJOSHADER_USAGE_POINTSIZE, MOJOSHADER_USAGE_TEXCOORD, MOJOSHADER_USAGE_TANGENT, MOJOSHADER_USAGE_BINORMAL, MOJOSHADER_USAGE_TESSFACTOR, MOJOSHADER_USAGE_POSITIONT, MOJOSHADER_USAGE_COLOR, MOJOSHADER_USAGE_FOG, MOJOSHADER_USAGE_DEPTH, MOJOSHADER_USAGE_SAMPLE, MOJOSHADER_USAGE_TOTAL, } public enum MOJOSHADER_symbolClass { MOJOSHADER_SYMCLASS_SCALAR, MOJOSHADER_SYMCLASS_VECTOR, MOJOSHADER_SYMCLASS_MATRIX_ROWS, MOJOSHADER_SYMCLASS_MATRIX_COLUMNS, MOJOSHADER_SYMCLASS_OBJECT, MOJOSHADER_SYMCLASS_STRUCT, } public enum MOJOSHADER_symbolType { MOJOSHADER_SYMTYPE_VOID, MOJOSHADER_SYMTYPE_BOOL, MOJOSHADER_SYMTYPE_INT, MOJOSHADER_SYMTYPE_FLOAT, MOJOSHADER_SYMTYPE_STRING, MOJOSHADER_SYMTYPE_TEXTURE, MOJOSHADER_SYMTYPE_TEXTURE1D, MOJOSHADER_SYMTYPE_TEXTURE2D, MOJOSHADER_SYMTYPE_TEXTURE3D, MOJOSHADER_SYMTYPE_TEXTURECUBE, MOJOSHADER_SYMTYPE_SAMPLER, MOJOSHADER_SYMTYPE_SAMPLER1D, MOJOSHADER_SYMTYPE_SAMPLER2D, MOJOSHADER_SYMTYPE_SAMPLER3D, MOJOSHADER_SYMTYPE_SAMPLERCUBE, MOJOSHADER_SYMTYPE_PIXELSHADER, MOJOSHADER_SYMTYPE_VERTEXSHADER, MOJOSHADER_SYMTYPE_PIXELFRAGMENT, MOJOSHADER_SYMTYPE_VERTEXFRAGMENT, MOJOSHADER_SYMTYPE_UNSUPPORTED, } public enum MOJOSHADER_symbolRegisterSet { MOJOSHADER_SYMREGSET_BOOL, MOJOSHADER_SYMREGSET_INT4, MOJOSHADER_SYMREGSET_FLOAT4, MOJOSHADER_SYMREGSET_SAMPLER, } public enum MOJOSHADER_shaderType { // MOJOSHADER_TYPE_UNKNOWN -> 0 MOJOSHADER_TYPE_UNKNOWN = 0, // MOJOSHADER_TYPE_PIXEL -> (1<<0) MOJOSHADER_TYPE_PIXEL = (1) << (0), // MOJOSHADER_TYPE_VERTEX -> (1<<1) MOJOSHADER_TYPE_VERTEX = (1) << (1), // MOJOSHADER_TYPE_GEOMETRY -> (1<<2) MOJOSHADER_TYPE_GEOMETRY = (1) << (2), // MOJOSHADER_TYPE_ANY -> 0xFFFFFFFF MOJOSHADER_TYPE_ANY = -1, } public enum MOJOSHADER_includeType { MOJOSHADER_INCLUDETYPE_LOCAL, MOJOSHADER_INCLUDETYPE_SYSTEM, } public enum MOJOSHADER_attributeType { // MOJOSHADER_ATTRIBUTE_UNKNOWN -> -1 MOJOSHADER_ATTRIBUTE_UNKNOWN = -1, MOJOSHADER_ATTRIBUTE_BYTE, MOJOSHADER_ATTRIBUTE_UBYTE, MOJOSHADER_ATTRIBUTE_SHORT, MOJOSHADER_ATTRIBUTE_USHORT, MOJOSHADER_ATTRIBUTE_INT, MOJOSHADER_ATTRIBUTE_UINT, MOJOSHADER_ATTRIBUTE_FLOAT, MOJOSHADER_ATTRIBUTE_DOUBLE, MOJOSHADER_ATTRIBUTE_HALF_FLOAT, } public partial class NativeMethods { /// Return Type: int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_version")] public static extern int MOJOSHADER_version() ; /// Return Type: char* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_changeset")] public static extern IntPtr MOJOSHADER_changeset() ; /// Return Type: int ///profile: char* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_maxShaderModel")] public static extern int MOJOSHADER_maxShaderModel([In()] [MarshalAs(UnmanagedType.LPStr)] string profile) ; /// Return Type: MOJOSHADER_parseData* ///tokenbuf: char* ///bufsize: int ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_parseExpression")] public static extern IntPtr MOJOSHADER_parseExpression([In()] byte[] tokenbuf, int bufsize, IntPtr m, IntPtr f, IntPtr d) ; /// Return Type: void ///param0: MOJOSHADER_preshader* ///param1: float* ///param2: float* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_runPreshader")] public static extern void MOJOSHADER_runPreshader(ref MOJOSHADER_preshader param0, ref float param1, ref float param2) ; /// Return Type: MOJOSHADER_parseData* ///profile: char* ///tokenbuf: char* ///bufsize: int ///swiz: MOJOSHADER_swizzle* ///swizcount: int ///smap: MOJOSHADER_samplerMap* ///smapcount: int ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_parse")] public static extern IntPtr MOJOSHADER_parse([In()] [MarshalAs(UnmanagedType.LPStr)] string profile, [In()] byte[] tokenbuf, int bufsize, IntPtr swiz, int swizcount, IntPtr smap, int smapcount, IntPtr m, IntPtr f, IntPtr d) ; /// Return Type: void ///data: MOJOSHADER_parseData* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_freeParseData")] public static extern void MOJOSHADER_freeParseData(ref MOJOSHADER_parseData data) ; /// Return Type: MOJOSHADER_effect* ///profile: char* ///buf: char* ///_len: int ///swiz: MOJOSHADER_swizzle* ///swizcount: int ///smap: MOJOSHADER_samplerMap* ///smapcount: int ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_parseEffect")] public static extern IntPtr MOJOSHADER_parseEffect([In()] [MarshalAs(UnmanagedType.LPStr)] string profile, [In()] [MarshalAs(UnmanagedType.LPStr)] string buf, int _len, ref MOJOSHADER_swizzle swiz, int swizcount, ref MOJOSHADER_samplerMap smap, int smapcount, IntPtr m, IntPtr f, IntPtr d) ; /// Return Type: void ///effect: MOJOSHADER_effect* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_freeEffect")] public static extern void MOJOSHADER_freeEffect(ref MOJOSHADER_effect effect) ; /// Return Type: MOJOSHADER_preprocessData* ///filename: char* ///source: char* ///sourcelen: unsigned int ///defines: MOJOSHADER_preprocessorDefine* ///define_count: unsigned int ///include_open: MOJOSHADER_includeOpen ///include_close: MOJOSHADER_includeClose ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_preprocess")] public static extern IntPtr MOJOSHADER_preprocess([In()] [MarshalAs(UnmanagedType.LPStr)] string filename, [In()] [MarshalAs(UnmanagedType.LPStr)] string source, uint sourcelen, ref MOJOSHADER_preprocessorDefine defines, uint define_count, MOJOSHADER_includeOpen include_open, MOJOSHADER_includeClose include_close, IntPtr m, IntPtr f, IntPtr d) ; /// Return Type: void ///data: MOJOSHADER_preprocessData* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_freePreprocessData")] public static extern void MOJOSHADER_freePreprocessData(ref MOJOSHADER_preprocessData data) ; /// Return Type: MOJOSHADER_parseData* ///filename: char* ///source: char* ///sourcelen: unsigned int ///comments: char** ///comment_count: unsigned int ///symbols: MOJOSHADER_symbol* ///symbol_count: unsigned int ///defines: MOJOSHADER_preprocessorDefine* ///define_count: unsigned int ///include_open: MOJOSHADER_includeOpen ///include_close: MOJOSHADER_includeClose ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_assemble")] public static extern IntPtr MOJOSHADER_assemble([In()] [MarshalAs(UnmanagedType.LPStr)] string filename, [In()] [MarshalAs(UnmanagedType.LPStr)] string source, uint sourcelen, ref IntPtr comments, uint comment_count, ref MOJOSHADER_symbol symbols, uint symbol_count, ref MOJOSHADER_preprocessorDefine defines, uint define_count, MOJOSHADER_includeOpen include_open, MOJOSHADER_includeClose include_close, IntPtr m, IntPtr f, IntPtr d) ; /// Return Type: MOJOSHADER_astData* ///srcprofile: char* ///filename: char* ///source: char* ///sourcelen: unsigned int ///defs: MOJOSHADER_preprocessorDefine* ///define_count: unsigned int ///include_open: MOJOSHADER_includeOpen ///include_close: MOJOSHADER_includeClose ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_parseAst")] public static extern IntPtr MOJOSHADER_parseAst([In()] [MarshalAs(UnmanagedType.LPStr)] string srcprofile, [In()] [MarshalAs(UnmanagedType.LPStr)] string filename, [In()] [MarshalAs(UnmanagedType.LPStr)] string source, uint sourcelen, ref MOJOSHADER_preprocessorDefine defs, uint define_count, MOJOSHADER_includeOpen include_open, MOJOSHADER_includeClose include_close, IntPtr m, IntPtr f, IntPtr d) ; /// Return Type: void ///data: MOJOSHADER_astData* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_freeAstData")] public static extern void MOJOSHADER_freeAstData(ref MOJOSHADER_astData data) ; /// Return Type: MOJOSHADER_compileData* ///srcprofile: char* ///filename: char* ///source: char* ///sourcelen: unsigned int ///defs: MOJOSHADER_preprocessorDefine* ///define_count: unsigned int ///include_open: MOJOSHADER_includeOpen ///include_close: MOJOSHADER_includeClose ///m: MOJOSHADER_malloc ///f: MOJOSHADER_free ///d: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_compile")] public static extern IntPtr MOJOSHADER_compile([In()] [MarshalAs(UnmanagedType.LPStr)] string srcprofile, [In()] [MarshalAs(UnmanagedType.LPStr)] string filename, [In()] [MarshalAs(UnmanagedType.LPStr)] string source, uint sourcelen, ref MOJOSHADER_preprocessorDefine defs, uint define_count, MOJOSHADER_includeOpen include_open, MOJOSHADER_includeClose include_close, IntPtr m, IntPtr f, IntPtr d) ; /// Return Type: void ///data: MOJOSHADER_compileData* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_freeCompileData")] public static extern void MOJOSHADER_freeCompileData(ref MOJOSHADER_compileData data) ; /// Return Type: int ///lookup: MOJOSHADER_glGetProcAddress ///d: void* ///profs: char** ///size: int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glAvailableProfiles")] public static extern int MOJOSHADER_glAvailableProfiles(MOJOSHADER_glGetProcAddress lookup, IntPtr d, ref IntPtr profs, int size) ; /// Return Type: char* ///lookup: MOJOSHADER_glGetProcAddress ///d: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glBestProfile")] public static extern IntPtr MOJOSHADER_glBestProfile(MOJOSHADER_glGetProcAddress lookup, IntPtr d) ; /// Return Type: char* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetError")] public static extern IntPtr MOJOSHADER_glGetError() ; /// Return Type: int ///shader_type: MOJOSHADER_shaderType->Anonymous_96517ad6_cc69_4542_8537_054e63919d54 [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glMaxUniforms")] public static extern int MOJOSHADER_glMaxUniforms(MOJOSHADER_shaderType shader_type) ; /// Return Type: void ///idx: unsigned int ///data: float* ///vec4count: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetVertexShaderUniformF")] public static extern void MOJOSHADER_glSetVertexShaderUniformF(uint idx, ref float data, uint vec4count) ; /// Return Type: void ///idx: unsigned int ///data: float* ///vec4count: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetVertexShaderUniformF")] public static extern void MOJOSHADER_glGetVertexShaderUniformF(uint idx, ref float data, uint vec4count) ; /// Return Type: void ///idx: unsigned int ///data: int* ///ivec4count: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetVertexShaderUniformI")] public static extern void MOJOSHADER_glSetVertexShaderUniformI(uint idx, ref int data, uint ivec4count) ; /// Return Type: void ///idx: unsigned int ///data: int* ///ivec4count: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetVertexShaderUniformI")] public static extern void MOJOSHADER_glGetVertexShaderUniformI(uint idx, ref int data, uint ivec4count) ; /// Return Type: void ///idx: unsigned int ///data: int* ///bcount: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetVertexShaderUniformB")] public static extern void MOJOSHADER_glSetVertexShaderUniformB(uint idx, ref int data, uint bcount) ; /// Return Type: void ///idx: unsigned int ///data: int* ///bcount: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetVertexShaderUniformB")] public static extern void MOJOSHADER_glGetVertexShaderUniformB(uint idx, ref int data, uint bcount) ; /// Return Type: void ///idx: unsigned int ///data: float* ///vec4count: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetPixelShaderUniformF")] public static extern void MOJOSHADER_glSetPixelShaderUniformF(uint idx, ref float data, uint vec4count) ; /// Return Type: void ///idx: unsigned int ///data: float* ///vec4count: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetPixelShaderUniformF")] public static extern void MOJOSHADER_glGetPixelShaderUniformF(uint idx, ref float data, uint vec4count) ; /// Return Type: void ///idx: unsigned int ///data: int* ///ivec4count: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetPixelShaderUniformI")] public static extern void MOJOSHADER_glSetPixelShaderUniformI(uint idx, ref int data, uint ivec4count) ; /// Return Type: void ///idx: unsigned int ///data: int* ///ivec4count: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetPixelShaderUniformI")] public static extern void MOJOSHADER_glGetPixelShaderUniformI(uint idx, ref int data, uint ivec4count) ; /// Return Type: void ///idx: unsigned int ///data: int* ///bcount: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetPixelShaderUniformB")] public static extern void MOJOSHADER_glSetPixelShaderUniformB(uint idx, ref int data, uint bcount) ; /// Return Type: void ///idx: unsigned int ///data: int* ///bcount: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetPixelShaderUniformB")] public static extern void MOJOSHADER_glGetPixelShaderUniformB(uint idx, ref int data, uint bcount) ; /// Return Type: void ///sampler: unsigned int ///mat00: float ///mat01: float ///mat10: float ///mat11: float ///lscale: float ///loffset: float [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetLegacyBumpMapEnv")] public static extern void MOJOSHADER_glSetLegacyBumpMapEnv(uint sampler, float mat00, float mat01, float mat10, float mat11, float lscale, float loffset) ; /// Return Type: void ///usage: MOJOSHADER_usage->Anonymous_9c01433d_7bb5_4c50_bf77_e65cef0661b5 ///index: int ///size: unsigned int ///type: MOJOSHADER_attributeType->Anonymous_2f2591e6_1657_418c_9f54_80f3acd43cbe ///normalized: int ///stride: unsigned int ///ptr: void* [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetVertexAttribute")] public static extern void MOJOSHADER_glSetVertexAttribute(MOJOSHADER_usage usage, int index, uint size, MOJOSHADER_attributeType type, int normalized, uint stride, IntPtr ptr) ; /// Return Type: void ///idx: unsigned int ///data: float* ///vec4n: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetVertexPreshaderUniformF")] public static extern void MOJOSHADER_glSetVertexPreshaderUniformF(uint idx, ref float data, uint vec4n) ; /// Return Type: void ///idx: unsigned int ///data: float* ///vec4n: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetVertexPreshaderUniformF")] public static extern void MOJOSHADER_glGetVertexPreshaderUniformF(uint idx, ref float data, uint vec4n) ; /// Return Type: void ///idx: unsigned int ///data: float* ///vec4n: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glSetPixelPreshaderUniformF")] public static extern void MOJOSHADER_glSetPixelPreshaderUniformF(uint idx, ref float data, uint vec4n) ; /// Return Type: void ///idx: unsigned int ///data: float* ///vec4n: unsigned int [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glGetPixelPreshaderUniformF")] public static extern void MOJOSHADER_glGetPixelPreshaderUniformF(uint idx, ref float data, uint vec4n) ; /// Return Type: void [DllImport(mojoshader_dll, EntryPoint="MOJOSHADER_glProgramReady")] public static extern void MOJOSHADER_glProgramReady() ; } } }