mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-05-07 08:25:41 -04:00
Ignore existing surface size on Android
Seems to be a race condition here where it's not up to date.
This commit is contained in:
parent
3bdda39e1f
commit
a7b85605e2
@ -155,6 +155,8 @@ void AndroidHostInterface::LoadSettings()
|
|||||||
CommonHostInterface::LoadSettings(m_settings_interface);
|
CommonHostInterface::LoadSettings(m_settings_interface);
|
||||||
CommonHostInterface::FixIncompatibleSettings(false);
|
CommonHostInterface::FixIncompatibleSettings(false);
|
||||||
CommonHostInterface::UpdateInputMap(m_settings_interface);
|
CommonHostInterface::UpdateInputMap(m_settings_interface);
|
||||||
|
g_settings.log_level = LOGLEVEL_INFO;
|
||||||
|
g_settings.log_to_debug = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidHostInterface::UpdateInputMap()
|
void AndroidHostInterface::UpdateInputMap()
|
||||||
@ -392,7 +394,7 @@ void AndroidHostInterface::OnRunningGameChanged()
|
|||||||
|
|
||||||
void AndroidHostInterface::SurfaceChanged(ANativeWindow* surface, int format, int width, int height)
|
void AndroidHostInterface::SurfaceChanged(ANativeWindow* surface, int format, int width, int height)
|
||||||
{
|
{
|
||||||
ReportFormattedMessage("SurfaceChanged %p %d %d %d", surface, format, width, height);
|
Log_InfoPrintf("SurfaceChanged %p %d %d %d", surface, format, width, height);
|
||||||
if (m_surface == surface)
|
if (m_surface == surface)
|
||||||
{
|
{
|
||||||
if (m_display)
|
if (m_display)
|
||||||
@ -499,6 +501,8 @@ void AndroidHostInterface::ApplySettings(bool display_osd_messages)
|
|||||||
Settings old_settings = std::move(g_settings);
|
Settings old_settings = std::move(g_settings);
|
||||||
CommonHostInterface::LoadSettings(m_settings_interface);
|
CommonHostInterface::LoadSettings(m_settings_interface);
|
||||||
CommonHostInterface::FixIncompatibleSettings(display_osd_messages);
|
CommonHostInterface::FixIncompatibleSettings(display_osd_messages);
|
||||||
|
g_settings.log_level = LOGLEVEL_INFO;
|
||||||
|
g_settings.log_to_debug = true;
|
||||||
CheckForSettingsChanges(old_settings);
|
CheckForSettingsChanges(old_settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,19 +89,24 @@ bool ContextEGL::ChangeSurface(const WindowInfo& new_wi)
|
|||||||
|
|
||||||
void ContextEGL::ResizeSurface(u32 new_surface_width /*= 0*/, u32 new_surface_height /*= 0*/)
|
void ContextEGL::ResizeSurface(u32 new_surface_width /*= 0*/, u32 new_surface_height /*= 0*/)
|
||||||
{
|
{
|
||||||
|
// This seems to race on Android...
|
||||||
|
#ifndef ANDROID
|
||||||
EGLint surface_width, surface_height;
|
EGLint surface_width, surface_height;
|
||||||
if (eglQuerySurface(m_display, m_surface, EGL_WIDTH, &surface_width) &&
|
if (eglQuerySurface(m_display, m_surface, EGL_WIDTH, &surface_width) &&
|
||||||
eglQuerySurface(m_display, m_surface, EGL_HEIGHT, &surface_height))
|
eglQuerySurface(m_display, m_surface, EGL_HEIGHT, &surface_height))
|
||||||
{
|
{
|
||||||
m_wi.surface_width = static_cast<u32>(surface_width);
|
m_wi.surface_width = static_cast<u32>(surface_width);
|
||||||
m_wi.surface_height = static_cast<u32>(surface_height);
|
m_wi.surface_height = static_cast<u32>(surface_height);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log_ErrorPrintf("eglQuerySurface() failed: %d", eglGetError());
|
Log_ErrorPrintf("eglQuerySurface() failed: %d", eglGetError());
|
||||||
m_wi.surface_width = new_surface_width;
|
|
||||||
m_wi.surface_height = new_surface_height;
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
m_wi.surface_width = new_surface_width;
|
||||||
|
m_wi.surface_height = new_surface_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ContextEGL::SwapBuffers()
|
bool ContextEGL::SwapBuffers()
|
||||||
|
@ -333,7 +333,9 @@ bool SwapChain::CreateSwapChain()
|
|||||||
// Determine the dimensions of the swap chain. Values of -1 indicate the size we specify here
|
// Determine the dimensions of the swap chain. Values of -1 indicate the size we specify here
|
||||||
// determines window size?
|
// determines window size?
|
||||||
VkExtent2D size = surface_capabilities.currentExtent;
|
VkExtent2D size = surface_capabilities.currentExtent;
|
||||||
|
#ifndef ANDROID
|
||||||
if (size.width == UINT32_MAX)
|
if (size.width == UINT32_MAX)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
size.width = m_wi.surface_width;
|
size.width = m_wi.surface_width;
|
||||||
size.height = m_wi.surface_height;
|
size.height = m_wi.surface_height;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user