mojoshader_compiler.c
changeset 1010 bbfed6061a2e
parent 1009 ba0ed22a4bac
child 1011 0758e03a79d9
equal deleted inserted replaced
1009:ba0ed22a4bac 1010:bbfed6061a2e
  2607             require_integer_datatype(ctx, datatype2);
  2607             require_integer_datatype(ctx, datatype2);
  2608             add_type_coercion(ctx, NULL, &ctx->dt_int, &ast->binary.right, datatype2);
  2608             add_type_coercion(ctx, NULL, &ctx->dt_int, &ast->binary.right, datatype2);
  2609 
  2609 
  2610             datatype = reduce_datatype(ctx, datatype);
  2610             datatype = reduce_datatype(ctx, datatype);
  2611             if (datatype->type == MOJOSHADER_AST_DATATYPE_VECTOR)
  2611             if (datatype->type == MOJOSHADER_AST_DATATYPE_VECTOR)
       
  2612             {
       
  2613                 // !!! FIXME: if constant int, fail if not 0 >= value <= vecsize.
  2612                 ast->binary.datatype = datatype->vector.base;
  2614                 ast->binary.datatype = datatype->vector.base;
       
  2615             } // if
  2613             else if (datatype->type == MOJOSHADER_AST_DATATYPE_MATRIX)
  2616             else if (datatype->type == MOJOSHADER_AST_DATATYPE_MATRIX)
       
  2617             {
       
  2618                 // !!! FIXME: if constant int, fail if not 0 >= value <= rowsize (colsize?).
  2614                 ast->binary.datatype = vectype_from_base(ctx, datatype->matrix.base, datatype->matrix.columns);  // !!! FIXME: rows?
  2619                 ast->binary.datatype = vectype_from_base(ctx, datatype->matrix.base, datatype->matrix.columns);  // !!! FIXME: rows?
       
  2620             }
  2615             else
  2621             else
  2616             {
  2622             {
  2617                 require_array_datatype(ctx, datatype);
  2623                 require_array_datatype(ctx, datatype);
  2618                 ast->binary.datatype = array_element_datatype(ctx, datatype);
  2624                 ast->binary.datatype = array_element_datatype(ctx, datatype);
  2619             } // else
  2625             } // else