// (set by the two integer parameters "width" and "height").
// Mostly useful as part of other algorithms.
+#include <string>
+
#include "effect.h"
class ResizeEffect : public Effect {
public:
ResizeEffect();
+ virtual std::string effect_type_id() const { return "ResizeEffect"; }
std::string output_fragment_shader();
// We want processing done pre-filtering and mipmapped,
// in case we need to scale down a lot.
virtual bool need_texture_bounce() const { return true; }
virtual bool needs_mipmaps() const { return true; }
+ virtual AlphaHandling alpha_handling() const { return INPUT_PREMULTIPLIED_ALPHA_KEEP_BLANK; }
virtual bool changes_output_size() const { return true; }
- virtual void get_output_size(unsigned *width, unsigned *height) const;
+ virtual void get_output_size(unsigned *width, unsigned *height, unsigned *virtual_width, unsigned *virtual_height) const;
private:
int width, height;