[core] move gl::Context to Backend and refactor View
This commit is contained in:
@@ -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::updateViewBinding() {
|
||||
getContext().bindFramebuffer.setCurrentValue(0);
|
||||
getContext().viewport.setCurrentValue({ 0, 0, static_cast<uint16_t>(fbWidth), static_cast<uint16_t>(fbHeight) });
|
||||
}
|
||||
|
||||
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) }};
|
||||
}
|
||||
|
||||
std::array<uint16_t, 2> NativeMapView::getFramebufferSize() const {
|
||||
return {{ static_cast<uint16_t>(fbWidth), static_cast<uint16_t>(fbHeight) }};
|
||||
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_) {
|
||||
|
||||
Reference in New Issue
Block a user