From afa3796da8fea3b7acff8bcafb7c413db2da23ae Mon Sep 17 00:00:00 2001 From: "Alex W. Jackson" Date: Mon, 23 Feb 2015 14:51:32 -0500 Subject: render.c: render_containers now always make their own copy of the emulation palette for paletted textures, whether or not there are custom brightness/contrast/gamma settings. Fixes -mt color issues in driftout, raphero, etc. without the additional complexity introduced in fde220f4a7e955343c3b25a562d6884f94c63bdc (which has been reverted) (nw) --- src/emu/render.c | 165 +++++++++++----------------------------------- src/emu/render.h | 43 ++---------- src/emu/rendersw.inc | 22 +++---- src/lib/util/palette.h | 1 - src/osd/sdl/blit13.h | 4 +- src/osd/sdl/draw13.c | 4 +- src/osd/sdl/drawogl.c | 18 ++--- src/osd/windows/drawd3d.c | 14 ++-- 8 files changed, 74 insertions(+), 197 deletions(-) diff --git a/src/emu/render.c b/src/emu/render.c index 1fa8bcb5f16..2eed9176550 100644 --- a/src/emu/render.c +++ b/src/emu/render.c @@ -201,71 +201,6 @@ inline item_layer get_layer_and_blendmode(const layout_view &view, int index, in return item_layer(layer); } -//************************************************************************** -// render_texinfo -//************************************************************************** - -render_texinfo &render_texinfo::operator=(const render_texinfo &src) -{ - free_palette(); - base = src.base; - rowpixels = src.rowpixels; - width = src.width; - height = src.height; - seqid = src.seqid; - osddata = src.osddata; - m_palette = src.m_palette; - if (m_palette != NULL) - { - m_palette->ref_count++; - } - return *this; -} - -render_texinfo::render_texinfo(const render_texinfo &src) -{ - base = src.base; - rowpixels = src.rowpixels; - width = src.width; - height = src.height; - seqid = src.seqid; - osddata = src.osddata; - m_palette = src.m_palette; - if (m_palette != NULL) - { - m_palette->ref_count++; - } -} - -void render_texinfo::set_palette(const dynamic_array *source) -{ - free_palette(); - if (source != NULL) - { - m_palette = global_alloc(render_palette_copy); - m_palette->palette.copyfrom(*source); - m_palette->ref_count = 1; - } - else - { - m_palette = NULL; - } -} - -void render_texinfo::free_palette() -{ - if (m_palette != NULL) - { - m_palette->ref_count--; - if (m_palette->ref_count == 0) - { - global_free(m_palette); - } - } - m_palette = NULL; -} - - //************************************************************************** // RENDER PRIMITIVE //************************************************************************** @@ -277,32 +212,8 @@ void render_texinfo::free_palette() void render_primitive::reset() { - // public state - type = INVALID; - container = NULL; - bounds.x0 = 0; - bounds.y0 = 0; - bounds.x1 = 0; - bounds.y1 = 0; - color.a = 0; - color.r = 0; - color.g = 0; - color.b = 0; - flags = 0; - width = 0.0f; - texture.set_palette(NULL); - texture = render_texinfo(); - texcoords.bl.u = 0.0f; - texcoords.bl.v = 0.0f; - texcoords.br.u = 0.0f; - texcoords.br.v = 0.0f; - texcoords.tl.u = 0.0f; - texcoords.tl.v = 0.0f; - texcoords.tr.u = 0.0f; - texcoords.tr.v = 0.0f; - // do not clear m_next! - // memset(&type, 0, FPTR(&texcoords + 1) - FPTR(&type)); + memset(&type, 0, FPTR(&texcoords + 1) - FPTR(&type)); } @@ -556,8 +467,7 @@ void render_texture::get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &t texinfo.rowpixels = m_bitmap->rowpixels(); texinfo.width = swidth; texinfo.height = sheight; - // will be set later - texinfo.set_palette(NULL); + // palette will be set later texinfo.seqid = ++m_curseq; } else @@ -611,8 +521,7 @@ void render_texture::get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &t texinfo.rowpixels = scaled->bitmap->rowpixels(); texinfo.width = dwidth; texinfo.height = dheight; - // will be set later - texinfo.set_palette(NULL); + // palette will be set later texinfo.seqid = scaled->seqid; } } @@ -623,7 +532,7 @@ void render_texture::get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &t // palette for a texture //------------------------------------------------- -const dynamic_array *render_texture::get_adjusted_palette(render_container &container) +const rgb_t *render_texture::get_adjusted_palette(render_container &container) { // override the palette with our adjusted palette switch (m_format) @@ -633,11 +542,7 @@ const dynamic_array *render_texture::get_adjusted_palette(render_containe assert(m_bitmap->palette() != NULL); - // if no adjustment necessary, return the raw palette - if (!container.has_brightness_contrast_gamma_changes()) - return m_bitmap->palette()->entry_list_adjusted_darray(); - - // otherwise, return our adjusted palette + // return our adjusted palette return container.bcg_lookup_table(m_format, m_bitmap->palette()); case TEXFORMAT_RGB32: @@ -671,8 +576,7 @@ render_container::render_container(render_manager &manager, screen_device *scree m_manager(manager), m_screen(screen), m_overlaybitmap(NULL), - m_overlaytexture(NULL), - m_bcglookup256(0x400) + m_overlaytexture(NULL) { // make sure it is empty empty(); @@ -685,7 +589,7 @@ render_container::render_container(render_manager &manager, screen_device *scree m_user.m_brightness = manager.machine().options().brightness(); m_user.m_contrast = manager.machine().options().contrast(); m_user.m_gamma = manager.machine().options().gamma(); - // can't allocate palette client yet since palette and screen devices aren't started yet + // palette client will be allocated later } recompute_lookups(); @@ -812,7 +716,7 @@ float render_container::apply_brightness_contrast_gamma_fp(float value) // given texture mode //------------------------------------------------- -const dynamic_array *render_container::bcg_lookup_table(int texformat, palette_t *palette) +const rgb_t *render_container::bcg_lookup_table(int texformat, palette_t *palette) { switch (texformat) { @@ -820,18 +724,17 @@ const dynamic_array *render_container::bcg_lookup_table(int texformat, pa case TEXFORMAT_PALETTEA16: if (m_palclient == NULL) // if adjusted palette hasn't been created yet, create it { - assert(palette == m_screen->palette()->palette()); m_palclient.reset(global_alloc(palette_client(*palette))); m_bcglookup.resize(palette->max_index()); recompute_lookups(); } assert (palette == &m_palclient->palette()); - return &m_bcglookup; + return m_bcglookup; case TEXFORMAT_RGB32: case TEXFORMAT_ARGB32: case TEXFORMAT_YUY16: - return &m_bcglookup256; + return m_bcglookup256; default: return NULL; @@ -916,14 +819,19 @@ void render_container::recompute_lookups() const rgb_t *adjusted_palette = palette.entry_list_adjusted(); int colors = palette.max_index(); - for (int i = 0; i < colors; i++) + if (has_brightness_contrast_gamma_changes()) { - rgb_t newval = adjusted_palette[i]; - m_bcglookup[i] = (newval & 0xff000000) | + for (int i = 0; i < colors; i++) + { + rgb_t newval = adjusted_palette[i]; + m_bcglookup[i] = (newval & 0xff000000) | m_bcglookup256[0x200 + newval.r()] | m_bcglookup256[0x100 + newval.g()] | m_bcglookup256[0x000 + newval.b()]; + } } + else + memcpy(&m_bcglookup[0], adjusted_palette, colors * sizeof(rgb_t)); } } @@ -949,24 +857,29 @@ void render_container::update_palette() palette_t &palette = m_palclient->palette(); const rgb_t *adjusted_palette = palette.entry_list_adjusted(); - // loop over chunks of 32 entries, since we can quickly examine 32 at a time - for (UINT32 entry32 = mindirty / 32; entry32 <= maxdirty / 32; entry32++) + if (has_brightness_contrast_gamma_changes()) { - UINT32 dirtybits = dirty[entry32]; - if (dirtybits != 0) - - // this chunk of 32 has dirty entries; fix them up - for (UINT32 entry = 0; entry < 32; entry++) - if (dirtybits & (1 << entry)) - { - UINT32 finalentry = entry32 * 32 + entry; - rgb_t newval = adjusted_palette[finalentry]; - m_bcglookup[finalentry] = (newval & 0xff000000) | + // loop over chunks of 32 entries, since we can quickly examine 32 at a time + for (UINT32 entry32 = mindirty / 32; entry32 <= maxdirty / 32; entry32++) + { + UINT32 dirtybits = dirty[entry32]; + if (dirtybits != 0) + + // this chunk of 32 has dirty entries; fix them up + for (UINT32 entry = 0; entry < 32; entry++) + if (dirtybits & (1 << entry)) + { + UINT32 finalentry = entry32 * 32 + entry; + rgb_t newval = adjusted_palette[finalentry]; + m_bcglookup[finalentry] = (newval & 0xff000000) | m_bcglookup256[0x200 + newval.r()] | m_bcglookup256[0x100 + newval.g()] | m_bcglookup256[0x000 + newval.b()]; - } + } + } } + else + memcpy(&m_bcglookup[mindirty], &adjusted_palette[mindirty], (maxdirty - mindirty + 1) * sizeof(rgb_t)); } } @@ -1821,13 +1734,9 @@ void render_target::add_container_primitives(render_primitive_list &list, const height = MIN(height, m_maxtexheight); curitem->texture()->get_scaled(width, height, prim->texture, list); + // set the palette -#if 1 - const dynamic_array *adjusted_pal = curitem->texture()->get_adjusted_palette(container); - prim->texture.set_palette(adjusted_pal); -#else prim->texture.palette = curitem->texture()->get_adjusted_palette(container); -#endif // determine UV coordinates and apply clipping prim->texcoords = oriented_texcoords[finalorient]; diff --git a/src/emu/render.h b/src/emu/render.h index 1e518d99651..b434e0db86b 100644 --- a/src/emu/render.h +++ b/src/emu/render.h @@ -209,46 +209,15 @@ struct render_quad_texuv // render_texinfo - texture information - - -struct render_palette_copy -{ - int ref_count; - dynamic_array palette; -}; - -class render_texinfo +struct render_texinfo { -public: - render_texinfo() - : base(NULL), rowpixels(0), width(0), height(0), - seqid(0), osddata(0), m_palette(NULL) - {} - - render_texinfo(const render_texinfo &src); - - ~render_texinfo() - { - free_palette(); - } - - render_texinfo &operator=(const render_texinfo &src); - void * base; // base of the data UINT32 rowpixels; // pixels per row UINT32 width; // width of the image UINT32 height; // height of the image UINT32 seqid; // sequence ID UINT64 osddata; // aux data to pass to osd - - const rgb_t * palette() const { return ((m_palette == NULL) ? NULL : &m_palette->palette[0]); } - - void set_palette(const dynamic_array *source); - -private: - void free_palette(); - - render_palette_copy *m_palette; // palette for PALETTE16 textures, LUTs for RGB15/RGB32 + const rgb_t * palette; // palette for PALETTE16 textures, bcg lookup table for RGB32/YUY16 }; @@ -465,7 +434,7 @@ public: private: // internal helpers void get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &texinfo, render_primitive_list &primlist); - const dynamic_array *get_adjusted_palette(render_container &container); + const rgb_t *get_adjusted_palette(render_container &container); static const int MAX_TEXTURE_SCALES = 8; @@ -555,7 +524,7 @@ public: bool has_brightness_contrast_gamma_changes() const { return (m_user.m_brightness != 1.0f || m_user.m_contrast != 1.0f || m_user.m_gamma != 1.0f); } UINT8 apply_brightness_contrast_gamma(UINT8 value); float apply_brightness_contrast_gamma_fp(float value); - const dynamic_array *bcg_lookup_table(int texformat, palette_t *palette = NULL); + const rgb_t *bcg_lookup_table(int texformat, palette_t *palette = NULL); private: // an item describes a high level primitive that is added to a container @@ -606,8 +575,8 @@ private: bitmap_argb32 * m_overlaybitmap; // overlay bitmap render_texture * m_overlaytexture; // overlay texture auto_pointer m_palclient; // client to the screen palette - dynamic_array m_bcglookup; // full palette lookup with bcg adjustments - dynamic_array m_bcglookup256; // lookup table for brightness/contrast/gamma + dynamic_array m_bcglookup; // copy of screen palette with bcg adjustment + rgb_t m_bcglookup256[0x400]; // lookup table for brightness/contrast/gamma }; diff --git a/src/emu/rendersw.inc b/src/emu/rendersw.inc index 7c03680a1cd..aefe09183a1 100644 --- a/src/emu/rendersw.inc +++ b/src/emu/rendersw.inc @@ -130,7 +130,7 @@ private: static inline UINT32 get_texel_palette16(const render_texinfo &texture, INT32 curu, INT32 curv) { - const rgb_t *palbase = texture.palette(); + const rgb_t *palbase = texture.palette; if (_BilinearFilter) { INT32 u0 = curu >> 16; @@ -166,7 +166,7 @@ private: static inline UINT32 get_texel_palette16a(const render_texinfo &texture, INT32 curu, INT32 curv) { - const rgb_t *palbase = texture.palette(); + const rgb_t *palbase = texture.palette; if (_BilinearFilter) { INT32 u0 = curu >> 16; @@ -622,7 +622,7 @@ private: INT32 endx = setup.endx; // ensure all parameters are valid - assert(prim.texture.palette() != NULL); + assert(prim.texture.palette != NULL); // fast case: no coloring, no alpha if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a)) @@ -730,7 +730,7 @@ private: INT32 endx = setup.endx; // ensure all parameters are valid - assert(prim.texture.palette() != NULL); + assert(prim.texture.palette != NULL); // fast case: no coloring, no alpha if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a)) @@ -823,7 +823,7 @@ private: INT32 endx = setup.endx; // ensure all parameters are valid - assert(prim.texture.palette() != NULL); + assert(prim.texture.palette != NULL); // fast case: no coloring, no alpha if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a)) @@ -914,7 +914,7 @@ private: static void draw_quad_yuy16_none(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) { - const rgb_t *palbase = prim.texture.palette(); + const rgb_t *palbase = prim.texture.palette; INT32 dudx = setup.dudx; INT32 dvdx = setup.dvdx; INT32 endx = setup.endx; @@ -1084,7 +1084,7 @@ private: static void draw_quad_rgb32(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) { - const rgb_t *palbase = prim.texture.palette(); + const rgb_t *palbase = prim.texture.palette; INT32 dudx = setup.dudx; INT32 dvdx = setup.dvdx; INT32 endx = setup.endx; @@ -1254,7 +1254,7 @@ private: static void draw_quad_rgb32_add(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) { - const rgb_t *palbase = prim.texture.palette(); + const rgb_t *palbase = prim.texture.palette; INT32 dudx = setup.dudx; INT32 dvdx = setup.dvdx; INT32 endx = setup.endx; @@ -1392,7 +1392,7 @@ private: static void draw_quad_argb32_alpha(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) { - const rgb_t *palbase = prim.texture.palette(); + const rgb_t *palbase = prim.texture.palette; INT32 dudx = setup.dudx; INT32 dvdx = setup.dvdx; INT32 endx = setup.endx; @@ -1538,7 +1538,7 @@ private: static void draw_quad_argb32_multiply(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) { - const rgb_t *palbase = prim.texture.palette(); + const rgb_t *palbase = prim.texture.palette; INT32 dudx = setup.dudx; INT32 dvdx = setup.dvdx; INT32 endx = setup.endx; @@ -1657,7 +1657,7 @@ private: static void draw_quad_argb32_add(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) { - const rgb_t *palbase = prim.texture.palette(); + const rgb_t *palbase = prim.texture.palette; INT32 dudx = setup.dudx; INT32 dvdx = setup.dvdx; INT32 endx = setup.endx; diff --git a/src/lib/util/palette.h b/src/lib/util/palette.h index 23d11416053..939138e613d 100644 --- a/src/lib/util/palette.h +++ b/src/lib/util/palette.h @@ -170,7 +170,6 @@ public: // entry list getters const rgb_t *entry_list_raw() const { return m_entry_color; } - const dynamic_array *entry_list_adjusted_darray() const { return &m_adjusted_color; } const rgb_t *entry_list_adjusted() const { return m_adjusted_color; } const rgb_t *entry_list_adjusted_rgb15() const { return m_adjusted_rgb15; } diff --git a/src/osd/sdl/blit13.h b/src/osd/sdl/blit13.h index 1fe4eb4aeb2..ad935941036 100644 --- a/src/osd/sdl/blit13.h +++ b/src/osd/sdl/blit13.h @@ -139,7 +139,7 @@ struct blit_texcopy : public blit_base blit_texcopy() : blit_base(sizeof(_dest_type) / _len_div, false, false) { } void texop(const texture_info *texture, const render_texinfo *texsource) const { - ATTR_UNUSED const rgb_t *palbase = texsource->palette(); + ATTR_UNUSED const rgb_t *palbase = texsource->palette; int x, y; /* loop over Y */ for (y = 0; y < texsource->height; y++) { @@ -166,7 +166,7 @@ struct blit_texrot : public blit_base blit_texrot() : blit_base(sizeof(_dest_type), true, false) { } void texop(const texture_info *texture, const render_texinfo *texsource) const { - ATTR_UNUSED const rgb_t *palbase = texsource->palette(); + ATTR_UNUSED const rgb_t *palbase = texsource->palette; int x, y; const quad_setup_data *setup = &texture->m_setup; int dudx = setup->dudx; diff --git a/src/osd/sdl/draw13.c b/src/osd/sdl/draw13.c index 25579aa57c3..d75e2ca0b2b 100644 --- a/src/osd/sdl/draw13.c +++ b/src/osd/sdl/draw13.c @@ -874,7 +874,7 @@ texture_info::texture_info(SDL_Renderer *renderer, const render_texinfo &texsour m_format = SDL_TEXFORMAT_ARGB32; break; case TEXFORMAT_RGB32: - m_format = texsource.palette() ? SDL_TEXFORMAT_RGB32_PALETTED : SDL_TEXFORMAT_RGB32; + m_format = texsource.palette ? SDL_TEXFORMAT_RGB32_PALETTED : SDL_TEXFORMAT_RGB32; break; case TEXFORMAT_PALETTE16: m_format = SDL_TEXFORMAT_PALETTE16; @@ -883,7 +883,7 @@ texture_info::texture_info(SDL_Renderer *renderer, const render_texinfo &texsour m_format = SDL_TEXFORMAT_PALETTE16A; break; case TEXFORMAT_YUY16: - m_format = texsource.palette() ? SDL_TEXFORMAT_YUY16_PALETTED : SDL_TEXFORMAT_YUY16; + m_format = texsource.palette ? SDL_TEXFORMAT_YUY16_PALETTED : SDL_TEXFORMAT_YUY16; break; default: diff --git a/src/osd/sdl/drawogl.c b/src/osd/sdl/drawogl.c index 47dacb01aa9..09bcf9479eb 100644 --- a/src/osd/sdl/drawogl.c +++ b/src/osd/sdl/drawogl.c @@ -1816,7 +1816,7 @@ void sdl_info_ogl::texture_compute_type_subroutine(const render_texinfo *texsour if ( texture_copy_properties[texture->format][SDL_TEXFORMAT_SRC_EQUALS_DEST] && !texture_copy_properties[texture->format][SDL_TEXFORMAT_SRC_HAS_PALETTE] && texture->xprescale == 1 && texture->yprescale == 1 && - !texture->borderpix && !texsource->palette() && + !texture->borderpix && !texsource->palette && texsource->rowpixels <= m_texture_max_width ) { texture->nocopy = TRUE; @@ -2263,7 +2263,7 @@ texture_info *sdl_info_ogl::texture_create(const render_texinfo *texsource, UINT texture->format = SDL_TEXFORMAT_ARGB32; break; case TEXFORMAT_RGB32: - if (texsource->palette() != NULL) + if (texsource->palette != NULL) texture->format = SDL_TEXFORMAT_RGB32_PALETTED; else texture->format = SDL_TEXFORMAT_RGB32; @@ -2275,7 +2275,7 @@ texture_info *sdl_info_ogl::texture_create(const render_texinfo *texsource, UINT texture->format = SDL_TEXFORMAT_PALETTE16A; break; case TEXFORMAT_YUY16: - if (texsource->palette() != NULL) + if (texsource->palette != NULL) texture->format = SDL_TEXFORMAT_YUY16_PALETTED; else texture->format = SDL_TEXFORMAT_YUY16; @@ -2717,23 +2717,23 @@ static void texture_set_data(texture_info *texture, const render_texinfo *texsou switch (PRIMFLAG_GET_TEXFORMAT(flags)) { case TEXFORMAT_PALETTE16: - copyline_palette16((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); + copyline_palette16((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); break; case TEXFORMAT_PALETTEA16: - copyline_palettea16((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); + copyline_palettea16((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); break; case TEXFORMAT_RGB32: - copyline_rgb32((UINT32 *)dst, (UINT32 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); + copyline_rgb32((UINT32 *)dst, (UINT32 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); break; case TEXFORMAT_ARGB32: - copyline_argb32((UINT32 *)dst, (UINT32 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); + copyline_argb32((UINT32 *)dst, (UINT32 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); break; case TEXFORMAT_YUY16: - copyline_yuy16_to_argb((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); + copyline_yuy16_to_argb((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); break; default: @@ -2806,7 +2806,7 @@ static int compare_texture_primitive(const texture_info *texture, const render_p texture->texinfo.width == prim->texture.width && texture->texinfo.height == prim->texture.height && texture->texinfo.rowpixels == prim->texture.rowpixels && - /* texture->texinfo.palette() == prim->texture.palette() && */ + /* texture->texinfo.palette == prim->texture.palette && */ ((texture->flags ^ prim->flags) & (PRIMFLAG_BLENDMODE_MASK | PRIMFLAG_TEXFORMAT_MASK)) == 0) return 1; else diff --git a/src/osd/windows/drawd3d.c b/src/osd/windows/drawd3d.c index d1d209a101c..9fe0a65ea17 100644 --- a/src/osd/windows/drawd3d.c +++ b/src/osd/windows/drawd3d.c @@ -2544,28 +2544,28 @@ void texture_info::set_data(const render_texinfo *texsource, UINT32 flags) switch (PRIMFLAG_GET_TEXFORMAT(flags)) { case TEXFORMAT_PALETTE16: - copyline_palette16((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); + copyline_palette16((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); break; case TEXFORMAT_PALETTEA16: - copyline_palettea16((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); + copyline_palettea16((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); break; case TEXFORMAT_RGB32: - copyline_rgb32((UINT32 *)dst, (UINT32 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); + copyline_rgb32((UINT32 *)dst, (UINT32 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); break; case TEXFORMAT_ARGB32: - copyline_argb32((UINT32 *)dst, (UINT32 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); + copyline_argb32((UINT32 *)dst, (UINT32 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); break; case TEXFORMAT_YUY16: if (m_texture_manager->get_yuv_format() == D3DFMT_YUY2) - copyline_yuy16_to_yuy2((UINT16 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); + copyline_yuy16_to_yuy2((UINT16 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); else if (m_texture_manager->get_yuv_format() == D3DFMT_UYVY) - copyline_yuy16_to_uyvy((UINT16 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); + copyline_yuy16_to_uyvy((UINT16 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); else - copyline_yuy16_to_argb((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); + copyline_yuy16_to_argb((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); break; default: -- cgit v1.2.3