Ejemplo n.º 1
0
unsigned
tgsi_build_full_immediate(
   const struct tgsi_full_immediate *full_imm,
   struct tgsi_token *tokens,
   struct tgsi_header *header,
   unsigned maxsize )
{
   unsigned size = 0, i;
   struct tgsi_immediate *immediate;

   if( maxsize <= size )
      return 0;
   immediate = (struct tgsi_immediate *) &tokens[size];
   size++;

   *immediate = tgsi_build_immediate( header );

   for( i = 0; i < full_imm->Immediate.NrTokens - 1; i++ ) {
      struct tgsi_immediate_float32 *if32;

      if( maxsize <= size )
         return  0;
      if32 = (struct tgsi_immediate_float32 *) &tokens[size];
      size++;

      *if32 = tgsi_build_immediate_float32(
         full_imm->u.ImmediateFloat32[i].Float,
         immediate,
         header );
   }

   return size;
}
Ejemplo n.º 2
0
unsigned
tgsi_build_full_immediate(
   const struct tgsi_full_immediate *full_imm,
   struct tgsi_token *tokens,
   struct tgsi_header *header,
   unsigned maxsize )
{
   unsigned size = 0, i;
   struct tgsi_immediate *immediate;

   if( maxsize <= size )
      return 0;
   immediate = (struct tgsi_immediate *) &tokens[size];
   size++;

   *immediate = tgsi_build_immediate( header );

   assert( full_imm->Immediate.NrTokens <= 4 + 1 );

   for( i = 0; i < full_imm->Immediate.NrTokens - 1; i++ ) {
      union tgsi_immediate_data *data;

      if( maxsize <= size )
         return  0;
      data = (union tgsi_immediate_data *) &tokens[size];
      size++;

      *data = tgsi_build_immediate_float32(
         full_imm->u[i].Float,
         immediate,
         header );
   }

   return size;
}