|
@@ -187,7 +187,7 @@ void LolImGui::TickGame(float seconds) |
|
|
|
|
|
|
|
|
ImGuiIO& io = ImGui::GetIO(); |
|
|
ImGuiIO& io = ImGui::GetIO(); |
|
|
|
|
|
|
|
|
//Init Texture |
|
|
|
|
|
|
|
|
// Init Texture |
|
|
if (!m_font) |
|
|
if (!m_font) |
|
|
{ |
|
|
{ |
|
|
// Build texture |
|
|
// Build texture |
|
@@ -200,22 +200,22 @@ void LolImGui::TickGame(float seconds) |
|
|
|
|
|
|
|
|
Ticker::Ref(m_font = new TextureImage("", image)); |
|
|
Ticker::Ref(m_font = new TextureImage("", image)); |
|
|
} |
|
|
} |
|
|
//Texture has been created |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Texture has been created |
|
|
if (m_font && m_font->GetTexture()) |
|
|
if (m_font && m_font->GetTexture()) |
|
|
{ |
|
|
{ |
|
|
io.Fonts->TexID = (void *)(intptr_t)m_font; |
|
|
|
|
|
|
|
|
io.Fonts->TexID = (void *)m_font->GetTexture(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Setup display size (every frame to accommodate for window resizing) |
|
|
// Setup display size (every frame to accommodate for window resizing) |
|
|
vec2 video_size = vec2(0); |
|
|
|
|
|
video_size = vec2(Video::GetSize()); |
|
|
|
|
|
io.DisplaySize = ImVec2(video_size.x, video_size.y); |
|
|
|
|
|
|
|
|
auto video_size = vec2(Video::GetSize()); |
|
|
|
|
|
io.DisplaySize = video_size; |
|
|
|
|
|
|
|
|
//Setup time step |
|
|
|
|
|
|
|
|
// Setup time step |
|
|
io.DeltaTime = seconds; |
|
|
io.DeltaTime = seconds; |
|
|
io.MouseDrawCursor = true; |
|
|
io.MouseDrawCursor = true; |
|
|
|
|
|
|
|
|
//Update Keyboard |
|
|
|
|
|
|
|
|
// Update Keyboard |
|
|
io.KeyCtrl = false; |
|
|
io.KeyCtrl = false; |
|
|
io.KeyShift = false; |
|
|
io.KeyShift = false; |
|
|
for (int i = LolImGuiKey::KEY_START; i < LolImGuiKey::KEY_END; ++i) |
|
|
for (int i = LolImGuiKey::KEY_START; i < LolImGuiKey::KEY_END; ++i) |
|
@@ -244,13 +244,13 @@ void LolImGui::TickGame(float seconds) |
|
|
for (auto ch : text) |
|
|
for (auto ch : text) |
|
|
io.AddInputCharacter(ch); |
|
|
io.AddInputCharacter(ch); |
|
|
|
|
|
|
|
|
//Update mouse |
|
|
|
|
|
|
|
|
// Update mouse |
|
|
if (m_mouse) |
|
|
if (m_mouse) |
|
|
{ |
|
|
{ |
|
|
vec2 cursor = m_mouse->GetCursor(0); |
|
|
vec2 cursor = m_mouse->GetCursor(0); |
|
|
cursor.y = 1.f - cursor.y; |
|
|
cursor.y = 1.f - cursor.y; |
|
|
cursor *= video_size; |
|
|
|
|
|
io.MousePos = ImVec2(cursor.x, cursor.y); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
io.MousePos = cursor * video_size; |
|
|
//msg::debug("%.2f/%.2f\n", io.MousePos.x, io.MousePos.y); |
|
|
//msg::debug("%.2f/%.2f\n", io.MousePos.x, io.MousePos.y); |
|
|
io.MouseWheel = m_controller->GetAxisValue(LolImGuiAxis::Scroll); |
|
|
io.MouseWheel = m_controller->GetAxisValue(LolImGuiAxis::Scroll); |
|
|
|
|
|
|
|
@@ -265,7 +265,7 @@ void LolImGui::TickGame(float seconds) |
|
|
if (m_controller->IsKeyReleased(i)) |
|
|
if (m_controller->IsKeyReleased(i)) |
|
|
{ |
|
|
{ |
|
|
//msg::debug("Not focused .....\n"); |
|
|
//msg::debug("Not focused .....\n"); |
|
|
io.MousePos = ImVec2(-1.f, -1.f); |
|
|
|
|
|
|
|
|
//io.MousePos = vec2(-1.f); |
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
@@ -314,6 +314,7 @@ void LolImGui::RenderDrawLists(ImDrawData* draw_data) |
|
|
{ |
|
|
{ |
|
|
g_lolimgui->RenderDrawListsMethod(draw_data); |
|
|
g_lolimgui->RenderDrawListsMethod(draw_data); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void LolImGui::RenderDrawListsMethod(ImDrawData* draw_data) |
|
|
void LolImGui::RenderDrawListsMethod(ImDrawData* draw_data) |
|
|
{ |
|
|
{ |
|
|
if (draw_data == nullptr) |
|
|
if (draw_data == nullptr) |
|
@@ -394,8 +395,8 @@ void LolImGui::RenderDrawListsMethod(ImDrawData* draw_data) |
|
|
for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++) |
|
|
for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++) |
|
|
{ |
|
|
{ |
|
|
const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[(int)cmd_i]; |
|
|
const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[(int)cmd_i]; |
|
|
TextureImage* image = (TextureImage*)pcmd->TextureId; |
|
|
|
|
|
if (image) image->Bind(); |
|
|
|
|
|
|
|
|
Texture* texture = (Texture*)pcmd->TextureId; |
|
|
|
|
|
if (texture) texture->Bind(); |
|
|
|
|
|
|
|
|
rc.SetScissorRect(vec4(pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w)); |
|
|
rc.SetScissorRect(vec4(pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w)); |
|
|
|
|
|
|
|
@@ -445,8 +446,6 @@ void LolImGui::RenderDrawListsMethod(ImDrawData* draw_data) |
|
|
m_vdecl->DrawIndexedElements(MeshPrimitive::Triangles, pcmd->ElemCount, (const short*)idx_buffer_offset); |
|
|
m_vdecl->DrawIndexedElements(MeshPrimitive::Triangles, pcmd->ElemCount, (const short*)idx_buffer_offset); |
|
|
|
|
|
|
|
|
idx_buffer_offset += pcmd->ElemCount; |
|
|
idx_buffer_offset += pcmd->ElemCount; |
|
|
|
|
|
|
|
|
if (image) image->Unbind(); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
m_vdecl->Unbind(); |
|
|
m_vdecl->Unbind(); |
|
|