aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/gfx/antialias.cpp163
-rw-r--r--engines/sci/gfx/gfx_options.h2
-rw-r--r--engines/sci/gfx/gfx_tools.h13
-rw-r--r--engines/sci/gfx/resmgr.cpp6
-rw-r--r--engines/sci/module.mk1
-rw-r--r--engines/sci/sci.cpp1
6 files changed, 0 insertions, 186 deletions
diff --git a/engines/sci/gfx/antialias.cpp b/engines/sci/gfx/antialias.cpp
deleted file mode 100644
index fac1aa3a5e..0000000000
--- a/engines/sci/gfx/antialias.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/** Antialiasing code **/
-
-#include "sci/gfx/gfx_system.h"
-#include "sci/gfx/gfx_tools.h"
-
-namespace Sci {
-
-static void antialiase_simple(gfx_pixmap_t *pixmap, int mask[], int shift_const, gfx_mode_t *mode) {
- int x, y, c;
- int bytespp = mode->bytespp;
- int line_size = bytespp * pixmap->xl;
- char *lastline[2];
- char *lastline_p = NULL;
- char *data_p = (char *)pixmap->data;
-
- lastline[0] = (char *)sci_malloc(line_size);
- lastline[1] = (char *)sci_malloc(line_size);
-
- for (y = 0; y < pixmap->yl; y++) {
- int visimode = (y > 0 && y + 1 < pixmap->yl) ? 1 : 0;
- unsigned long last_pixel = 0;
-
- memcpy(lastline[y & 1], data_p, line_size);
- lastline_p = lastline[(y & 1)^1];
-
- for (x = 0; x < pixmap->xl; x++) {
- unsigned long result = 0;
-
- if (x == 1)
- visimode++;
- else if (x + 1 == pixmap->xl)
- visimode--;
-
- for (c = 0; c < 3; c++) {
- unsigned long accum = 0;
- unsigned long reader = 0;
- int y_mode;
-
- /* Yes, bad compilers will read three times as often as neccessary.
- ** This optimization is straightforward to detect (common subexpression
- ** elemination), so I prefer to write the stuff semi-legibly...
- */
- for (y_mode = 0; y_mode < 2; y_mode++)
- if ((y_mode == 0 && y > 0)
- || (y_mode == 1 && y + 1 < pixmap->yl)) {
-
- char *src = (y_mode) ? data_p + line_size : lastline_p;
-
- if (x > 0) {
- memcpy(&reader, src - bytespp, bytespp);
- accum += ((reader >> shift_const) & mask[c]) << 0;
- }
-
- memcpy(&reader, src, bytespp);
- accum += ((reader >> shift_const) & mask[c]) << 1;
-
- if (x + 1 < pixmap->xl) {
- memcpy(&reader, src + bytespp, bytespp);
- accum += ((reader >> shift_const) & mask[c]) << 0;
- }
- }
-
- if (x > 0)
- accum += ((last_pixel >> shift_const) & mask[c]) << 1;
-
- memcpy(&reader, data_p, bytespp);
- if (c == 2)
- last_pixel = reader;
- accum += ((reader >> shift_const) & mask[c]) << 2;
-
- if (x + 1 < pixmap->xl) {
- memcpy(&reader, data_p + bytespp, bytespp);
- accum += ((reader >> shift_const) & mask[c]) << 1;
- }
-
- switch (visimode) {
-
- case 0:
- accum /= 9; // Only happens twelve times
- break;
-
- case 1:
- accum = (accum >> 6) + (accum >> 4); // 15/16 intensity
- break;
-
- case 2:
- accum >>= 4;
- break;
-
- default:
- accum = (c == 0) ? 0xffffffff : 0; // Error: mark as red
- }
-
- result |= (accum & mask[c]);
- }
-
- result <<= shift_const;
- memcpy(data_p, &result, bytespp);
-
- data_p += bytespp;
- lastline_p += bytespp;
- }
- }
-
- free(lastline[0]);
- free(lastline[1]);
-}
-
-void gfxr_antialiase(gfx_pixmap_t *pixmap, gfx_mode_t *mode, gfxr_antialiasing_t type) {
- int masks[3];
- int shift_const = 0;
-
-#ifdef SCUMM_BIG_ENDIAN
- shift_const = (sizeof(unsigned long) - mode->bytespp) << 3;
-#endif
-
- masks[0] = mode->red_mask;
- masks[1] = mode->green_mask;
- masks[2] = mode->blue_mask;
-
- if (mode->palette)
- return;
-
- switch (type) {
-
- case GFXR_ANTIALIASING_NONE:
- break;
-
- case GFXR_ANTIALIASING_SIMPLE:
- antialiase_simple(pixmap, masks, shift_const, mode);
- break;
-
- default:
- GFXERROR("Invalid antialiasing mode %d (internal error)\n", type);
- }
-}
-
-} // End of namespace Sci
diff --git a/engines/sci/gfx/gfx_options.h b/engines/sci/gfx/gfx_options.h
index 323b4ff150..aa9d7fbea7 100644
--- a/engines/sci/gfx/gfx_options.h
+++ b/engines/sci/gfx/gfx_options.h
@@ -67,8 +67,6 @@ struct gfx_options_t {
gfx_xlate_filter_t text_xlate_filter;
gfxr_font_scale_filter_t fixed_font_xlate_filter; /* Scale filter for systems that provide font support which isn't scaled */
- gfxr_antialiasing_t pic0_antialiasing;
-
gfx_res_fullconf_t res_conf; /* Resource customisation: Per-resource palettes etc. */
int dirty_frames;
diff --git a/engines/sci/gfx/gfx_tools.h b/engines/sci/gfx/gfx_tools.h
index b02b8bd88f..5e626597a8 100644
--- a/engines/sci/gfx/gfx_tools.h
+++ b/engines/sci/gfx/gfx_tools.h
@@ -40,11 +40,6 @@ typedef enum {
GFX_XLATE_FILTER_TRILINEAR
} gfx_xlate_filter_t;
-typedef enum {
- GFXR_ANTIALIASING_NONE,
- GFXR_ANTIALIASING_SIMPLE
-} gfxr_antialiasing_t;
-
extern int gfx_crossblit_alpha_threshold; /* Crossblitting functions use this value as threshold
** for distinguishing between transparent and opaque
@@ -189,14 +184,6 @@ void gfx_xlate_pixmap(gfx_pixmap_t *pxm, gfx_mode_t *mode, gfx_xlate_filter_t fi
** Returns : (void)
*/
-void gfxr_antialiase(gfx_pixmap_t *pixmap, gfx_mode_t *mode, gfxr_antialiasing_t type);
-/* Performs antialiasing on a pixmap
-** Parameters: (gfx_pixmap_t *) pixmap: The pixmap to antialiase
-** (gfx_mode_t *) mode: The current mode
-** (gfxr_antialiasing_t) type: Antialiasing algorithm to use
-** Returns : (void)
-*/
-
#define GFX_CROSSBLIT_FLAG_DATA_IS_HOMED (1<<0)
/* Means that the first byte in the visual data refers to the
** point corresponding to (dest.x, dest.y) */
diff --git a/engines/sci/gfx/resmgr.cpp b/engines/sci/gfx/resmgr.cpp
index a8d99d1ba5..e172189a5e 100644
--- a/engines/sci/gfx/resmgr.cpp
+++ b/engines/sci/gfx/resmgr.cpp
@@ -335,9 +335,6 @@ gfxr_pic_t *gfxr_get_pic(gfx_resstate_t *state, int nr, int maps, int flags, int
if (must_post_process_pic) {
- if (scaled || state->options->pic0_unscaled && maps & GFX_MASK_VISUAL)
- gfxr_antialiase(npic->visual_map, state->driver->mode, state->options->pic0_antialiasing);
-
gfxr_endianness_adjust(npic->visual_map, state->driver->mode);
}
@@ -439,9 +436,6 @@ gfxr_pic_t *gfxr_add_to_pic(gfx_resstate_t *state, int old_nr, int new_nr, int m
set_pic_id(res, old_ID);
}
- if (scaled || state->options->pic0_unscaled && maps & GFX_MASK_VISUAL)
- gfxr_antialiase(pic->visual_map, state->driver->mode, state->options->pic0_antialiasing);
-
return pic;
}
diff --git a/engines/sci/module.mk b/engines/sci/module.mk
index 1233b05663..52813ffd05 100644
--- a/engines/sci/module.mk
+++ b/engines/sci/module.mk
@@ -31,7 +31,6 @@ MODULE_OBJS = \
engine/seg_manager.o \
engine/sys_strings.o \
engine/vm.o \
- gfx/antialias.o \
gfx/font.o \
gfx/gfx_driver.o \
gfx/gfx_res_options.o \
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 9fc08c9cd0..51a055a6ff 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -278,7 +278,6 @@ Common::Error SciEngine::go() {
gfx_options.pic_xlate_filter = GFX_XLATE_FILTER_NONE;
gfx_options.text_xlate_filter = GFX_XLATE_FILTER_NONE;
gfx_options.dirty_frames = GFXOP_DIRTY_FRAMES_CLUSTERS;
- gfx_options.pic0_antialiasing = GFXR_ANTIALIASING_NONE;
gfx_options.pic_port_bounds = gfx_rect(0, 10, 320, 190);
for (int i = 0; i < GFX_RESOURCE_TYPES_NR; i++) {
gfx_options.res_conf.assign[i] = NULL;