- moved map render logic into a shared base class

This commit is contained in:
Mark Vejvoda
2010-09-14 06:02:35 +00:00
parent 813076f64b
commit b95e2247cd
8 changed files with 431 additions and 188 deletions

View File

@@ -0,0 +1,36 @@
// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2001-2010 Mark Vejvoda
//
// You can redistribute this code 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
// ==============================================================
#ifndef _BASE_RENDERER_H_
#define _BASE_RENDERER_H_
#include "graphics_interface.h"
#include "leak_dumper.h"
namespace Shared { namespace Graphics {
// ===============================================
// class BaseRenderer
// ===============================================
class BaseRenderer : public RendererMapInterface {
public:
BaseRenderer() { }
~BaseRenderer() { }
virtual void initMapSurface(int clientW, int clientH);
virtual void renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize);
virtual void renderMapPreview(const MapPreview *map, int x, int y,bool renderAll, int screenX, int screenY);
};
}} // end namespace
#endif

View File

@@ -12,16 +12,19 @@
#ifndef _SHARED_GRAPHICS_GRAPHICSINTERFACE_H_
#define _SHARED_GRAPHICS_GRAPHICSINTERFACE_H_
#include "map_preview.h"
#include "leak_dumper.h"
namespace Shared{ namespace Graphics{
using namespace Shared::Map;
namespace Shared { namespace Graphics {
class GraphicsFactory;
class Context;
class Texture2D;
class Model;
enum ResourceScope{
enum ResourceScope {
rsGlobal,
rsMenu,
rsGame,
@@ -35,13 +38,20 @@ public:
virtual Model *newModel(ResourceScope rs) = 0;
};
class RendererMapInterface {
public:
virtual void initMapSurface(int clientW, int clientH) = 0;
virtual void renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize) = 0;
virtual void renderMapPreview(const MapPreview *map, int x, int y,bool renderAll, int screenX, int screenY) = 0;
};
// =====================================================
// class GraphicsInterface
//
/// Interface for the graphic engine
// =====================================================
class GraphicsInterface{
class GraphicsInterface {
private:
GraphicsFactory *graphicsFactory;
Context *currentContext;