OpenGL rendering

1,210 views
Skip to first unread message

Emux

unread,
Jun 16, 2016, 6:19:35 AM6/16/16
to mapsforge-dev
Title says it all..

We're aware that popular features in Mapsforge are map rotation & variable zoom level.
It's a fact that client software rendering of vector data has performance limits.
That's why searching alternative ways for their handling, i.e. OpenGL rendering.

Examined various OS implementations, the most versatile one appears to be VTM (OpenScienceMap).
Working on Android, Desktop, HTML/WebGL, iOS via OpenGL ES or libGDX with backends.
Also it has a solid amalgamation with Mapsforge, since it actually contains fragments of it.

We communicated with Hannes Janetzek about library's state, as it appears being in dormant condition.
And decided to fork it for continue development, furthermore provide compatibility with present Mapsforge.

Some things to consider:
- It's compatible with Mapsforge maps v3 (no multilingual maps v4)
- It lacks support for SVG graphics (useful at HD devices)
- Themes being coastline aware
- Universal cache mechanism

More importantly:
- It's incompatible with Mapsforge themes, having its own variant (with clever ideas)
- Noteworthy missing theme rule is line symbol, e.g. oneways

Analysis of the library was performed and many ideas have emerged.

Looking ahead I'll push:
- Build automation / dependencies updates
- Native libraries for all platforms
- Modules reorganization
- Various improvements
- Fixes (e.g. memory leaks)
- ...

You'll find the new repository here with its own issues list:
https://github.com/mapsforge/vtm

--

Longri, Andre Höpfner

unread,
Jun 16, 2016, 12:33:17 PM6/16/16
to mapsfo...@googlegroups.com

👍

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.
To view this discussion on the web visit https://groups.google.com/d/msgid/mapsforge-dev/57627D32.8%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Longri, Andre Höpfner

unread,
Jun 16, 2016, 2:29:32 PM6/16/16
to mapsfo...@googlegroups.com
Hi Emux that is very good news!

I immediately downloaded your app Cruiser and looked at it. And the OpenGL implementation pleases me very well.

I myself use the Libgdx for some years to represent the map.

Just I have a different approach. I let render the Mapsforge Tiles as a bitmap, then packed into a GlTexture to represent.

This approach I wanted to follow up and implement, in addition to Android and desktop also with iOS.

VTM has a different approach, which I find much better with better performance.
Here the vector data will be rendered directly on OpenGL.

I'll check out your Fork and will watch this. And I will be very happy to help you, so that the OpenGL rendering sometime looks like the normal Mapsforge rendering.

This step is for me really just at the right time. As I re-write my app and this time also support iOS. 
And always with LibGdx as base.


Dirk Weltz

unread,
Jun 16, 2016, 3:03:46 PM6/16/16
to mapsforge-dev
Am 16.06.2016 um 12:19 schrieb Emux:
Title says it all..

We're aware that popular features in Mapsforge are map rotation & 
variable zoom level.
It's a fact that client software rendering of vector data has 
performance limits.
That's why searching alternative ways for their handling, i.e. OpenGL 
rendering.

Examined various OS implementations, the most versatile one appears to 
be VTM <https://github.com/opensciencemap/vtm> (OpenScienceMap).
Working on Android, Desktop, HTML/WebGL, iOS via OpenGL ES or libGDX 
with backends.
Also it has a solid amalgamation with Mapsforge, since it actually 
contains fragments of it.
That's sounds good. I looked into VTM and it seems much more structured 
than Mapsforge

We communicated with Hannes Janetzek about library's state, as it 
appears being in dormant condition.
And decided to fork it for continue development, furthermore provide 
compatibility with present Mapsforge.
Do you mean that you incooperate VTM into Mapsforge or that VTM is the 
base for the next Mapsforge?

Some things to consider:
- It's compatible with Mapsforge maps v3 (no multilingual maps v4)
- It lacks support for SVG graphics (useful at HD devices)
- Themes being coastline aware
- Universal cache mechanism

More importantly:
- It's incompatible with Mapsforge themes, having its own variant 
<https://github.com/mapsforge/vtm/blob/master/vtm-themes/resources/assets/styles/default.xml> 
(with clever ideas)
- Noteworthy missing theme rule is line symbol, e.g. oneways

Analysis of the library was performed and many ideas have emerged.

Looking ahead I'll push:
- Build automation / dependencies updates
- Native libraries for all platforms
- Modules reorganization
- Various improvements
- Fixes (e.g. memory leaks)
- ...
If you reorganice the code, could you consider other projects too? It 
would be great to have more than one project, which contains the 
complete core.

Cheers,
Dirk

Emux

unread,
Jun 16, 2016, 3:05:09 PM6/16/16
to mapsfo...@googlegroups.com
Thanks for the feedback, I forgot to mention above that any help is most certainly welcome!

For Android there are actually two ways to use OpenGL:

- Directly with the official libraries in Android SDK (vtm-android module)
(what I use as recommended approach by VTM)

- libGDX library with the gdx-backend-android (vtm-android-gdx module)

VTM has in use a versatile interface system for the GL adapter, making it flexible to switch among them.
It's similar to our Mapsforge Android / AWT interfaces for calling different platform calls (which BTW exist also here).

For example in desktop Cruiser I have tried all known libGDX backends using this mechanism.

Using Mapsforge strictly as tile provider is probably more convenient solution, but then we stumble upon the known problem of cut elements on tile boundaries etc.
Do you have such issues?

VTM uses a separate LabelLayer (as we do in Mapsforge) for all these (plus for buildings), with OpenGL rendering, a more complex but direct solution.

The most important concern is themes incompatibility, though we can benefit from many features of its implementation.

But we'll have time to discuss this, as first I have things to push in the repository (improvements, fixes, organization, etc.).

--
Emux

Emux

unread,
Jun 16, 2016, 3:18:27 PM6/16/16
to mapsfo...@googlegroups.com
On 16/06/2016 10:03 μμ, Dirk Weltz wrote:
Do you mean that you incooperate VTM into Mapsforge or that VTM is the base for the next Mapsforge?

That's a very good question, but I cannot answer it definitively right now.

Porting VTM engine inside Mapsforge seems a bit superfluous, since it can already handle (older) map files.

I was even hesitant about the whole "fork" thing, as I don't like splitting community projects.
But as Hannes has little time to develop further VTM and since it's issues / pull requests remain still we decided to advance with it.

My current plan is to make VTM at least compatible with latest Mapsforge, first in all except the themes, which need careful thinking as an second step.

Organization will have of course in mind all possible affected platforms, that's what we all need.

--
Emux

Longri, Andre Höpfner

unread,
Jun 17, 2016, 5:31:47 AM6/17/16
to mapsfo...@googlegroups.com

I want run the desktop example, but I hav exceptions with loading the native library!


Exception in thread "main" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load shared library 'vtm-jni64.dll' for
target: Windows 10, 64-bit
        at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:118)
        at org.oscim.gdx.GdxMapApp.init(GdxMapApp.java:38)
        at org.oscim.gdx.GdxMapApp.main(GdxMapApp.java:48)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Unable to read file for extraction: vtm-jni64.dll
        at com.badlogic.gdx.utils.SharedLibraryLoader.readFile(SharedLibraryLoader.java:126)
        at com.badlogic.gdx.utils.SharedLibraryLoader.loadFile(SharedLibraryLoader.java:279)
        at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:115)
        ... 2 more


Can you explayn how can i start the example?


--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 17, 2016, 5:36:53 AM6/17/16
to mapsfo...@googlegroups.com
That's because VTM provides currently native libraries only for Linux, so you're missing the proper windows dlls.

I'll push later native libs for all platforms (Windows, Mac, Linux) - give me some time.

--
Emux

Emux

unread,
Jun 17, 2016, 5:54:40 AM6/17/16
to mapsfo...@googlegroups.com
I understand native libraries are critical section of any project.
But right now VTM handles them via external git sub modules.

That part among others falls under reorganization, we should change it with internal storage for proper easy access and updates.

--
Emux

Dirk Weltz

unread,
Jun 17, 2016, 6:17:56 AM6/17/16
to mapsforge-dev
Am Donnerstag, 16. Juni 2016 21:05:09 UTC+2 schrieb Emux:
Thanks for the feedback, I forgot to mention above that any help is most certainly welcome!

For Android there are actually two ways to use OpenGL:

- Directly with the official libraries in Android SDK (vtm-android module)
(what I use as recommended approach by VTM)

- libGDX library with the gdx-backend-android (vtm-android-gdx module)

VTM has in use a versatile interface system for the GL adapter, making it flexible to switch among them.
It's similar to our Mapsforge Android / AWT interfaces for calling different platform calls (which BTW exist also here).

For example in desktop Cruiser I have tried all known libGDX backends using this mechanism.

So you don't choose the recommended way?

Using Mapsforge strictly as tile provider is probably more convenient solution, but then we stumble upon the known problem of cut elements on tile boundaries etc.
Do you have such issues?

 Yes. The map drawing is not the problem, but the label layer.

VTM uses a separate LabelLayer (as we do in Mapsforge) for all these (plus for buildings), with OpenGL rendering, a more complex but direct solution.

 Do you get, how VTM read labels from other tiles? Does is read only labels from Mapsforge or does it read ways too?

The most important concern is themes incompatibility, though we can benefit from many features of its implementation.

 What do you think is better solved than in Mapsforge?

But we'll have time to discuss this, as first I have things to push in the repository (improvements, fixes, organization, etc.).

 But it would be nice, if you could say, what your intention with VTM is? Do you want to renew Mapsforge? Or do you only want to use the OpenGL part for output of Mapsforge? Or do you want to have two different projects?

Cheers,
Dirk

Longri, Andre Höpfner

unread,
Jun 17, 2016, 6:35:32 AM6/17/16
to mapsfo...@googlegroups.com
That's because VTM provides currently native libraries only for Linux, so you're missing the proper windows dlls.
I'll push later native libs for all platforms (Windows, Mac, Linux) - give me some time.


No problem!

I have look into the JNIGEN project to generate the Native by my self, but the struct of this project does not match the original struct from LibGdx so i can‘t generate the Libs.

In future I will anderstand this JNIGEN project to create also natives for iOS! 

Maybe you can explain to the JNIGEN project?

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 17, 2016, 7:09:06 AM6/17/16
to mapsfo...@googlegroups.com
On 17/06/2016 01:17 μμ, Dirk Weltz wrote:
So you don't choose the recommended way?

I was referring that in Android there are two ways (via Android GL or libGDX w/ backend-android).

For desktop the way is via libGDX library with one of its provided backends (lwjgl, lwjgl3, jglfw, etc.) or JogAmp JOGL/JOAL.

It worth mentioning that libGDX 1.9.3 now provides for iOS two backends (MobiDevelop's RoboVM fork or Intel Multi-OS Engine).
(see here and here for details)


 Do you get, how VTM read labels from other tiles? Does is read only labels from Mapsforge or does it read ways too?

Label layer reads symbols and all labels (ways too) - like in Mapsforge.
Essentially everything which falls under rotation and should keep its orientation or change its text direction.


 What do you think is better solved than in Mapsforge?

I'd say VTM themes have additional useful features which we liked but never pushed forward.
Come to my mind right now: external jar storage, base style declaration, styles inheritance, png atlas, etc.


But it would be nice, if you could say, what your intention with VTM is? Do you want to renew Mapsforge? Or do you only want to use the OpenGL part for output of Mapsforge? Or do you want to have two different projects?

My main goal is to have missing features from Mapsforge renderer, like map rotation or variable zoom levels.
Features that cannot (probably) be implemented efficiently with a software renderer AND perform client live vector rendering the same time.
Instead of reinventing the wheel, VTM can play a role as an alternative / companion OpenGL renderer.

The possibilities are many, depending on the course of actions and use of technologies someone decides.
Improving VTM to handle modern Mapsforge seems the logical step to me.
But as always we're open for discussion for all these.

--
Emux

Emux

unread,
Jun 17, 2016, 7:29:41 AM6/17/16
to mapsfo...@googlegroups.com
On 17/06/2016 01:35 μμ, 'Longri, Andre Höpfner' via mapsforge-dev wrote:
Maybe you can explain to the JNIGEN project?

The steps for creating libvtm-jni native libs are: modify JniBuilder for a platform, run it to generate the e.g. build-windows64.xml and then call "ant -f build-windows64.xml" to produce the native lib.
It's safer to play with one platform each time for better debugging the outcome.

I remember I had made some build fixes depending on platform and native compilers used, will have to rerun all again when time comes and updating the repository.

--
Emux

Longri, Andre Höpfner

unread,
Jun 17, 2016, 12:39:48 PM6/17/16
to mapsfo...@googlegroups.com

Ok now I have created a new native for Mac and now I can start the Desktop App.

 

But the App starts with white screen. The console output is also empty. But where I must set a path to any map?

 

 

 

 

Now I must learn to create a Fork and a Pullrequest or want you a Patch?

 

At first I want repair the JniBuilder project. Then the Target of the JNIGEN project is to run only the Builder (JniBuilder) with create the Native, the AntScripts for all Platforms then start the AntScripts to Build the Natives for all Platforms and in the last, with bild.xml, copy all natives in to the vtm-jni-natives.jar. All with one start of the JniBuilder project.

 

 

 


--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 17, 2016, 12:57:36 PM6/17/16
to mapsfo...@googlegroups.com
On 17/06/2016 07:39 μμ, 'Longri, Andre Höpfner' via mapsforge-dev wrote:
But the App starts with white screen. The console output is also empty. But where I must set a path to any map?

Which specific example you try?
(because now some may fail due to #13)


 Now I must learn to create a Fork and a Pullrequest or want you a Patch?


For contributing, Pull requests on master branch of our VTM fork are preferable since the procedure is cleaner and your contribution is more visible. :)

Self reminder: to enable Travis too.


At first I want repair the JniBuilder project. Then the Target of the JNIGEN project is to run only the Builder (JniBuilder) with create the Native, the AntScripts for all Platforms then start the AntScripts to Build the Natives for all Platforms and in the last, with bild.xml, copy all natives in to the vtm-jni-natives.jar. All with one start of the JniBuilder project.


Hmm I don't know if we should have enabled all platforms.
I'll push the native libs in the repository (and update the modules) for the users to play with them.

Making native libs is not something everyone can easily handle since it involves compile tools in their pc which most don't have installed.
Usually one want to build a native family, not all supported platforms.

For example if we enable Android + Windows 32/64 + Mac 32/64 + Linux 32/64, someone who doesn't need Android will fail due to missing NDK.
Mac native building needs MacOS and Windows builds on Linux need special compilers, etc...

--
Emux

Longri, Andre Höpfner

unread,
Jun 17, 2016, 1:29:33 PM6/17/16
to mapsfo...@googlegroups.com

Ok, I will build the mac/iOs natives for my self. For the moment! Can you build the native for mac and iOS, do you have a mac?

 

 

To my start problem. I have start the Desktop project (vtm-desktop) and as main class I have set GdxMapApp


--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 17, 2016, 1:39:33 PM6/17/16
to mapsfo...@googlegroups.com
On 17/06/2016 08:29 μμ, 'Longri, Andre Höpfner' via mapsforge-dev wrote:

Ok, I will build the mac/iOs natives for my self. For the moment! Can you build the native for mac and iOS, do you have a mac?


I have ready the full Android VTM + GDX and Desktop (Win, Mac, Linux) 32/64 collection.

I have not built iOS yet, need to check also the iOS module is in good condition.


To my start problem. I have start the Desktop project (vtm-desktop) and as main class I have set GdxMapApp


See MapTest and MapsforgeTest examples for the desktop.

--
Emux

Longri, Andre Höpfner

unread,
Jun 17, 2016, 2:37:08 PM6/17/16
to mapsfo...@googlegroups.com
ok, thanks 

now I will play a little bit with this and try to run on iOS

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 17, 2016, 4:10:04 PM6/17/16
to mapsfo...@googlegroups.com
I have built and pushed the needed native libraries on repository:

VTM native libraries #14
- Android (armeabi, armeabi-v7a, x86)
- Desktop (Windows, MacOS, Linux) 32/64bit

libGDX Android native libraries #16
- (armeabi, armeabi-v7a, x86)
Needed for using on libGDX w/ Android backend.

Also I updated / fixed all related modules and examples for working properly.

--
Emux

Longri, Andre Höpfner

unread,
Jun 18, 2016, 10:38:16 AM6/18/16
to mapsfo...@googlegroups.com
Hi Emux, at the moment I have enabled the iOS project und have seen that on this project many errors. I think this is not maintained for a long time. Before I will fix this and I will, what is your plan with Bitmap implementations. VTM has a own but not the interfaces from Mapsforge. Do you won't to change this to the Mapsforge interfaces? 

For Android and Desktop do you have code for Bitmap, Canvas, Paint......

For iOS I have code written in a other project but I can use this for this project.
If this project ready for run on iOS I don't need this other project.

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 18, 2016, 11:13:02 AM6/18/16
to mapsfo...@googlegroups.com
I was afraid of that..
Looking at settings.gradle history we can see the vtm-ios was disabled some time ago.

(I have not examined the ios or web modules yet)

iOS was based on libGDX with RoboVM backend.
Now with libGDX 1.9.3 there are two alternatives: "MobiDevelop's RoboVM fork" or "Intel Multi-OS Engine" (see here and here).

Will we continue with one of them ?


On 18/06/2016 05:38 μμ, 'Longri, Andre Höpfner' via mapsforge-dev wrote:
VTM has a own but not the interfaces from Mapsforge. Do you won't to change this to the Mapsforge interfaces?

What do you mean here?
I see that ios module has its own set of graphic classes, like Android, unless it falls behind due to API changes. Is that the case?

I'd prefer first to make it again workable with VTM core, so all sub-projects work in same manner.
Afterwards we could see for specific platform improvements.
Any thoughts?

--
Emux

Emux

unread,
Jun 18, 2016, 11:20:21 AM6/18/16
to mapsfo...@googlegroups.com
On 18/06/2016 05:38 μμ, 'Longri, Andre Höpfner' via mapsforge-dev wrote:
Hi Emux, at the moment I have enabled the iOS project und have seen that on this project many errors.

(Besides the needed libGDX backend for iOS)

I think the class which needs serious write is IosGLAdapter, linking the implemented methods with iOS OpenGL.

How to do that is shown in similar AndroidGL class.

--
Emux

Emux

unread,
Jun 18, 2016, 1:51:10 PM6/18/16
to mapsfo...@googlegroups.com
- VTM fork has now enabled full Travis continuous integration for build / test our repository
https://travis-ci.org/mapsforge/vtm


- You'll find also at our Jenkins server builds for the latest jars and samples applications:
http://ci.mapsforge.org/job/vtm/

--
Emux

Longri, Andre Höpfner

unread,
Jun 20, 2016, 3:11:43 PM6/20/16
to mapsfo...@googlegroups.com
Hi Emux,

I have load the native lib into iOS, but I run now in a FileNotFoundException!

The assetLoader will load a GLShader ‘line_aa_proj’ but the folder assets is not exist!

Can you me say how this asset folder is located?

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 20, 2016, 3:44:18 PM6/20/16
to mapsfo...@googlegroups.com
On 20/06/2016 10:11 μμ, 'Longri, Andre Höpfner' via mapsforge-dev wrote:
Can you me say how this asset folder is located?

That's handled via the GdxAssets.init call and GdxAssets.openFileAsStream does the rest.
For example have a look at the different ways that vtm-desktop and vtm-android-gdx initialize the GdxAssets.
i.e. GdxMapApp.init with "assets/" and MainActivity.onCreate with "".

And if you examine a built vtm-0.6.0-SNAPSHOT.jar you'll see how it's packaged for desktop or a built vtm-android-gdx apk how it's packaged for Android. Inside both there is an assets folder with the library resources, like the shaders (and the one you mentioned).

Probably via the vtm-ios build.gradle you need to package also the assets in the produced result, like it's done in vtm-android-gdx build.gradle?

--
Emux

Emux

unread,
Jun 20, 2016, 3:54:47 PM6/20/16
to mapsfo...@googlegroups.com
On 20/06/2016 10:11 μμ, 'Longri, Andre Höpfner' via mapsforge-dev wrote:
Can you me say how this asset folder is located?

Also to understand the internal mechanism and place the assets at correct position check the source code of Gdx.files.internal implementations of:

- gdx-backend-android
AndroidFiles.internal playing with AssetManager, that's why the "" parameter

- gdx-backend-robovm
IOSFiles.internal playing with normal path

--
Emux

Longri, Andre Höpfner

unread,
Jun 20, 2016, 4:09:00 PM6/20/16
to mapsfo...@googlegroups.com

Normally the ‘asset’ folder is located at the Android project and only one at this!

 

See LibGdx setup!

 

https://github.com/libgdx/libgdx/wiki/Project-Setup-Gradle

 

è Project layout


--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 20, 2016, 4:15:48 PM6/20/16
to mapsfo...@googlegroups.com
Yes 'assets' folder is an integrated Android folder per apk and so we can access it directly via provided AssetManager class.

For desktop, it's just a regular resources folder in a jar like all others.

For iOS there has to be something equivalent?

--
Emux

Longri, Andre Höpfner

unread,
Jun 20, 2016, 4:22:23 PM6/20/16
to mapsfo...@googlegroups.com

Do you have seen my Link?

RoboVm (at normally) compile the Android/assets

And the Desktop is set to working directory direkt to Android/assets

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 20, 2016, 4:26:52 PM6/20/16
to mapsfo...@googlegroups.com
Yes I understand, any platform has to have a way to access resources files (images, text, etc).
So how iOS can parse them?

--
Emux

Longri, Andre Höpfner

unread,
Jun 20, 2016, 4:34:19 PM6/20/16
to mapsfo...@googlegroups.com

I don't now, I will check this tomorrow. I think, I must modify the robovm.xml

But I need a unpacked assets folder and linked over robovm.xml!?

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 20, 2016, 4:44:36 PM6/20/16
to mapsfo...@googlegroups.com
Since there is a IOSFiles.internal in backend-robovm they have to support internal app files parsing?

And probably during the building those assets need to be stored (via gradle or robovm) in that specific location which app / library can access them.

--
Emux

Longri, Andre Höpfner

unread,
Jun 20, 2016, 4:50:16 PM6/20/16
to mapsfo...@googlegroups.com
--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.
Screenshot_2016-06-20-22-48-50.jpg

Longri, Andre Höpfner

unread,
Jun 21, 2016, 4:47:24 AM6/21/16
to mapsfo...@googlegroups.com
Huray!

Inline-Bild 1

Emux

unread,
Jun 21, 2016, 4:54:13 AM6/21/16
to mapsfo...@googlegroups.com
Nice! :)

How did you handle the GdxAssets in iOS ?

--
Emux

Longri, Andre Höpfner

unread,
Jun 21, 2016, 5:16:00 AM6/21/16
to mapsfo...@googlegroups.com
a own folder at vtm-ios/assets

with:

Inline-Bild 2

I will sort, clear and push a PR!


--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 21, 2016, 5:20:57 AM6/21/16
to mapsfo...@googlegroups.com
Hmm for start it'll work.
But eventually it means that we'll have duplicate shaders and themes - not good for maintenance.

Those should reside inside their respective modules (vtm and vtm-themes) and the platform modules who want to use them, to somehow retrieve them at some stage of packaging.

--
Emux

Longri, Andre Höpfner

unread,
Jun 21, 2016, 5:33:16 AM6/21/16
to mapsfo...@googlegroups.com
Hmm for start it'll work.
But eventually it means that we'll have duplicate shaders and themes - not good for maintenance.

That was the point, why I said that the asset folder is typically in Android and only there.
I had to find together the individual folder from multiple sources!

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 21, 2016, 5:39:25 AM6/21/16
to mapsfo...@googlegroups.com
So we cannot (e.g. via gradle) collect the resources in an assets folder inside the vtm-ios virtually and not having them physically there too?

--
Emux

Longri, Andre Höpfner

unread,
Jun 21, 2016, 5:45:12 AM6/21/16
to mapsfo...@googlegroups.com
We can locate somewhere in the project, but not distributed!

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Dirk Weltz

unread,
Jun 21, 2016, 6:44:51 AM6/21/16
to mapsforge-dev
Very good!

Could you say something about the speed on a real iOS device?

Longri, Andre Höpfner

unread,
Jun 21, 2016, 7:21:03 AM6/21/16
to mapsfo...@googlegroups.com
Look at this!


The example is with OSciMap4TileSource() and the layer BuildingLayer and LabelLayer, like the Playground/MapTest!

I think this is very good! The vector data come over http.
For Mapsforge I must first check how I can put a *.map to the iPhone!

2016-06-21 12:44 GMT+02:00 Dirk Weltz <goo...@weltz-online.de>:
Very good!

Could you say something about the speed on a real iOS device?

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Dirk Weltz

unread,
Jun 21, 2016, 8:23:56 AM6/21/16
to mapsforge-dev
Am Dienstag, 21. Juni 2016 13:21:03 UTC+2 schrieb Longri, Andre Höpfner:
Look at this!


The example is with OSciMap4TileSource() and the layer BuildingLayer and LabelLayer, like the Playground/MapTest!

On a 4S. That looks very good. Thank you for the video.
 
I think this is very good! The vector data come over http.
For Mapsforge I must first check how I can put a *.map to the iPhone!

You could upload it via iTunes or you copy the map file with your othere assets.

Max

unread,
Jun 22, 2016, 4:20:39 AM6/22/16
to mapsforge-dev
Hello all,

It's an amazing news, I've tested the generated apk and it's seem very fast in comparison of mapsforge software rendering.
So I've a few question regarding this:

1) It seem that it can handle online  vector tile ".vtm" downloaded from the server directly, right?
What is this format? It seem to be pbuf data or something?

2) I saw that it can decode Mapsforge tile, so it mainly need a small part of mapsforge: the reader alright?
So what is the plan for this "vtm-branch"? Will it replace the "master branch" of mapsforge in future?
Do you have an Idea of the roadmap of this branch?

Indeed it's an amazing upgrade to have 3D and rotation at such a good rendering speed!
Nice works guys!

Regards,

Max



Le jeudi 16 juin 2016 12:19:35 UTC+2, Emux a écrit :
Title says it all..

We're aware that popular features in Mapsforge are map rotation & variable zoom level.
It's a fact that client software rendering of vector data has performance limits.
That's why searching alternative ways for their handling, i.e. OpenGL rendering.

Examined various OS implementations, the most versatile one appears to be VTM (OpenScienceMap).
Working on Android, Desktop, HTML/WebGL, iOS via OpenGL ES or libGDX with backends.
Also it has a solid amalgamation with Mapsforge, since it actually contains fragments of it.

We communicated with Hannes Janetzek about library's state, as it appears being in dormant condition.
And decided to fork it for continue development, furthermore provide compatibility with present Mapsforge.

Some things to consider:
- It's compatible with Mapsforge maps v3 (no multilingual maps v4)
- It lacks support for SVG graphics (useful at HD devices)
- Themes being coastline aware
- Universal cache mechanism

More importantly:
- It's incompatible with Mapsforge themes, having its own variant (with clever ideas)
- Noteworthy missing theme rule is line symbol, e.g. oneways

Analysis of the library was performed and many ideas have emerged.

Looking ahead I'll push:
- Build automation / dependencies updates
- Native libraries for all platforms
- Modules reorganization
- Various improvements
- Fixes (e.g. memory leaks)
- ...

You'll find the new repository here with its own issues list:
https://github.com/mapsforge/vtm

--

Emux

unread,
Jun 22, 2016, 4:58:40 AM6/22/16
to mapsfo...@googlegroups.com
On 22/06/2016 11:20 πμ, Max wrote:
1) It seem that it can handle online  vector tile ".vtm" downloaded from the server directly, right?
What is this format? It seem to be pbuf data or something?

That's protocol buffers based format (see format definition).


2) I saw that it can decode Mapsforge tile, so it mainly need a small part of mapsforge: the reader alright?
So what is the plan for this "vtm-branch"? Will it replace the "master branch" of mapsforge in future?
Do you have an Idea of the roadmap of this branch?

Actually it contains (older) Mapsforge code inside, so yes it can read our map file format.

About roadmap..
I don't mean replacing whole Mapsforge or mixing unrelated engines together,
so people shouldn't worry about our current API, it'll continue working in their apps.

The first goal is to make it playing in parallel with latest Mapsforge:
- Multilingual map files v4
- SVG graphics
- Render themes - no trivial task consisting of many steps

There is work in progress already for most of them.


Indeed it's an amazing upgrade to have 3D and rotation at such a good rendering speed!
Nice works guys!

Congratulations go first to Hannes (and all others) who worked on VTM engine.

Here I took the liberty to fork it:
- For further development
- Plus Mapsforge compatibility

--
Emux

Max

unread,
Jun 23, 2016, 3:11:00 AM6/23/16
to mapsforge-dev
Thank you very much for your answer.

Regards.

Longri, Andre Höpfner

unread,
Jun 23, 2016, 4:37:24 AM6/23/16
to mapsfo...@googlegroups.com
Too much work, too much EM;-)

I hope to have more time on the weakend

2016-06-23 9:11 GMT+02:00 Max <gma...@gmail.com>:
Thank you very much for your answer.

Regards.
--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 25, 2016, 2:04:27 PM6/25/16
to mapsfo...@googlegroups.com
I pushed a series of commits in our VTM repository with work in various areas, most important:

- Support Mapsforge multilingual maps, i.e. binary map file format v4
(see screenshot)

The preferred language can be declared in MapFileTileSource, I updated the samples.

- Enable reading for 'addr:housenumber' and 'ele' POI tags

- Integrate the established 'sea' & 'nosea' tags for sea / land polygons in Mapsforge maps for a proper visual result
(see screenshot)

This required a series of changes since our land polygons (via OpenStreetMapData) are split with slight overlap.
The regular area rendering via stencil buffer does not like overlapping for elements in the same layer.

Specially for the land I use the rendering via tessellation, via a new 'mesh' area rule directive.
According to docs it's slower to load and uses more memory but should be faster to render (needs testing of course).

There are still some artifacts on land split seams at small zoom levels 0-8, where map-writer performs large simplification.
But for that method there is not available a stroke-width to cover them.


So several new things were implemented for all to try, expect more to come.

--
Emux
opengl_multilingual.png

Longri, Andre Höpfner

unread,
Jun 27, 2016, 8:12:13 AM6/27/16
to mapsfo...@googlegroups.com
Hi Emux,
at the moment I try to set DisplayDensity to check the Label drawing.
But I can’t find any point to set the correct density!
Can you say where I must set!

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 27, 2016, 8:19:50 AM6/27/16
to mapsfo...@googlegroups.com
If I understand correctly, you mean how the device density affects the labels text size?

That's handled by CanvasAdapter's dpi and textScale variables.

The dpi are set in Android MapView here on creation.

Then the text scale is then set on render theme loading in ThemeLoader here.

So you need only to set the dpi and the text scale will follow automatically.

--
Emux

Emux

unread,
Jun 28, 2016, 3:02:56 PM6/28/16
to mapsfo...@googlegroups.com
I'm happy to announce that our VTM fork has now a workable iOS module.

Congratulations go to Longri, Andre Höpfner for his work to that result.

As always we encourage you to test it and report us any feedback.


Only module waiting now for necessary care is WebGL :)

--
Emux

Longri, Andre Höpfner

unread,
Jun 28, 2016, 3:38:34 PM6/28/16
to mapsfo...@googlegroups.com

Ok, next step!

 

Do you plan to upload all library Jar’s to maven or other repro?

 

So we need :?

vtm-android.jar include natives and *.class

vtm-desktop.jar include natives and *.class

vtm-ios.jar include natives and *.class

 

and

 

vtm-core.jar includes ':vtm', ':vtm-gdx' and ':vtm-themes' with resources and *.class

 

or you wont split vtm, vtm-gdx and vtm-themes

 


--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 28, 2016, 4:21:00 PM6/28/16
to mapsfo...@googlegroups.com
Very good question!

Currently we provide VTM master jars in our Jenkins CI server: http://ci.mapsforge.org/job/vtm/
Built continuously with each commit. If there is need for different jar bundles, please report.

About Maven..
That certainly would provide users with ready artifacts to work and greater visibility for testing VTM and receiving feedback.

For the bundling I think libGDX approach is the best. Separate jars for core, backends, natives, etc.

Looking to my initial todo list (see 1st post), and after having Mapsforge multilingual maps v4 compatibility,
most important features missing right now are:

- SVG graphics in render themes
- Mapsforge themes compatibility

The themes compatibility is not a trivial task, consisting of many steps.
So it can probably follow a possible release(?).

But I find SVG graphics integration necessary for current HD devices.
Existing themes have smallish symbols. Need either png scaling (?) or better a full replacement of symbols with svg.
For Android / Desktop we known the libraries to use. Andre for iOS what's the situation there?

So that would be my next focus and then proceed with some release candidates and if all are ok with a release.


And I'd like to remind all, that master branch can also be used via Gradle / Maven with JitPack's help.

--
Emux

Longri, Andre Höpfner

unread,
Jun 28, 2016, 4:42:08 PM6/28/16
to mapsfo...@googlegroups.com
On Jenkins can I see that in the vtm-ios-0.6.0-SNAPSHOT.jar is only the java.class files!
So we must copy the native files in this Jar! I will try!

 SVG:
 
for iOS it gives a library https://github.com/SVGKit/SVGKit to create Bitmap images from a SVG file. At the moment gives no RoboVm binding to this library. But I will do this. I will load SVG’s for my UI images so I need this bindings, but I must learn how I do this! (but is possible) 

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.

Emux

unread,
Jun 28, 2016, 4:56:14 PM6/28/16
to mapsfo...@googlegroups.com
On 28/06/2016 11:42 μμ, 'Longri, Andre Höpfner' via mapsforge-dev wrote:
On Jenkins can I see that in the vtm-ios-0.6.0-SNAPSHOT.jar is only the java.class files!
So we must copy the native files in this Jar! I will try!

No, no need for merging. e.g. Android / Desktop jars are also without their natives.
And it'll be better to have them separate (see above remark about gdx jars).

So they're just missed right now. We'll need to add them too somehow.
(I think that in Mapsforge we don't have also the SpatiaLite native libs).


 SVG:
 
for iOS it gives a library https://github.com/SVGKit/SVGKit to create Bitmap images from a SVG file. At the moment gives no RoboVm binding to this library. But I will do this. I will load SVG’s for my UI images so I need this bindings, but I must learn how I do this! (but is possible)

Ok, so I can prepare the core VTM infrastructure / interfaces for SVG support first.

Then
- I'll work with Android / Desktop backends
- You can complete the iOS integration

--
Emux

Longri, Andre Höpfner

unread,
Jun 28, 2016, 4:58:31 PM6/28/16
to mapsforge-dev
👍

Emux

unread,
Jun 28, 2016, 5:36:27 PM6/28/16
to mapsfo...@googlegroups.com
I forgot to mention that a fine test of how a library is published properly, is to try publishing in your local Maven repository (usually in .m2 folder under user home).

Then try using those artifacts in a project, they should work if things were done right.

(see Gradle / Maven instructions for using local Maven)

--

Longri, Andre Höpfner

unread,
Jun 28, 2016, 5:41:39 PM6/28/16
to mapsfo...@googlegroups.com

JitPack is good for use snapshot!

--
You received this message because you are subscribed to the Google Groups "mapsforge-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapsforge-de...@googlegroups.com.
To post to this group, send email to mapsfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/mapsforge-dev.
Message has been deleted

Emux

unread,
Jul 4, 2016, 9:37:43 AM7/4/16
to mapsfo...@googlegroups.com
I pushed a major refactoring to VTM Gradle build system with many improvements.

Most important is that now all native libraries are built into their own jars and can be installed to local Maven repository (and in the future to Maven central & Bintray).

vtm-android-0.6.0-SNAPSHOT-natives.jar
vtm-android-gdx-0.6.0-SNAPSHOT-natives.jar
vtm-desktop-0.6.0-SNAPSHOT-natives.jar
vtm-ios-0.6.0-SNAPSHOT-natives.jar

All VTM artifacts are already provided in our Jenkins server:
http://ci.mapsforge.org/job/vtm/

--
Emux

Emux

unread,
Jul 7, 2016, 2:44:51 PM7/7/16
to mapsfo...@googlegroups.com
I pushed a cleanup of core vtm module to free it from the JTS dependency.
For that I created a new vtm-jts module, so that core can be independent again.

See #53 for details and the two path layer implementations (one regular, one with JTS).

Now road is more open to revive the web modules too.

--
Emux

Emux

unread,
Jul 16, 2016, 4:38:33 PM7/16/16
to mapsfo...@googlegroups.com
I integrated SVG support in VTM.

Working in Android via AndroidSVG and Desktop via SVG Salamander.

This required a series of additions and changes in render themes infrastructure, quite useful anyway.

- Allow reading symbols without a texture atlas  #64
- Read resources also from files, besides internal assets  #65
- Support location prefixes in resources, for better flexibility  #66
- Integrate SVG support  #60
- Introduce scaling to other rendering instructions #67
- Add a SVG collection in render themes (with further improvements) #68

Note that SVG resources currently work without the need of the common OpenGL texture atlas.

I think VTM is now much more usable than before.
As always please report your feedback.

--
Emux

Emux

unread,
Jul 21, 2016, 3:40:02 PM7/21/16
to mapsfo...@googlegroups.com
I forgot to mention that Longri provided the iOS SVG implementation via PR #69.
Thanks for that!

iOS instructions can be found here (link also on main page).

--
Emux

Emux

unread,
Jul 28, 2016, 12:52:18 PM7/28/16
to mapsfo...@googlegroups.com
I pushed another set of work in our VTM fork.


- Graphics API extensive refactoring with various additions / improvements / fixes on all platforms #92

That's a good base and sets the tone for more things to come in the future. :-)


- Result: new Map Scale Bar in a multi-platform implementation as OpenGL layer #84

- Bonus: a GroupLayer implementation for easier layers handling #99

- Natives libs now are split per platform and architecture #85  #86

--
Emux
Message has been deleted

Emux

unread,
Aug 7, 2016, 1:50:45 PM8/7/16
to mapsfo...@googlegroups.com
I pushed yet another significant amount of updates in VTM.

Based on Hannes' former work, albeit with many additions and fixes.

We now support OpenGL line stipples and textures on various levels  #105 :

- Rendering via a new GL shader
- Render themes
- Path overlays (regular and JTS)

A prerequisite for the oneway pattern at roads.

As usual you can check the examples for API use.


Side note: I moved development version to master-SNAPSHOT (as we have in Mapsforge).

--
Emux

Emux

unread,
Aug 23, 2016, 3:41:12 AM8/23/16
to mapsfo...@googlegroups.com
I created an Applications page, to list those using VTM software.
(like the one we have in Mapsforge)

Please inform us via the forum for any missing app to fill it.

--
Emux

Emux

unread,
Sep 6, 2016, 2:41:36 PM9/6/16
to mapsfo...@googlegroups.com
I pushed another popular feature in VTM fork.

- Render theme styles #93 (adapted from Mapsforge)

Allow to turn selectively rules on / off in render themes.
In effect define multiple layers in a map that can be controlled individually.

The styles syntax is the same with Mapsforge (see here).


Note: all new features can be found in latest Cruiser for Android + Desktop.

--
Message has been deleted

Emux

unread,
Sep 9, 2016, 1:05:59 PM9/9/16
to mapsfo...@googlegroups.com
On 08/09/2016 09:37 μμ, 'toc-rox' via mapsforge-dev wrote:
The progress concerning V4-theme support is not really clear for me. Current I get an error message when I try to load my v4 theme (freizeitkarte) in Cruiser-Android.

Regards Klaus


Hi Klaus,
(your message was in spam, I unmarked it)

You mean not open with OpenGL right?

Currently VTM is not compatible with Mapsforge themes (issue #100), as they use "somehow" different rules syntax.
I intend to look after it - not a trivial task. :)

VTM theme syntax can be seen in default theme, and also the schema.

--
Emux

Gustl22

unread,
Dec 11, 2018, 7:21:59 PM12/11/18
to mapsforge-dev
Is it worth to optionally integrate OpenGL 3 into VTM project? Of course keeping compatibility with v2, dependent on the user device. Later implementations (e.g. shadows) may can take advantage of it. Or should try to base all on OpenGL 2?

Emux

unread,
Dec 12, 2018, 3:12:36 AM12/12/18
to mapsfo...@googlegroups.com
Everything could be examined (even Vulkan), but having in mind:

- Should be as extra option (aka module) on top of current implementation, so that library can continue to work for everyone.

- And not break current library compatibility for the many users who have it in their apps.

Also shadows where, 3D buildings or libGDX - which many not need on Android?
As most use the lib for fast map rendering. :)

--
Emux

Gustl22

unread,
Dec 14, 2018, 9:25:41 AM12/14/18
to mapsforge-dev
> Should be as extra option (aka module) on top of current implementation, so that library can continue to work for everyone.

A new module is kind of difficult, cause every platform needs it own implementation in its current module, and the only major change in core is the new GL30 interface.
I know it's only a side case for most users, so it should and would stay compatible and safe of course.
A further option could be to open a side branch, but can discuss when open the PR and tested it enough :D

Emux

unread,
Dec 14, 2018, 11:13:40 AM12/14/18
to mapsfo...@googlegroups.com
Another idea is to activate it via Parameters class, like the several optional features we have already in there.

Preferably to have duplicate classes than modify existing stable code. When new classes mature enough can replace them.

--
Emux

Emux

unread,
Dec 14, 2018, 11:17:34 AM12/14/18
to mapsfo...@googlegroups.com
My idea (for desktop) is to decouple libGDX backends (#259) so can offer also LWJGL3 libGDX backend (#258).

But all these need time for implementation and very good testing.

--
Emux

Gustl22

unread,
Apr 15, 2019, 11:19:31 AM4/15/19
to mapsforge-dev
Anyone knows a OpenGL tracing software that works with LWJGL applications on Linux? (Not search for an error logger, more to step through opengl events frame by frame)
I tried GAPID, Nvidia-GFX-Debugger, RenderDoc and APITrace and nothing seem to work with jar files... may I misconfigured the debuggers.

Debugging on Android works, but is circuitous to implement tests there.

Thanks for help :)

Max

unread,
Apr 16, 2019, 8:17:47 AM4/16/19
to mapsforge-dev
I once used nsight graphics from Nvidia but not for java/jar:
https://developer.nvidia.com/nsight-graphics

Maybe you can give a try...

Gustl22

unread,
Apr 17, 2019, 3:11:26 AM4/17/19
to mapsforge-dev
I tried but I am not able to attach Nsight debugger. I wrote support and they answered that LWJGL apps aren't tested well.

We've never tested Nsight on LWJGL application, I believe it should work though, as the underlaying is still the graphics libraries (C/C++). But feel free to report bug to us if you encounter any issue.

So have to do more investigation here.

Thanks for your help!

Gustl22

unread,
Apr 17, 2019, 6:12:46 AM4/17/19
to mapsforge-dev
Hi Emux,

I managed to integrate LWJGL3 libGDX backend. I'm not sure what you mean with decouple libGDX backends. I think we use only lwjgl as backend, so its easy to move it to its own module. But I don't know if its worth to decouple from whole libGDX framework to use other frameworks (means which others concretely)?
So u may can have a quick look at my implementation and share your thoughts.

I created these new modules:
vtm-desktop-lwjgl -> current gdx implementation
vtm-desktop-lwjgl3

Thanks!

Gustl

Emux

unread,
Apr 17, 2019, 7:04:35 AM4/17/19
to mapsfo...@googlegroups.com
> I managed to integrate LWJGL3 libGDX backend.

Very nice!

> I'm not sure what you mean with decouple libGDX backends.

To have separate modules for the GDX backends on desktop.


Implementation seems fine, we can proceed in separate steps (PR):

- Split vtm-desktop in: vtm-desktop + vtm-desktop-lwjgl

Update desktop samples, close #259.
Repository after that should work the same.

- Introduce vtm-desktop-lwjgl3

Close #258.

For the record back then I tested all known backends, like JGLFW, LWJGL, LWJGL3, JOGL, etc.
Only the LWJGL was found capable to work with Java advanced frame / canvas management.

For now vtm-playground can have all dependencies, with default the LWJGL.
The LWJGL3 needs sufficient testing before making it default in all samples.

--
Emux
Reply all
Reply to author
Forward
0 new messages