00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SGE_FONT_DRAWER_HPP_INCLUDED
00022 #define SGE_FONT_DRAWER_HPP_INCLUDED
00023
00024 #include "../shared_ptr.hpp"
00025 #include "../export.hpp"
00026 #include "types.hpp"
00027 #include <boost/noncopyable.hpp>
00028 #include <cstddef>
00029
00030 namespace sge
00031 {
00032 namespace font
00033 {
00034
00035 class SGE_CLASS_SYMBOL drawer : boost::noncopyable {
00036 public:
00037 typedef std::size_t size_type;
00038 virtual void begin_rendering(
00039 size_type buffer_chars,
00040 pos const& start,
00041 dim size) = 0;
00042 virtual void draw_char(
00043 char_type,
00044 pos const&,
00045 const_image_view const &data) = 0;
00046 virtual void end_rendering() = 0;
00047 SGE_SYMBOL virtual ~drawer();
00048 };
00049
00050 typedef shared_ptr<drawer> drawer_ptr;
00051
00052 }
00053 }
00054
00055 #endif