godot/thirdparty/basis_universal/transcoder/basisu_transcoder_internal.h

// basisu_transcoder_internal.h - Universal texture format transcoder library.
// Copyright (C) 2019-2021 Binomial LLC. All Rights Reserved.
//
// Important: If compiling with gcc, be sure strict aliasing is disabled: -fno-strict-aliasing
//
// 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

#ifdef _MSC_VER
#pragma warning (disable: 4127) //  conditional expression is constant
#endif

#define BASISD_LIB_VERSION
#define BASISD_VERSION_STRING

#ifdef _DEBUG
#define BASISD_BUILD_DEBUG
#else
#define BASISD_BUILD_RELEASE
#endif

#include "basisu.h"

#define BASISD_znew

namespace basisu
{
	extern bool g_debug_printf;
}

namespace basist
{
	// Low-level formats directly supported by the transcoder (other supported texture formats are combinations of these low-level block formats).
	// You probably don't care about these enum's unless you are going pretty low-level and calling the transcoder to decode individual slices.
	enum class block_format
	{};

	const int COLOR5_PAL0_PREV_HI =, COLOR5_PAL0_DELTA_LO =, COLOR5_PAL0_DELTA_HI =;
	const int COLOR5_PAL1_PREV_HI =, COLOR5_PAL1_DELTA_LO =, COLOR5_PAL1_DELTA_HI =;
	const int COLOR5_PAL2_PREV_HI =, COLOR5_PAL2_DELTA_LO =, COLOR5_PAL2_DELTA_HI =;
	const int COLOR5_PAL_MIN_DELTA_B_RUNLEN =, COLOR5_PAL_DELTA_5_RUNLEN_VLC_BITS =;

	const uint32_t ENDPOINT_PRED_TOTAL_SYMBOLS =;
	const uint32_t ENDPOINT_PRED_REPEAT_LAST_SYMBOL =;
	const uint32_t ENDPOINT_PRED_MIN_REPEAT_COUNT =;
	const uint32_t ENDPOINT_PRED_COUNT_VLC_BITS =;

	const uint32_t NUM_ENDPOINT_PREDS =;// BASISU_ARRAY_SIZE(g_endpoint_preds);
	const uint32_t CR_ENDPOINT_PRED_INDEX =;
	const uint32_t NO_ENDPOINT_PRED_INDEX =;//NUM_ENDPOINT_PREDS;
	const uint32_t MAX_SELECTOR_HISTORY_BUF_SIZE =;
	const uint32_t SELECTOR_HISTORY_BUF_RLE_COUNT_THRESH =;
	const uint32_t SELECTOR_HISTORY_BUF_RLE_COUNT_BITS =;
	const uint32_t SELECTOR_HISTORY_BUF_RLE_COUNT_TOTAL =;
		
	uint16_t crc16(const void *r, size_t size, uint16_t crc);
		
	class huffman_decoding_table
	{};

	class bitwise_decoder
	{};

	inline uint32_t basisd_rand(uint32_t seed)
	{}

	// Returns random number in [0,limit). Max limit is 0xFFFF.
	inline uint32_t basisd_urand(uint32_t& seed, uint32_t limit)
	{}

	class approx_move_to_front
	{};

	struct decoder_etc_block;
	
	inline uint8_t clamp255(int32_t i)
	{}

	enum eNoClamp
	{};

	struct color32
	{};

	struct endpoint
	{};

	struct selector
	{};

	bool basis_block_format_is_uncompressed(block_format tex_type);
	
} // namespace basist