diff --git a/src/lolimgui.h b/src/lolimgui.h
index 379e0c82..780c049d 100644
--- a/src/lolimgui.h
+++ b/src/lolimgui.h
@@ -12,8 +12,21 @@
 
 #pragma once
 
+#define IM_VEC2_CLASS_EXTRA ImVec2(const lol::vec2 &v) { x = v.x; y = v.y; } \
+                            ImVec2(const lol::ivec2 &v) : ImVec2(lol::vec2(v)) { } \
+                            operator lol::vec2() const { return lol::vec2(x, y); } \
+                            operator lol::ivec2() const { return lol::ivec2(lol::vec2(x, y)); }
+
+#define IM_VEC4_CLASS_EXTRA ImVec4(const lol::vec4 &v) { x = v.x; y = v.y; z = v.z; w = v.w; } \
+                            ImVec4(const lol::ivec4 &v) : ImVec4(lol::vec4(v)) { } \
+                            operator lol::vec4() { return lol::vec4(x, y, z, w); } \
+                            operator lol::ivec4() const { return lol::ivec4(lol::vec4(x, y, z, w)); }
+
 #include "imgui.h"
 
+#undef IM_VEC2_CLASS_EXTRA
+#undef IM_VEC4_CLASS_EXTRA
+
 //Imgui extension ---------------------------------------------------------------------------------
 typedef int ImGuiSetDock;           // condition flags for Set*()           // enum ImGuiSetCond_
 
diff --git a/src/textureimage.cpp b/src/textureimage.cpp
index eb4f21e8..f3d6f3ed 100644
--- a/src/textureimage.cpp
+++ b/src/textureimage.cpp
@@ -162,6 +162,11 @@ Image const * TextureImage::GetImage() const
     return m_data->m_image;
 }
 
+ivec2 TextureImage::GetImageSize() const
+{
+    return m_data->m_image_size;
+}
+
 ivec2 TextureImage::GetTextureSize() const
 {
     return m_data->m_texture_size;
diff --git a/src/textureimage.h b/src/textureimage.h
index 662586d6..307c33d7 100644
--- a/src/textureimage.h
+++ b/src/textureimage.h
@@ -57,6 +57,7 @@ public:
     Texture const * GetTexture() const;
     Image * GetImage();
     Image const * GetImage() const;
+    ivec2 GetImageSize() const;
     ivec2 GetTextureSize() const;
     void Bind();
     void Unbind();