maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Development (https://talk.maemo.org/forumdisplay.php?f=13)
-   -   [SFOS] Mapbox GL Native QML plugin (https://talk.maemo.org/showthread.php?t=99953)

rinigus 2017-10-17 09:29

Re: Mapbox GL Native QML plugin
 
As you can see at the end of https://github.com/mapbox/mapbox-gl-native/issues/10029 , Mapbox GL developer suggested that MapboxGL hits memory bottleneck on Jolla 1.

Unfortunately, the callbacks designed to help with the debugging of openGL errors were introduced only in the latest standard, not available for J1 either.

So, if you needed an excuse to go out and get a newer device for SFOS - here it is.

Zeta 2017-10-17 21:24

Re: Mapbox GL Native QML plugin
 
Quote:

Originally Posted by rinigus (Post 1537068)
As you can see at the end of https://github.com/mapbox/mapbox-gl-native/issues/10029 , Mapbox GL developer suggested that MapboxGL hits memory bottleneck on Jolla 1.

Alright. At least we tried ! Thanks for the time you spent on this.

Quote:

Originally Posted by rinigus (Post 1537068)
Unfortunately, the callbacks designed to help with the debugging of openGL errors were introduced only in the latest standard, not available for J1 either.

Just to understand, what do you call a "standard" in this context ? A version of the mapbox GL renderer ? Of the Qt API for Mapbox GL ? Something else ?

rinigus 2017-10-18 05:45

Re: Mapbox GL Native QML plugin
 
Quote:

Originally Posted by Zeta (Post 1537133)
Alright. At least we tried ! Thanks for the time you spent on this.

Just to understand, what do you call a "standard" in this context ? A version of the mapbox GL renderer ? Of the Qt API for Mapbox GL ? Something else ?

I looked a bit into it and this is a what I found regarding opnGL debugging https://blog.nobel-joergensen.com/20...ng-glgeterror/

To debug properly, we need OpenGL ES API Version 3.2 and use https://www.khronos.org/registry/Ope...Callback.xhtml (blog post continuation)

Alternatively, you could use glGetError, as explained in the blog post.

As for API versions, OpenGL ES 3.0 corresponds to Android 4.3 (https://en.wikipedia.org/wiki/OpenGL_ES)

So, out of luck here as well on older devices like J1

Zeta 2017-10-18 21:59

Re: Mapbox GL Native QML plugin
 
Quote:

Originally Posted by rinigus (Post 1537162)
I looked a bit into it and this is a what I found regarding opnGL debugging https://blog.nobel-joergensen.com/20...ng-glgeterror/

To debug properly, we need OpenGL ES API Version 3.2 and use https://www.khronos.org/registry/Ope...Callback.xhtml (blog post continuation)

Alternatively, you could use glGetError, as explained in the blog post.

As for API versions, OpenGL ES 3.0 corresponds to Android 4.3 (https://en.wikipedia.org/wiki/OpenGL_ES)

So, out of luck here as well on older devices like J1

Thanks for the answer, I understand now that you were talking of the OpenGL standard.
Interesting to see that debugging is a first class citizen on the newer versions.

rinigus 2017-11-27 07:39

Re: Mapbox GL Native QML plugin
 
Short update after 1.5 month of silence:

I have been working all this time on importing the planet into Mapbox GL format to offer offline support for this widget. Turned out to be a major undertaking due to the lack or scattered documentation, rather sub-optimal import tools and large CPU requirements. After struggling with the available tools/scripts, I ended up writing my own on the basis of OpenMapTiles schema: https://github.com/rinigus/mapbox-gl-importer

As it is, the planet got imported yesterday night and I can confidently say that the offline support for Mapbox GL tiles is coming as well via OSM Scout Server. There is still some code to be written, but I don't foresee any blocking issues on the way.

As for vector tile schema, it will probably change in time. Already now there are slight deviations from OpenMapTiles schema to optimize import and I can see that few POIs are missing on the maps. I will document all the differences in due time. Most probably we will optimize the schema in time for our needs.

m4r0v3r 2017-11-28 21:11

Re: Mapbox GL Native QML plugin
 
Would following https://github.com/rinigus/mapbox-demo-sfos as an example be okay for a project? trying to make a uber port atm

rinigus 2017-11-29 04:37

Re: Mapbox GL Native QML plugin
 
Quote:

Originally Posted by m4r0v3r (Post 1538881)
Would following https://github.com/rinigus/mapbox-demo-sfos as an example be okay for a project? trying to make a uber port atm

Yes, you could use that demo for something very simple, just map display. I would suggest to install plugin from OBS and use the map widget in its QML form, without plugging in it to the project via C++. This would allow you to benefit from bug fixes in future (if there are any bugs).

Simplest demo at https://github.com/rinigus/mapbox-de...y/MainPage.qml

Some other demos to consider:

Shows how to add your own data to the map (roads, points), add interactive elements:

https://github.com/rinigus/mapbox-gl...p/qml/main.qml


Full Poor Maps port to Mapbox GL is at https://github.com/rinigus/poor-maps/tree/gl . This is an application that I am using and may have some additional tips on how to make things in practice.

Please don't hesitate to ask, I'll try to reply within a day.

m4r0v3r 2017-11-29 21:18

Re: Mapbox GL Native QML plugin
 
ill try it out tomorrow ta :)

m4r0v3r 2017-11-29 22:45

Re: Mapbox GL Native QML plugin
 
hmmm ive installed both opt-gcc6 and qmapboxgl but it still refuses to find the packages, for i486

Quote:

22:41:31: Running steps for project harbour-uber...
22:41:31: Start Build Engine: The "Sailfish OS Build Engine" virtual machine is already running. Nothing to do.
22:41:31: Starting: "/home/mgh01/.config/SailfishOS-SDK/mer-sdk-tools/Sailfish OS Build Engine/SailfishOS-2.1.3.7-i486/qmake" /home/mgh01/Projects/harbour-uber/harbour-uber.pro -spec linux-g++-32 CONFIG+=debug CONFIG+=qml_debug
No provider of 'opt-gcc6' found.
No provider of 'qmapboxgl' found.
Building target platforms: i486-meego-linux-gnu
Building for target i486-meego-linux-gnu
error: Failed build dependencies:
opt-gcc6 is needed by harbour-uber-0.1-1.i486
qmapboxgl is needed by harbour-uber-0.1-1.i486
22:41:32: The process "/home/mgh01/.config/SailfishOS-SDK/mer-sdk-tools/Sailfish OS Build Engine/SailfishOS-2.1.3.7-i486/qmake" exited with code 1.
Error while building/deploying project harbour-uber (kit: SailfishOS-2.1.3.7-i486 (in Sailfish OS Build Engine))
When executing step "qmake"
22:41:32: Elapsed time: 00:01.
]

not sure if ive missed anything

project is here

https://github.com/ghosalmartin/harbour-uber

ah ignore me I wasnt installing with

Quote:

sb2 -t SailfishOS-2.1.3.7-i486 -m sdk-install -R zypper in
but directly onto mersdk :P

m4r0v3r 2017-11-29 23:29

Re: Mapbox GL Native QML plugin
 
Quote:

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.OzqhiF
/opt/gcc6/bin/g++ -c -m32 -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -m32 -msse -msse2 -march=i686 -mfpmath=sse -mtune=generic -fno-omit-frame-pointer -fasynchronous-unwind-tables -std=gnu++0x -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_LOCATION_LIB -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_POSITIONING_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../harbour-uber -I. -I../harbour-uber/o2/src -I../harbour-uber/mapbox-gl-qml/include -I../harbour-uber/mapbox-gl-qml/src -isystem /usr/include/sailfishapp -isystem /usr/include/mdeclarativecache5 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtLocation -isystem /usr/include/qt5/QtQuick -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtPositioning -isystem /usr/include/qt5/QtQml -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -I/usr/share/qt5/mkspecs/linux-g++-32 -o qquickitemmapboxgl.o ../harbour-uber/mapbox-gl-qml/src/qquickitemmapboxgl.cpp
In file included from /usr/include/qt5/mbgl/util/constants.hpp:3:0,
from ../harbour-uber/mapbox-gl-qml/src/qquickitemmapboxgl.cpp:47:
/usr/include/qt5/mbgl/util/chrono.hpp:36:49: error: 'enable_if_t' in namespace 'std' does not name a template type
template <class Rep, class Period, class = std::enable_if_t<
^~~~~~~~~~~
/usr/include/qt5/mbgl/util/chrono.hpp:36:60: error: expected '>' before '<' token
template <class Rep, class Period, class = std::enable_if_t<
^
/usr/include/qt5/mbgl/util/chrono.hpp:39:1: error: expected unqualified-id before '{' token
{
^


RPM build errors:
make: *** [qquickitemmapboxgl.o] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.OzqhiF (%build)
Bad exit status from /var/tmp/rpm-tmp.OzqhiF (%build)
23:28:57: The process "/home/mgh01/.config/SailfishOS-SDK/mer-sdk-tools/Sailfish OS Build Engine/SailfishOS-2.1.3.7-i486/make" exited with code 1.
Error while building/deploying project harbour-uber (kit: SailfishOS-2.1.3.7-i486 (in Sailfish OS Build Engine))
When executing step "Make"
23:28:57: Elapsed time: 00:05.
And another one :P

not quite sure whats wrong there, maybe something wrong in gcc6 setup. ill take another look tomorrow morning


All times are GMT. The time now is 15:11.

vBulletin® Version 3.8.8