Page 1 of 2

c++ initialization

Posted: 12 Sep 2016, 22:58
by Keyboarder
Do you have any plans to unify the initialization process of rendering NoesisGUI on a standalone application (app without Unity3d) across different platforms?
On your documentation page (http://www.noesisengine.com/docs/Gui.Core.SDKGuide.html) you describe how to init NoesisGui per system and whether you use OpenGl or DirectX.
Are you planning to simplify this process and make it more like single step across all supported platforms?
Something like Qt for an example where you only have to declare QApplication at the beginning of your app code.

Best,
L

Re: c++ initialization

Posted: 13 Sep 2016, 00:17
by jsantos
Hi!

We don't have plans to incorporate an application layer to abstract those kind of things. That must be done by the client code.

Having said that, we have an abstraction here (not part of core) for our applications (XamlPlayer uses it). We have considered several times to open source it in Github but didn't find the time for doing it. It is not only uploading to GitHub, it is cleaning the code, removing Noesis dependencies, etc.

Have you considered the option of using something like SDL or similar?

Re: c++ initialization

Posted: 14 Sep 2016, 11:02
by Keyboarder
Have you considered the option of using something like SDL or similar?
We are considering BGFX https://bkaradzic.github.io/bgfx/overview.html.

Our use case is not games, but desktop(windowed) and mobile app?

Can somebody maybe offer some insight on bgfx+noesis integration?

Re: c++ initialization

Posted: 14 Sep 2016, 21:19
by jsantos
Yes, I know BGFX but using it only for the app loop abstraction seems to be overkilling.

In fact, BGFX does not provide that abstracion in the core architecture. It is part of the utilities they use for the samples. Very similiar to Noesis indeed.

Re: c++ initialization

Posted: 15 Sep 2016, 11:07
by Keyboarder
Yes, I know BGFX but using it only for the app loop abstraction seems to be overkilling.
We need to cover all modern platforms (uwp, android, ios, macos, linux), so we would really like to have an abstraction for window and event loop setup. Do you have something lighter in mind for us besides SDL or do you think it's just better to go with #if...#elif pragmas per platform?

Re: c++ initialization

Posted: 16 Sep 2016, 06:25
by jsantos
I would go with custom code because I don't know of any good library covering this, at least elegantly. BGFX is a amazing library, but is is a 3D graphics engine not an app abstraction layer.

Re: c++ initialization

Posted: 16 Sep 2016, 15:25
by Keyboarder
Ok, we would do that.
Having said that, we have an abstraction here (not part of core) for our applications (XamlPlayer uses it). We have considered several times to open source it in Github but didn't find the time for doing it. It is not only uploading to GitHub, it is cleaning the code, removing Noesis dependencies, etc.
Is it possible to get this code, even "uncleaned" and undocumented?
...best case scenario; we can clean it for you
...worst case scenario; we use it as a reference and send you back link for open sourced 'app abstraction layer' (on github).

Re: c++ initialization

Posted: 17 Sep 2016, 22:25
by jsantos
Is it possible to get this code, even "uncleaned" and undocumented?
Sure, contact me in private please.

Re: c++ initialization

Posted: 19 Sep 2016, 16:31
by Keyboarder
We were going back and forth with different options, and now we see that in NoesisGUI 1.3 beta2,
"Renderers are no longer part of the runtime. You must provide one implementation."

So we looked at Angle;
https://github.com/google/angle (and fork from Microsoft https://github.com/Microsoft/angle )

It does have initialization loop, renderers, (and a massive support!)... exactly what is needed for app development (for non-gaming use cases). But to connect that with Noesis we would need a "wrapper"(Angle render device) for it.
It would be beneficial for Noesis to showcase multiplatform "onboarding" without a game engine.

Since our background is not in graphical engines and that it would probably take us 10x amount the time that someone who knows what Noesis needs, i would like to request this feature (code for Angle Render Device for Noesis).

Re: c++ initialization

Posted: 19 Sep 2016, 22:09
by jsantos
Hmm... that doesn't make much sense for us. Angle is an API translator between different rendering standards (basically from OpenGL to Microsoft world).

We already provide a OpenGL/GL ES render device that you can use. Why would you need a translator? The OpenGL implementation can be found in the 1.3 SDK. You will also find there the D3D11 implementation.

The main change is that those renderers are no longer part of the core. But we are going to continue providing them as reference implementation to our clients.