From 2e169eeb9a50cb98cf2b2b7c899d2a7e294fdbc6 Mon Sep 17 00:00:00 2001 From: Kearwood Gilbert Date: Fri, 6 Jun 2014 00:46:40 -0700 Subject: [PATCH] Implemented pre-streaming of textures for KRSprite objects --- KREngine/kraken/KRSprite.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/KREngine/kraken/KRSprite.cpp b/KREngine/kraken/KRSprite.cpp index 83c3062..f706473 100644 --- a/KREngine/kraken/KRSprite.cpp +++ b/KREngine/kraken/KRSprite.cpp @@ -85,6 +85,19 @@ KRAABB KRSprite::getBounds() { void KRSprite::render(KRCamera *pCamera, std::vector &point_lights, std::vector &directional_lights, std::vector&spot_lights, const KRViewport &viewport, KRNode::RenderPass renderPass) { + if(m_lod_visible >= LOD_VISIBILITY_PRESTREAM && renderPass == KRNode::RENDER_PASS_PRESTREAM) { + // Pre-stream sprites, even if the alpha is zero + if(m_spriteTexture.size() && m_pSpriteTexture == NULL) { + if(!m_pSpriteTexture && m_spriteTexture.size()) { + m_pSpriteTexture = getContext().getTextureManager()->getTexture(m_spriteTexture); + } + } + + if(m_pSpriteTexture) { + m_pSpriteTexture->resetPoolExpiry(0.0f, KRTexture::TEXTURE_USAGE_SPRITE); + } + } + if(m_lod_visible <= LOD_VISIBILITY_PRESTREAM) return; KRNode::render(pCamera, point_lights, directional_lights, spot_lights, viewport, renderPass);