emugl: correct locking when we draw a new frame
This commit is contained in:
parent
4b344ad204
commit
e9cd1b7b66
1 changed files with 4 additions and 7 deletions
|
|
@ -938,13 +938,14 @@ void Renderer::draw(RendererWindow *window, const Renderable &renderable,
|
|||
bool Renderer::draw(EGLNativeWindowType native_window,
|
||||
const anbox::graphics::Rect &window_frame,
|
||||
const RenderableList &renderables) {
|
||||
|
||||
std::unique_lock<std::mutex> l(m_lock);
|
||||
|
||||
auto w = m_nativeWindows.find(native_window);
|
||||
if (w == m_nativeWindows.end()) return false;
|
||||
|
||||
if (!bindWindow_locked(w->second)) {
|
||||
m_lock.unlock();
|
||||
if (!bindWindow_locked(w->second))
|
||||
return false;
|
||||
}
|
||||
|
||||
setupViewport(w->second, window_frame);
|
||||
s_gles2.glViewport(0, 0, window_frame.width(), window_frame.height());
|
||||
|
|
@ -959,9 +960,5 @@ bool Renderer::draw(EGLNativeWindowType native_window,
|
|||
|
||||
unbind_locked();
|
||||
|
||||
m_lock.lock();
|
||||
|
||||
m_lock.unlock();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue