aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/picture.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agi/picture.h')
-rw-r--r--engines/agi/picture.h49
1 files changed, 45 insertions, 4 deletions
diff --git a/engines/agi/picture.h b/engines/agi/picture.h
index 6700f436b3..97e331a1a5 100644
--- a/engines/agi/picture.h
+++ b/engines/agi/picture.h
@@ -37,10 +37,51 @@ struct agi_picture {
uint8 *rdata; /**< raw vector image data */
};
-int decode_picture(int, int);
-int unload_picture(int);
-void show_pic(void);
-uint8 *convert_v3_pic(uint8 *src, uint32 len);
+class AgiEngine;
+class GfxMgr;
+
+class PictureMgr {
+ AgiEngine *_vm;
+ GfxMgr *_gfx;
+
+private:
+
+ void draw_line(int x1, int y1, int x2, int y2, int res);
+ void put_virt_pixel(int x, int y, int res);
+ void dynamic_draw_line(int res);
+ void absolute_draw_line(int res);
+ INLINE int is_ok_fill_here(int x, int y);
+ void fill_scanline(int x, int y);
+ void agi_fill(unsigned int x, unsigned int y);
+ void x_corner(int res);
+ void y_corner(int res);
+ void fill();
+ int plot_pattern_point(int x, int y, int bitpos, int res);
+ void plot_pattern(int x, int y, int res);
+ void plot_brush(int res);
+ void fix_pixel_left(int x, int y);
+ void fix_pixel_bothsides(int x, int y);
+ void fix_pixel_right(int x, int y);
+ void fix_pixel_here(int x, int y);
+ void hires_fill_scanline(int x, int y);
+ void _hires_fill(unsigned int x, unsigned int y);
+ void hires_fill();
+ INLINE int hires_fill_here(int x, int y);
+ void show_hires_pic();
+ void fix_hires_picture();
+ void draw_picture();
+
+public:
+ PictureMgr(AgiEngine *agi, GfxMgr *gfx) {
+ _vm = agi;
+ _gfx = gfx;
+ }
+
+ int decode_picture(int, int);
+ int unload_picture(int);
+ void show_pic();
+ uint8 *convert_v3_pic(uint8 *src, uint32 len);
+};
} // End of namespace Agi