601ca6c774cbd7b70cb91d523ff05a20109c3319
[drnoksnes] / platform / scaler.h
1 #ifndef _PLATFORM_SCALER_H_
2 #define _PLATFORM_SCALER_H_
3
4 class Scaler
5 {
6 public:
7         Scaler() { };
8         virtual ~Scaler() { };
9
10         virtual const char * getName() const = 0;
11
12         virtual uint8* getDrawBuffer() const = 0;
13         virtual unsigned int getDrawBufferPitch() const = 0;
14         virtual void getRenderedGUIArea(unsigned short & x, unsigned short & y,
15                                                                         unsigned short & w, unsigned short & h)
16                                                                         const = 0;
17         virtual int getRatio() const = 0;
18         virtual void prepare() = 0;
19         virtual void finish() = 0;
20         virtual void pause() = 0;
21         virtual void resume() = 0;
22 };
23
24 class ScalerFactory
25 {
26 public:
27         ScalerFactory() { };
28         virtual ~ScalerFactory() { };
29         virtual const char * getName() const = 0;
30         virtual bool canEnable(int bpp, int w, int h) const = 0;
31         virtual Scaler* instantiate(SDL_Surface* screen, int w, int h) const = 0;
32 };
33
34 const ScalerFactory* searchForScaler(int bpp, int w, int h);
35
36 #endif