mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 13:00:32 +00:00
Add helper #defines to allow declaring embedded resources by name
* We want to be able to declare a 'name' of a resource and then fetch it later. To do this we create a tiny little reference (either an int on windows, or a pointer+length elsewhere), then actually fetch the data later.
This commit is contained in:
@@ -32,9 +32,19 @@
|
||||
|
||||
#define OS_DEBUG_BREAK() raise(SIGTRAP)
|
||||
|
||||
#define GetEmbeddedResource(filename) \
|
||||
string(&CONCAT(data_, filename)[0], \
|
||||
&CONCAT(data_, filename)[0] + CONCAT(CONCAT(data_, filename), _len))
|
||||
struct EmbeddedResourceType
|
||||
{
|
||||
EmbeddedResourceType(const unsigned char *b, int l) : base(b), len(l) {}
|
||||
const unsigned char *base;
|
||||
int len;
|
||||
std::string Get() const { return std::string(base, base + len); }
|
||||
};
|
||||
|
||||
#define EmbeddedResource(filename) \
|
||||
EmbeddedResourceType(&CONCAT(data_, filename)[0], CONCAT(CONCAT(data_, filename), _len))
|
||||
|
||||
#define GetEmbeddedResource(filename) EmbeddedResource(filename).Get()
|
||||
#define GetDynamicEmbeddedResource(resource) resource.Get()
|
||||
|
||||
namespace OSUtility
|
||||
{
|
||||
|
||||
@@ -36,8 +36,11 @@
|
||||
|
||||
#define OS_DEBUG_BREAK() __debugbreak()
|
||||
|
||||
#define GetEmbeddedResource(filename) GetEmbeddedResourceWin32(CONCAT(RESOURCE_, filename))
|
||||
string GetEmbeddedResourceWin32(int resource);
|
||||
#define EmbeddedResourceType int
|
||||
#define EmbeddedResource(filename) CONCAT(RESOURCE_, filename)
|
||||
|
||||
#define GetEmbeddedResource(filename) GetDynamicEmbeddedResource(EmbeddedResource(filename))
|
||||
std::string GetDynamicEmbeddedResource(int resource);
|
||||
|
||||
namespace StringFormat
|
||||
{
|
||||
|
||||
@@ -41,7 +41,7 @@ using std::wstring;
|
||||
// gives us an address to identify this dll with
|
||||
static int dllLocator = 0;
|
||||
|
||||
string GetEmbeddedResourceWin32(int resource)
|
||||
std::string GetDynamicEmbeddedResource(int resource)
|
||||
{
|
||||
HMODULE mod = NULL;
|
||||
GetModuleHandleExA(
|
||||
|
||||
Reference in New Issue
Block a user