diff options
author | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-08 03:50:16 +0000 |
---|---|---|
committer | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-08 03:50:16 +0000 |
commit | 3fe0cf688e2dad0503dbb31dd43cfe3bd1fa6536 (patch) | |
tree | ea81fae6b4ff16c40bfb2acac9eb85433fb80d9a /crawl-ref/source/tilereg.h | |
parent | bac007c9138e659d34646952fb98afc056ec279c (diff) | |
download | crawl-ref-3fe0cf688e2dad0503dbb31dd43cfe3bd1fa6536.tar.gz crawl-ref-3fe0cf688e2dad0503dbb31dd43cfe3bd1fa6536.zip |
Clean up tiles code to use the VertBuffer classes.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8321 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/tilereg.h')
-rw-r--r-- | crawl-ref/source/tilereg.h | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/crawl-ref/source/tilereg.h b/crawl-ref/source/tilereg.h index 71da45f8e6..72a9f35c6c 100644 --- a/crawl-ref/source/tilereg.h +++ b/crawl-ref/source/tilereg.h @@ -89,6 +89,7 @@ public: protected: void recalculate(); virtual void on_resize() = 0; + void set_transform(); }; class FTFont; @@ -233,20 +234,9 @@ public: ~TileRegion(); protected: - void add_quad(TextureID tex, unsigned int idx, int x, int y, int ofs_x = 0, int ofs_y = 0, bool centre = true, int ymax = -1); - ImageManager *m_image; - - struct tile_vert - { - float pos_x; - float pos_y; - float tex_x; - float tex_y; - }; - - std::vector<tile_vert> m_verts; FTFont *m_tag_font; + bool m_dirty; }; struct TextTag @@ -297,12 +287,13 @@ public: void clear_overlays(); protected: - void draw_background(unsigned int bg, int x, int y); - void draw_mcache(mcache_entry *entry, int x, int y); - void draw_player(int x, int y); - void draw_foreground(unsigned int bg, unsigned int fg, int x, int y); - void draw_doll(const dolls_data &doll, int x, int y); - void draw_cursor(cursor_type type, unsigned int tile); + void pack_background(unsigned int bg, int x, int y); + void pack_mcache(mcache_entry *entry, int x, int y); + void pack_player(int x, int y); + void pack_foreground(unsigned int bg, unsigned int fg, int x, int y); + void pack_doll(const dolls_data &doll, int x, int y); + void pack_cursor(cursor_type type, unsigned int tile); + void pack_buffers(); int get_buffer_index(const coord_def &gc); void to_screen_coords(const coord_def &gc, coord_def& pc) const; @@ -313,6 +304,11 @@ protected: coord_def m_cursor[CURSOR_MAX]; std::vector<TextTag> m_tags[TAG_MAX]; + TileBuffer m_buf_dngn; + TileBuffer m_buf_doll; + TileBuffer m_buf_main; + bool m_dirty; + struct tile_overlay { coord_def gc; @@ -360,18 +356,18 @@ public: protected: void pack_tile(int x, int y, int idx); - void pack_verts(); + void pack_buffers(); void add_quad_char(char c, int x, int y, int ox, int oy); void place_cursor(const coord_def &cursor); unsigned int cursor_index() const; - int m_base_verts; std::vector<InventoryTile> m_items; unsigned char *m_flavour; - coord_def m_cursor; + TileBuffer m_buf_dngn; + TileBuffer m_buf_main; - bool m_need_to_pack; + coord_def m_cursor; }; enum map_colour @@ -421,12 +417,17 @@ public: protected: virtual void on_resize(); void update_offsets(); + void pack_buffers(); map_colour m_colours[MF_MAX]; int m_min_gx, m_max_gx, m_min_gy, m_max_gy; coord_def m_win_start; coord_def m_win_end; unsigned char *m_buf; + + ShapeBuffer m_buf_map; + LineBuffer m_buf_lines; + bool m_dirty; bool m_far_view; }; |