topic "DataDrawer"; [2 $$0,0#00000000000000000000000000000000:Default] [i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] [l288;2 $$2,2#27521748481378242620020725143825:desc] [0 $$3,0#96390100711032703541132217272105:end] [H6;0 $$4,0#05600065144404261032431302351956:begin] [i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] [l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] [l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0;%- [*@7;4 DataDrawer]]}}&] [s3;%- &] [s1;:DataDrawer`:`:class:%- [@(0.0.255)3 class][3 _][*3 DataDrawer]&] [s9; This abstract class provides the ability to render the binary data of specific type into Draw output. Each type of binary data has assigned id, which is used in the call to Draw`::DrawData method, to this id there is corresponding registered (using DataDrawer`::Register) class of DataDrawer. Draw`::DrawData creates and instance of this class and uses it to render the binary data as one or more ImageBuffer pixel arrays.&] [s9; Draw package predefines DataDrawer registered with id `"image`_data`". This represents Image binary encoded with any encoding supported by actually included image format plugins like plugin/bmp or plugin/jpg.&] [s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] [s3;%- &] [s5;:DataDrawer`:`:Open`(const String`&`,int`,int`):%- [*@(0.0.255) virtual][* ][*@(0.0.255) void][* _Open]([@(0.0.255) const]_[_^topic`:`/`/Core`/src`/String`$en`-us^ S tring][@(0.0.255) `&]_[*@3 data], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])_`=_[@3 0 ]&] [s2; Called to open [%-*@3 data] for processing, the output size being [%-*@3 cx], [%-*@3 cy].&] [s3; &] [s4; &] [s5;:DataDrawer`:`:Render`(ImageBuffer`&`):%- [*@(0.0.255) virtual][* ][*@(0.0.255) void][* _Render]([_^topic`:`/`/Draw`/src`/ImageBuffer`$en`-us^ ImageBuffe r][@(0.0.255) `&]_[*@3 ib])_`=_[@3 0]&] [s2; Called to render the part (or all) of the result into [%-*@3 ib]. The width of [%-*@3 ib] is the same as specified in Open, the height is the required height of band to render.&] [s3; &] [s4; &] [s5;:DataDrawer`:`:`~DataDrawer`(`):%- [@(0.0.255) `~][* DataDrawer]()&] [s2; Virtual destructor.&] [s3; &] [s4; &] [s5;:DataDrawer`:`:Create`(const String`&`):%- [*@(0.0.255) static][* ][*_^topic`:`/`/Core`/src`/One`$en`-us^ One][* <][*_^DataDrawer^ DataDrawer][* >_Create(][*@(0.0.255) c onst][* _][*_^topic`:`/`/Core`/src`/String`$en`-us^ String][*@(0.0.255) `&][* _][*@3 id][* )]&] [s2; Creates a derived DataDrawer with type [%-*@3 id].&] [s3; &] [s4; &] [s5;:DataDrawer`:`:Register`(const char`*`):%- [*@(0.0.255) static][* ][*@(0.0.255) template][* _<][*@(0.0.255) class][* _][*@4 T][* >_][*@(0.0.255) void][* _Register( ][*@(0.0.255) const][* _][*@(0.0.255) char][* _`*][*@3 id][* )]&] [s2; This method registers specific DataDrawer derived class as renderer for type [%-*@3 id].&] [s3; &] [s0; ]]