1 #ifndef _rescalers__public__hpp__included__
2 #define _rescalers__public__hpp__included__
13 virtual void operator()(uint8_t* target
, uint32_t twidth
, uint32_t theight
,
14 const uint8_t* source
, uint32_t swidth
, uint32_t sheight
) = 0;
15 static rescaler
& make(const std::string
& type
);
21 uint32_t swidth
; //Meaningful only if is_special is set.
22 uint32_t sheight
; //Meaningful only if is_special is set.
23 rescaler
* use_rescaler
;
26 std::string
get_rescaler_string();
27 std::list
<std::string
> get_rescaler_list();
28 rescaler
& composite_rescaler(rescaler
& s1
, uint32_t iwidth
, uint32_t iheight
, rescaler
& s2
);
29 struct parsed_scaler
parse_rescaler_expression(const std::string
& expr
);
30 rescaler
& get_default_rescaler();
35 rescaler_group(rescaler
& _default_rescaler
);
37 void set_default_rescaler(rescaler
& _default_rescaler
);
38 void set_special_rescaler(uint32_t width
, uint32_t height
, rescaler
& rescaler
);
39 void operator()(uint8_t* target
, uint32_t twidth
, uint32_t theight
,
40 const uint8_t* source
, uint32_t swidth
, uint32_t sheight
);
42 rescaler
* default_rescaler
;
43 std::map
<std::pair
<uint32_t, uint32_t>, rescaler
*> special_rescalers
;