public static DXPreshader CreatePreshader(MojoShader.MOJOSHADER_preshader preshaderData) { var symbols = DXHelper.UnmarshalArray<MojoShader.MOJOSHADER_symbol>( preshaderData.symbols, (int)preshaderData.symbol_count); var instructions = DXHelper.UnmarshalArray<MojoShader.MOJOSHADER_preshaderInstruction>( preshaderData.instructions, (int)preshaderData.instruction_count); var literals = DXHelper.UnmarshalArray<double>( preshaderData.literals, (int)preshaderData.literal_count); var preshader = new DXPreshader(); preshader._temp_count = (int)preshaderData.temp_count; preshader._symbols = symbols; preshader._instructions = instructions; preshader._literals = literals; var input_count = 0; foreach (var symbol in symbols) input_count = Math.Max(input_count, (int)(symbol.register_index + symbol.register_count)); preshader._input_count = input_count; return preshader; }
public static DXPreshader CreatePreshader(MojoShader.MOJOSHADER_preshader preshaderData) { var symbols = DXHelper.UnmarshalArray <MojoShader.MOJOSHADER_symbol>( preshaderData.symbols, (int)preshaderData.symbol_count); var instructions = DXHelper.UnmarshalArray <MojoShader.MOJOSHADER_preshaderInstruction>( preshaderData.instructions, (int)preshaderData.instruction_count); var literals = DXHelper.UnmarshalArray <double>( preshaderData.literals, (int)preshaderData.literal_count); var preshader = new DXPreshader(); preshader._temp_count = (int)preshaderData.temp_count; preshader._symbols = symbols; preshader._instructions = instructions; preshader._literals = literals; var input_count = 0; foreach (var symbol in symbols) { input_count = Math.Max(input_count, (int)(symbol.register_index + symbol.register_count)); } preshader._input_count = input_count; return(preshader); }
public DXExpression(string indexName, byte[] expressionCode) { _indexName = indexName; _preshader = DXPreshader.CreatePreshader(expressionCode); }
public DXExpression(string indexName, byte[] expressionCode) { _indexName = indexName; _preshader = DXPreshader.CreatePreshader(expressionCode); }