summaryrefslogtreecommitdiff
path: root/thirdparty/etc2comp/EtcBlock4x4EncodingBits.h
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2021-04-13 01:09:38 +0200
committerGitHub <noreply@github.com>2021-04-13 01:09:38 +0200
commit8793a464d312c5a48490fbec03c26f2835318063 (patch)
tree8be39ad26992b0bc10ee69fef5f0c5cadb6a0760 /thirdparty/etc2comp/EtcBlock4x4EncodingBits.h
parent075f358fcddbb3df8417ef85baabdf3684a4efd2 (diff)
parentd840165a324b5c218ca3a4882f030986855c8383 (diff)
Merge pull request #47370 from fire/etcpak
Add thirdparty library etcpak for faster imports.
Diffstat (limited to 'thirdparty/etc2comp/EtcBlock4x4EncodingBits.h')
-rw-r--r--thirdparty/etc2comp/EtcBlock4x4EncodingBits.h315
1 files changed, 0 insertions, 315 deletions
diff --git a/thirdparty/etc2comp/EtcBlock4x4EncodingBits.h b/thirdparty/etc2comp/EtcBlock4x4EncodingBits.h
deleted file mode 100644
index 4065700379..0000000000
--- a/thirdparty/etc2comp/EtcBlock4x4EncodingBits.h
+++ /dev/null
@@ -1,315 +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 <assert.h>
-
-namespace Etc
-{
-
- // ################################################################################
- // Block4x4EncodingBits
- // Base class for Block4x4EncodingBits_XXXX
- // ################################################################################
-
- class Block4x4EncodingBits
- {
- public:
-
- enum class Format
- {
- UNKNOWN,
- //
- RGB8,
- RGBA8,
- R11,
- RG11,
- RGB8A1,
- //
- FORMATS
- };
-
- static unsigned int GetBytesPerBlock(Format a_format)
- {
- switch (a_format)
- {
- case Format::RGB8:
- case Format::R11:
- case Format::RGB8A1:
- return 8;
- break;
-
- case Format::RGBA8:
- case Format::RG11:
- return 16;
- break;
-
- default:
- return 0;
- break;
- }
-
- }
-
- };
-
- // ################################################################################
- // Block4x4EncodingBits_RGB8
- // Encoding bits for the RGB portion of ETC1, RGB8, RGB8A1 and RGBA8
- // ################################################################################
-
- class Block4x4EncodingBits_RGB8
- {
- public:
-
- static const unsigned int BYTES_PER_BLOCK = 8;
-
- inline Block4x4EncodingBits_RGB8(void)
- {
- assert(sizeof(Block4x4EncodingBits_RGB8) == BYTES_PER_BLOCK);
-
- for (unsigned int uiByte = 0; uiByte < BYTES_PER_BLOCK; uiByte++)
- {
- auc[uiByte] = 0;
- }
-
- }
-
- typedef struct
- {
- unsigned red2 : 4;
- unsigned red1 : 4;
- //
- unsigned green2 : 4;
- unsigned green1 : 4;
- //
- unsigned blue2 : 4;
- unsigned blue1 : 4;
- //
- unsigned flip : 1;
- unsigned diff : 1;
- unsigned cw2 : 3;
- unsigned cw1 : 3;
- //
- unsigned int selectors;
- } Individual;
-
- typedef struct
- {
- signed dred2 : 3;
- unsigned red1 : 5;
- //
- signed dgreen2 : 3;
- unsigned green1 : 5;
- //
- signed dblue2 : 3;
- unsigned blue1 : 5;
- //
- unsigned flip : 1;
- unsigned diff : 1;
- unsigned cw2 : 3;
- unsigned cw1 : 3;
- //
- unsigned int selectors;
- } Differential;
-
- typedef struct
- {
- unsigned red1b : 2;
- unsigned detect2 : 1;
- unsigned red1a : 2;
- unsigned detect1 : 3;
- //
- unsigned blue1 : 4;
- unsigned green1 : 4;
- //
- unsigned green2 : 4;
- unsigned red2 : 4;
- //
- unsigned db : 1;
- unsigned diff : 1;
- unsigned da : 2;
- unsigned blue2 : 4;
- //
- unsigned int selectors;
- } T;
-
- typedef struct
- {
- unsigned green1a : 3;
- unsigned red1 : 4;
- unsigned detect1 : 1;
- //
- unsigned blue1b : 2;
- unsigned detect3 : 1;
- unsigned blue1a : 1;
- unsigned green1b : 1;
- unsigned detect2 : 3;
- //
- unsigned green2a : 3;
- unsigned red2 : 4;
- unsigned blue1c : 1;
- //
- unsigned db : 1;
- unsigned diff : 1;
- unsigned da : 1;
- unsigned blue2 : 4;
- unsigned green2b : 1;
- //
- unsigned int selectors;
- } H;
-
- typedef struct
- {
- unsigned originGreen1 : 1;
- unsigned originRed : 6;
- unsigned detect1 : 1;
- //
- unsigned originBlue1 : 1;
- unsigned originGreen2 : 6;
- unsigned detect2 : 1;
- //
- unsigned originBlue3 : 2;
- unsigned detect4 : 1;
- unsigned originBlue2 : 2;
- unsigned detect3 : 3;
- //
- unsigned horizRed2 : 1;
- unsigned diff : 1;
- unsigned horizRed1 : 5;
- unsigned originBlue4 : 1;
- //
- unsigned horizBlue1: 1;
- unsigned horizGreen : 7;
- //
- unsigned vertRed1 : 3;
- unsigned horizBlue2 : 5;
- //
- unsigned vertGreen1 : 5;
- unsigned vertRed2 : 3;
- //
- unsigned vertBlue : 6;
- unsigned vertGreen2 : 2;
- } Planar;
-
- union
- {
- unsigned char auc[BYTES_PER_BLOCK];
- unsigned long int ul;
- Individual individual;
- Differential differential;
- T t;
- H h;
- Planar planar;
- };
-
- };
-
- // ################################################################################
- // Block4x4EncodingBits_A8
- // Encoding bits for the A portion of RGBA8
- // ################################################################################
-
- class Block4x4EncodingBits_A8
- {
- public:
-
- static const unsigned int BYTES_PER_BLOCK = 8;
- static const unsigned int SELECTOR_BYTES = 6;
-
- typedef struct
- {
- unsigned base : 8;
- unsigned table : 4;
- unsigned multiplier : 4;
- unsigned selectors0 : 8;
- unsigned selectors1 : 8;
- unsigned selectors2 : 8;
- unsigned selectors3 : 8;
- unsigned selectors4 : 8;
- unsigned selectors5 : 8;
- } Data;
-
- Data data;
-
- };
-
- // ################################################################################
- // Block4x4EncodingBits_R11
- // Encoding bits for the R portion of R11
- // ################################################################################
-
- class Block4x4EncodingBits_R11
- {
- public:
-
- static const unsigned int BYTES_PER_BLOCK = 8;
- static const unsigned int SELECTOR_BYTES = 6;
-
- typedef struct
- {
- unsigned base : 8;
- unsigned table : 4;
- unsigned multiplier : 4;
- unsigned selectors0 : 8;
- unsigned selectors1 : 8;
- unsigned selectors2 : 8;
- unsigned selectors3 : 8;
- unsigned selectors4 : 8;
- unsigned selectors5 : 8;
- } Data;
-
- Data data;
-
- };
-
- class Block4x4EncodingBits_RG11
- {
- public:
-
- static const unsigned int BYTES_PER_BLOCK = 16;
- static const unsigned int SELECTOR_BYTES = 12;
-
- typedef struct
- {
- //Red portion
- unsigned baseR : 8;
- unsigned tableIndexR : 4;
- unsigned multiplierR : 4;
- unsigned selectorsR0 : 8;
- unsigned selectorsR1 : 8;
- unsigned selectorsR2 : 8;
- unsigned selectorsR3 : 8;
- unsigned selectorsR4 : 8;
- unsigned selectorsR5 : 8;
- //Green portion
- unsigned baseG : 8;
- unsigned tableIndexG : 4;
- unsigned multiplierG : 4;
- unsigned selectorsG0 : 8;
- unsigned selectorsG1 : 8;
- unsigned selectorsG2 : 8;
- unsigned selectorsG3 : 8;
- unsigned selectorsG4 : 8;
- unsigned selectorsG5 : 8;
- } Data;
-
- Data data;
-
- };
-
-}