00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef header_cardsurface_blitter
00016 #define header_cardsurface_blitter
00017
00018 #include "cardsurface.h"
00019 #include "blitters.h"
00020 class CL_DisplayCard_Generic;
00021
00022 class CL_CardSurface_Blitter : public CL_CardSurface
00023 {
00024 public:
00025 CL_CardSurface_Blitter(
00026 CL_DisplayCard_Generic *target,
00027 CL_SurfaceProvider *provider,
00028 bool dynamic = false);
00029 virtual ~CL_CardSurface_Blitter();
00030
00031 virtual bool reload();
00032
00033 virtual bool can_convert_video();
00034 virtual bool can_convert_system();
00035
00036 virtual bool convert_video();
00037 virtual bool convert_system();
00038
00039 virtual void put_screen(
00040 int x,
00041 int y,
00042 int spr_no,
00043 CL_Target *target);
00044
00045 virtual void put_screen(
00046 int x,
00047 int y,
00048 float scale_x,
00049 float scale_y,
00050 int spr_no,
00051 CL_Target *target);
00052
00053 virtual void put_screen(
00054 int x,
00055 int y,
00056 int size_x,
00057 int size_y,
00058 int spr_no,
00059 CL_Target *target);
00060
00061 virtual bool is_video();
00062
00063 protected:
00064 virtual CL_Target *get_target();
00065 virtual CL_ClipRect get_clip_rect();
00066
00067 int get_width() { return m_width; }
00068 int get_height() { return m_height; }
00069 int get_no_sprs() { return m_no_sprs; }
00070
00071 bool is_dynamic() { return m_dynamic; }
00072
00073 private:
00074 void create_sw_blitters();
00075
00076 CL_Blitters m_blitters;
00077 CL_DisplayCard_Generic *m_target;
00078
00079 int m_width;
00080 int m_height;
00081 int m_no_sprs;
00082 bool m_dynamic;
00083 };
00084
00085 #endif