[Scummvm-cvs-logs] SF.net SVN: scummvm:[39366] scummvm/trunk/engines/sci/gfx

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Fri Mar 13 00:23:47 CET 2009


Revision: 39366
          http://scummvm.svn.sourceforge.net/scummvm/?rev=39366&view=rev
Author:   thebluegr
Date:     2009-03-12 23:23:46 +0000 (Thu, 12 Mar 2009)

Log Message:
-----------
Commited syke's patch as-is

Modified Paths:
--------------
    scummvm/trunk/engines/sci/gfx/gfx_resmgr.h
    scummvm/trunk/engines/sci/gfx/operations.cpp
    scummvm/trunk/engines/sci/gfx/resmgr.cpp
    scummvm/trunk/engines/sci/gfx/resource/res_manager.cpp

Modified: scummvm/trunk/engines/sci/gfx/gfx_resmgr.h
===================================================================
--- scummvm/trunk/engines/sci/gfx/gfx_resmgr.h	2009-03-12 22:04:18 UTC (rev 39365)
+++ scummvm/trunk/engines/sci/gfx/gfx_resmgr.h	2009-03-12 23:23:46 UTC (rev 39366)
@@ -37,6 +37,7 @@
 namespace Sci {
 
 struct gfx_bitmap_font_t;
+class ResourceManager;
 
 enum gfx_resource_type_t {
 	GFX_RESOURCE_TYPE_VIEW = 0,
@@ -191,9 +192,10 @@
 ** loop and cel numbers have to be interpreted as 'maximum' or 'minimum' by the interpreter)
 */
 
-gfx_bitmap_font_t *gfxr_get_font(gfx_resstate_t *state, int nr, int scaled);
+gfx_bitmap_font_t *gfxr_get_font(ResourceManager& resourceManager, gfx_resstate_t *state, int nr, int scaled);
 /* Retreives a font
-** Parameters: (gfx_resstate_t *) state: The relevant resource state
+** Parameters: (ResourceManager&) resourceManager: supplies the resource repository capability
+** 			   (gfx_resstate_t *) state: The relevant resource state
 **             (int) nr: The font number
 **             (int) scaled: Whether the font should be font-scaled
 ** Returns   : (gfx_font_t *) The appropriate font, or NULL on error
@@ -236,7 +238,7 @@
 ** (Yes, this isn't really a "hash" in the traditional sense...)
 */
 
-int *gfxr_interpreter_get_resources(ResourceManager *resourceManager, gfx_resource_type_t type,
+int *gfxr_interpreter_get_resources(ResourceManager& resourceManager, gfx_resource_type_t type,
 	int version, int *entries_nr);
 /* Retreives all resources of a specified type that are available from the interpreter
 ** Parameters: (gfx_resstate_t *) state: The relevant resource state
@@ -279,9 +281,9 @@
 ** Returns   : (int) GFX_ERROR if the resource could not be found, GFX_OK otherwise
 */
 
-gfxr_view_t *gfxr_interpreter_get_view(ResourceManager* resourceManager, int nr, int palette, Palette* staticPalette, int version);
+gfxr_view_t *gfxr_interpreter_get_view(ResourceManager& resourceManager, int nr, int palette, Palette* staticPalette, int version);
 /* Instructs the interpreter-specific code to calculate a view
-** Parameters: (ResourceManager *) resourceManager: The resource manager
+** Parameters: (ResourceManager& ) resourceManager: The resource manager
 **             (int) nr: The view resource number
 **             (int) palette: The palette number to use
 **             (Palette*) staticPalette: The static palette to use in VGA games
@@ -289,33 +291,33 @@
 ** Returns   : (gfx_view_t *) The appropriate view, or NULL on error
 */
 
-gfx_bitmap_font_t *gfxr_interpreter_get_font(ResourceManager *resourceManager, int nr);
+gfx_bitmap_font_t *gfxr_interpreter_get_font(ResourceManager& resourceManager, int nr);
 /* Instructs the interpreter-specific code to calculate a font
-** Parameters: (ResourceManager *) resourceManager: The resource manager
+** Parameters: (ResourceManager& ) resourceManager: The resource manager
 **             (int) nr: The font resource number
 ** Returns   : (gfx_font_t *) The newly calculated font, or NULL on error
 */
 
-gfx_pixmap_t *gfxr_interpreter_get_cursor(ResourceManager *resourceManager, int nr, int version);
+gfx_pixmap_t *gfxr_interpreter_get_cursor(ResourceManager& resourceManager, int nr, int version);
 /* Instructs the interpreter-specific code to calculate a cursor
-** Parameters: (ResourceManager *) state: The resource manager
+** Parameters: (ResourceManager& ) state: The resource manager
 **             (int nr): The cursor resource number
 **             (int version): The SCI version used
 ** Returns   : (gfx_pixmap_t *) The cursor pixmap, or NULL on error
 */
 
-Palette *gfxr_interpreter_get_static_palette(ResourceManager *resourceManager, int version, int *colors_nr);
+Palette *gfxr_interpreter_get_static_palette(ResourceManager& resourceManager, int version, int *colors_nr);
 /* Retreives the static palette (palette 999) from the interpreter-specific code
-** Parameters: (ResourceManager *) state: The resource manager
+** Parameters: (ResourceManager& ) state: The resource manager
 **             (int) version: Interpreter version to use
 **             (int *) colors_nr: Number of colors to use
 ** Returns   : (gfx_pixmap_color_t *) *colors_nr static color entries
 **             if a static palette must be used, NULL otherwise
 */
 
-Palette *gfxr_interpreter_get_palette(ResourceManager *resourceManager, int version, int *colors_nr, int nr);
+Palette *gfxr_interpreter_get_palette(ResourceManager& resourceManager, int version, int *colors_nr, int nr);
 /* Retreives the static palette from the interpreter-specific code
-** Parameters: (ResourceManager *) state: The resource manager
+** Parameters: (ResourceManager& ) state: The resource manager
 **             (int) version: Interpreter version to use
 **             (int *) colors_nr: Number of colors to use
 **             (int) nr: The palette to read

Modified: scummvm/trunk/engines/sci/gfx/operations.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/operations.cpp	2009-03-12 22:04:18 UTC (rev 39365)
+++ scummvm/trunk/engines/sci/gfx/operations.cpp	2009-03-12 23:23:46 UTC (rev 39366)
@@ -205,7 +205,7 @@
 static int _gfxop_install_pixmap(gfx_driver_t *driver, gfx_pixmap_t *pxm) {
 	if (!driver->mode->palette) return GFX_OK;
 	if (!pxm->palette) return GFX_OK;
-	
+
 	assert(pxm->palette->getParent() == driver->mode->palette);
 
 	if (!driver->mode->palette->isDirty()) return GFX_OK;
@@ -428,7 +428,7 @@
 	}
 
 	int size;
-	state->static_palette = gfxr_interpreter_get_static_palette(state->resstate->resManager, state->version, &size);
+	state->static_palette = gfxr_interpreter_get_static_palette(*(state->resstate->resManager), state->version, &size);
 
 	state->visible_map = GFX_MASK_VISUAL;
 	state->fullscreen_override = NULL; // No magical override
@@ -627,10 +627,10 @@
 // Wrapper for gfxop_set_color
 int gfxop_set_color(gfx_state_t *state, gfx_color_t *colorOut, gfx_color_t &colorIn) {
 	if (colorIn.mask & GFX_MASK_VISUAL)
-		return gfxop_set_color(state, colorOut, colorIn.visual.r, colorIn.visual.g, colorIn.visual.b, 
+		return gfxop_set_color(state, colorOut, colorIn.visual.r, colorIn.visual.g, colorIn.visual.b,
 			colorIn.alpha, colorIn.priority, colorIn.control);
 	else
-		return gfxop_set_color(state, colorOut, -1, -1, -1, colorIn.alpha, 
+		return gfxop_set_color(state, colorOut, -1, -1, -1, colorIn.alpha,
 			colorIn.priority, colorIn.control);
 }
 
@@ -885,7 +885,7 @@
 		end.x += xfact >> 1;
 		end.y += yfact >> 1;
 	}
-	
+
 	if (color.visual.parent_index == GFX_COLOR_INDEX_UNMAPPED)
 		gfxop_set_color(state, &color, color);
 	return _gfxop_draw_line_clipped(state, start, end, color, line_mode, line_style);
@@ -1892,11 +1892,13 @@
 
 // Text operations
 
+// FIXME: only the resstate member of state is used -- inline the reference by:
+// replacing gfx_state_t* state parameter with gfx_resstate_t* gfxResourceState and adjust callers accordingly
 int gfxop_get_font_height(gfx_state_t *state, int font_nr) {
 	gfx_bitmap_font_t *font;
 	BASIC_CHECKS(GFX_FATAL);
 
-	font = gfxr_get_font(state->resstate, font_nr, 0);
+	font = gfxr_get_font(*(state->resstate->resManager), state->resstate, font_nr, 0);
 	if (!font)
 		return GFX_ERROR;
 
@@ -1910,7 +1912,7 @@
 
 	BASIC_CHECKS(GFX_FATAL);
 
-	font = gfxr_get_font(state->resstate, font_nr, 0);
+	font = gfxr_get_font(*(state->resstate->resManager), state->resstate, font_nr, 0);
 
 	if (!font) {
 		GFXERROR("Attempt to calculate text size with invalid font #%d\n", font_nr);
@@ -1945,11 +1947,11 @@
 	error |= gfxop_set_color(state, &bg_color, bg_color);
 	if (error) {
 		GFXERROR("Unable to set up colors");
-		return NULL; 
+		return NULL;
 	}
-		
-	font = gfxr_get_font(state->resstate, font_nr, 0);
 
+	font = gfxr_get_font(*(state->resstate->resManager), state->resstate, font_nr, 0);
+
 	if (!font) {
 		GFXERROR("Attempt to draw text with invalid font #%d\n", font_nr);
 		return NULL;

Modified: scummvm/trunk/engines/sci/gfx/resmgr.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/resmgr.cpp	2009-03-12 22:04:18 UTC (rev 39365)
+++ scummvm/trunk/engines/sci/gfx/resmgr.cpp	2009-03-12 23:23:46 UTC (rev 39366)
@@ -65,7 +65,7 @@
 		gfx_resource_type_t i = (gfx_resource_type_t) ii;
 		sbtree_t *tree;
 		int entries_nr;
-		int *resources = gfxr_interpreter_get_resources(state->resManager, i, version, &entries_nr);
+		int *resources = gfxr_interpreter_get_resources(*(state->resManager), i, version, &entries_nr);
 
 		if (!resources)
 			state->resource_trees[i] = NULL;
@@ -459,7 +459,7 @@
 	res = (gfx_resource_t *) sbtree_get(tree, nr);
 
 	if (!res || res->mode != hash) {
-		view = gfxr_interpreter_get_view(state->resManager, nr, palette, state->static_palette, state->version);
+		view = gfxr_interpreter_get_view(*(state->resManager), nr, palette, state->static_palette, state->version);
 
 		if (!view)
 			return NULL;
@@ -527,7 +527,7 @@
 	return view;
 }
 
-gfx_bitmap_font_t *gfxr_get_font(gfx_resstate_t *state, int nr, int scaled) {
+gfx_bitmap_font_t *gfxr_get_font(ResourceManager& resourceManager, gfx_resstate_t *state, int nr, int scaled) {
 	gfx_resource_type_t restype = GFX_RESOURCE_TYPE_FONT;
 	sbtree_t *tree = NULL;
 	gfx_resource_t *res = NULL;
@@ -543,7 +543,7 @@
 	res = (gfx_resource_t *)sbtree_get(tree, nr);
 
 	if (!res || res->mode != hash) {
-		gfx_bitmap_font_t *font = gfxr_interpreter_get_font(state->resManager, nr);
+		gfx_bitmap_font_t *font = gfxr_interpreter_get_font(resourceManager, nr);
 
 		if (!font)
 			return NULL;
@@ -583,7 +583,7 @@
 	res = (gfx_resource_t *)sbtree_get(tree, nr);
 
 	if (!res || res->mode != hash) {
-		gfx_pixmap_t *cursor = gfxr_interpreter_get_cursor(state->resManager, nr, state->version);
+		gfx_pixmap_t *cursor = gfxr_interpreter_get_cursor(*(state->resManager), nr, state->version);
 
 		if (!cursor)
 			return NULL;

Modified: scummvm/trunk/engines/sci/gfx/resource/res_manager.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/resource/res_manager.cpp	2009-03-12 22:04:18 UTC (rev 39365)
+++ scummvm/trunk/engines/sci/gfx/resource/res_manager.cpp	2009-03-12 23:23:46 UTC (rev 39366)
@@ -71,8 +71,8 @@
 
 int gfxr_interpreter_calculate_pic(gfx_resstate_t *state, gfxr_pic_t *scaled_pic, gfxr_pic_t *unscaled_pic,
 	int flags, int default_palette, int nr) {
-	ResourceManager *resmgr = state->resManager;
-	Resource *res = resmgr->findResource(kResourceTypePic, nr, 0);
+	ResourceManager& resourceManager = *(state->resManager);
+	Resource *res = resourceManager.findResource(kResourceTypePic, nr, 0);
 	int need_unscaled = unscaled_pic != NULL;
 	gfxr_pic0_params_t style, basic_style;
 
@@ -142,8 +142,8 @@
 
 gfxr_view_t *gfxr_draw_view11(int id, byte *resource, int size);
 
-gfxr_view_t *gfxr_interpreter_get_view(ResourceManager* resourceManager, int nr, int palette, Palette* staticPalette, int version) {
-	Resource *res = resourceManager->findResource(kResourceTypeView, nr, 0);
+gfxr_view_t *gfxr_interpreter_get_view(ResourceManager& resourceManager, int nr, int palette, Palette* staticPalette, int version) {
+	Resource *res = resourceManager.findResource(kResourceTypeView, nr, 0);
 	int resid = GFXR_RES_ID(GFX_RESOURCE_TYPE_VIEW, nr);
 	gfxr_view_t *result = 0;
 
@@ -179,17 +179,16 @@
 	return result;
 }
 
-gfx_bitmap_font_t *gfxr_interpreter_get_font(ResourceManager* resourceManager, int nr) {
-	Resource *res = resourceManager->findResource(kResourceTypeFont, nr, 0);
-
+gfx_bitmap_font_t *gfxr_interpreter_get_font(ResourceManager& resourceManager, int nr) {
+	Resource *res = resourceManager.findResource(kResourceTypeFont, nr, 0);
 	if (!res || !res->data)
 		return NULL;
 
 	return gfxr_read_font(res->id, res->data, res->size);
 }
 
-gfx_pixmap_t *gfxr_interpreter_get_cursor(ResourceManager* resourceManager, int nr, int version) {
-	Resource *res = resourceManager->findResource(kResourceTypeCursor, nr, 0);
+gfx_pixmap_t *gfxr_interpreter_get_cursor(ResourceManager& resourceManager, int nr, int version) {
+	Resource *res = resourceManager.findResource(kResourceTypeCursor, nr, 0);
 	int resid = GFXR_RES_ID(GFX_RESOURCE_TYPE_CURSOR, nr);
 
 	if (!res || !res->data)
@@ -203,7 +202,7 @@
 	return gfxr_draw_cursor(resid, res->data, res->size, version != SCI_VERSION_0);
 }
 
-int *gfxr_interpreter_get_resources(ResourceManager* resourceManager, gfx_resource_type_t type, int version, int *entries_nr) {
+int *gfxr_interpreter_get_resources(ResourceManager& resourceManager, gfx_resource_type_t type, int version, int *entries_nr) {
 	ResourceType restype;
 	int *resources;
 	int count = 0;
@@ -235,7 +234,7 @@
 	resources = (int *)sci_malloc(sizeof(int) * top);
 
 	for (i = 0; i < top; i++)
-		if (resourceManager->testResource(restype, i))
+		if (resourceManager.testResource(restype, i))
 			resources[count++] = i;
 
 	*entries_nr = count;
@@ -243,7 +242,7 @@
 	return resources;
 }
 
-Palette *gfxr_interpreter_get_static_palette(ResourceManager *resourceManager, int version, int *colors_nr) {
+Palette *gfxr_interpreter_get_static_palette(ResourceManager& resourceManager, int version, int *colors_nr) {
 	if (version >= SCI_VERSION_01_VGA)
 		return gfxr_interpreter_get_palette(resourceManager, version, colors_nr, 999);
 
@@ -251,13 +250,13 @@
 	return gfx_sci0_pic_colors->getref();
 }
 
-Palette *gfxr_interpreter_get_palette(ResourceManager *resourceManager, int version, int *colors_nr, int nr) {
+Palette *gfxr_interpreter_get_palette(ResourceManager& resourceManager, int version, int *colors_nr, int nr) {
 	Resource *res;
 
 	if (version < SCI_VERSION_01_VGA)
 		return NULL;
 
-	res = resourceManager->findResource(kResourceTypePalette, nr, 0);
+	res = resourceManager.findResource(kResourceTypePalette, nr, 0);
 	if (!res || !res->data)
 		return NULL;
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list