static inline void ImportSurface(WritableImageBuffer<PixelTraits> &buffer, const UncompressedImage &uncompressed) { buffer.Allocate(uncompressed.GetWidth(), uncompressed.GetHeight()); switch (uncompressed.GetFormat()) { case UncompressedImage::Format::INVALID: assert(false); gcc_unreachable(); case UncompressedImage::Format::RGB: case UncompressedImage::Format::RGBA: ConvertFromRGB<PixelTraits>(buffer, (const uint8_t *)uncompressed.GetData(), uncompressed.GetPitch()); break; case UncompressedImage::Format::GRAY: ConvertFromGray<PixelTraits>(buffer, (const uint8_t *)uncompressed.GetData(), uncompressed.GetPitch()); break; } }
void UnitSymbol::Load(ResourceId id) { #ifdef USE_MEMORY_CANVAS assert(IsScreenInitialized()); assert(buffer.data == nullptr); ResourceLoader::Data data = ResourceLoader::Load(id); assert(!data.IsNull()); const UncompressedImage uncompressed = LoadPNG(data.data, data.size); assert(uncompressed.GetFormat() == UncompressedImage::Format::GRAY); const size_t size = uncompressed.GetPitch() * uncompressed.GetHeight(); buffer.data = new Luminosity8[size]; memcpy(buffer.data, uncompressed.GetData(), size); buffer.pitch = uncompressed.GetPitch(); buffer.width = uncompressed.GetWidth(); buffer.height = uncompressed.GetHeight(); #else bitmap.Load(id, Bitmap::Type::MONO); size = bitmap.GetSize(); #endif }
void UnitSymbol::Load(unsigned id) { assert(IsScreenInitialized()); assert(buffer.data == nullptr); ResourceLoader::Data data = ResourceLoader::Load(id); assert(data.first != nullptr); const UncompressedImage uncompressed = LoadPNG(data.first, data.second); assert(uncompressed.GetFormat() == UncompressedImage::Format::GRAY); const size_t size = uncompressed.GetPitch() * uncompressed.GetHeight(); buffer.data = new Luminosity8[size]; memcpy(buffer.data, uncompressed.GetData(), size); buffer.pitch = uncompressed.GetPitch(); buffer.width = uncompressed.GetWidth(); buffer.height = uncompressed.GetHeight(); }