aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/gfx/gfx_resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/gfx/gfx_resource.cpp')
-rw-r--r--engines/sci/gfx/gfx_resource.cpp191
1 files changed, 0 insertions, 191 deletions
diff --git a/engines/sci/gfx/gfx_resource.cpp b/engines/sci/gfx/gfx_resource.cpp
index 387f6e596b..0335a3ea21 100644
--- a/engines/sci/gfx/gfx_resource.cpp
+++ b/engines/sci/gfx/gfx_resource.cpp
@@ -202,197 +202,6 @@ gfx_pixmap_t *gfxr_endianness_adjust(gfx_pixmap_t *pixmap, gfx_mode_t *mode) {
return pixmap;
}
-} // End of namespace Sci
-
-// Now construct the pixmap scaling functions
-#define EXTRA_BYTE_OFFSET 0
-#define SIZETYPE uint8
-#define FUNCNAME _gfx_xlate_pixmap_unfiltered_1
-#define FUNCNAME_LINEAR _gfx_xlate_pixmap_linear_1
-#define FUNCNAME_TRILINEAR _gfx_xlate_pixmap_trilinear_1
-#define COPY_BYTES 1
-#include "gfx_pixmap_scale.cpp"
-#undef COPY_BYTES
-
-#define SIZETYPE uint16
-#define FUNCNAME _gfx_xlate_pixmap_unfiltered_2
-#define FUNCNAME_LINEAR _gfx_xlate_pixmap_linear_2
-#define FUNCNAME_TRILINEAR _gfx_xlate_pixmap_trilinear_2
-#define COPY_BYTES 2
-#include "gfx_pixmap_scale.cpp"
-#undef COPY_BYTES
-
-#ifdef SCUMM_BIG_ENDIAN
-# undef EXTRA_BYTE_OFFSET
-# define EXTRA_BYTE_OFFSET 1
-#endif // SCUMM_BIG_ENDIAN
-#define SIZETYPE uint32
-#define FUNCNAME _gfx_xlate_pixmap_unfiltered_3
-#define FUNCNAME_LINEAR _gfx_xlate_pixmap_linear_3
-#define FUNCNAME_TRILINEAR _gfx_xlate_pixmap_trilinear_3
-#define COPY_BYTES 3
-#include "gfx_pixmap_scale.cpp"
-#undef COPY_BYTES
-#ifdef SCUMM_BIG_ENDIAN
-# undef EXTRA_BYTE_OFFSET
-# define EXTRA_BYTE_OFFSET 0
-#endif // SCUMM_BIG_ENDIAN
-
-#define SIZETYPE uint32
-#define FUNCNAME _gfx_xlate_pixmap_unfiltered_4
-#define FUNCNAME_LINEAR _gfx_xlate_pixmap_linear_4
-#define FUNCNAME_TRILINEAR _gfx_xlate_pixmap_trilinear_4
-#define COPY_BYTES 4
-#include "gfx_pixmap_scale.cpp"
-#undef COPY_BYTES
-#undef EXTRA_BYTE_OFFSET
-#undef SIZETYPE
-
-namespace Sci {
-
-static void _gfx_xlate_pixmap_unfiltered(gfx_mode_t *mode, gfx_pixmap_t *pxm, int scale) {
- switch (mode->bytespp) {
-
- case 1:
- _gfx_xlate_pixmap_unfiltered_1(mode, pxm, scale);
- break;
-
- case 2:
- _gfx_xlate_pixmap_unfiltered_2(mode, pxm, scale);
- break;
-
- case 3:
- _gfx_xlate_pixmap_unfiltered_3(mode, pxm, scale);
- break;
-
- case 4:
- _gfx_xlate_pixmap_unfiltered_4(mode, pxm, scale);
- break;
-
- default:
- GFXERROR("Invalid mode->bytespp=%d\n", mode->bytespp);
-
- }
-
- if (pxm->flags & GFX_PIXMAP_FLAG_SCALED_INDEX) {
- pxm->width = pxm->index_width;
- pxm->height = pxm->index_height;
- } else {
- pxm->width = pxm->index_width * mode->xfact;
- pxm->height = pxm->index_height * mode->yfact;
- }
-}
-
-static void _gfx_xlate_pixmap_linear(gfx_mode_t *mode, gfx_pixmap_t *pxm, int scale) {
- if (mode->palette || !scale) { // fall back to unfiltered
- _gfx_xlate_pixmap_unfiltered(mode, pxm, scale);
- return;
- }
-
- pxm->width = pxm->index_width * mode->xfact;
- pxm->height = pxm->index_height * mode->yfact;
-
- switch (mode->bytespp) {
-
- case 1:
- _gfx_xlate_pixmap_linear_1(mode, pxm, scale);
- break;
-
- case 2:
- _gfx_xlate_pixmap_linear_2(mode, pxm, scale);
- break;
-
- case 3:
- _gfx_xlate_pixmap_linear_3(mode, pxm, scale);
- break;
-
- case 4:
- _gfx_xlate_pixmap_linear_4(mode, pxm, scale);
- break;
-
- default:
- GFXERROR("Invalid mode->bytespp=%d\n", mode->bytespp);
-
- }
-
-}
-
-static void _gfx_xlate_pixmap_trilinear(gfx_mode_t *mode, gfx_pixmap_t *pxm, int scale) {
- if (mode->palette || !scale) { // fall back to unfiltered
- _gfx_xlate_pixmap_unfiltered(mode, pxm, scale);
- return;
- }
-
- pxm->width = pxm->index_width * mode->xfact;
- pxm->height = pxm->index_height * mode->yfact;
-
- switch (mode->bytespp) {
- case 1:
- _gfx_xlate_pixmap_trilinear_1(mode, pxm, scale);
- break;
-
- case 2:
- _gfx_xlate_pixmap_trilinear_2(mode, pxm, scale);
- break;
-
- case 3:
- _gfx_xlate_pixmap_trilinear_3(mode, pxm, scale);
- break;
-
- case 4:
- _gfx_xlate_pixmap_trilinear_4(mode, pxm, scale);
- break;
-
- default:
- GFXERROR("Invalid mode->bytespp=%d\n", mode->bytespp);
-
- }
-}
-
-void gfx_xlate_pixmap(gfx_pixmap_t *pxm, gfx_mode_t *mode, gfx_xlate_filter_t filter) {
- int was_allocated = 0;
-
- if (mode->palette) {
- if (pxm->palette && pxm->palette != mode->palette)
- pxm->palette->mergeInto(mode->palette);
- }
-
-
- if (!pxm->data) {
- pxm->data = (byte*)sci_malloc(mode->xfact * mode->yfact * pxm->index_width * pxm->index_height * mode->bytespp + 1);
- // +1: Eases coying on BE machines in 24 bpp packed mode
- // Assume that memory, if allocated already, will be sufficient
-
- // Allocate alpha map
- if (!mode->alpha_mask && pxm->colors_nr() < GFX_PIC_COLORS)
- pxm->alpha_map = (byte*)sci_malloc(mode->xfact * mode->yfact * pxm->index_width * pxm->index_height + 1);
- } else
- was_allocated = 1;
-
- switch (filter) {
- case GFX_XLATE_FILTER_NONE:
- _gfx_xlate_pixmap_unfiltered(mode, pxm, !(pxm->flags & GFX_PIXMAP_FLAG_SCALED_INDEX));
- break;
-
- case GFX_XLATE_FILTER_LINEAR:
- _gfx_xlate_pixmap_linear(mode, pxm, !(pxm->flags & GFX_PIXMAP_FLAG_SCALED_INDEX));
- break;
-
- case GFX_XLATE_FILTER_TRILINEAR:
- _gfx_xlate_pixmap_trilinear(mode, pxm, !(pxm->flags & GFX_PIXMAP_FLAG_SCALED_INDEX));
- break;
-
- default:
- GFXERROR("Attempt to filter pixmap %04x in invalid mode #%d\n", pxm->ID, filter);
-
- if (!was_allocated) {
- if (!mode->alpha_mask && pxm->colors_nr() < GFX_PIC_COLORS)
- free(pxm->alpha_map);
- free(pxm->data);
- }
- }
-}
-
void gfxr_free_pic(gfxr_pic_t *pic) {
gfx_free_pixmap(pic->visual_map);
gfx_free_pixmap(pic->priority_map);