diff options
author | K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com> | 2021-04-06 22:05:56 -0700 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2021-04-13 00:12:12 +0200 |
commit | d840165a324b5c218ca3a4882f030986855c8383 (patch) | |
tree | 7c5f4b091ecc647f2b6ed48135945f84c6dc2de9 /thirdparty/etc2comp/EtcBlock4x4Encoding.h | |
parent | b895071895cffcbcda7f4156d7175ba5b8068852 (diff) |
Add `etcpak` library for faster ETC/ETC2/S3TC imports.
- `etc` module was renamed to `etcpak` and modified to use the new library.
- PKM importer is removed in the process, it's obsolete.
- Old library `etc2comp` is removed.
- S3TC compression no longer done via `squish` (but decompression still is).
- Slight modifications to etcpak sources for MinGW compatibility,
to fix LLVM `-Wc++11-narrowing` errors, and to allow using vendored or
system libpng.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Diffstat (limited to 'thirdparty/etc2comp/EtcBlock4x4Encoding.h')
-rw-r--r-- | thirdparty/etc2comp/EtcBlock4x4Encoding.h | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/thirdparty/etc2comp/EtcBlock4x4Encoding.h b/thirdparty/etc2comp/EtcBlock4x4Encoding.h deleted file mode 100644 index c14c3b8616..0000000000 --- a/thirdparty/etc2comp/EtcBlock4x4Encoding.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2015 The Etc2Comp Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "EtcColorFloatRGBA.h" - -#include "EtcErrorMetric.h" - -#include <assert.h> -#include <float.h> - -namespace Etc -{ - class Block4x4; - - // abstract base class for specific encodings - class Block4x4Encoding - { - public: - - static const unsigned int ROWS = 4; - static const unsigned int COLUMNS = 4; - static const unsigned int PIXELS = ROWS * COLUMNS; - static const float LUMA_WEIGHT; - static const float CHROMA_BLUE_WEIGHT; - - typedef enum - { - MODE_UNKNOWN, - // - MODE_ETC1, - MODE_T, - MODE_H, - MODE_PLANAR, - MODE_R11, - MODE_RG11, - // - MODES - } Mode; - - Block4x4Encoding(void); - //virtual ~Block4x4Encoding(void) =0; - virtual ~Block4x4Encoding(void) {} - virtual void InitFromSource(Block4x4 *a_pblockParent, - ColorFloatRGBA *a_pafrgbaSource, - - unsigned char *a_paucEncodingBits, ErrorMetric a_errormetric) = 0; - - virtual void InitFromEncodingBits(Block4x4 *a_pblockParent, - unsigned char *a_paucEncodingBits, - ColorFloatRGBA *a_pafrgbaSource, - - ErrorMetric a_errormetric) = 0; - - // perform an iteration of the encoding - // the first iteration must generate a complete, valid (if poor) encoding - virtual void PerformIteration(float a_fEffort) = 0; - - void CalcBlockError(void); - - inline float GetError(void) - { - assert(m_fError >= 0.0f); - - return m_fError; - } - - inline ColorFloatRGBA * GetDecodedColors(void) - { - return m_afrgbaDecodedColors; - } - - inline float * GetDecodedAlphas(void) - { - return m_afDecodedAlphas; - } - - virtual void SetEncodingBits(void) = 0; - - virtual bool GetFlip(void) = 0; - - virtual bool IsDifferential(void) = 0; - - virtual bool HasSeverelyBentDifferentialColors(void) const = 0; - - inline Mode GetMode(void) - { - return m_mode; - } - - inline bool IsDone(void) - { - return m_boolDone; - } - - inline void SetDoneIfPerfect() - { - if (GetError() == 0.0f) - { - m_boolDone = true; - } - } - - float CalcPixelError(ColorFloatRGBA a_frgbaDecodedColor, float a_fDecodedAlpha, - ColorFloatRGBA a_frgbaSourcePixel); - - protected: - - void Init(Block4x4 *a_pblockParent, - ColorFloatRGBA *a_pafrgbaSource, - - ErrorMetric a_errormetric); - - Block4x4 *m_pblockParent; - ColorFloatRGBA *m_pafrgbaSource; - - bool m_boolBorderPixels; // if block has any border pixels - - ColorFloatRGBA m_afrgbaDecodedColors[PIXELS]; // decoded RGB components, ignore Alpha - float m_afDecodedAlphas[PIXELS]; // decoded alpha component - float m_fError; // error for RGBA relative to m_pafrgbaSource - - // intermediate encoding - Mode m_mode; - - unsigned int m_uiEncodingIterations; - bool m_boolDone; // all iterations have been done - ErrorMetric m_errormetric; - - private: - - }; - -} // namespace Etc |