vulkan: some ui
This commit is contained in:
parent
d28a7f45c5
commit
43d87877be
|
@ -34,7 +34,9 @@
|
|||
#include "linux-dist/main.h" // FIXME for kcode[]
|
||||
#include "gui_util.h"
|
||||
#include "gui_android.h"
|
||||
|
||||
#ifdef USE_VULKAN
|
||||
#include "rend/vulkan/vulkan.h"
|
||||
#endif
|
||||
#include "version.h"
|
||||
#include "oslib/audiostream.h"
|
||||
|
||||
|
@ -44,6 +46,7 @@ extern void dc_savestate();
|
|||
extern void dc_stop();
|
||||
extern void dc_reset(bool manual);
|
||||
extern void dc_resume();
|
||||
extern void dc_term();
|
||||
extern void dc_start_game(const char *path);
|
||||
extern void UpdateInputState(u32 port);
|
||||
extern bool game_started;
|
||||
|
@ -643,6 +646,7 @@ static void gui_display_settings()
|
|||
|
||||
int dynarec_enabled = settings.dynarec.Enable;
|
||||
u32 renderer = settings.pvr.rend;
|
||||
bool vulkan = renderer == 4;
|
||||
|
||||
if (!settings_opening && settings.pvr.IsOpenGL())
|
||||
ImGui_ImplOpenGL3_DrawBackground();
|
||||
|
@ -978,11 +982,13 @@ static void gui_display_settings()
|
|||
switch (renderer)
|
||||
{
|
||||
case 0:
|
||||
settings.pvr.rend = 0;
|
||||
if (settings.pvr.rend == 3)
|
||||
settings.pvr.rend = 0;
|
||||
settings.rend.PerStripSorting = false;
|
||||
break;
|
||||
case 1:
|
||||
settings.pvr.rend = 0;
|
||||
if (settings.pvr.rend == 3)
|
||||
settings.pvr.rend = 0;
|
||||
settings.rend.PerStripSorting = true;
|
||||
break;
|
||||
case 2:
|
||||
|
@ -1022,6 +1028,9 @@ static void gui_display_settings()
|
|||
ImGui::Checkbox("Delay Frame Swapping", &settings.rend.DelayFrameSwapping);
|
||||
ImGui::SameLine();
|
||||
ShowHelpMarker("Useful to avoid flashing screen or glitchy videos. Not recommended on slow platforms");
|
||||
ImGui::Checkbox("Use Vulkan Renderer", &vulkan);
|
||||
ImGui::SameLine();
|
||||
ShowHelpMarker("Use Vulkan instead of Open GL/GLES. Experimental");
|
||||
ImGui::SliderInt("Scaling", (int *)&settings.rend.ScreenScaling, 1, 100);
|
||||
ImGui::SameLine();
|
||||
ShowHelpMarker("Downscaling factor relative to native screen resolution. Higher is better");
|
||||
|
@ -1301,11 +1310,27 @@ static void gui_display_settings()
|
|||
#endif
|
||||
);
|
||||
}
|
||||
if (ImGui::CollapsingHeader("Open GL", ImGuiTreeNodeFlags_DefaultOpen))
|
||||
{
|
||||
ImGui::Text("Renderer: %s", (const char *)glGetString(GL_RENDERER));
|
||||
ImGui::Text("Version: %s", (const char *)glGetString(GL_VERSION));
|
||||
}
|
||||
if (settings.pvr.IsOpenGL())
|
||||
{
|
||||
if (ImGui::CollapsingHeader("Open GL", ImGuiTreeNodeFlags_DefaultOpen))
|
||||
{
|
||||
ImGui::Text("Renderer: %s", (const char *)glGetString(GL_RENDERER));
|
||||
ImGui::Text("Version: %s", (const char *)glGetString(GL_VERSION));
|
||||
}
|
||||
}
|
||||
#ifdef USE_VULKAN
|
||||
else if (settings.pvr.rend == 4)
|
||||
{
|
||||
if (ImGui::CollapsingHeader("Vulkan", ImGuiTreeNodeFlags_DefaultOpen))
|
||||
{
|
||||
std::string name = VulkanContext::Instance()->GetDriverName();
|
||||
ImGui::Text("Driver Name: %s", name.c_str());
|
||||
std::string version = VulkanContext::Instance()->GetDriverVersion();
|
||||
ImGui::Text("Version: %s", version.c_str());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __ANDROID__
|
||||
ImGui::Separator();
|
||||
if (ImGui::Button("Send Logs")) {
|
||||
|
@ -1325,6 +1350,12 @@ static void gui_display_settings()
|
|||
ImGui::Render();
|
||||
ImGui_impl_RenderDrawData(ImGui::GetDrawData(), false);
|
||||
|
||||
if (vulkan ^ (settings.pvr.rend == 4))
|
||||
{
|
||||
settings.pvr.rend = vulkan ? 4 : 0;
|
||||
dc_term();
|
||||
exit(0);
|
||||
}
|
||||
if (renderer != settings.pvr.rend)
|
||||
renderer_changed = true;
|
||||
settings.dynarec.Enable = (bool)dynarec_enabled;
|
||||
|
|
|
@ -41,7 +41,7 @@ static inline void ImGui_impl_RenderDrawData(ImDrawData *draw_data, bool save_ba
|
|||
context->BeginRenderPass();
|
||||
}
|
||||
// Record Imgui Draw Data and draw funcs into command buffer
|
||||
ImGui_ImplVulkan_RenderDrawData(draw_data, context->GetCurrentCommandBuffer());
|
||||
ImGui_ImplVulkan_RenderDrawData(draw_data, (VkCommandBuffer)context->GetCurrentCommandBuffer());
|
||||
if (!rendering)
|
||||
context->EndFrame();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue