64 lines
1.4 KiB
C++
64 lines
1.4 KiB
C++
/*
|
|
* Basic Image PixelBuffer Implementation
|
|
* Nana C++ Library(http://www.nanapro.org)
|
|
* Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
|
|
*
|
|
* Distributed under the Boost Software License, Version 1.0.
|
|
* (See accompanying file LICENSE_1_0.txt or copy at
|
|
* http://www.boost.org/LICENSE_1_0.txt)
|
|
*
|
|
* @file: nana/paint/detail/image_pixbuf.hpp
|
|
*/
|
|
|
|
#ifndef NANA_PAINT_DETAIL_IMAGE_PIXBUF_HPP
|
|
#define NANA_PAINT_DETAIL_IMAGE_PIXBUF_HPP
|
|
|
|
#include <nana/paint/detail/image_impl_interface.hpp>
|
|
#include <nana/paint/pixel_buffer.hpp>
|
|
|
|
namespace nana
|
|
{
|
|
namespace paint{ namespace detail{
|
|
|
|
class basic_image_pixbuf
|
|
: public image::image_impl_interface
|
|
{
|
|
public:
|
|
bool alpha_channel() const override
|
|
{
|
|
return pixbuf_.alpha_channel();
|
|
}
|
|
|
|
bool empty() const override
|
|
{
|
|
return pixbuf_.empty();
|
|
}
|
|
|
|
void close() override
|
|
{
|
|
pixbuf_.close();
|
|
}
|
|
|
|
::nana::size size() const override
|
|
{
|
|
return pixbuf_.size();
|
|
}
|
|
|
|
void paste(const ::nana::rectangle& src_r, graph_reference graph, const point& p_dst) const override
|
|
{
|
|
pixbuf_.paste(src_r, graph.handle(), p_dst);
|
|
}
|
|
|
|
void stretch(const ::nana::rectangle& src_r, graph_reference dst, const nana::rectangle& r) const override
|
|
{
|
|
pixbuf_.stretch(src_r, dst.handle(), r);
|
|
}
|
|
protected:
|
|
pixel_buffer pixbuf_;
|
|
};
|
|
}//end namespace detail
|
|
}//end namespace paint
|
|
}//end namespace nana
|
|
|
|
#endif
|