vkdoom_m/src/common/widgets/widgetresourcedata.cpp
Magnus Norddahl 0f5987562c Load widget resources from lumps
Add banner
2023-12-28 18:39:04 +01:00

41 lines
1,013 B
C++

#include <zwidget/core/resourcedata.h>
#include "filesystem.h"
#include "printf.h"
FResourceFile* WidgetResources;
void InitWidgetResources(const char* filename)
{
WidgetResources = FResourceFile::OpenResourceFile(filename);
if (!WidgetResources)
I_FatalError("Unable to open %s", filename);
}
std::vector<uint8_t> LoadWidgetFontData(const std::string& name)
{
auto lump = WidgetResources->FindLump("newmenufont.ttf");
if (!lump)
I_FatalError("Unable to find %s", name.c_str());
auto data = lump->Lock();
std::vector<uint8_t> buffer;
buffer.resize(lump->Size());
memcpy(buffer.data(), data, buffer.size());
lump->Unlock();
return buffer;
}
std::vector<uint8_t> LoadWidgetImageData(const std::string& name)
{
auto lump = WidgetResources->FindLump(name.c_str());
if (!lump)
I_FatalError("Unable to find %s", name.c_str());
auto data = lump->Lock();
std::vector<uint8_t> buffer;
buffer.resize(lump->Size());
memcpy(buffer.data(), data, buffer.size());
lump->Unlock();
return buffer;
}