Previous 199869 Revisions Next

r26843 Tuesday 31st December, 2013 at 17:08:33 UTC by hap
re: rgbutil: namcos22 doesn't mind if it's done this way
[src/emu/video]rgbgen.h rgbsse.h rgbutil.c rgbvmx.h

trunk/src/emu/video/rgbgen.h
r26842r26843
284284
285285INLINE void rgbint_blend(rgbint *color1, const rgbint *color2, UINT8 color1scale)
286286{
287   int scale1 = (int)color1scale + 1;
287   int scale1 = (int)color1scale;
288288   int scale2 = 256 - scale1;
289289
290290   color1->r = (color1->r * scale1 + color2->r * scale2) >> 8;
r26842r26843
300300
301301INLINE void rgbaint_blend(rgbaint *color1, const rgbaint *color2, UINT8 color1scale)
302302{
303   int scale1 = (int)color1scale + 1;
303   int scale1 = (int)color1scale;
304304   int scale2 = 256 - scale1;
305305
306306   color1->a = (color1->a * scale1 + color2->a * scale2) >> 8;
trunk/src/emu/video/rgbsse.h
r26842r26843
247247{
248248   __m128  dummy_for_alignment;
249249   INT16   maxbyte[8];
250   INT16   scale_table[256+1][8];
250   INT16   scale_table[256][8];
251251} rgbsse_statics;
252252
253253
r26842r26843
264264INLINE void rgbint_blend(rgbint *color1, const rgbint *color2, UINT8 color1scale)
265265{
266266   *color1 = _mm_unpacklo_epi16(*color1, *color2);
267   *color1 = _mm_madd_epi16(*color1, *(__m128i *)&rgbsse_statics.scale_table[color1scale+1][0]);
267   *color1 = _mm_madd_epi16(*color1, *(__m128i *)&rgbsse_statics.scale_table[color1scale][0]);
268268   *color1 = _mm_srli_epi32(*color1, 8);
269269   *color1 = _mm_packs_epi32(*color1, *color1);
270270}
trunk/src/emu/video/rgbvmx.h
r26842r26843
216216extern const struct _rgbvmx_statics
217217{
218218   rgbaint maxbyte;
219   rgbaint scale_table[256+1];
219   rgbaint scale_table[256];
220220} rgbvmx_statics;
221221
222222
r26842r26843
234234{
235235   vector signed int temp;
236236   *color1 = vec_mergeh(*color1, *color2);
237   temp = vec_msum(*color1, rgbvmx_statics.scale_table[color1scale+1], vec_splat_s32(0));
237   temp = vec_msum(*color1, rgbvmx_statics.scale_table[color1scale], vec_splat_s32(0));
238238   temp = (vector signed int)vec_sr(temp, vec_splat_u32(8));
239239   *color1 = vec_packs(temp, temp);
240240}
r26842r26843
249249{
250250   vector signed int temp;
251251   *color1 = vec_mergeh(*color1, *color2);
252   temp = vec_msum(*color1, rgbvmx_statics.scale_table[color1scale+1], vec_splat_s32(0));
252   temp = vec_msum(*color1, rgbvmx_statics.scale_table[color1scale], vec_splat_s32(0));
253253   temp = (vector signed int)vec_sr(temp, vec_splat_u32(8));
254254   *color1 = vec_packs(temp, temp);
255255}
trunk/src/emu/video/rgbutil.c
r26842r26843
151151      { 248,   8, 248,   8, 248,   8, 248,   8 }, { 249,   7, 249,   7, 249,   7, 249,   7 },
152152      { 250,   6, 250,   6, 250,   6, 250,   6 }, { 251,   5, 251,   5, 251,   5, 251,   5 },
153153      { 252,   4, 252,   4, 252,   4, 252,   4 }, { 253,   3, 253,   3, 253,   3, 253,   3 },
154      { 254,   2, 254,   2, 254,   2, 254,   2 }, { 255,   1, 255,   1, 255,   1, 255,   1 },
155      { 256,   0, 256,   0, 256,   0, 256,   0 }
154      { 254,   2, 254,   2, 254,   2, 254,   2 }, { 255,   1, 255,   1, 255,   1, 255,   1 }
156155   }
157156};
158157#endif // defined(__SSE2__)
r26842r26843
296295      { 248,   8, 248,   8, 248,   8, 248,   8 }, { 249,   7, 249,   7, 249,   7, 249,   7 },
297296      { 250,   6, 250,   6, 250,   6, 250,   6 }, { 251,   5, 251,   5, 251,   5, 251,   5 },
298297      { 252,   4, 252,   4, 252,   4, 252,   4 }, { 253,   3, 253,   3, 253,   3, 253,   3 },
299      { 254,   2, 254,   2, 254,   2, 254,   2 }, { 255,   1, 255,   1, 255,   1, 255,   1 },
300      { 256,   0, 256,   0, 256,   0, 256,   0 }
298      { 254,   2, 254,   2, 254,   2, 254,   2 }, { 255,   1, 255,   1, 255,   1, 255,   1 }
301299   }
302300};
303301#endif // defined(__ALTIVEC__)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team