00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020
00021 #ifndef header_sprite_subarray_provider
00022 #define header_sprite_subarray_provider
00023
00024 #include "generic_surfaceprovider.h"
00025
00026 class CL_SpriteSubarrayProvider : public CL_SurfaceProvider_Generic
00027 {
00028 CL_SurfaceProvider *parent_provider;
00029 bool locked;
00030 int start_x, start_y;
00031 int width, height;
00032 int array_width, array_height;
00033 unsigned char *surface_data;
00034 public:
00035 static CL_Surface *create(CL_SurfaceProvider *parent_provider, int start_x, int start_y, int width, int height, int array_width, int array_height);
00036
00037 CL_SpriteSubarrayProvider(CL_SurfaceProvider *parent_provider, int start_x, int start_y, int width, int height, int array_width, int array_height);
00038 virtual ~CL_SpriteSubarrayProvider();
00039
00040 virtual unsigned int get_pitch() const;
00041 virtual int get_translate_x() const;
00042 virtual int get_translate_y() const;
00043 virtual unsigned int get_width() const;
00044 virtual unsigned int get_height() const;
00045 virtual unsigned int get_num_frames() const;
00046 virtual CL_Palette *get_palette() const;
00047 virtual bool uses_src_colorkey() const;
00048 virtual bool is_indexed() const;
00049 virtual unsigned int get_src_colorkey() const;
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