2016-09-16 22:35:06 +02:00
EWOL: Bases {#ewol_page_bases }
2016-04-01 21:17:25 +02:00
===========
2016-09-16 22:35:06 +02:00
@tableofcontents
Overview: {#ewol_page_bases_overview }
2016-09-15 22:43:04 +02:00
=========
2013-12-09 21:39:29 +01:00
2013-12-10 21:40:43 +01:00
EWOL is an OpenGL library for creating graphical user interfaces.
2016-09-16 22:35:06 +02:00
It works on many UNIX-like platforms, Windows, and OS X and some mobile platforms Android, iOs.
2017-01-05 21:28:23 +01:00
EWOL is released under the MPL v2.0 license, which allows for very flexible licensing of client applications.
2013-12-10 21:40:43 +01:00
EWOL has a C++ architecture that allows for maximum flexibility.
2017-01-05 21:28:23 +01:00
**MPL v2.0 license limitation:** I limit myself to use only Apache2 / MIT / BSD / PNG / MPL licencing to permit to release binary on IOs.
2016-09-16 22:35:06 +02:00
This I a big point, because it need to rewrite many libraries (like SVG...).
2013-12-10 21:40:43 +01:00
The main idea of EWOL is to create a complete abstraction of the platforms.
This generate some restriction that you will see an overwiew in the under section.
2016-09-16 22:35:06 +02:00
User requires: {#ewol_page_bases_require }
2016-09-15 22:43:04 +02:00
==============
2016-04-01 21:17:25 +02:00
2013-12-09 21:39:29 +01:00
To use ewol you need to know only C++ language. It could be usefull to know:
2016-09-16 22:35:06 +02:00
- **Python** for [lutin ](http://HeeroYui.github.io/lutin ) build tool.
- **git** and **repo** for all version management.
- **OpenGL-ES2** if you want to create custum advanced widget.
2013-12-09 21:39:29 +01:00
2016-09-16 22:35:06 +02:00
If you just want to have an interface of the openGl just refer to the [gale library ](http://atria-soft.github.io/gale )
2016-03-23 21:44:32 +01:00
2016-09-16 22:35:06 +02:00
Ewol does not manage the Audio but it is full integrated in [audio-river library ](http://musicdsp.github.io/audio-river ).
2016-03-23 21:44:32 +01:00
2016-09-16 22:35:06 +02:00
Architecture: {#ewol_page_bases_architecture }
2016-09-15 22:43:04 +02:00
=============
2016-09-16 22:35:06 +02:00
One of the important point to know in this framework is some of absurd things came from the multiple architecture type.
2013-12-09 21:39:29 +01:00
2013-12-10 21:40:43 +01:00
I will Explain the main points:
2017-01-05 21:28:23 +01:00
- IOs does **NOT** simply support the shared object sub lib, this force ewol to be MPL v2.0, and depend on some sub-library with small license restriction.
2016-09-16 22:35:06 +02:00
- Android have a JAVA main, then the application main will not be used with this platform
- Android event (keyboard, mouse, touch-screen and ...) will arrive in asynchron mode ==> need to be resynchronyse in one thread
- Only one graphyc framework is availlable on all platform. This is OpenGL (windows phone is not supported (moribund archi))
- Main interesting point is packaging of the application data:
* Linux store it in /usr/share/applName/*
* MacOs store it in applName.app/subFolder/*
* Android store it in the .pkg that is a renamed .zip that the name is dynamic
* Windows (TODO : Never done a pakage)
This will generate a complex result of data access...
- Sub lib Change on all the platform, then I will use the idea of Apple, that incluse in a package all needed libs.
This could be a problem for small platform, but this framwork need to have a OpenGL-ES2 instance then the memory problem,
is not really a problem.
2013-12-09 21:39:29 +01:00