mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
Raplace GL types in TextureLoadParameters
This commit is contained in:
parent
663f696d8f
commit
4a97083d77
|
@ -11,7 +11,10 @@ namespace graphics {
|
|||
}
|
||||
|
||||
namespace internalcolor {
|
||||
Parameter RGB8(GL_RGB);
|
||||
Parameter RGBA(GL_RGBA8);
|
||||
Parameter RGBA4(GL_RGBA4);
|
||||
Parameter RGB5_A1(GL_RGB5_A1);
|
||||
Parameter RG(GL_RG8);
|
||||
Parameter RED(GL_R8);
|
||||
Parameter DEPTH(GL_DEPTH_COMPONENT);
|
||||
|
@ -23,6 +26,8 @@ namespace graphics {
|
|||
Parameter UNSIGNED_SHORT(GL_UNSIGNED_SHORT);
|
||||
Parameter UNSIGNED_INT(GL_UNSIGNED_INT);
|
||||
Parameter FLOAT(GL_FLOAT);
|
||||
Parameter UNSIGNED_SHORT_5_5_5_1(GL_UNSIGNED_SHORT_5_5_5_1);
|
||||
Parameter UNSIGNED_SHORT_4_4_4_4(GL_UNSIGNED_SHORT_4_4_4_4);
|
||||
}
|
||||
|
||||
namespace target {
|
||||
|
|
|
@ -22,6 +22,7 @@ namespace graphics {
|
|||
void reset() { m_iparameter = INVALID_PARAMETER; }
|
||||
|
||||
bool operator==(const Parameter & _other) const { return m_iparameter == _other.m_iparameter; }
|
||||
bool operator!=(const Parameter & _other) const { return m_iparameter != _other.m_iparameter; }
|
||||
|
||||
private:
|
||||
union {
|
||||
|
|
|
@ -11,7 +11,10 @@ namespace graphics {
|
|||
}
|
||||
|
||||
namespace internalcolor {
|
||||
extern Parameter RGB8;
|
||||
extern Parameter RGBA;
|
||||
extern Parameter RGBA4;
|
||||
extern Parameter RGB5_A1;
|
||||
extern Parameter RG;
|
||||
extern Parameter RED;
|
||||
extern Parameter DEPTH;
|
||||
|
@ -23,6 +26,8 @@ namespace graphics {
|
|||
extern Parameter UNSIGNED_SHORT;
|
||||
extern Parameter UNSIGNED_INT;
|
||||
extern Parameter FLOAT;
|
||||
extern Parameter UNSIGNED_SHORT_5_5_5_1;
|
||||
extern Parameter UNSIGNED_SHORT_4_4_4_4;
|
||||
}
|
||||
|
||||
namespace target {
|
||||
|
|
222
src/Textures.cpp
222
src/Textures.cpp
|
@ -264,135 +264,137 @@ inline void GetYUV_RGBA4444(u64 * src, u16 * dst, u16 x)
|
|||
const struct TextureLoadParameters
|
||||
{
|
||||
GetTexelFunc Get16;
|
||||
GLenum glType16;
|
||||
GLint glInternalFormat16;
|
||||
Parameter glType16;
|
||||
Parameter glInternalFormat16;
|
||||
GetTexelFunc Get32;
|
||||
GLenum glType32;
|
||||
GLint glInternalFormat32;
|
||||
u32 autoFormat, lineShift, maxTexels;
|
||||
Parameter glType32;
|
||||
Parameter glInternalFormat32;
|
||||
Parameter autoFormat;
|
||||
u32 lineShift;
|
||||
u32 maxTexels;
|
||||
} imageFormat[4][4][5] =
|
||||
{ // G_TT_NONE
|
||||
{ // Get16 glType16 glInternalFormat16 Get32 glType32 glInternalFormat32 autoFormat
|
||||
{ // 4-bit
|
||||
{ GetI4_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetI4_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 4, 8192 }, // RGBA as I
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 4, 8192 }, // YUV
|
||||
{ GetI4_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetI4_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 4, 8192 }, // CI without palette
|
||||
{ GetIA31_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetIA31_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 4, 8192 }, // IA
|
||||
{ GetI4_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetI4_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 4, 8192 }, // I
|
||||
{ GetI4_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetI4_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 4, 8192 }, // RGBA as I
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 4, 8192 }, // YUV
|
||||
{ GetI4_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetI4_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 4, 8192 }, // CI without palette
|
||||
{ GetIA31_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetIA31_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 4, 8192 }, // IA
|
||||
{ GetI4_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetI4_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 4, 8192 }, // I
|
||||
},
|
||||
{ // 8-bit
|
||||
{ GetI8_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetI8_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 3, 4096 }, // RGBA as I
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 4096 }, // YUV
|
||||
{ GetI8_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetI8_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 3, 4096 }, // CI without palette
|
||||
{ GetIA44_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetIA44_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 3, 4096 }, // IA
|
||||
{ GetI8_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetI8_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 3, 4096 }, // I
|
||||
{ GetI8_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetI8_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 3, 4096 }, // RGBA as I
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 4096 }, // YUV
|
||||
{ GetI8_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetI8_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 3, 4096 }, // CI without palette
|
||||
{ GetIA44_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetIA44_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 3, 4096 }, // IA
|
||||
{ GetI8_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetI8_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 3, 4096 }, // I
|
||||
},
|
||||
{ // 16-bit
|
||||
{ GetRGBA5551_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetRGBA5551_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 2, 2048 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 2, 2048 }, // YUV
|
||||
{ GetIA88_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetIA88_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 2048 }, // CI as IA
|
||||
{ GetIA88_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetIA88_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 2048 }, // IA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 2048 }, // I
|
||||
{ GetRGBA5551_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetRGBA5551_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 2, 2048 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 2, 2048 }, // YUV
|
||||
{ GetIA88_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetIA88_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 2048 }, // CI as IA
|
||||
{ GetIA88_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetIA88_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 2048 }, // IA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 2048 }, // I
|
||||
},
|
||||
{ // 32-bit
|
||||
{ GetRGBA8888_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetRGBA8888_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 1024 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // YUV
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // CI
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // IA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // I
|
||||
{ GetRGBA8888_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetRGBA8888_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 1024 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // YUV
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // CI
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // IA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // I
|
||||
}
|
||||
},
|
||||
// DUMMY
|
||||
{ // Get16 glType16 glInternalFormat16 Get32 glType32 glInternalFormat32 autoFormat
|
||||
{ // 4-bit
|
||||
{ GetCI4RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI4RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 4, 4096 }, // CI (Banjo-Kazooie uses this, doesn't make sense, but it works...)
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 4, 8192 }, // YUV
|
||||
{ GetCI4RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI4RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 4, 4096 }, // CI
|
||||
{ GetCI4RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI4RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 4, 4096 }, // IA as CI
|
||||
{ GetCI4RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI4RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 4, 4096 }, // I as CI
|
||||
{ GetCI4RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI4RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 4, 4096 }, // CI (Banjo-Kazooie uses this, doesn't make sense, but it works...)
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 4, 8192 }, // YUV
|
||||
{ GetCI4RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI4RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 4, 4096 }, // CI
|
||||
{ GetCI4RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI4RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 4, 4096 }, // IA as CI
|
||||
{ GetCI4RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI4RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 4, 4096 }, // I as CI
|
||||
},
|
||||
{ // 8-bit
|
||||
{ GetCI8RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI8RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 3, 2048 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 4096 }, // YUV
|
||||
{ GetCI8RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI8RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 3, 2048 }, // CI
|
||||
{ GetCI8RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI8RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 3, 2048 }, // IA as CI
|
||||
{ GetCI8RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI8RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 3, 2048 }, // I as CI
|
||||
{ GetCI8RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI8RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 3, 2048 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 4096 }, // YUV
|
||||
{ GetCI8RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI8RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 3, 2048 }, // CI
|
||||
{ GetCI8RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI8RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 3, 2048 }, // IA as CI
|
||||
{ GetCI8RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI8RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 3, 2048 }, // I as CI
|
||||
},
|
||||
{ // 16-bit
|
||||
{ GetCI16RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetRGBA5551_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 2, 2048 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 2, 2048 }, // YUV
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 2048 }, // CI
|
||||
{ GetCI16RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI16RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 2, 2048 }, // IA as CI
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 2048 }, // I
|
||||
{ GetCI16RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetRGBA5551_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 2, 2048 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 2, 2048 }, // YUV
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 2048 }, // CI
|
||||
{ GetCI16RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI16RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 2, 2048 }, // IA as CI
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 2048 }, // I
|
||||
},
|
||||
{ // 32-bit
|
||||
{ GetRGBA8888_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetRGBA8888_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 1024 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // YUV
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // CI
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // IA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // I
|
||||
{ GetRGBA8888_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetRGBA8888_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 1024 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // YUV
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // CI
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // IA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // I
|
||||
}
|
||||
},
|
||||
// G_TT_RGBA16
|
||||
{ // Get16 glType16 glInternalFormat16 Get32 glType32 glInternalFormat32 autoFormat
|
||||
{ // 4-bit
|
||||
{ GetCI4RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI4RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 4, 4096 }, // CI (Banjo-Kazooie uses this, doesn't make sense, but it works...)
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 4, 8192 }, // YUV
|
||||
{ GetCI4RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI4RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 4, 4096 }, // CI
|
||||
{ GetCI4RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI4RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 4, 4096 }, // IA as CI
|
||||
{ GetCI4RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI4RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 4, 4096 }, // I as CI
|
||||
{ GetCI4RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI4RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 4, 4096 }, // CI (Banjo-Kazooie uses this, doesn't make sense, but it works...)
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 4, 8192 }, // YUV
|
||||
{ GetCI4RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI4RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 4, 4096 }, // CI
|
||||
{ GetCI4RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI4RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 4, 4096 }, // IA as CI
|
||||
{ GetCI4RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI4RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 4, 4096 }, // I as CI
|
||||
},
|
||||
{ // 8-bit
|
||||
{ GetCI8RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI8RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 3, 2048 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 4096 }, // YUV
|
||||
{ GetCI8RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI8RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 3, 2048 }, // CI
|
||||
{ GetCI8RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI8RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 3, 2048 }, // IA as CI
|
||||
{ GetCI8RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI8RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 3, 2048 }, // I as CI
|
||||
{ GetCI8RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI8RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 3, 2048 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 4096 }, // YUV
|
||||
{ GetCI8RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI8RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 3, 2048 }, // CI
|
||||
{ GetCI8RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI8RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 3, 2048 }, // IA as CI
|
||||
{ GetCI8RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI8RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 3, 2048 }, // I as CI
|
||||
},
|
||||
{ // 16-bit
|
||||
{ GetCI16RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetRGBA5551_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 2, 2048 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 2, 2048 }, // YUV
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 2048 }, // CI
|
||||
{ GetCI16RGBA_RGBA5551, GL_UNSIGNED_SHORT_5_5_5_1, GL_RGB5_A1, GetCI16RGBA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB5_A1, 2, 2048 }, // IA as CI
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 2048 }, // I
|
||||
{ GetCI16RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetRGBA5551_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 2, 2048 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 2, 2048 }, // YUV
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 2048 }, // CI
|
||||
{ GetCI16RGBA_RGBA5551, datatype::UNSIGNED_SHORT_5_5_5_1, internalcolor::RGB5_A1, GetCI16RGBA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGB5_A1, 2, 2048 }, // IA as CI
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 2048 }, // I
|
||||
},
|
||||
{ // 32-bit
|
||||
{ GetRGBA8888_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetRGBA8888_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 1024 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // YUV
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // CI
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // IA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA4, 0, 1024 }, // I
|
||||
{ GetRGBA8888_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetRGBA8888_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 1024 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // YUV
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // CI
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // IA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA4, 0, 1024 }, // I
|
||||
}
|
||||
},
|
||||
// G_TT_IA16
|
||||
{ // Get16 glType16 glInternalFormat16 Get32 glType32 glInternalFormat32 autoFormat
|
||||
{ // 4-bit
|
||||
{ GetCI4IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI4IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 4, 4096 }, // IA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 4, 8192 }, // YUV
|
||||
{ GetCI4IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI4IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 4, 4096 }, // CI
|
||||
{ GetCI4IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI4IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 4, 4096 }, // IA
|
||||
{ GetCI4IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI4IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 4, 4096 }, // I
|
||||
{ GetCI4IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI4IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 4, 4096 }, // IA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 4, 8192 }, // YUV
|
||||
{ GetCI4IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI4IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 4, 4096 }, // CI
|
||||
{ GetCI4IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI4IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 4, 4096 }, // IA
|
||||
{ GetCI4IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI4IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 4, 4096 }, // I
|
||||
},
|
||||
{ // 8-bit
|
||||
{ GetCI8IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI8IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 3, 2048 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 0, 4096 }, // YUV
|
||||
{ GetCI8IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI8IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 3, 2048 }, // CI
|
||||
{ GetCI8IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI8IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 3, 2048 }, // IA
|
||||
{ GetCI8IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI8IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 3, 2048 }, // I
|
||||
{ GetCI8IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI8IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 3, 2048 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 0, 4096 }, // YUV
|
||||
{ GetCI8IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI8IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 3, 2048 }, // CI
|
||||
{ GetCI8IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI8IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 3, 2048 }, // IA
|
||||
{ GetCI8IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI8IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 3, 2048 }, // I
|
||||
},
|
||||
{ // 16-bit
|
||||
{ GetCI16IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI16IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 2048 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 2048 }, // YUV
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 0, 2048 }, // CI
|
||||
{ GetCI16IA_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetCI16IA_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 2048 }, // IA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 0, 2048 }, // I
|
||||
{ GetCI16IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI16IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 2048 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 2048 }, // YUV
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 0, 2048 }, // CI
|
||||
{ GetCI16IA_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetCI16IA_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 2048 }, // IA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 0, 2048 }, // I
|
||||
},
|
||||
{ // 32-bit
|
||||
{ GetRGBA8888_RGBA4444, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetRGBA8888_RGBA8888, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 2, 1024 }, // RGBA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 0, 1024 }, // YUV
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 0, 1024 }, // CI
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 0, 1024 }, // IA
|
||||
{ GetNone, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA4, GetNone, GL_UNSIGNED_BYTE, GL_RGBA, GL_RGBA, 0, 1024 }, // I
|
||||
{ GetRGBA8888_RGBA4444, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetRGBA8888_RGBA8888, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 2, 1024 }, // RGBA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 0, 1024 }, // YUV
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 0, 1024 }, // CI
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 0, 1024 }, // IA
|
||||
{ GetNone, datatype::UNSIGNED_SHORT_4_4_4_4, internalcolor::RGBA4, GetNone, datatype::UNSIGNED_BYTE, internalcolor::RGBA, internalcolor::RGBA, 0, 1024 }, // I
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -703,15 +705,17 @@ inline
|
|||
void _updateCachedTexture(const GHQTexInfo & _info, CachedTexture *_pTexture)
|
||||
{
|
||||
_pTexture->textureBytes = _info.width * _info.height;
|
||||
switch (_info.format) {
|
||||
case GL_RGB:
|
||||
case GL_RGBA4:
|
||||
case GL_RGB5_A1:
|
||||
|
||||
Parameter format(_info.format);
|
||||
if (format == internalcolor::RGB8 ||
|
||||
format == internalcolor::RGBA4 ||
|
||||
format == internalcolor::RGB5_A1) {
|
||||
_pTexture->textureBytes <<= 1;
|
||||
break;
|
||||
default:
|
||||
}
|
||||
else {
|
||||
_pTexture->textureBytes <<= 2;
|
||||
}
|
||||
|
||||
_pTexture->realWidth = _info.width;
|
||||
_pTexture->realHeight = _info.height;
|
||||
_pTexture->bHDTexture = true;
|
||||
|
@ -781,11 +785,11 @@ void TextureCache::_loadBackground(CachedTexture *pTexture)
|
|||
u16 clampSClamp;
|
||||
u16 clampTClamp;
|
||||
GetTexelFunc GetTexel;
|
||||
GLuint glInternalFormat;
|
||||
GLenum glType;
|
||||
Parameter glInternalFormat;
|
||||
Parameter glType;
|
||||
|
||||
const TextureLoadParameters & loadParams = imageFormat[pTexture->format == 2 ? G_TT_RGBA16 : G_TT_NONE][pTexture->size][pTexture->format];
|
||||
if (loadParams.autoFormat == GL_RGBA) {
|
||||
if (loadParams.autoFormat == internalcolor::RGBA) {
|
||||
pTexture->textureBytes = (pTexture->realWidth * pTexture->realHeight) << 2;
|
||||
GetTexel = loadParams.Get32;
|
||||
glInternalFormat = loadParams.glInternalFormat32;
|
||||
|
@ -817,7 +821,7 @@ void TextureCache::_loadBackground(CachedTexture *pTexture)
|
|||
for (x = 0; x < pTexture->realWidth; x++) {
|
||||
tx = min(x, (u32)clampSClamp);
|
||||
|
||||
if (glInternalFormat == GL_RGBA)
|
||||
if (glInternalFormat == internalcolor::RGBA)
|
||||
((u32*)pDest)[j++] = GetTexel((u64*)pSrc, tx, 0, pTexture->palette);
|
||||
else
|
||||
((u16*)pDest)[j++] = GetTexel((u64*)pSrc, tx, 0, pTexture->palette);
|
||||
|
@ -830,10 +834,10 @@ void TextureCache::_loadBackground(CachedTexture *pTexture)
|
|||
TFH.isInited()) {
|
||||
GHQTexInfo ghqTexInfo;
|
||||
if (txfilter_filter((u8*)pDest, pTexture->realWidth, pTexture->realHeight,
|
||||
glInternalFormat, (uint64)pTexture->crc, &ghqTexInfo) != 0 &&
|
||||
(u16)u32(glInternalFormat), (uint64)pTexture->crc, &ghqTexInfo) != 0 &&
|
||||
ghqTexInfo.data != nullptr) {
|
||||
if (ghqTexInfo.width % 2 != 0 &&
|
||||
ghqTexInfo.format != GL_RGBA &&
|
||||
ghqTexInfo.format != u32(internalcolor::RGBA) &&
|
||||
m_curUnpackAlignment > 1)
|
||||
gfxContext.setTextureUnpackAlignment(2);
|
||||
Context::InitTextureParams params;
|
||||
|
@ -852,7 +856,7 @@ void TextureCache::_loadBackground(CachedTexture *pTexture)
|
|||
}
|
||||
}
|
||||
if (!bLoaded) {
|
||||
if (pTexture->realWidth % 2 != 0 && glInternalFormat != GL_RGBA)
|
||||
if (pTexture->realWidth % 2 != 0 && glInternalFormat != internalcolor::RGBA)
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 2);
|
||||
Context::InitTextureParams params;
|
||||
params.handle = pTexture->name;
|
||||
|
@ -966,7 +970,7 @@ void TextureCache::_loadDepthTexture(CachedTexture * _pTexture, u16* _pDest)
|
|||
*/
|
||||
void TextureCache::_getTextureDestData(CachedTexture& tmptex,
|
||||
u32* pDest,
|
||||
GLuint glInternalFormat,
|
||||
Parameter glInternalFormat,
|
||||
GetTexelFunc GetTexel,
|
||||
u16* pLine)
|
||||
{
|
||||
|
@ -1042,7 +1046,7 @@ void TextureCache::_getTextureDestData(CachedTexture& tmptex,
|
|||
for (y = 0; y < tmptex.realHeight; ++y) {
|
||||
pSrc = &TMEM[tmptex.tMem] + *pLine * y;
|
||||
for (x = 0; x < tmptex.realWidth / 2; x++) {
|
||||
if (glInternalFormat == GL_RGBA) {
|
||||
if (glInternalFormat == internalcolor::RGBA) {
|
||||
GetYUV_RGBA8888(pSrc, pDest + j, x);
|
||||
} else {
|
||||
GetYUV_RGBA4444(pSrc, (u16*)pDest + j, x);
|
||||
|
@ -1069,7 +1073,7 @@ void TextureCache::_getTextureDestData(CachedTexture& tmptex,
|
|||
tx ^= maskSMask;
|
||||
}
|
||||
|
||||
if (glInternalFormat == GL_RGBA) {
|
||||
if (glInternalFormat == internalcolor::RGBA) {
|
||||
pDest[j++] = GetTexel(pSrc, tx, i, tmptex.palette);
|
||||
} else {
|
||||
((u16*)pDest)[j++] = GetTexel(pSrc, tx, i, tmptex.palette);
|
||||
|
@ -1089,12 +1093,12 @@ void TextureCache::_load(u32 _tile, CachedTexture *_pTexture)
|
|||
|
||||
u16 line;
|
||||
GetTexelFunc GetTexel;
|
||||
GLuint glInternalFormat;
|
||||
GLenum glType;
|
||||
Parameter glInternalFormat;
|
||||
Parameter glType;
|
||||
u32 sizeShift;
|
||||
|
||||
const TextureLoadParameters & loadParams = imageFormat[gDP.otherMode.textureLUT][_pTexture->size][_pTexture->format];
|
||||
if (loadParams.autoFormat == GL_RGBA) {
|
||||
if (loadParams.autoFormat == internalcolor::RGBA) {
|
||||
sizeShift = 2;
|
||||
_pTexture->textureBytes = (_pTexture->realWidth * _pTexture->realHeight) << sizeShift;
|
||||
GetTexel = loadParams.Get32;
|
||||
|
@ -1136,7 +1140,7 @@ void TextureCache::_load(u32 _tile, CachedTexture *_pTexture)
|
|||
config.textureFilter.txHiresEnable != 0 &&
|
||||
config.textureFilter.txDump != 0) {
|
||||
txfilter_dmptx((u8*)pDest, tmptex.realWidth, tmptex.realHeight,
|
||||
tmptex.realWidth, glInternalFormat,
|
||||
tmptex.realWidth, (u16)u32(glInternalFormat),
|
||||
(unsigned short)(_pTexture->format << 8 | _pTexture->size),
|
||||
ricecrc);
|
||||
}
|
||||
|
@ -1149,7 +1153,7 @@ void TextureCache::_load(u32 _tile, CachedTexture *_pTexture)
|
|||
{
|
||||
GHQTexInfo ghqTexInfo;
|
||||
if (txfilter_filter((u8*)pDest, tmptex.realWidth, tmptex.realHeight,
|
||||
glInternalFormat, (uint64)_pTexture->crc,
|
||||
(u16)u32(glInternalFormat), (uint64)_pTexture->crc,
|
||||
&ghqTexInfo) != 0 && ghqTexInfo.data != nullptr) {
|
||||
Context::InitTextureParams params;
|
||||
params.handle = _pTexture->name;
|
||||
|
@ -1168,7 +1172,7 @@ void TextureCache::_load(u32 _tile, CachedTexture *_pTexture)
|
|||
}
|
||||
if (!bLoaded) {
|
||||
if (tmptex.realWidth % 2 != 0 &&
|
||||
glInternalFormat != GL_RGBA &&
|
||||
glInternalFormat != internalcolor::RGBA &&
|
||||
m_curUnpackAlignment > 1)
|
||||
gfxContext.setTextureUnpackAlignment(2);
|
||||
Context::InitTextureParams params;
|
||||
|
@ -1178,9 +1182,9 @@ void TextureCache::_load(u32 _tile, CachedTexture *_pTexture)
|
|||
params.msaaLevel = 0;
|
||||
params.width = tmptex.realWidth;
|
||||
params.height = tmptex.realHeight;
|
||||
params.internalFormat = Parameter(glInternalFormat);
|
||||
params.internalFormat = glInternalFormat;
|
||||
params.format = color::RGBA;
|
||||
params.dataType = Parameter(glType);
|
||||
params.dataType = glType;
|
||||
params.data = pDest;
|
||||
gfxContext.init2DTexture(params);
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "CRC.h"
|
||||
#include "convert.h"
|
||||
#include "Graphics/ObjectHandle.h"
|
||||
#include "Graphics/Parameter.h"
|
||||
|
||||
typedef u32 (*GetTexelFunc)( u64 *src, u16 x, u16 i, u8 palette );
|
||||
|
||||
|
@ -80,7 +81,7 @@ private:
|
|||
void _updateBackground();
|
||||
void _clear();
|
||||
void _initDummyTexture(CachedTexture * _pDummy);
|
||||
void _getTextureDestData(CachedTexture& tmptex, u32* pDest, GLuint glInternalFormat, GetTexelFunc GetTexel, u16* pLine);
|
||||
void _getTextureDestData(CachedTexture& tmptex, u32* pDest, graphics::Parameter glInternalFormat, GetTexelFunc GetTexel, u16* pLine);
|
||||
|
||||
typedef std::list<CachedTexture> Textures;
|
||||
typedef std::map<u32, Textures::iterator> Texture_Locations;
|
||||
|
|
Loading…
Reference in New Issue
Block a user