00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020
00021 #ifndef header_sprite_subsection_provider
00022 #define header_sprite_subsection_provider
00023
00024 #include "generic_surfaceprovider.h"
00025
00026 class CL_SpriteSubsectionProvider : public CL_SurfaceProvider_Generic
00027 {
00028 CL_SurfaceProvider *parent_provider;
00029 bool locked;
00030 int start_x, start_y;
00031 int width, height;
00032 public:
00033 static CL_Surface *create(CL_SurfaceProvider *parent_provider, int start_x, int start_y, int width, int height);
00034
00035 CL_SpriteSubsectionProvider(CL_SurfaceProvider *parent_provider, int start_x, int start_y, int width, int height);
00036 virtual ~CL_SpriteSubsectionProvider();
00037
00038 virtual unsigned int get_pitch() const;
00039 virtual int get_translate_x() const;
00040 virtual int get_translate_y() const;
00041 virtual unsigned int get_width() const;
00042 virtual unsigned int get_height() const;
00043 virtual unsigned int get_num_frames() const;
00044 virtual CL_Palette *get_palette() const;
00045
00046 virtual bool is_indexed() const;
00047 virtual bool uses_src_colorkey() const;
00048 virtual unsigned int get_src_colorkey() const;
00049
00050 virtual unsigned int get_red_mask() const;
00051 virtual unsigned int get_green_mask() const;
00052 virtual unsigned int get_blue_mask() const;
00053 virtual unsigned int get_alpha_mask() const;
00054 virtual unsigned int get_depth() const;
00055
00056 virtual void *get_data() const;
00057
00058 virtual void perform_lock();
00059 virtual void perform_unlock();
00060 };
00061
00062 #endif