[android] schedule work on the gl thread using GLSurfaceView#queueEvent
This commit is contained in:
committed by
Ivo van Dongen
parent
347d7c19c0
commit
15a47d116a
@@ -58,10 +58,11 @@ AndroidRendererFrontend::AndroidRendererFrontend(float pixelRatio,
|
||||
FileSource& fileSource,
|
||||
Scheduler& scheduler,
|
||||
std::string programCacheDir,
|
||||
InvalidateCallback invalidate)
|
||||
RequestRenderCallback requestRender,
|
||||
RequestProcessingCallback requestProcessing)
|
||||
: backend(std::make_unique<AndroidRendererBackend>())
|
||||
, glThread(std::make_unique<AndroidGLThread>(
|
||||
invalidate,
|
||||
std::move(requestProcessing),
|
||||
*backend,
|
||||
pixelRatio,
|
||||
fileSource,
|
||||
@@ -69,8 +70,8 @@ AndroidRendererFrontend::AndroidRendererFrontend(float pixelRatio,
|
||||
GLContextMode::Unique,
|
||||
programCacheDir
|
||||
))
|
||||
, asyncInvalidate([=]() {
|
||||
invalidate();
|
||||
, asyncInvalidate([requestRender=std::move(requestRender)]() {
|
||||
requestRender();
|
||||
})
|
||||
, mapRunLoop(util::RunLoop::Get()) {
|
||||
}
|
||||
@@ -112,9 +113,6 @@ void AndroidRendererFrontend::render() {
|
||||
params = updateParameters;
|
||||
}
|
||||
|
||||
// Process the gl thread mailbox
|
||||
glThread->process();
|
||||
|
||||
// Activate the backend
|
||||
BackendScope backendGuard { *backend };
|
||||
|
||||
@@ -130,6 +128,11 @@ void AndroidRendererFrontend::render() {
|
||||
glThread->renderer->render(*params);
|
||||
}
|
||||
|
||||
void AndroidRendererFrontend::process() {
|
||||
// Process the gl thread mailbox
|
||||
glThread->process();
|
||||
}
|
||||
|
||||
void AndroidRendererFrontend::onLowMemory() {
|
||||
assert (glThread);
|
||||
glThread->actor().invoke(&Renderer::onLowMemory);
|
||||
|
||||
Reference in New Issue
Block a user