diff options
Diffstat (limited to 'platform/android/src/native_map_view.cpp')
-rwxr-xr-x | platform/android/src/native_map_view.cpp | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index fe201ac069..8f594f2c0e 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -17,7 +17,9 @@ #include <mbgl/platform/log.hpp> #include <mbgl/gl/extension.hpp> #include <mbgl/gl/gl.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/util/constants.hpp> +#include <mbgl/util/image.hpp> namespace mbgl { namespace android { @@ -80,7 +82,10 @@ NativeMapView::NativeMapView(JNIEnv *env_, jobject obj_, float pixelRatio, int a mbgl::android::cachePath + "/mbgl-offline.db", mbgl::android::apkPath); - map = std::make_unique<mbgl::Map>(*this, *this, pixelRatio, *fileSource, threadPool, MapMode::Continuous); + map = std::make_unique<mbgl::Map>( + *this, + std::array<uint16_t, 2>{{ static_cast<uint16_t>(width), static_cast<uint16_t>(height) }}, + pixelRatio, *fileSource, threadPool, MapMode::Continuous); float zoomFactor = map->getMaxZoom() - map->getMinZoom() + 1; float cpuFactor = availableProcessors; @@ -112,16 +117,14 @@ NativeMapView::~NativeMapView() { vm = nullptr; } -void NativeMapView::bind() { - MBGL_CHECK_ERROR(glBindFramebuffer(GL_FRAMEBUFFER, 0)); -} - -std::array<uint16_t, 2> NativeMapView::getSize() const { - return {{ static_cast<uint16_t>(width), static_cast<uint16_t>(height) }}; +void NativeMapView::updateViewBinding() { + getContext().bindFramebuffer.setCurrentValue(0); + getContext().viewport.setCurrentValue({ 0, 0, static_cast<uint16_t>(fbWidth), static_cast<uint16_t>(fbHeight) }); } -std::array<uint16_t, 2> NativeMapView::getFramebufferSize() const { - return {{ static_cast<uint16_t>(fbWidth), static_cast<uint16_t>(fbHeight) }}; +void NativeMapView::bind() { + getContext().bindFramebuffer = 0; + getContext().viewport = { 0, 0, static_cast<uint16_t>(fbWidth), static_cast<uint16_t>(fbHeight) }; } void NativeMapView::activate() { @@ -189,12 +192,8 @@ void NativeMapView::invalidate() { void NativeMapView::render() { activate(); - if(sizeChanged){ - sizeChanged = false; - glViewport(0, 0, fbWidth, fbHeight); - } - - map->render(); + updateViewBinding(); + map->render(*this); if(snapshot){ snapshot = false; @@ -719,14 +718,13 @@ void NativeMapView::updateFps() { void NativeMapView::resizeView(int w, int h) { width = w; height = h; - sizeChanged = true; - map->update(mbgl::Update::Dimensions); + map->setSize({{ static_cast<uint16_t>(width), static_cast<uint16_t>(height) }}); } void NativeMapView::resizeFramebuffer(int w, int h) { fbWidth = w; fbHeight = h; - map->update(mbgl::Update::Repaint); + invalidate(); } void NativeMapView::setInsets(mbgl::EdgeInsets insets_) { |