--- deliantra/Deliantra-Client/rendercache.c 2018/11/19 00:10:34 1.13 +++ deliantra/Deliantra-Client/rendercache.c 2018/11/19 01:23:01 1.15 @@ -1,5 +1,7 @@ #include +#include "salloc.h" + struct rc_key_t { GLenum mode; @@ -39,9 +41,9 @@ }; struct array_t - : std::vector + : std::vector> { - using std::vector::vector; + using std::vector>::vector; template T &append () @@ -84,10 +86,12 @@ } }; + int drawcount = 0; ska::flat_hash_map h; void clear () { + drawcount = 0; h.clear (); } @@ -149,6 +153,10 @@ } glDisable (GL_TEXTURE_2D); + + if (ecb_expect_false (++drawcount == 16)) + for (auto &&it = h.begin (); it != h.end (); ++it) + it->second.shrink_to_fit (); } };