
#ifndef INC_DISPLAYENGINE
#define INC_DISPLAYENGINE
#endif

#ifndef INC_GAMELOOPIFC
#include "GameLoopIfc.h"
#endif

struct BITMAP;

//----------------------------------------------------------------------------

struct ScreenRect
{
    ScreenRect() : x(0), y(0), w(0), h(0)
    {}
    ScreenRect( int ax, int ay, int aw, int ah ) : x(ax), y(ay), w(aw), h(ah)
    {}
    int x;
    int y;
    int w;
    int h;
};

//----------------------------------------------------------------------------

class DisplayEngine
{
public:
    DisplayEngine();
    ~DisplayEngine();
    void init( const char*ini_fn );
    BITMAP*const draw_buffer() const
    {
        return back_buffer1_;
    }
    void display_draw_buffer();
private:
    BITMAP* back_buffer1_;
    BITMAP* back_buffer2_;
};

//----------------------------------------------------------------------------

class ViewPortBase : public ViewPortIfc
{
public:
    ViewPortBase( const ScreenRect& );
    ~ViewPortBase();

protected:
    const ScreenRect area;
};

//----------------------------------------------------------------------------

