66 lines
2.0 KiB
C++
66 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include <ostream>
|
|
|
|
#include <texconv/vqtools.h> // contains some cruft
|
|
|
|
#define PIXELFORMAT_ARGB1555 0
|
|
#define PIXELFORMAT_RGB565 1
|
|
#define PIXELFORMAT_ARGB4444 2
|
|
#define PIXELFORMAT_YUV422 3
|
|
#define PIXELFORMAT_BUMPMAP 4
|
|
#define PIXELFORMAT_PAL4BPP 5
|
|
#define PIXELFORMAT_PAL8BPP 6
|
|
#define PIXELFORMAT_MASK 7
|
|
#define PIXELFORMAT_SHIFT 27
|
|
|
|
#define FLAG_NONTWIDDLED (1 << 26)
|
|
#define FLAG_STRIDED (1 << 25)
|
|
#define FLAG_COMPRESSED (1 << 30)
|
|
#define FLAG_MIPMAPPED (1 << 31)
|
|
|
|
#define TEXTURE_SIZE_MIN 8
|
|
#define TEXTURE_SIZE_MAX 1024
|
|
#define TEXTURE_STRIDE_MIN 32
|
|
#define TEXTURE_STRIDE_MAX 992
|
|
|
|
#define MIN_MIPMAP_VQ 2
|
|
#define MIN_MIPMAP_PALVQ 4
|
|
|
|
#define TEXTURE_MAGIC "DTEX"
|
|
#define PALETTE_MAGIC "DPAL"
|
|
|
|
#define MIPMAP_OFFSET_4BPP 1
|
|
#define MIPMAP_OFFSET_8BPP 3
|
|
#define MIPMAP_OFFSET_16BPP 6
|
|
|
|
|
|
int nextPowerOfTwo(int x);
|
|
bool isValidSize(int width, int height, int textureType);
|
|
void writeZeroes(std::ostream& stream, int n);
|
|
|
|
bool isFormat(int textureType, int pixelFormat);
|
|
bool isPaletted(int textureType);
|
|
bool is16BPP(int textureType);
|
|
|
|
|
|
uint16_t to16BPP(const RGBA& px, int pixelFormat);
|
|
RGBA to32BPP(uint16_t px, int pixelFormat);
|
|
|
|
|
|
void RGBtoYUV422(const RGBA& rgb1, const RGBA& rgb2, uint16_t& yuv1, uint16_t& yuv2);
|
|
void YUV422toRGB(const uint16_t yuv1, const uint16_t yuv2, RGBA& rgb1, RGBA& rgb2);
|
|
|
|
int writeTextureHeader(std::ostream& stream, int width, int height, int textureType);
|
|
|
|
uint32_t combineHash(const RGBA& rgba, uint32_t seed);
|
|
|
|
class ImageContainer;
|
|
class Palette;
|
|
|
|
void convert16BPP(std::ostream& stream, const ImageContainer& images, int textureType);
|
|
Palette convertPaletted(std::ostream& stream, const ImageContainer& images, int textureType);
|
|
|
|
void convertPaletted(std::ostream& stream, const ImageContainer& images, int textureType, const uf::stl::string& palFilename);
|
|
|
|
bool generatePreview(const uf::stl::string& textureFilename, const uf::stl::string& paletteFilename, const uf::stl::string& previewFilename, const uf::stl::string& codeUsageFilename); |