rodecomp/Source/Resource/Bitmap/BitmapImage.h
ragnarok-clanker ff8b5d2a9d Confirm fn_07850 (CBitmapRes::Unload)
Batch #11732 by Yommy: 0 byte-identical, 1 confirmed by peer review.

- fn_07850 CBitmapRes::Unload: logic confirmed by peer review (already on main)

Peer-reviewed-by: dori, cremane, StrawberrysherbetIX
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-11-05 03:08:16 +00:00

45 lines
1 KiB
C++

#ifndef RAGNAROK_SOURCE_RESOURCE_BITMAP_BITMAPIMAGE_H
#define RAGNAROK_SOURCE_RESOURCE_BITMAP_BITMAPIMAGE_H
#include <cstdint>
#include <cstdlib>
struct BitmapImage {
/* 0110 */ int alpha;
/* 0114 */ int width;
/* 0118 */ int height;
/* 011C */ std::uint32_t* pixels;
/* 0120 */ void* auxiliary;
BitmapImage();
void Clear();
bool CreateAuxiliary(int mode);
std::uint32_t Pixel(int x, int y) const;
void ClearAuxiliary();
bool DecodeBitmap(const void* data, int bytes, bool iconOnly);
bool DecodeTga(const void* data, int bytes);
bool DecodePng(const void* data, int bytes, const char* name);
bool DecodeJpeg(const void* data, int bytes);
};
// INLINED
inline void BitmapImage::Clear() {
if (this->pixels) {
std::free(this->pixels);
}
if (this->auxiliary) {
std::free(this->auxiliary);
}
this->width = this->height = 0;
this->pixels = nullptr;
this->auxiliary = nullptr;
}
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(BitmapImage) == 20);
#endif
#endif