Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[Android] Qualcomm drivers require that the EGL context is created on…
… the same thread that the OpenGL commands are run on. Crappy driver limitation since eglMakeCurrent should work to let it be on a different thread.
  • Loading branch information
Sonicadvance1 committed May 26, 2013
1 parent ca12e7e commit 61aa272
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp
Expand Up @@ -39,7 +39,7 @@ namespace SW
static volatile bool fifoStateRun = false;
static volatile bool emuRunningState = false;
static std::mutex m_csSWVidOccupied;

static void* m_windowhandle;

std::string VideoSoftware::GetName()
{
Expand All @@ -62,15 +62,9 @@ void VideoSoftware::ShowConfig(void *_hParent)
bool VideoSoftware::Initialize(void *&window_handle)
{
g_SWVideoConfig.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_software.ini").c_str());
InitInterface();

if (!GLInterface->Create(window_handle))
{
INFO_LOG(VIDEO, "%s", "SWRenderer::Create failed\n");
return false;
}
// Do our OSD callbacks
OSD::DoCallbacks(OSD::OSD_INIT);
InitInterface();

m_windowhandle = window_handle;

InitBPMemory();
InitXFMemory();
Expand Down Expand Up @@ -166,6 +160,12 @@ void VideoSoftware::Video_Cleanup()
// This is called after Video_Initialize() from the Core
void VideoSoftware::Video_Prepare()
{
if (!GLInterface->Create(m_windowhandle))
{
INFO_LOG(VIDEO, "%s", "SWRenderer::Create failed\n");
return;
}

GLInterface->MakeCurrent();
// Init extension support.
#ifndef USE_GLES
Expand All @@ -180,6 +180,9 @@ void VideoSoftware::Video_Prepare()
// Handle VSync on/off
GLInterface->SwapInterval(VSYNC_ENABLED);

// Do our OSD callbacks
OSD::DoCallbacks(OSD::OSD_INIT);

HwRasterizer::Prepare();
SWRenderer::Prepare();

Expand Down

0 comments on commit 61aa272

Please sign in to comment.