rodecomp/Source/Resource/Bitmap/BitmapImage.h
ragnarok-clanker acd1372bbf Confirm 3 functions in Source/Resource/Bitmap/BitmapImage.h, Source/Resource/Bitmap/BitmapImage.cpp, ...
Batch #13577 by eAthena: 3 byte-identical, 0 confirmed by peer review.

- fn_07861 CBitmapRes::CBitmapRes: byte-identical (already on main)
- fn_07852 CGifRes::Create: byte-identical (already on main)
- fn_07862 CGifRes::CGifRes: byte-identical (already on main)

Merged automatically: every function is byte-identical to the original.
2026-11-06 20:41:02 +00:00

47 lines
1.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;
// INLINED
BitmapImage() : alpha(0), pixels(nullptr), auxiliary(nullptr) {
}
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