load into buffer
This commit is contained in:
parent
09475ed28f
commit
2306f24e42
1 changed files with 24 additions and 0 deletions
|
|
@ -32,6 +32,12 @@ export namespace Crafter {
|
|||
Transparent // Color blending is used
|
||||
};
|
||||
|
||||
struct TextureInfo {
|
||||
std::uint16_t sizeX;
|
||||
std::uint16_t sizeY;
|
||||
OpaqueType opaque;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct TextureAsset {
|
||||
std::uint16_t sizeX;
|
||||
|
|
@ -62,6 +68,24 @@ export namespace Crafter {
|
|||
return tex;
|
||||
}
|
||||
|
||||
static TextureInfo LoadInfo(fs::path path) {
|
||||
TextureInfo info;
|
||||
|
||||
std::ifstream file(path, std::ios::binary);
|
||||
|
||||
file.read(reinterpret_cast<char*>(&info.sizeX), sizeof(info.sizeX));
|
||||
file.read(reinterpret_cast<char*>(&info.sizeY), sizeof(info.sizeY));
|
||||
file.read(reinterpret_cast<char*>(&info.opaque), sizeof(info.opaque));
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
static void Load(fs::path path, T* pixels, std::uint16_t sizeX, std::uint16_t sizeY) {
|
||||
std::ifstream file(path, std::ios::binary);
|
||||
file.seekg(sizeof(std::uint16_t) + sizeof(std::uint16_t) + sizeof(std::uint8_t), std::ios::cur);
|
||||
file.read(reinterpret_cast<char*>(pixels), sizeX * sizeY * sizeof(T));
|
||||
}
|
||||
|
||||
template <typename TT>
|
||||
static TextureAsset<T> LoadPNG(fs::path path) {
|
||||
TextureAsset<T> tex;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue