summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandar Stojiljkovic <aleksandar.stojiljkovic@mapbox.com>2019-05-17 13:18:37 +0300
committerAleksandar Stojiljkovic <aleksandar.stojiljkovic@mapbox.com>2019-05-17 13:18:37 +0300
commit72f04a00ee23eeefe3f7ebd09f8a9ac046493d95 (patch)
tree0310d2d98f9890b17a0f6ee70731950cd315802f
parente9522525fe3aaae8e78c57636e25f1833f0e4aa2 (diff)
downloadqtlocation-mapboxgl-upstream/astojilj-headless.tar.gz
Headless frontend/backend refactoring process review.upstream/astojilj-headless
-rw-r--r--platform/default/include/mbgl/gfx/headless_backend.hpp9
-rw-r--r--platform/default/src/mbgl/gfx/headless_frontend.cpp4
-rw-r--r--platform/default/src/mbgl/gl/headless_backend.cpp2
3 files changed, 10 insertions, 5 deletions
diff --git a/platform/default/include/mbgl/gfx/headless_backend.hpp b/platform/default/include/mbgl/gfx/headless_backend.hpp
index e18ad21ce0..de9283dcdf 100644
--- a/platform/default/include/mbgl/gfx/headless_backend.hpp
+++ b/platform/default/include/mbgl/gfx/headless_backend.hpp
@@ -9,15 +9,20 @@
namespace mbgl {
namespace gfx {
+// Common headless backend interface, provides HeadlessBackend backend factory
+// and enables extending gfx::Renderable with platform specific implementation
+// of readStillImage.
class HeadlessBackend : public gfx::Renderable {
public:
// Factory.
- static std::unique_ptr<HeadlessBackend> makeBackend(Size = { 256, 256 }, gfx::ContextMode = gfx::ContextMode::Unique);
+ static std::unique_ptr<HeadlessBackend> make(Size = { 256, 256 }, gfx::ContextMode = gfx::ContextMode::Unique);
- HeadlessBackend(Size);
virtual PremultipliedImage readStillImage() = 0;
virtual RendererBackend* getRendererBackend() = 0;
void setSize(Size);
+
+protected:
+ HeadlessBackend(Size);
};
} // namespace gfx
diff --git a/platform/default/src/mbgl/gfx/headless_frontend.cpp b/platform/default/src/mbgl/gfx/headless_frontend.cpp
index 0655d82e95..025abdd87a 100644
--- a/platform/default/src/mbgl/gfx/headless_frontend.cpp
+++ b/platform/default/src/mbgl/gfx/headless_frontend.cpp
@@ -24,8 +24,8 @@ HeadlessFrontend::HeadlessFrontend(Size size_,
const optional<std::string> localFontFamily)
: size(size_),
pixelRatio(pixelRatio_),
- backend(gfx::HeadlessBackend::makeBackend( { static_cast<uint32_t>(size.width * pixelRatio),
- static_cast<uint32_t>(size.height * pixelRatio) }, contextMode)),
+ backend(gfx::HeadlessBackend::make( { static_cast<uint32_t>(size.width * pixelRatio),
+ static_cast<uint32_t>(size.height * pixelRatio) }, contextMode)),
asyncInvalidate([this] {
if (renderer && updateParameters) {
gfx::BackendScope guard { *getBackend() };
diff --git a/platform/default/src/mbgl/gl/headless_backend.cpp b/platform/default/src/mbgl/gl/headless_backend.cpp
index 825a108937..c81952fadc 100644
--- a/platform/default/src/mbgl/gl/headless_backend.cpp
+++ b/platform/default/src/mbgl/gl/headless_backend.cpp
@@ -88,7 +88,7 @@ RendererBackend* HeadlessBackend::getRendererBackend() {
#ifndef OVERRIDE_HEADLESS_BACKEND_FACTORY
// Default factory implementation.
-std::unique_ptr<gfx::HeadlessBackend> gfx::HeadlessBackend::makeBackend(Size size, gfx::ContextMode contextMode) {
+std::unique_ptr<gfx::HeadlessBackend> gfx::HeadlessBackend::make(Size size, gfx::ContextMode contextMode) {
return std::make_unique<gl::HeadlessBackend>(size, contextMode);
}
#endif