#ifndef RAGNAROK_SOURCE_RESOURCE_BITMAP_BITMAPRESOURCE_H #define RAGNAROK_SOURCE_RESOURCE_BITMAP_BITMAPRESOURCE_H #include "Resource/Bitmap/BitmapImage.h" #include "Resource/Resource.h" class IJL15Runtime; class ResourceBytes { public: virtual bool Open(const char* name) = 0; virtual const void* Data() const = 0; virtual int Size() const = 0; virtual void Close() = 0; protected: ~ResourceBytes() = default; }; struct BitmapResourceContext { ResourceBytes& file; IJL15Runtime& jpeg; CRenderSystemBase* renderSystem; }; class CBitmapRes : public CRes { public: explicit CBitmapRes(BitmapResourceContext& context); ~CBitmapRes() override; CBitmapRes* Create() override; bool Load(const char* name) override; void Unload() override; virtual bool Decode(const char* name, const void* data, int bytes, bool iconOnly); BitmapImage image; private: BitmapResourceContext* m_context; }; #if defined(_WIN32) && !defined(_WIN64) static_assert(sizeof(CBitmapRes) == 296); #endif #endif