From 283aa0f4005a77697133d3e6e59ea51be703a4a8 Mon Sep 17 00:00:00 2001 From: Myun2 Date: Sun, 24 Apr 2011 11:47:08 +0900 Subject: [PATCH] =?utf8?q?tule=5Ful.hpp:=2032=E3=83=91=E3=83=A9=E3=83=A1?= =?utf8?q?=E3=83=BC=E3=82=BF=E4=B8=80=E9=83=A8=20shader=5Fparam.hpp:=2032?= =?utf8?q?=E3=83=91=E3=83=A9=E3=83=A1=E3=83=BC=E3=82=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../roast/graphics/directx/shader_param.hpp | 42 +++++++- .../include/roast/graphics/directx/tuple_ul.hpp | 106 +++++++++++++++++++-- 2 files changed, 137 insertions(+), 11 deletions(-) diff --git a/roast_ex/include/roast/graphics/directx/shader_param.hpp b/roast_ex/include/roast/graphics/directx/shader_param.hpp index 0891468..2557e0c 100644 --- a/roast_ex/include/roast/graphics/directx/shader_param.hpp +++ b/roast_ex/include/roast/graphics/directx/shader_param.hpp @@ -23,6 +23,10 @@ namespace roast float3, float4, float4x4, + + d3dvector2, + d3dvector3, + d3dvector4, _null }; @@ -33,6 +37,10 @@ namespace roast template<> struct to_type{ typedef float type[2]; }; template<> struct to_type{ typedef float type[3]; }; template<> struct to_type{ typedef float type[4]; }; + + template<> struct to_type{ typedef ::D3DXVECTOR2 type; }; + template<> struct to_type{ typedef ::D3DXVECTOR3 type; }; + template<> struct to_type{ typedef ::D3DXVECTOR4 type; }; } typedef shader_param_type::_ shader_param_type_e; @@ -73,8 +81,38 @@ namespace roast shader_param_type_e T31=shader_param_type::_null, shader_param_type_e T32=shader_param_type::_null> struct shader_param_ : public _internal::tuple< - typename shader_param_type::to_type::type, - typename shader_param_type::to_type::type + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type, + typename shader_param_type::to_type::type > { //typename to_type::type v1; }; diff --git a/roast_ex/include/roast/graphics/directx/tuple_ul.hpp b/roast_ex/include/roast/graphics/directx/tuple_ul.hpp index 7ec6f6d..9e65ef0 100644 --- a/roast_ex/include/roast/graphics/directx/tuple_ul.hpp +++ b/roast_ex/include/roast/graphics/directx/tuple_ul.hpp @@ -36,10 +36,32 @@ namespace roast typename T7 = null_type, typename T8 = null_type, typename T9 = null_type, - typename T10 = null_type> + typename T10 = null_type, + typename T11 = null_type, + typename T12 = null_type, + typename T13 = null_type, + typename T14 = null_type, + typename T15 = null_type, + typename T16 = null_type, + typename T17 = null_type, + typename T18 = null_type, + typename T19 = null_type, + typename T20 = null_type, + typename T21 = null_type, + typename T22 = null_type, + typename T23 = null_type, + typename T24 = null_type, + typename T25 = null_type, + typename T26 = null_type, + typename T27 = null_type, + typename T28 = null_type, + typename T29 = null_type, + typename T30 = null_type, + typename T31 = null_type, + typename T32 = null_type> struct _tuple_ll_to_ul_t { - typedef _tuple_ll_to_ul_t _Next_tuple_ll_to_ul_t; + typedef _tuple_ll_to_ul_t _Next_tuple_ll_to_ul_t; typedef typename _Next_tuple_ll_to_ul_t::_Type _Next; typedef tuple_ul _Type; @@ -551,13 +573,35 @@ namespace roast typename T6=null_type, typename T7=null_type, typename T8=null_type, - typename T9=null_type, - typename T10=null_type> - class tuple : public _tuple_ll_to_ul_t::_Type + typename T9=null_type, + typename T10=null_type, + typename T11=null_type, + typename T12=null_type, + typename T13=null_type, + typename T14=null_type, + typename T15=null_type, + typename T16=null_type, + typename T17=null_type, + typename T18=null_type, + typename T19=null_type, + typename T20=null_type, + typename T21=null_type, + typename T22=null_type, + typename T23=null_type, + typename T24=null_type, + typename T25=null_type, + typename T26=null_type, + typename T27=null_type, + typename T28=null_type, + typename T29=null_type, + typename T30=null_type, + typename T31=null_type, + typename T32=null_type> + class tuple : public _tuple_ll_to_ul_t::_Type { public: //typedef _tuple_ll_to_ul_t _Base, _Ll, _LlType; - typedef typename _tuple_ll_to_ul_t::_Type _Base, _Ll, _LlType; + typedef typename _tuple_ll_to_ul_t::_Type _Base, _Ll, _LlType; public: // 0 paramater Constructer tuple(){} @@ -571,6 +615,7 @@ namespace roast _Base(t1, _tuple_ll_to_ul_t::make(t2) ) {} + // 10 paramater Constructer tuple( T1 t1, T2 t2, @@ -583,10 +628,53 @@ namespace roast T9 t9, T10 t10) : - _Base(t1, _tuple_ll_to_ul_t::make(t2, t3, t4, t5, t6, t7, t8, t9, t10) ) - {} + _Base(t1, _tuple_ll_to_ul_t::make( + t2, t3, t4, t5, t6, t7, t8, t9, t10) ){} + + // 32 paramater Constructer + tuple( + T1 t1, + T2 t2, + T3 t3, + T4 t4, + T5 t5, + T6 t6, + T7 t7, + T8 t8, + T9 t9, + T10 t10, + T11 t11, + T12 t12, + T13 t13, + T14 t14, + T15 t15, + T16 t16, + T17 t17, + T18 t18, + T19 t19, + T20 t20, + T21 t21, + T22 t22, + T23 t23, + T24 t24, + T25 t25, + T26 t26, + T27 t27, + T28 t28, + T29 t29, + T30 t30, + T31 t31, + T32 t32) + : + _Base(t1, _tuple_ll_to_ul_t::make( + t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, + t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32) ){} + + ///////////////////////////////////////////////////////////////////////////////////////////////////////// - tuple operator = ( _tuple_ll_to_ul_t &from ) + tuple operator = ( _tuple_ll_to_ul_t &from ) { this->value = from.value; this->next = from.next; -- 2.11.0