From b857654cf62236bfe65e865815e65fa742559c27 Mon Sep 17 00:00:00 2001 From: kearwood Date: Thu, 14 Jul 2022 00:00:55 -0700 Subject: [PATCH] Refactored KRTexture::resize for Vulkan. --- kraken/KRTexture.cpp | 8 +++----- kraken/KRTexture2D.cpp | 5 ++--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/kraken/KRTexture.cpp b/kraken/KRTexture.cpp index 9f2b0ba..5dcf153 100755 --- a/kraken/KRTexture.cpp +++ b/kraken/KRTexture.cpp @@ -98,14 +98,12 @@ void KRTexture::resize(int max_dim) { while(m_handle_lock.test_and_set()) {}; // Spin lock - if(m_iHandle == m_iNewHandle) { - if(max_dim == 0) { - m_iNewHandle = 0; - } else { + if(!m_haveNewHandles) { + if(max_dim > 0) { int target_dim = max_dim; if(target_dim < (int)m_min_lod_max_dim) target_dim = m_min_lod_max_dim; - if(m_new_lod_max_dim != target_dim || (m_iHandle == 0 && m_iNewHandle == 0)) { + if(m_new_lod_max_dim != target_dim || m_handles.empty()) { assert(m_newTextureMemUsed == 0); m_newTextureMemUsed = getMemRequiredForSize(target_dim); diff --git a/kraken/KRTexture2D.cpp b/kraken/KRTexture2D.cpp index 65869e9..cbd3de5 100755 --- a/kraken/KRTexture2D.cpp +++ b/kraken/KRTexture2D.cpp @@ -42,14 +42,13 @@ KRTexture2D::~KRTexture2D() { } bool KRTexture2D::createGLTexture(int lod_max_dim) { - if(m_iHandle != m_iNewHandle) { - return true; + if (m_haveNewHandles) { + return true; } bool success = true; int prev_lod_max_dim = m_new_lod_max_dim; - m_iNewHandle = 0; m_new_lod_max_dim = 0; GLDEBUG(glGenTextures(1, &m_iNewHandle));