mirror of
https://github.com/love2d/love.git
synced 2026-08-20 04:30:09 +02:00
Allow BC6 and BC7 compressed DDS files to be loaded into Images.
This commit is contained in:
@@ -8,23 +8,23 @@
|
|||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||||
A9255DD11043183600BA1496 /* FreeType.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4810420B4A007D418B /* FreeType.framework */; };
|
A9255DD11043183600BA1496 /* FreeType.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4810420B4A007D418B /* FreeType.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
A9255DD31043183600BA1496 /* Lua.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; };
|
A9255DD31043183600BA1496 /* Lua.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
A9255E031043195A00BA1496 /* Vorbis.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255E021043195A00BA1496 /* Vorbis.framework */; };
|
A9255E031043195A00BA1496 /* Vorbis.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255E021043195A00BA1496 /* Vorbis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
A9255F431043240F00BA1496 /* IL.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F421043240F00BA1496 /* IL.framework */; };
|
A9255F431043240F00BA1496 /* IL.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F421043240F00BA1496 /* IL.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; };
|
A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
A93E6E5510420B57007D418B /* Lua.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; };
|
A93E6E5510420B57007D418B /* Lua.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; };
|
||||||
A93E6EED10420BA8007D418B /* love.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A93E6A3410420AC0007D418B /* love.cpp */; };
|
A93E6EED10420BA8007D418B /* love.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A93E6A3410420AC0007D418B /* love.cpp */; };
|
||||||
A9D307F2106635D3004FEDF8 /* physfs.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9D307E9106635C3004FEDF8 /* physfs.framework */; };
|
A9D307F2106635D3004FEDF8 /* physfs.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9D307E9106635C3004FEDF8 /* physfs.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
A9DEC1C11046EFA70049C70C /* Love.icns in Resources */ = {isa = PBXBuildFile; fileRef = A9DEC1BF1046EFA60049C70C /* Love.icns */; };
|
A9DEC1C11046EFA70049C70C /* Love.icns in Resources */ = {isa = PBXBuildFile; fileRef = A9DEC1BF1046EFA60049C70C /* Love.icns */; };
|
||||||
A9DEC1C21046EFA70049C70C /* LoveDocument.icns in Resources */ = {isa = PBXBuildFile; fileRef = A9DEC1C01046EFA70049C70C /* LoveDocument.icns */; };
|
A9DEC1C21046EFA70049C70C /* LoveDocument.icns in Resources */ = {isa = PBXBuildFile; fileRef = A9DEC1C01046EFA70049C70C /* LoveDocument.icns */; };
|
||||||
A9F169AC109E825000FC83D1 /* mpg123.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F169A6109E824900FC83D1 /* mpg123.framework */; };
|
A9F169AC109E825000FC83D1 /* mpg123.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F169A6109E824900FC83D1 /* mpg123.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
A9F169AD109E825000FC83D1 /* libmodplug.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F16926109E7BAD00FC83D1 /* libmodplug.framework */; };
|
A9F169AD109E825000FC83D1 /* libmodplug.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F16926109E7BAD00FC83D1 /* libmodplug.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
FA08F69616C766E000F007B5 /* love.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
|
FA08F69616C766E000F007B5 /* love.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
|
||||||
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
|
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
FA9B4A0A16E1579F00074F42 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; };
|
FA9B4A0A16E1579F00074F42 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; };
|
||||||
FA9B4A0B16E157B500074F42 /* SDL2.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; };
|
FA9B4A0B16E157B500074F42 /* SDL2.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
FAAFF04716CB120000CCDE45 /* OpenAL-Soft.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */; };
|
FAAFF04716CB120000CCDE45 /* OpenAL-Soft.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
FAC1A449196F5DC600125284 /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = FAC1A448196F5DC600125284 /* license.txt */; };
|
FAC1A449196F5DC600125284 /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = FAC1A448196F5DC600125284 /* license.txt */; };
|
||||||
FAC8E8D416F3C468004DADF3 /* OSX.mm in Sources */ = {isa = PBXBuildFile; fileRef = FAC8E8D316F3C468004DADF3 /* OSX.mm */; };
|
FAC8E8D416F3C468004DADF3 /* OSX.mm in Sources */ = {isa = PBXBuildFile; fileRef = FAC8E8D316F3C468004DADF3 /* OSX.mm */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
@@ -201,7 +201,7 @@
|
|||||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 0510;
|
LastUpgradeCheck = 0610;
|
||||||
};
|
};
|
||||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "love" */;
|
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "love" */;
|
||||||
compatibilityVersion = "Xcode 3.2";
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ static Format parseDX10Format(DXGIFormat fmt)
|
|||||||
f = FORMAT_BC6H;
|
f = FORMAT_BC6H;
|
||||||
break;
|
break;
|
||||||
case DXGI_FORMAT_BC6H_SF16:
|
case DXGI_FORMAT_BC6H_SF16:
|
||||||
f = FORAMT_BC6Hs;
|
f = FORMAT_BC6Hs;
|
||||||
break;
|
break;
|
||||||
case DXGI_FORMAT_BC7_TYPELESS:
|
case DXGI_FORMAT_BC7_TYPELESS:
|
||||||
case DXGI_FORMAT_BC7_UNORM:
|
case DXGI_FORMAT_BC7_UNORM:
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ enum Format
|
|||||||
FORMAT_BC5,
|
FORMAT_BC5,
|
||||||
FORMAT_BC5s,
|
FORMAT_BC5s,
|
||||||
FORMAT_BC6H,
|
FORMAT_BC6H,
|
||||||
FORAMT_BC6Hs,
|
FORMAT_BC6Hs,
|
||||||
FORMAT_BC7,
|
FORMAT_BC7,
|
||||||
FORMAT_BC7srgb, // sRGB color space.
|
FORMAT_BC7srgb, // sRGB color space.
|
||||||
FORMAT_UNKNOWN
|
FORMAT_UNKNOWN
|
||||||
|
|||||||
@@ -623,6 +623,17 @@ GLenum Image::getCompressedFormat(image::CompressedData::Format cformat) const
|
|||||||
return GL_COMPRESSED_RG_RGTC2;
|
return GL_COMPRESSED_RG_RGTC2;
|
||||||
case image::CompressedData::FORMAT_BC5s:
|
case image::CompressedData::FORMAT_BC5s:
|
||||||
return GL_COMPRESSED_SIGNED_RG_RGTC2;
|
return GL_COMPRESSED_SIGNED_RG_RGTC2;
|
||||||
|
case image::CompressedData::FORMAT_BC6H:
|
||||||
|
return GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB;
|
||||||
|
case image::CompressedData::FORMAT_BC6Hs:
|
||||||
|
return GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB;
|
||||||
|
case image::CompressedData::FORMAT_BC7:
|
||||||
|
if (srgb)
|
||||||
|
return GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB;
|
||||||
|
else
|
||||||
|
return GL_COMPRESSED_RGBA_BPTC_UNORM_ARB;
|
||||||
|
case image::CompressedData::FORMAT_BC7SRGB:
|
||||||
|
return GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB;
|
||||||
default:
|
default:
|
||||||
if (srgb)
|
if (srgb)
|
||||||
return GL_SRGB8_ALPHA8;
|
return GL_SRGB8_ALPHA8;
|
||||||
@@ -672,11 +683,14 @@ bool Image::hasCompressedTextureSupport(image::CompressedData::Format format)
|
|||||||
case image::CompressedData::FORMAT_BC5:
|
case image::CompressedData::FORMAT_BC5:
|
||||||
case image::CompressedData::FORMAT_BC5s:
|
case image::CompressedData::FORMAT_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);
|
||||||
|
case image::CompressedData::FORMAT_BC6H:
|
||||||
|
case image::CompressedData::FORMAT_BC6Hs:
|
||||||
|
case image::CompressedData::FORMAT_BC7:
|
||||||
|
case image::CompressedData::FORMAT_BC7SRGB:
|
||||||
|
return GLEE_VERSION_4_2 || GLEE_ARB_texture_compression_bptc;
|
||||||
default:
|
default:
|
||||||
break;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Image::hasSRGBSupport()
|
bool Image::hasSRGBSupport()
|
||||||
|
|||||||
@@ -110,6 +110,10 @@ StringMap<CompressedData::Format, CompressedData::FORMAT_MAX_ENUM>::Entry Compre
|
|||||||
{"bc4s", CompressedData::FORMAT_BC4s},
|
{"bc4s", CompressedData::FORMAT_BC4s},
|
||||||
{"bc5", CompressedData::FORMAT_BC5},
|
{"bc5", CompressedData::FORMAT_BC5},
|
||||||
{"bc5s", CompressedData::FORMAT_BC5s},
|
{"bc5s", CompressedData::FORMAT_BC5s},
|
||||||
|
{"bc6h", CompressedData::FORMAT_BC6H},
|
||||||
|
{"bc6hs", CompressedData::FORMAT_BC6Hs},
|
||||||
|
{"bc7", CompressedData::FORMAT_BC7},
|
||||||
|
{"bc7srgb", CompressedData::FORMAT_BC7SRGB},
|
||||||
};
|
};
|
||||||
|
|
||||||
StringMap<CompressedData::Format, CompressedData::FORMAT_MAX_ENUM> CompressedData::formats(CompressedData::formatEntries, sizeof(CompressedData::formatEntries));
|
StringMap<CompressedData::Format, CompressedData::FORMAT_MAX_ENUM> CompressedData::formats(CompressedData::formatEntries, sizeof(CompressedData::formatEntries));
|
||||||
|
|||||||
@@ -54,6 +54,10 @@ public:
|
|||||||
FORMAT_BC4s,
|
FORMAT_BC4s,
|
||||||
FORMAT_BC5,
|
FORMAT_BC5,
|
||||||
FORMAT_BC5s,
|
FORMAT_BC5s,
|
||||||
|
FORMAT_BC6H,
|
||||||
|
FORMAT_BC6Hs,
|
||||||
|
FORMAT_BC7,
|
||||||
|
FORMAT_BC7SRGB,
|
||||||
FORMAT_MAX_ENUM
|
FORMAT_MAX_ENUM
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -117,11 +117,17 @@ CompressedData::Format ddsHandler::convertFormat(dds::Format ddsformat)
|
|||||||
return CompressedData::FORMAT_BC5;
|
return CompressedData::FORMAT_BC5;
|
||||||
case dds::FORMAT_BC5s:
|
case dds::FORMAT_BC5s:
|
||||||
return CompressedData::FORMAT_BC5s;
|
return CompressedData::FORMAT_BC5s;
|
||||||
|
case dds::FORMAT_BC6H:
|
||||||
|
return CompressedData::FORMAT_BC6H;
|
||||||
|
case dds::FORMAT_BC6Hs:
|
||||||
|
return CompressedData::FORMAT_BC6Hs;
|
||||||
|
case dds::FORMAT_BC7:
|
||||||
|
return CompressedData::FORMAT_BC7;
|
||||||
|
case dds::FORMAT_BC7srgb:
|
||||||
|
return CompressedData::FORMAT_BC7SRGB;
|
||||||
default:
|
default:
|
||||||
return CompressedData::FORMAT_UNKNOWN;
|
return CompressedData::FORMAT_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
return CompressedData::FORMAT_UNKNOWN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // magpie
|
} // magpie
|
||||||
|
|||||||
Reference in New Issue
Block a user