X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=resource_pool.h;fp=resource_pool.h;h=8881958d27b0b1c4d2a082bbb649dcecc2304347;hp=b218d7ad18f6bea9666e92a96e79098ebbb2262c;hb=831150846e1e79b53b02b07fbf12ec7cae289a3a;hpb=e90eb349c71419e874f34f1ab122f57bebeacda7 diff --git a/resource_pool.h b/resource_pool.h index b218d7a..8881958 100644 --- a/resource_pool.h +++ b/resource_pool.h @@ -143,6 +143,7 @@ private: static const unsigned num_fbo_attachments = 4; struct FBO { + GLuint fbo_num; // GL_INVALID_INDEX means associated to a texture that has since been deleted. // 0 means the output isn't bound. GLuint texture_num[num_fbo_attachments]; @@ -152,11 +153,14 @@ private: // filled if the FBO is given out to a client or on the freelist, but // not if it is deleted from the freelist. std::map, FBO> fbo_formats; + typedef std::map, FBO>::iterator FBOFormatIterator; // For each context, a list of all FBOs that are released but not freed // (most recently freed first). Once this reaches , // the last element will be deleted. - std::map > fbo_freelist; + // + // We store iterators directly into for efficiency. + std::map > fbo_freelist; // See the caveats at the constructor. static size_t estimate_texture_size(const Texture2D &texture_format);