aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/gfx/gfx_resmgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/gfx/gfx_resmgr.h')
-rw-r--r--engines/sci/gfx/gfx_resmgr.h289
1 files changed, 0 insertions, 289 deletions
diff --git a/engines/sci/gfx/gfx_resmgr.h b/engines/sci/gfx/gfx_resmgr.h
deleted file mode 100644
index 5b3b728702..0000000000
--- a/engines/sci/gfx/gfx_resmgr.h
+++ /dev/null
@@ -1,289 +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$
- *
- */
-
-#include "sci/sci.h" // for INCLUDE_OLDGFX
-#ifdef INCLUDE_OLDGFX
-
-#ifndef SCI_GFX_GFX_RESMAN_H
-#define SCI_GFX_GFX_RESMAN_H
-
-#include "common/hashmap.h"
-#include "common/rect.h"
-
-// FIXME/TODO: The name "(Graphics) resource manager", and the associated
-// filenames, are misleading. This should be renamed to "Graphics manager"
-// or something like that.
-
-#include "sci/gfx/gfx_resource.h"
-
-#include "sci/resource.h"
-
-namespace Sci {
-
-struct gfx_bitmap_font_t;
-class ResourceManager;
-class SciGuiPalette;
-
-enum gfx_resource_type_t {
- GFX_RESOURCE_TYPE_VIEW = 0,
- GFX_RESOURCE_TYPE_PIC,
- GFX_RESOURCE_TYPE_FONT,
- GFX_RESOURCE_TYPE_CURSOR,
- GFX_RESOURCE_TYPE_PALETTE,
- /* FIXME: Add PAL resource */
-
- GFX_RESOURCE_TYPES_NR /**< Number of resource types that are to be supported */
-};
-
-#define GFX_RESOURCE_TYPE_0 GFX_RESOURCE_TYPE_VIEW
-
-#define GFXR_RES_ID(type, index) ((type) << 16 | (index))
-#define GFXR_RES_TYPE(id) (id >> 16)
-#define GFXR_RES_NR(id) (id & 0xffff)
-
-/** Graphics resource */
-struct gfx_resource_t {
- int ID; /**< Resource ID */
- int lock_sequence_nr; /**< See description of lock_counter in GfxResManager */
-
- /** Scaled pic */
- union {
- gfx_pixmap_t *pointer;
- gfxr_view_t *view;
- gfx_bitmap_font_t *font;
- gfxr_pic_t *pic;
- } scaled_data;
-
- /** Original pic */
- union {
- gfx_pixmap_t *pointer;
- gfxr_view_t *view;
- gfx_bitmap_font_t *font;
- gfxr_pic_t *pic;
- } unscaled_data;
-
-};
-
-
-struct gfx_options_t;
-
-typedef Common::HashMap<int, gfx_resource_t *> IntResMap;
-
-/** Graphics resource manager */
-class GfxResManager {
-public:
- GfxResManager(GfxDriver *driver, ResourceManager *resMan, SciGuiScreen *screen, SciGuiPalette *palette, Common::Rect portBounds);
- ~GfxResManager();
-
-
- /**
- * 'Tags' all resources for deletion.
- *
- * Tagged resources are untagged if they are referenced.
- */
- void tagResources() { _tagLockCounter++; }
-
-
- /**
- * Retrieves a font.
- *
- * @param[in] num The font number
- * @param[in] scaled Whether the font should be font-scaled
- * @return The appropriate font, or NULL on error
- */
- gfx_bitmap_font_t *getFont(int num, bool scaled = false);
-
-
- /**
- * Retrieves a translated view cel.
- *
- * @param[in] nr The view number
- * @param[in] loop Pointer to a variable containing the loop number
- * @param[in] cel Pointer to a variable containing the cel number
- * @param[in] palette The palette to use
- * @return The relevant view, or NULL if nr was invalid
- * loop and cel are given as pointers in order to
- * allow the underlying variables to be modified
- * if they are invalid (this is relevant for SCI
- * version 0, where invalid loop and cel numbers
- * have to be interpreted as 'maximum' or 'minimum'
- * by the interpreter)
- */
- gfxr_view_t *getView(int nr, int *loop, int *cel, int palette);
-
-
- /**
- * Retrieves a displayable (translated) pic resource.
- *
- * @param[in] num Number of the pic resource
- * @param[in] maps The maps to translate (ORred GFX_MASK_*)
- * @param[in] flags Interpreter-dependant pic flags
- * @param[in] default_palette The default palette to use for drawing
- * (if applicable)
- * @param[in] scaled Whether to return the scaled maps, or
- * the unscaled ones (which may be
- * identical) for some special operations.
- * @return The appropriate pic resource with all
- * maps as index (but not neccessarily
- * translated) data.
- */
- gfxr_pic_t *getPic(int num, int maps, int flags, int default_palette,
- bool scaled = false);
-
-
- /**
- * Retrieves a displayable (translated) pic resource written ontop of
- * an existing pic.
- *
- * This function invalidates the cached pic pointed to by old_nr in the
- * cache. While subsequent addToPic() writes will still modify the
- * 'invalidated' pic, gfxr_get_pic() operations will cause it to be
- * removed from the cache and to be replaced by a clean version.
- *
- * @param[in] old_nr Number of the pic resource to write on
- * @param[in] new_nr Number of the pic resource that is to
- * be added
- * @param[in] flags Interpreter-dependant pic flags
- * @param[in] old_default_palette The default palette of the pic before
- * translation
- * @param[in] default_palette The default palette to use for drawing
- * (if applicable)
- * @return The appropriate pic resource with all
- * maps as index (but not neccessarily
- * translated) data.
- */
- gfxr_pic_t *addToPic(int old_nr, int new_nr, int flags,
- int old_default_palette, int default_palette);
-
- /**
- * Calculate a picture
- *
- * @param[in] scaled_pic The pic structure that is to be
- * written to
- * @param[in] unscaled_pic The pic structure the unscaled pic is
- * to be written to, or NULL if it isn't
- * needed.
- * @param[in] flags Pic drawing flags (interpreter
- * dependant)
- * @param[in] default_palette The default palette to use for pic
- * drawing (interpreter dependant)
- * @param[in] nr pic resource number
- */
- void calculatePic(gfxr_pic_t *scaled_pic, gfxr_pic_t *unscaled_pic,
- int flags, int default_palette, int nr);
-
-
- /**
- * Frees all resources currently allocated.
- *
- * This function is intended to be used primarily for debugging.
- */
- void freeAllResources();
-
-
- /**
- * Frees all tagged resources.
- *
- * Resources are tagged by calling gfx_tag_resources(), and untagged by
- * calling the approprate dereferenciation function.
- * Note that this function currently only affects view resources, as
- * pic resources are treated differently, while font and cursor
- * resources are relatively rare.
- */
- void freeTaggedResources();
-
-
- /**
- * Frees a previously allocated resource manager, and all allocated
- * resources.
- */
- void freeResManager();
-
- /**
- * Retrieves a color from the static palette
- */
- const PaletteEntry &getColor(int color) {
- return _staticPalette->getColor(color);
- }
-
- /**
- * Set static palette and merge it into the global palette
- */
- void setStaticPalette(Palette *newPalette);
-
- /**
- * Sets the picture port bounds
- */
- void changePortBounds(int x1, int y1, int x2, int y2) {
- _portBounds = Common::Rect(x1, y1, x2, y2);
- }
-
-#if 0
- void setPaletteIntensity(int16 from, int16 to, int16 intensity) {
- Palette *pal = _staticPalette->getref();
-
- for (uint16 i = 0; i < _driver->getMode()->palette->size(); i++) {
- byte r = pal->getColor(i).r * intensity / 100;
- byte g = pal->getColor(i).g * intensity / 100;
- byte b = pal->getColor(i).b * intensity / 100;
- pal->makeSystemColor(i, PaletteEntry(r, g, b));
- }
- pal->mergeInto(_driver->getMode()->palette);
- _driver->install_palette(_driver, pal);
- pal->unmerge();
- pal->free();
- }
-#endif
-
- /**
- * Gets the number of colors in the static palette.
- *
- * @return Number of pallete entries
- */
- int getColorCount() {
- return _staticPalette ? _staticPalette->size() : 0;
- }
-
-private:
- GfxDriver *_driver;
- Palette *_staticPalette;
- int _lockCounter; /**< Global lock counter; increased for each new
- * resource allocated. The newly allocated resource will
- * then be assigned the new value of the lock_counter,
- * as will any resources referenced afterwards. */
- int _tagLockCounter; /**< lock counter value at tag time */
- Common::Rect _portBounds;
-
- IntResMap _resourceMaps[GFX_RESOURCE_TYPES_NR];
- ResourceManager *_resMan;
- SciGuiScreen *_screen;
- SciGuiPalette *_palette;
-};
-
-} // End of namespace Sci
-
-#endif // SCI_GFX_GFX_RESMAN_H
-
-#endif