diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-04-14 17:44:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-14 17:44:20 +0200 |
commit | b6a31d0bf63c7627f0217b21b46bde084298cda7 (patch) | |
tree | fed0c9d33789f9e9636de8f9ed6280da9a48a4a9 /thirdparty/etcpak/DataProvider.cpp | |
parent | f95945af5a0cbbdf1e79b523f4a49c1e0084694c (diff) | |
parent | 638cfec853cfdbc95b5ccc67477afbaa3a53bc33 (diff) |
Merge pull request #47890 from akien-mga/etcpak-compress-only
etcpak: We only need the compression code, remove rest of etcpak app
Diffstat (limited to 'thirdparty/etcpak/DataProvider.cpp')
-rw-r--r-- | thirdparty/etcpak/DataProvider.cpp | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/thirdparty/etcpak/DataProvider.cpp b/thirdparty/etcpak/DataProvider.cpp deleted file mode 100644 index 6bd4b105ed..0000000000 --- a/thirdparty/etcpak/DataProvider.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include <assert.h> -#include <utility> - -#include "BitmapDownsampled.hpp" -#include "DataProvider.hpp" -#include "MipMap.hpp" - -DataProvider::DataProvider( const char* fn, bool mipmap, bool bgr ) - : m_offset( 0 ) - , m_mipmap( mipmap ) - , m_done( false ) - , m_lines( 32 ) -{ - m_bmp.emplace_back( new Bitmap( fn, m_lines, bgr ) ); - m_current = m_bmp[0].get(); -} - -DataProvider::~DataProvider() -{ -} - -unsigned int DataProvider::NumberOfParts() const -{ - unsigned int parts = ( ( m_bmp[0]->Size().y / 4 ) + m_lines - 1 ) / m_lines; - - if( m_mipmap ) - { - v2i current = m_bmp[0]->Size(); - int levels = NumberOfMipLevels( current ); - unsigned int lines = m_lines; - for( int i=1; i<levels; i++ ) - { - assert( current.x != 1 || current.y != 1 ); - current.x = std::max( 1, current.x / 2 ); - current.y = std::max( 1, current.y / 2 ); - lines *= 2; - parts += ( ( std::max( 4, current.y ) / 4 ) + lines - 1 ) / lines; - } - assert( current.x == 1 && current.y == 1 ); - } - - return parts; -} - -DataPart DataProvider::NextPart() -{ - assert( !m_done ); - - unsigned int lines = m_lines; - bool done; - - const auto ptr = m_current->NextBlock( lines, done ); - DataPart ret = { - ptr, - std::max<unsigned int>( 4, m_current->Size().x ), - lines, - m_offset - }; - - m_offset += m_current->Size().x / 4 * lines; - - if( done ) - { - if( m_mipmap && ( m_current->Size().x != 1 || m_current->Size().y != 1 ) ) - { - m_lines *= 2; - m_bmp.emplace_back( new BitmapDownsampled( *m_current, m_lines ) ); - m_current = m_bmp[m_bmp.size()-1].get(); - } - else - { - m_done = true; - } - } - - return ret; -} |