Browse Source

Add class-private handles to matrix types in glsl_type

tags/mesa-7.9-rc1
Ian Romanick 16 years ago
parent
commit
9ff8f3777e
2 changed files with 31 additions and 5 deletions
  1. 15
    5
      builtin_types.sh
  2. 16
    0
      glsl_types.h

+ 15
- 5
builtin_types.sh View File

gen_integral_type "vec$i" "GLSL_TYPE_FLOAT" $i 0 gen_integral_type "vec$i" "GLSL_TYPE_FLOAT" $i 0
done done


matX_index=$index
for i in 2 3 4; do for i in 2 3 4; do
gen_integral_type "mat$i" "GLSL_TYPE_FLOAT" $i $i gen_integral_type "mat$i" "GLSL_TYPE_FLOAT" $i $i
done done
echo 'const struct glsl_type *const glsl_bool_type = & builtin_core_types['$bool_index'];' echo 'const struct glsl_type *const glsl_bool_type = & builtin_core_types['$bool_index'];'
echo 'const struct glsl_type *const glsl_int_type = & builtin_core_types['$int_index'];' echo 'const struct glsl_type *const glsl_int_type = & builtin_core_types['$int_index'];'
echo 'const struct glsl_type *const glsl_float_type = & builtin_core_types['$float_index'];' echo 'const struct glsl_type *const glsl_float_type = & builtin_core_types['$float_index'];'
echo 'const glsl_type *const glsl_type::mat2_type = & builtin_core_types['$(($matX_index + 0))'];'
echo 'const glsl_type *const glsl_type::mat3_type = & builtin_core_types['$(($matX_index + 1))'];'
echo 'const glsl_type *const glsl_type::mat4_type = & builtin_core_types['$(($matX_index + 2))'];'
echo '/*@}*/' echo '/*@}*/'


echo echo
echo ' */' echo ' */'
echo '/*@{*/' echo '/*@{*/'
gen_header "120" gen_header "120"
for i in 2 3 4; do
for j in 2 3 4; do
if [ $i -ne $j ]; then
gen_integral_type "mat${i}x${j}" "GLSL_TYPE_FLOAT" $i $j
for c in 2 3 4; do
for r in 2 3 4; do
if [ $c -ne $r ]; then
gen_integral_type "mat${c}x${r}" "GLSL_TYPE_FLOAT" $c $r
fi fi
done done
done done
gen_footer gen_footer
echo '/*@}*/'


echo 'const glsl_type *const glsl_type::mat2x3_type = & builtin_120_types[0];'
echo 'const glsl_type *const glsl_type::mat2x4_type = & builtin_120_types[1];'
echo 'const glsl_type *const glsl_type::mat3x2_type = & builtin_120_types[2];'
echo 'const glsl_type *const glsl_type::mat3x4_type = & builtin_120_types[3];'
echo 'const glsl_type *const glsl_type::mat4x2_type = & builtin_120_types[4];'
echo 'const glsl_type *const glsl_type::mat4x3_type = & builtin_120_types[5];'
echo '/*@}*/'
echo echo
echo '/** \name Types added in GLSL 1.30' echo '/** \name Types added in GLSL 1.30'
echo ' */' echo ' */'

+ 16
- 0
glsl_types.h View File

{ {
return base_type == GLSL_TYPE_ERROR; return base_type == GLSL_TYPE_ERROR;
} }

private:
/**
* \name Pointers to various type singletons
*/
/*@{*/
static const glsl_type *const mat2_type;
static const glsl_type *const mat2x3_type;
static const glsl_type *const mat2x4_type;
static const glsl_type *const mat3x2_type;
static const glsl_type *const mat3_type;
static const glsl_type *const mat3x4_type;
static const glsl_type *const mat4x2_type;
static const glsl_type *const mat4x3_type;
static const glsl_type *const mat4_type;
/*@}*/
}; };


struct glsl_struct_field { struct glsl_struct_field {

Loading…
Cancel
Save