include/convert/SSEPlus_convert_REF.h

Go to the documentation of this file.
00001 //
00002 // Copyright (c) 2006-2008 Advanced Micro Devices, Inc. All Rights Reserved.
00003 // This software is subject to the Apache v2.0 License.
00004 //
00005 #ifndef __SSEPLUS_CONVERT_REF_H__
00006 #define __SSEPLUS_CONVERT_REF_H__
00007 
00008 
00015 //a: 9  6 3 0    3  2  1 0               
00016 //b: 10 7 4 1 -> 7  6  5 4       
00017 //c: 11 8 5 2    11 10 9 8
00018 SSP_FORCEINLINE
00019 void ssp_convert_reverse_transpose_REF( __m128i *a, __m128i *b, __m128i *c )
00020 {
00021     ssp_m128 Ai, Ao, Bi, Bo, Ci, Co;
00022     Ai.i = *a;   
00023     Bi.i = *b;   
00024     Ci.i = *c;   
00025 
00026     Ao.u32[ 0 ] = Ai.u32[ 0 ];
00027     Ao.u32[ 1 ] = Bi.u32[ 0 ];
00028     Ao.u32[ 2 ] = Ci.u32[ 0 ];
00029     Ao.u32[ 3 ] = Ai.u32[ 1 ];
00030 
00031     Bo.u32[ 0 ] = Bi.u32[ 1 ];
00032     Bo.u32[ 1 ] = Ci.u32[ 1 ];
00033     Bo.u32[ 2 ] = Ai.u32[ 2 ];
00034     Bo.u32[ 3 ] = Bi.u32[ 2 ];
00035 
00036     Co.u32[ 0 ] = Ci.u32[ 2 ];
00037     Co.u32[ 1 ] = Ai.u32[ 3 ];
00038     Co.u32[ 2 ] = Bi.u32[ 3 ];
00039     Co.u32[ 3 ] = Ci.u32[ 3 ];
00040 
00041     *a = Ao.i;
00042     *b = Bo.i;
00043     *c = Co.i;
00044 }
00045 
00046 
00047 SSP_FORCEINLINE 
00048 void ssp_convert_3c_3p_epi8_REF( __m128i *rgb1, __m128i *rgb2, __m128i *rgb3)
00049 {
00050     ssp_m128 RGB1, RGB2, RGB3;
00051     ssp_m128 R,G,B;
00052 
00053     RGB1.i = *rgb1;
00054     RGB2.i = *rgb2;
00055     RGB3.i = *rgb3;
00056     
00057     R.u8[0 ] = RGB1.u8[0 ];  //RED
00058     R.u8[1 ] = RGB1.u8[3 ];
00059     R.u8[2 ] = RGB1.u8[6 ];
00060     R.u8[3 ] = RGB1.u8[9 ];
00061     R.u8[4 ] = RGB1.u8[12];
00062     R.u8[5 ] = RGB1.u8[15];
00063     R.u8[6 ] = RGB2.u8[2 ];
00064     R.u8[7 ] = RGB2.u8[5 ];
00065     R.u8[8 ] = RGB2.u8[8 ];
00066     R.u8[9 ] = RGB2.u8[11];
00067     R.u8[10] = RGB2.u8[14];
00068     R.u8[11] = RGB3.u8[1 ];
00069     R.u8[12] = RGB3.u8[4 ];
00070     R.u8[13] = RGB3.u8[7 ];
00071     R.u8[14] = RGB3.u8[10];
00072     R.u8[15] = RGB3.u8[13];
00073 
00074     G.u8[0 ] = RGB1.u8[1 ];  //GREEN
00075     G.u8[1 ] = RGB1.u8[4 ];
00076     G.u8[2 ] = RGB1.u8[7 ];
00077     G.u8[3 ] = RGB1.u8[10];
00078     G.u8[4 ] = RGB1.u8[13];
00079     G.u8[5 ] = RGB2.u8[0 ];
00080     G.u8[6 ] = RGB2.u8[3 ];
00081     G.u8[7 ] = RGB2.u8[6 ];
00082     G.u8[8 ] = RGB2.u8[9 ];
00083     G.u8[9 ] = RGB2.u8[12];
00084     G.u8[10] = RGB2.u8[15];
00085     G.u8[11] = RGB3.u8[2 ];
00086     G.u8[12] = RGB3.u8[5 ];
00087     G.u8[13] = RGB3.u8[8 ];
00088     G.u8[14] = RGB3.u8[11];
00089     G.u8[15] = RGB3.u8[14];
00090 
00091     B.u8[0 ] = RGB1.u8[2 ];  //BLUE
00092     B.u8[1 ] = RGB1.u8[5 ];
00093     B.u8[2 ] = RGB1.u8[8 ];
00094     B.u8[3 ] = RGB1.u8[11];
00095     B.u8[4 ] = RGB1.u8[14];
00096     B.u8[5 ] = RGB2.u8[1 ];
00097     B.u8[6 ] = RGB2.u8[4 ];
00098     B.u8[7 ] = RGB2.u8[7 ];
00099     B.u8[8 ] = RGB2.u8[10];
00100     B.u8[9 ] = RGB2.u8[13];
00101     B.u8[10] = RGB3.u8[0 ];
00102     B.u8[11] = RGB3.u8[3 ];
00103     B.u8[12] = RGB3.u8[6 ];
00104     B.u8[13] = RGB3.u8[9 ];
00105     B.u8[14] = RGB3.u8[12];
00106     B.u8[15] = RGB3.u8[15];
00107    
00108 
00109     *rgb1 = R.i;
00110     *rgb2 = G.i;
00111     *rgb3 = B.i;   
00112 }
00113 
00114 
00115 SSP_FORCEINLINE
00116 void ssp_convert_3p_3c_epi8_REF( __m128i *r, __m128i *g, __m128i *b )
00117 {
00118     ssp_m128 R,G,B;
00119     ssp_m128 RGB1, RGB2, RGB3;
00120     
00121     R.i = *r;
00122     G.i = *g;
00123     B.i = *b;
00124 
00125     RGB1.u8[0 ] = R.u8[0 ];  
00126     RGB1.u8[1 ] = G.u8[0 ];
00127     RGB1.u8[2 ] = B.u8[0 ];
00128     RGB1.u8[3 ] = R.u8[1 ];
00129     RGB1.u8[4 ] = G.u8[1 ];
00130     RGB1.u8[5 ] = B.u8[1 ];
00131     RGB1.u8[6 ] = R.u8[2 ];
00132     RGB1.u8[7 ] = G.u8[2 ];
00133     RGB1.u8[8 ] = B.u8[2 ];
00134     RGB1.u8[9 ] = R.u8[3 ];
00135     RGB1.u8[10] = G.u8[3 ];
00136     RGB1.u8[11] = B.u8[3 ];
00137     RGB1.u8[12] = R.u8[4 ];
00138     RGB1.u8[13] = G.u8[4 ];
00139     RGB1.u8[14] = B.u8[4 ];
00140     RGB1.u8[15] = R.u8[5 ];
00141 
00142     RGB2.u8[0 ] = G.u8[5 ];  
00143     RGB2.u8[1 ] = B.u8[5 ];
00144     RGB2.u8[2 ] = R.u8[6 ];
00145     RGB2.u8[3 ] = G.u8[6 ];
00146     RGB2.u8[4 ] = B.u8[6 ];
00147     RGB2.u8[5 ] = R.u8[7 ];
00148     RGB2.u8[6 ] = G.u8[7 ];
00149     RGB2.u8[7 ] = B.u8[7 ];
00150     RGB2.u8[8 ] = R.u8[8 ];
00151     RGB2.u8[9 ] = G.u8[8 ];
00152     RGB2.u8[10] = B.u8[8 ];
00153     RGB2.u8[11] = R.u8[9 ];
00154     RGB2.u8[12] = G.u8[9 ];
00155     RGB2.u8[13] = B.u8[9 ];
00156     RGB2.u8[14] = R.u8[10];
00157     RGB2.u8[15] = G.u8[10];
00158 
00159     RGB3.u8[0 ] = B.u8[10];  
00160     RGB3.u8[1 ] = R.u8[11];
00161     RGB3.u8[2 ] = G.u8[11];
00162     RGB3.u8[3 ] = B.u8[11];
00163     RGB3.u8[4 ] = R.u8[12];
00164     RGB3.u8[5 ] = G.u8[12];
00165     RGB3.u8[6 ] = B.u8[12];
00166     RGB3.u8[7 ] = R.u8[13];
00167     RGB3.u8[8 ] = G.u8[13];
00168     RGB3.u8[9 ] = B.u8[13];
00169     RGB3.u8[10] = R.u8[14];
00170     RGB3.u8[11] = G.u8[14];
00171     RGB3.u8[12] = B.u8[14];
00172     RGB3.u8[13] = R.u8[15];
00173     RGB3.u8[14] = G.u8[15];
00174     RGB3.u8[15] = B.u8[15];
00175 
00176     *r = RGB1.i;
00177     *g = RGB2.i;
00178     *b = RGB3.i;
00179 }
00180 
00181 SSP_FORCEINLINE 
00182 void ssp_convert_3c_3p_epi16_REF(__m128i *rgb1,__m128i *rgb2,__m128i *rgb3)
00183 {
00184     ssp_m128 trgb1, trgb2, trgb3;
00185     ssp_m128 r, g, b;
00186     trgb1.i = *rgb1;
00187     trgb2.i = *rgb2;
00188     trgb3.i = *rgb3;
00189 
00190     r.s16[0] = trgb1.s16[0];
00191     r.s16[1] = trgb1.s16[3];
00192     r.s16[2] = trgb1.s16[6];
00193     r.s16[3] = trgb2.s16[1];
00194     r.s16[4] = trgb2.s16[4];
00195     r.s16[5] = trgb2.s16[7];
00196     r.s16[6] = trgb3.s16[2];
00197     r.s16[7] = trgb3.s16[5];
00198 
00199     g.s16[0] = trgb1.s16[1];
00200     g.s16[1] = trgb1.s16[4];
00201     g.s16[2] = trgb1.s16[7];
00202     g.s16[3] = trgb2.s16[2];
00203     g.s16[4] = trgb2.s16[5];
00204     g.s16[5] = trgb3.s16[0];
00205     g.s16[6] = trgb3.s16[3];
00206     g.s16[7] = trgb3.s16[6];
00207 
00208     b.s16[0] = trgb1.s16[2];
00209     b.s16[1] = trgb1.s16[5];
00210     b.s16[2] = trgb2.s16[0];
00211     b.s16[3] = trgb2.s16[3];
00212     b.s16[4] = trgb2.s16[6];
00213     b.s16[5] = trgb3.s16[1];
00214     b.s16[6] = trgb3.s16[4];
00215     b.s16[7] = trgb3.s16[7];
00216 
00217         *rgb1 = r.i;
00218         *rgb2 = g.i;
00219         *rgb3 = b.i;
00220 }
00221 
00222 SSP_FORCEINLINE 
00223 void ssp_convert_3p_3c_epi16_REF(__m128i *r,__m128i *g,__m128i *b)
00224 {
00225     ssp_m128 rgb1, rgb2, rgb3;
00226     ssp_m128 tr, tg, tb;
00227     tr.i = *r;
00228     tg.i = *g;
00229     tb.i = *b;
00230 
00231     rgb1.s16[0] = tr.s16[0];
00232     rgb1.s16[3] = tr.s16[1];
00233     rgb1.s16[6] = tr.s16[2];
00234     rgb2.s16[1] = tr.s16[3];
00235     rgb2.s16[4] = tr.s16[4];
00236     rgb2.s16[7] = tr.s16[5];
00237     rgb3.s16[2] = tr.s16[6];
00238     rgb3.s16[5] = tr.s16[7];
00239 
00240     rgb1.s16[1] = tg.s16[0];
00241     rgb1.s16[4] = tg.s16[1];
00242     rgb1.s16[7] = tg.s16[2];
00243     rgb2.s16[2] = tg.s16[3];
00244     rgb2.s16[5] = tg.s16[4];
00245     rgb3.s16[0] = tg.s16[5];
00246     rgb3.s16[3] = tg.s16[6];
00247     rgb3.s16[6] = tg.s16[7];
00248 
00249     rgb1.s16[2] = tb.s16[0];
00250     rgb1.s16[5] = tb.s16[1];
00251     rgb2.s16[0] = tb.s16[2];
00252     rgb2.s16[3] = tb.s16[3];
00253     rgb2.s16[6] = tb.s16[4];
00254     rgb3.s16[1] = tb.s16[5];
00255     rgb3.s16[4] = tb.s16[6];
00256     rgb3.s16[7] = tb.s16[7];
00257 
00258         *r = rgb1.i;
00259         *g = rgb2.i;
00260         *b = rgb3.i;
00261 }
00262 
00263 SSP_FORCEINLINE 
00264 void ssp_convert_3c_3p_epi32_REF(__m128i *rgb1,__m128i *rgb2,__m128i *rgb3)
00265 {
00266     ssp_m128 trgb1, trgb2, trgb3;
00267     ssp_m128 r, g, b;
00268         trgb1.i = *rgb1;
00269         trgb2.i = *rgb2;
00270         trgb3.i = *rgb3;
00271 
00272     r.s32[0] = trgb1.s32[0];
00273     r.s32[1] = trgb1.s32[3];
00274     r.s32[2] = trgb2.s32[2];
00275     r.s32[3] = trgb3.s32[1];
00276 
00277     g.s32[0] = trgb1.s32[1];
00278     g.s32[1] = trgb2.s32[0];
00279     g.s32[2] = trgb2.s32[3];
00280     g.s32[3] = trgb3.s32[2];
00281 
00282     b.s32[0] = trgb1.s32[2];
00283     b.s32[1] = trgb2.s32[1];
00284     b.s32[2] = trgb3.s32[0];
00285     b.s32[3] = trgb3.s32[3];
00286 
00287         *rgb1 = r.i;
00288         *rgb2 = g.i;
00289         *rgb3 = b.i;
00290 }
00291 
00292 SSP_FORCEINLINE 
00293 void ssp_convert_3p_3c_epi32_REF(__m128i *r,__m128i *g,__m128i *b)
00294 {
00295     ssp_m128 tr, tg, tb;
00296     ssp_m128 rgb1, rgb2, rgb3;
00297 
00298         tr.i = *r;
00299         tg.i = *g;
00300         tb.i = *b;
00301 
00302     rgb1.s32[0] = tr.s32[0];
00303     rgb1.s32[3] = tr.s32[1];
00304     rgb2.s32[2] = tr.s32[2];
00305     rgb3.s32[1] = tr.s32[3];
00306 
00307     rgb1.s32[1] = tg.s32[0];
00308     rgb2.s32[0] = tg.s32[1];
00309     rgb2.s32[3] = tg.s32[2];
00310     rgb3.s32[2] = tg.s32[3];
00311 
00312     rgb1.s32[2] = tb.s32[0];
00313     rgb2.s32[1] = tb.s32[1];
00314     rgb3.s32[0] = tb.s32[2];
00315     rgb3.s32[3] = tb.s32[3];
00316 
00317         *r = rgb1.i;
00318         *g = rgb2.i;
00319         *b = rgb3.i;
00320 }
00321 
00322 /* convert 4-channel RGBA to 4-planar format */
00323 SSP_FORCEINLINE 
00324 void ssp_convert_4c_4p_epi8_REF( __m128i *rgba1, __m128i *rgba2, __m128i *rgba3, __m128i *rgba4 )
00325 {
00326         int n;
00327         ssp_m128 trgba1, trgba2, trgba3, trgba4;
00328         ssp_m128 r, g, b, a;
00329 
00330         trgba1.i = *rgba1;
00331         trgba2.i = *rgba2;
00332         trgba3.i = *rgba3;
00333         trgba4.i = *rgba4;
00334 
00335     for( n = 0; n < 4; n++ )
00336     {
00337         r.s8[0+n] = trgba1.s8[4*n];
00338         r.s8[4+n] = trgba2.s8[4*n];
00339         r.s8[8+n] = trgba3.s8[4*n];
00340         r.s8[12+n] = trgba4.s8[4*n];
00341 
00342         g.s8[0+n] = trgba1.s8[4*n+1];
00343         g.s8[4+n] = trgba2.s8[4*n+1];
00344         g.s8[8+n] = trgba3.s8[4*n+1];
00345         g.s8[12+n] = trgba4.s8[4*n+1];
00346 
00347         b.s8[0+n] = trgba1.s8[4*n+2];
00348         b.s8[4+n] = trgba2.s8[4*n+2];
00349         b.s8[8+n] = trgba3.s8[4*n+2];
00350         b.s8[12+n] = trgba4.s8[4*n+2];
00351 
00352         a.s8[0+n] = trgba1.s8[4*n+3];
00353         a.s8[4+n] = trgba2.s8[4*n+3];
00354         a.s8[8+n] = trgba3.s8[4*n+3];
00355         a.s8[12+n] = trgba4.s8[4*n+3];
00356     }
00357 
00358         *rgba1 = r.i;
00359         *rgba2 = g.i;
00360         *rgba3 = b.i;
00361         *rgba4 = a.i;
00362 }
00363 
00364 /* convert 4-planar RGBA to 4-channel format */
00365 SSP_FORCEINLINE 
00366 void ssp_convert_4p_4c_epi8_REF(__m128i *r,__m128i *g,__m128i *b,__m128i *a)
00367 {
00368         int n;
00369     ssp_m128 tr, tg, tb, ta;
00370     ssp_m128 rgba1, rgba2, rgba3, rgba4;
00371         tr.i = *r;
00372         tg.i = *g;
00373         tb.i = *b;
00374         ta.i = *a;
00375 
00376     for( n = 0; n < 4; n++ )
00377     {
00378         rgba1.s8[4*n] = tr.s8[0+n];
00379         rgba2.s8[4*n] = tr.s8[4+n];
00380         rgba3.s8[4*n] = tr.s8[8+n];
00381         rgba4.s8[4*n] = tr.s8[12+n];
00382 
00383         rgba1.s8[4*n+1] = tg.s8[0+n];
00384         rgba2.s8[4*n+1] = tg.s8[4+n];
00385         rgba3.s8[4*n+1] = tg.s8[8+n];
00386         rgba4.s8[4*n+1] = tg.s8[12+n];
00387 
00388         rgba1.s8[4*n+2] = tb.s8[0+n];
00389         rgba2.s8[4*n+2] = tb.s8[4+n];
00390         rgba3.s8[4*n+2] = tb.s8[8+n];
00391         rgba4.s8[4*n+2] = tb.s8[12+n];
00392 
00393         rgba1.s8[4*n+3] = ta.s8[0+n];
00394         rgba2.s8[4*n+3] = ta.s8[4+n];
00395         rgba3.s8[4*n+3] = ta.s8[8+n];
00396         rgba4.s8[4*n+3] = ta.s8[12+n];
00397     }
00398 
00399         *r = rgba1.i;
00400         *g = rgba2.i;
00401         *b = rgba3.i;
00402         *a = rgba4.i;
00403 }
00404 
00405 SSP_FORCEINLINE 
00406 void ssp_convert_4c_4p_epi16_REF(__m128i *rgba1,__m128i *rgba2,__m128i *rgba3,__m128i *rgba4)
00407 {
00408         int n;
00409         ssp_m128 trgba1, trgba2, trgba3, trgba4;
00410         ssp_m128 r, g, b, a;
00411 
00412         trgba1.i = *rgba1;
00413         trgba2.i = *rgba2;
00414         trgba3.i = *rgba3;
00415         trgba4.i = *rgba4;
00416 
00417     for( n = 0; n < 2; n++ )
00418     {
00419         r.s16[0+n] = trgba1.s16[4*n];
00420         r.s16[2+n] = trgba2.s16[4*n];
00421         r.s16[4+n] = trgba3.s16[4*n];
00422         r.s16[6+n] = trgba4.s16[4*n];
00423 
00424         g.s16[0+n] = trgba1.s16[4*n+1];
00425         g.s16[2+n] = trgba2.s16[4*n+1];
00426         g.s16[4+n] = trgba3.s16[4*n+1];
00427         g.s16[6+n] = trgba4.s16[4*n+1];
00428 
00429         b.s16[0+n] = trgba1.s16[4*n+2];
00430         b.s16[2+n] = trgba2.s16[4*n+2];
00431         b.s16[4+n] = trgba3.s16[4*n+2];
00432         b.s16[6+n] = trgba4.s16[4*n+2];
00433 
00434         a.s16[0+n] = trgba1.s16[4*n+3];
00435         a.s16[2+n] = trgba2.s16[4*n+3];
00436         a.s16[4+n] = trgba3.s16[4*n+3];
00437         a.s16[6+n] = trgba4.s16[4*n+3];
00438     }
00439 
00440         *rgba1 = r.i;
00441         *rgba2 = g.i;
00442         *rgba3 = b.i;
00443         *rgba4 = a.i;
00444 }
00445 
00446 SSP_FORCEINLINE 
00447 void ssp_convert_4p_4c_epi16_REF(__m128i *r,__m128i *g,__m128i *b,__m128i *a)
00448 {
00449         int n;
00450     ssp_m128 tr, tg, tb, ta;
00451     ssp_m128 rgba1, rgba2, rgba3, rgba4;
00452         tr.i = *r;
00453         tg.i = *g;
00454         tb.i = *b;
00455         ta.i = *a;
00456 
00457     for( n = 0; n < 2; n++ )
00458     {
00459         rgba1.s16[4*n] = tr.s16[0+n];
00460         rgba2.s16[4*n] = tr.s16[2+n];
00461         rgba3.s16[4*n] = tr.s16[4+n];
00462         rgba4.s16[4*n] = tr.s16[6+n];
00463 
00464         rgba1.s16[4*n+1] = tg.s16[0+n];
00465         rgba2.s16[4*n+1] = tg.s16[2+n];
00466         rgba3.s16[4*n+1] = tg.s16[4+n];
00467         rgba4.s16[4*n+1] = tg.s16[6+n];
00468 
00469         rgba1.s16[4*n+2] = tb.s16[0+n];
00470         rgba2.s16[4*n+2] = tb.s16[2+n];
00471         rgba3.s16[4*n+2] = tb.s16[4+n];
00472         rgba4.s16[4*n+2] = tb.s16[6+n];
00473 
00474         rgba1.s16[4*n+3] = ta.s16[0+n];
00475         rgba2.s16[4*n+3] = ta.s16[2+n];
00476         rgba3.s16[4*n+3] = ta.s16[4+n];
00477         rgba4.s16[4*n+3] = ta.s16[6+n];
00478     }
00479 
00480         *r = rgba1.i;
00481         *g = rgba2.i;
00482         *b = rgba3.i;
00483         *a = rgba4.i;
00484 }
00485 
00486 SSP_FORCEINLINE 
00487 void ssp_convert_4c_4p_epi32_REF(__m128i *rgba1,__m128i *rgba2,__m128i *rgba3, __m128i *rgba4)
00488 {
00489         ssp_m128 trgba1, trgba2, trgba3, trgba4;
00490         ssp_m128 r, g, b, a;
00491 
00492         trgba1.i = *rgba1;
00493         trgba2.i = *rgba2;
00494         trgba3.i = *rgba3;
00495         trgba4.i = *rgba4;
00496 
00497     r.s32[0] = trgba1.s32[0];
00498     r.s32[1] = trgba2.s32[0];
00499     r.s32[2] = trgba3.s32[0];
00500     r.s32[3] = trgba4.s32[0];
00501 
00502     g.s32[0] = trgba1.s32[1];
00503     g.s32[1] = trgba2.s32[1];
00504     g.s32[2] = trgba3.s32[1];
00505     g.s32[3] = trgba4.s32[1];
00506 
00507     b.s32[0] = trgba1.s32[2];
00508     b.s32[1] = trgba2.s32[2];
00509     b.s32[2] = trgba3.s32[2];
00510     b.s32[3] = trgba4.s32[2];
00511 
00512     a.s32[0] = trgba1.s32[3];
00513     a.s32[1] = trgba2.s32[3];
00514     a.s32[2] = trgba3.s32[3];
00515     a.s32[3] = trgba4.s32[3];
00516 
00517         *rgba1 = r.i;
00518         *rgba2 = g.i;
00519         *rgba3 = b.i;
00520         *rgba4 = a.i;
00521 }
00522 
00523 SSP_FORCEINLINE 
00524 void ssp_convert_4p_4c_epi32_REF(__m128i *r,__m128i *g,__m128i *b,__m128i *a)
00525 {
00526     ssp_m128 tr, tg, tb, ta;
00527     ssp_m128 rgba1, rgba2, rgba3, rgba4;
00528         tr.i = *r;
00529         tg.i = *g;
00530         tb.i = *b;
00531         ta.i = *a;
00532 
00533     rgba1.s32[0] = tr.s32[0];
00534     rgba2.s32[0] = tr.s32[1];
00535     rgba3.s32[0] = tr.s32[2];
00536     rgba4.s32[0] = tr.s32[3];
00537 
00538     rgba1.s32[1] = tg.s32[0];
00539     rgba2.s32[1] = tg.s32[1];
00540     rgba3.s32[1] = tg.s32[2];
00541     rgba4.s32[1] = tg.s32[3];
00542 
00543     rgba1.s32[2] = tb.s32[0];
00544     rgba2.s32[2] = tb.s32[1];
00545     rgba3.s32[2] = tb.s32[2];
00546     rgba4.s32[2] = tb.s32[3];
00547 
00548     rgba1.s32[3] = ta.s32[0];
00549     rgba2.s32[3] = ta.s32[1];
00550     rgba3.s32[3] = ta.s32[2];
00551     rgba4.s32[3] = ta.s32[3];
00552 
00553         *r = rgba1.i;
00554         *g = rgba2.i;
00555         *b = rgba3.i;
00556         *a = rgba4.i;
00557 }
00558 
00565 #endif // __SSEPLUS_CONVERT_REF_H__

Generated on Wed May 21 13:44:11 2008 for "SSEPlus" by  doxygen 1.5.4