image - update shallow constructor to take raw bytes pointer

detail::buffer - inline data() size() methods
update unit test
This commit is contained in:
artemp 2015-09-16 10:11:55 +01:00
parent c4e0516ba6
commit acb8feea01
3 changed files with 8 additions and 29 deletions

View file

@ -38,22 +38,16 @@ struct MAPNIK_DECL buffer
buffer(buffer && rhs) noexcept;
buffer(buffer const& rhs);
~buffer();
buffer& operator=(buffer rhs);
inline bool operator!() const
{
return (data_ == nullptr)? true : false;
}
void swap(buffer & rhs);
unsigned char* data();
unsigned char const* data() const;
std::size_t size() const;
inline bool operator!() const {return (data_ == nullptr)? true : false;}
inline unsigned char* data() {return data_;}
inline unsigned char const* data() const {return data_;}
inline std::size_t size() const {return size_;}
private:
void swap(buffer & rhs);
std::size_t size_;
unsigned char* data_;
bool owns_;
};
template <std::size_t max_size>
@ -97,7 +91,7 @@ public:
bool painted = false);
image(int width,
int height,
detail::buffer && buf,
unsigned char* data,
bool premultiplied = false,
bool painted = false);
image(image<T> const& rhs);

View file

@ -78,9 +78,9 @@ image<T>::image()
{}
template <typename T>
image<T>::image(int width, int height, detail::buffer && buf, bool premultiplied, bool painted)
image<T>::image(int width, int height, unsigned char* data, bool premultiplied, bool painted)
: dimensions_(width, height),
buffer_(std::move(buf)),
buffer_(data, width * height * sizeof(pixel_size)),
pData_(reinterpret_cast<pixel_type*>(buffer_.data())),
offset_(0.0),
scaling_(1.0),

View file

@ -82,21 +82,6 @@ void buffer::swap(buffer & rhs)
std::swap(owns_, rhs.owns_);
}
unsigned char* buffer::data()
{
return data_;
}
unsigned char const* buffer::data() const
{
return data_;
}
std::size_t buffer::size() const
{
return size_;
}
template struct MAPNIK_DECL image_dimensions<65535>;
} // end ns detail