mirror of
https://github.com/love2d/love.git
synced 2026-08-20 04:30:09 +02:00
Added support for BC4 (aka 3Dc+) compressed textures
This commit is contained in:
@@ -615,6 +615,10 @@ GLenum Image::getCompressedFormat(image::CompressedData::TextureType type) const
|
|||||||
return GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
|
return GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
|
||||||
case image::CompressedData::TYPE_DXT5:
|
case image::CompressedData::TYPE_DXT5:
|
||||||
return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
|
return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
|
||||||
|
case image::CompressedData::TYPE_BC4:
|
||||||
|
return GL_COMPRESSED_RED_RGTC1;
|
||||||
|
case image::CompressedData::TYPE_BC4s:
|
||||||
|
return GL_COMPRESSED_SIGNED_RED_RGTC1;
|
||||||
case image::CompressedData::TYPE_BC5:
|
case image::CompressedData::TYPE_BC5:
|
||||||
return GL_COMPRESSED_RG_RGTC2;
|
return GL_COMPRESSED_RG_RGTC2;
|
||||||
case image::CompressedData::TYPE_BC5s:
|
case image::CompressedData::TYPE_BC5s:
|
||||||
@@ -660,6 +664,8 @@ bool Image::hasCompressedTextureSupport(image::CompressedData::TextureType type)
|
|||||||
case image::CompressedData::TYPE_DXT3:
|
case image::CompressedData::TYPE_DXT3:
|
||||||
case image::CompressedData::TYPE_DXT5:
|
case image::CompressedData::TYPE_DXT5:
|
||||||
return GLEE_EXT_texture_compression_s3tc;
|
return GLEE_EXT_texture_compression_s3tc;
|
||||||
|
case image::CompressedData::TYPE_BC4:
|
||||||
|
case image::CompressedData::TYPE_BC4s:
|
||||||
case image::CompressedData::TYPE_BC5:
|
case image::CompressedData::TYPE_BC5:
|
||||||
case image::CompressedData::TYPE_BC5s:
|
case image::CompressedData::TYPE_BC5s:
|
||||||
return (GLEE_VERSION_3_0 || GLEE_ARB_texture_compression_rgtc || GLEE_EXT_texture_compression_rgtc);
|
return (GLEE_VERSION_3_0 || GLEE_ARB_texture_compression_rgtc || GLEE_EXT_texture_compression_rgtc);
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ void VBO::fill(size_t offset, size_t size, const void *data)
|
|||||||
}
|
}
|
||||||
else if (GLEE_APPLE_flush_buffer_range)
|
else if (GLEE_APPLE_flush_buffer_range)
|
||||||
{
|
{
|
||||||
void *mapdata = glMapBuffer(getTarget(), GL_WRITE_ONLY);
|
void *mapdata = glMapBufferARB(getTarget(), GL_WRITE_ONLY);
|
||||||
|
|
||||||
if (mapdata)
|
if (mapdata)
|
||||||
{
|
{
|
||||||
@@ -230,7 +230,7 @@ void VBO::fill(size_t offset, size_t size, const void *data)
|
|||||||
glFlushMappedBufferRangeAPPLE(getTarget(), offset, size);
|
glFlushMappedBufferRangeAPPLE(getTarget(), offset, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
glUnmapBuffer(getTarget());
|
glUnmapBufferARB(getTarget());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -115,6 +115,8 @@ StringMap<CompressedData::TextureType, CompressedData::TYPE_MAX_ENUM>::Entry Com
|
|||||||
{"dxt1", CompressedData::TYPE_DXT1},
|
{"dxt1", CompressedData::TYPE_DXT1},
|
||||||
{"dxt3", CompressedData::TYPE_DXT3},
|
{"dxt3", CompressedData::TYPE_DXT3},
|
||||||
{"dxt5", CompressedData::TYPE_DXT5},
|
{"dxt5", CompressedData::TYPE_DXT5},
|
||||||
|
{"bc4", CompressedData::TYPE_BC4},
|
||||||
|
{"bc4s", CompressedData::TYPE_BC4s},
|
||||||
{"bc5", CompressedData::TYPE_BC5},
|
{"bc5", CompressedData::TYPE_BC5},
|
||||||
{"bc5s", CompressedData::TYPE_BC5s},
|
{"bc5s", CompressedData::TYPE_BC5s},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ public:
|
|||||||
TYPE_DXT1,
|
TYPE_DXT1,
|
||||||
TYPE_DXT3,
|
TYPE_DXT3,
|
||||||
TYPE_DXT5,
|
TYPE_DXT5,
|
||||||
|
TYPE_BC4,
|
||||||
|
TYPE_BC4s,
|
||||||
TYPE_BC5,
|
TYPE_BC5,
|
||||||
TYPE_BC5s,
|
TYPE_BC5s,
|
||||||
TYPE_MAX_ENUM
|
TYPE_MAX_ENUM
|
||||||
|
|||||||
@@ -101,6 +101,10 @@ CompressedData::TextureType ddsHandler::convertFormat(dds::Format ddsformat)
|
|||||||
return CompressedData::TYPE_DXT3;
|
return CompressedData::TYPE_DXT3;
|
||||||
case dds::FORMAT_DXT5:
|
case dds::FORMAT_DXT5:
|
||||||
return CompressedData::TYPE_DXT5;
|
return CompressedData::TYPE_DXT5;
|
||||||
|
case dds::FORMAT_BC4:
|
||||||
|
return CompressedData::TYPE_BC4;
|
||||||
|
case dds::FORMAT_BC4s:
|
||||||
|
return CompressedData::TYPE_BC4s;
|
||||||
case dds::FORMAT_BC5:
|
case dds::FORMAT_BC5:
|
||||||
return CompressedData::TYPE_BC5;
|
return CompressedData::TYPE_BC5;
|
||||||
case dds::FORMAT_BC5s:
|
case dds::FORMAT_BC5s:
|
||||||
|
|||||||
Reference in New Issue
Block a user