Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef BACKEND_RENDER_HANDLER_AGG_BITMAP_H
00020 #define BACKEND_RENDER_HANDLER_AGG_BITMAP_H
00021
00022 #include <boost/scoped_ptr.hpp>
00023 #include <memory>
00024 #include <boost/cstdint.hpp>
00025
00026 #include "GnashImage.h"
00027 #include "CachedBitmap.h"
00028
00029 namespace gnash {
00030
00031 class agg_bitmap_info : public CachedBitmap
00032 {
00033 public:
00034
00035 agg_bitmap_info(std::auto_ptr<image::GnashImage> im)
00036 :
00037 _image(im.release()),
00038 _bpp(_image->type() == image::TYPE_RGB ? 24 : 32)
00039 {
00040 }
00041
00042 image::GnashImage& image() {
00043 assert(!disposed());
00044 return *_image;
00045 }
00046
00047 void dispose() {
00048 _image.reset();
00049 }
00050
00051 bool disposed() const {
00052 return !_image.get();
00053 }
00054
00055 int get_width() const { return _image->width(); }
00056 int get_height() const { return _image->height(); }
00057 int get_bpp() const { return _bpp; }
00058 int get_rowlen() const { return _image->stride(); }
00059 boost::uint8_t* get_data() const { return _image->begin(); }
00060
00061 private:
00062
00063 boost::scoped_ptr<image::GnashImage> _image;
00064
00065 int _bpp;
00066
00067 };
00068
00069
00070 }
00071
00072 #endif // BACKEND_RENDER_HANDLER_AGG_BITMAP_H