@Override public void invalidateDanmaku(BaseDanmaku item, boolean remeasure) { if (mCacheManager == null) { super.invalidateDanmaku(item, remeasure); return; } mCacheManager.invalidateDanmaku(item, remeasure); }
@Override public void quit() { super.quit(); reset(); mRenderer.setCacheManager(null); if (mCacheManager != null) { mCacheManager.end(); mCacheManager = null; } NativeBitmapFactory.releaseLibs(); }
@Override protected void onDanmakuRemoved(BaseDanmaku danmaku) { super.onDanmakuRemoved(danmaku); if (danmaku.hasDrawingCache()) { if (danmaku.cache.hasReferences()) { danmaku.cache.decreaseReference(); } else { danmaku.cache.destroy(); } danmaku.cache = null; } }
@Override public void start() { super.start(); NativeBitmapFactory.loadLibs(); if (mCacheManager == null) { mCacheManager = new CacheManager(mMaxCacheSize, MAX_CACHE_SCREEN_SIZE); mCacheManager.begin(); mRenderer.setCacheManager(mCacheManager); } else { mCacheManager.resume(); } }
@Override public void addDanmaku(BaseDanmaku danmaku) { super.addDanmaku(danmaku); if (mCacheManager == null) return; mCacheManager.addDanmaku(danmaku); }
@Override public void seek(long mills) { super.seek(mills); mCacheManager.seek(mills); }