Previous 199869 Revisions Next

r29417 Monday 7th April, 2014 at 11:18:04 UTC by Oliver Stöneberg
avoid more unnecessary UINT32<->rgb_t conversions (nw)
[src/emu]rendersw.inc
[src/emu/video]rgbgen.h

trunk/src/emu/rendersw.inc
r29416r29417
144144         const UINT16 *texbase = reinterpret_cast<const UINT16 *>(texture.base);
145145         texbase += v0 * texture.rowpixels + u0;
146146
147         rgb_t pix00 = texture.palette[texbase[0]];
148         rgb_t pix01 = texture.palette[texbase[u1]];
149         rgb_t pix10 = texture.palette[texbase[v1]];
150         rgb_t pix11 = texture.palette[texbase[u1 + v1]];
147         UINT32 pix00 = texture.palette[texbase[0]];
148         UINT32 pix01 = texture.palette[texbase[u1]];
149         UINT32 pix10 = texture.palette[texbase[v1]];
150         UINT32 pix11 = texture.palette[texbase[u1 + v1]];
151151         return rgb_bilinear_filter(pix00, pix01, pix10, pix11, curu >> 8, curv >> 8);
152152      }
153153      else
r29416r29417
214214         const UINT16 *texbase = reinterpret_cast<const UINT16 *>(texture.base);
215215         texbase += v0 * texture.rowpixels + (u0 & ~1);
216216
217         rgb_t pix00, pix01, pix10, pix11;
217         UINT32 pix00, pix01, pix10, pix11;
218218         if ((curu & 0x10000) == 0)
219219         {
220            rgb_t cbcr = ((texbase[0] & 0xff) << 8) | ((texbase[1] & 0xff) << 16);
220            UINT32 cbcr = ((texbase[0] & 0xff) << 8) | ((texbase[1] & 0xff) << 16);
221221            pix00 = (texbase[0] >> 8) | cbcr;
222222            pix01 = (texbase[u1] >> 8) | cbcr;
223223            cbcr = ((texbase[v1 + 0] & 0xff) << 8) | ((texbase[v1 + 1] & 0xff) << 16);
r29416r29417
226226         }
227227         else
228228         {
229            rgb_t cbcr = ((texbase[0] & 0xff) << 8) | ((texbase[1] & 0xff) << 16);
229            UINT32 cbcr = ((texbase[0] & 0xff) << 8) | ((texbase[1] & 0xff) << 16);
230230            pix00 = (texbase[1] >> 8) | cbcr;
231231            if (u1 != 0)
232232            {
r29416r29417
276276         const UINT32 *texbase = reinterpret_cast<const UINT32 *>(texture.base);
277277         texbase += v0 * texture.rowpixels + u0;
278278
279         rgb_t pix00 = texbase[0];
280         rgb_t pix01 = texbase[u1];
281         rgb_t pix10 = texbase[v1];
282         rgb_t pix11 = texbase[u1 + v1];
279         UINT32 pix00 = texbase[0];
280         UINT32 pix01 = texbase[u1];
281         UINT32 pix10 = texbase[v1];
282         UINT32 pix11 = texbase[u1 + v1];
283283         return rgb_bilinear_filter(pix00, pix01, pix10, pix11, curu >> 8, curv >> 8);
284284      }
285285      else
trunk/src/emu/video/rgbgen.h
r29416r29417
374374    code provided by Michael Herf
375375-------------------------------------------------*/
376376
377INLINE rgb_t rgb_bilinear_filter(UINT32 rgb00, UINT32 rgb01, UINT32 rgb10, UINT32 rgb11, UINT8 u, UINT8 v)
377INLINE UINT32 rgb_bilinear_filter(UINT32 rgb00, UINT32 rgb01, UINT32 rgb10, UINT32 rgb11, UINT8 u, UINT8 v)
378378{
379379   UINT32 ag0, ag1, rb0, rb1;
380380
r29416r29417
396396    code provided by Michael Herf
397397-------------------------------------------------*/
398398
399INLINE rgb_t rgba_bilinear_filter(UINT32 rgb00, UINT32 rgb01, UINT32 rgb10, UINT32 rgb11, UINT8 u, UINT8 v)
399INLINE UINT32 rgba_bilinear_filter(UINT32 rgb00, UINT32 rgb01, UINT32 rgb10, UINT32 rgb11, UINT8 u, UINT8 v)
400400{
401401   UINT32 ag0, ag1, rb0, rb1;
402402

Previous 199869 Revisions Next


© 1997-2024 The MAME Team