metaforce/imgui/imconfig_user.h

35 lines
1.6 KiB
C
Raw Normal View History

2021-05-24 14:25:31 -07:00
#include <cstdint>
2021-06-03 14:35:56 -07:00
#include "Runtime/RetroTypes.hpp"
2021-05-30 05:02:45 -07:00
#include <zeus/CVector2f.hpp>
2021-05-24 14:25:31 -07:00
#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
// Use 32-bit index type for boo
#define ImDrawIdx uint32_t
2021-05-26 21:56:25 -07:00
2021-06-03 14:35:56 -07:00
enum ImUserTextureID : uint8_t {
2021-05-26 21:56:25 -07:00
ImGuiUserTextureID_Atlas,
ImGuiUserTextureID_MetaforceIcon,
ImGuiUserTextureID_MAX,
};
2021-06-03 14:35:56 -07:00
struct ImUserTexture {
ImUserTextureID textureId = ImGuiUserTextureID_MAX;
metaforce::SObjectTag objectTag{};
ImUserTexture() noexcept = default;
ImUserTexture(long /* null */) noexcept {}
ImUserTexture(ImUserTextureID textureId) noexcept : textureId(textureId) {}
ImUserTexture(metaforce::SObjectTag objectTag) noexcept : objectTag(objectTag) {}
bool operator==(const ImUserTexture& rhs) const { return textureId == rhs.textureId && objectTag == rhs.objectTag; }
operator intptr_t() const { return (intptr_t(textureId) << 56) | objectTag.id.Value(); }
};
#define ImTextureID ImUserTexture
2021-05-30 05:02:45 -07:00
#define IM_VEC2_CLASS_EXTRA \
ImVec2(const zeus::CVector2f& v) { \
x = v.x(); \
y = v.y(); \
} \
operator zeus::CVector2f() const { return zeus::CVector2f{x, y}; }