diff --git a/doc/001_bases.bb b/doc/001_bases.md similarity index 100% rename from doc/001_bases.bb rename to doc/001_bases.md diff --git a/doc/faq.bb b/doc/faq.md similarity index 57% rename from doc/faq.bb rename to doc/faq.md index 4a760745..014b7671 100644 --- a/doc/faq.bb +++ b/doc/faq.md @@ -1,6 +1,8 @@ -=?= FAQ =?= +FAQ +=== -== What is ewol licence == +What is ewol licence +-------------------- This is really simple : APACHE-2 : @@ -10,7 +12,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - [[http://www.apache.org/licenses/LICENSE-2.0]] + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -21,13 +23,14 @@ limitations under the License. -== Why we use "DECLARE_FACTORY" Macro ? == +Why we use "DECLARE_FACTORY" Macro? +----------------------------------- For some reason!!! But everything might be clear: -:** In ewol we masively use std::shared_ptr (I have create my own but it is not "standard" (I like when we use genecic system)). -:** The main class : [class[ewol::Object]] herited from [i]std::enable_shared_from_this[/i] to permit to access at his own [i]std::shared_ptr[/i]. -:** Acces At his own [i]std::shared_ptr[/i] is not allowed in the class contructor/destructor. -:** Many time for meta-widget we need to propagate our [i]std::shared_ptr[/i] in child. +- In ewol we masively use ememory::SharedPtr (simple wrapper over std::shared_ptr (that is not thread safe ...)). +- The main class : ewol::Object herited from ememory::EnableSharedFromThis to permit to access at his own ememory::SharedPtr. +- Acces At his own ememory::SharedPtr is not allowed in the class contructor/destructor. +- Many time for meta-widget we need to propagate our ememory::SharedPtr in child through the ememory::WeakPtr. Then for all these reasons, I have create a simple MACRO that create a static template funtion that create the object and just after creation call the init(...) function to permit to create a complex widget or others with some writing convinience. diff --git a/doc/mainpage.md b/doc/mainpage.md new file mode 100644 index 00000000..f187d29c --- /dev/null +++ b/doc/mainpage.md @@ -0,0 +1,123 @@ +Ewol library {#mainpage} +============ + +What is EWOL, and how can I use it? +----------------------------------- + +EWOL, or Edn Widget OpenGl Layer, is a multi-platform library for creating graphical user interfaces in OpenGL. Offering a complete set of widgets. + +Where can I use it? +------------------- + +Everywhere! EWOL is cross-platform devolopped to support bases OS: +- Linux (X11) (mouse) +- Windows (mouse) (build on linux...) +- MacOs (mouse) +- Android (mouse + touch) +- IOs (touch) + +What languages are supported? +----------------------------- + +EWOL is written in C++ and is not (for now) supported for other languages. + +Are there any licensing restrictions? +------------------------------------- + +EWOL is [b]FREE software[/b] and [i]all sub-library are FREE and staticly linkable !!![/i] + +That allow you to use it for every program you want, including those developing proprietary software, without any license fees or royalties. + +The static support is important for some platform like IOs, and this limit the external library use at some license like: +- BSD* +- MIT +- APPACHE-2 +- PNG +- ZLIB + +This exclude the classical extern library with licence: +- L-GPL +- GPL + +License (APACHE 2) +------------------ + +Copyright ewol Edouard DUPIN + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +Sub library: +------------ + +License: + +- [**etk**](http://atria-soft.github.io/etk) : APACHE-2 +- [**elog**](http://atria-soft.github.io/elog) : APACHE-2 + + **linearmath** : z-lib (subset of bullet lib) + + [**earchive**](http://atria-soft.github.io/earchive) : APACHE-2 + * **zlib** : z-lib +- [**egami**](http://atria-soft.github.io/egami) : APACHE-2 + + [**esvg**](http://atria-soft.github.io/esvg) : APACHE-2 + + **libpng** : PNG +- **libogg** : BSD-like +- **libfreetype** : BSD-like +- [**e-json**](http://atria-soft.github.io/ejson) : APACHE-2 +- [**e-xml**](http://atria-soft.github.io/exml) : APACHE-2 +- [**audio**](http://musicdsp.github.io/audio) : APACHE-2 +- [**audio-orchestra**](http://musicdsp.github.io/audio-orchestra) : APACHE-2 +- [**audio-river**](http://musicdsp.github.io/audio-river) : APACHE-2 + +... + +Description: +------------ + +Internal: + +- [**elog**](http://atria-soft.github.io/elog) : Generic Log interface (for Android and MacOs) ... +- [**etk**](http://atria-soft.github.io/etk) : Generic toolkit to acces on file, standardize acces on string (for Android and MacOs) ... +- [**earchive**](http://atria-soft.github.io/earchive) : Generic access to a zip file (used to access on file on Android) +- [**egami**](http://atria-soft.github.io/egami) : generic image accessor for PNG, svg and bmp image (might add some other type ...) +- [**esvg**](http://atria-soft.github.io/esvg) : Generic SVG image parser and displayer +- [**e-json**](http://atria-soft.github.io/ejson) : JSON file access (read and write) +- [**e-xml**](http://atria-soft.github.io/exml) : XML file access (read and write) +- [**audio**](http://musicdsp.github.io/audio) : Basic audio format +- [**audio-orchestra**](http://musicdsp.github.io/audio-orchestra) : Low level wrapper of audio interface (Linux/Windows/MacOs/IOs/Android) +- [**audio-river**](http://musicdsp.github.io/audio-river) : High level audio abstraction +- [**ege**](http://musicdsp.github.io/ege) : Ewol Game engine is a wrapper on the the bullet physical engine and ewol renderer engin. This is in developpement for now (the simple objective is to produce game to make profitable all my work) + +External: +--------- + +- **linearmath** : bullet mathamatical sub lib (for using same vec3). +- **Z lib** : Clkassical zlib lib. +- **libPNG** : the classical png display lib. +- **ogg** : The classical Ogg coder reader lib. +- **freetype** : The classicle true-type reader lib. +- **bulletlib** : the classical bullet library physical engine. (dependence by ege) + +Program Using EWOL +------------------ + +- [**edn**](http://musicdsp.github.io/edn): (Application in GPLv3) Edn is the main application using this lib and designed for (in the first time). This is a "Code editor". +- [**worddown**](http://play.google.com/store/apps/details?id=com.edouarddupin.worddown): (Proprietary) Worddown is a simple word game. + + +Main documentation: +------------------- + +[doc[001_bases | Global Documantation]] + +[tutorial[000_Build | Tutorials]] + diff --git a/doxy_ewol.py b/doxy_ewol.py new file mode 100644 index 00000000..27a10223 --- /dev/null +++ b/doxy_ewol.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +import os +import doxy.module as module +import doxy.debug as debug +import doxy.tools as tools + +def create(target, module_name): + my_module = module.Module(__file__, module_name) + my_module.set_version([0,9,"dev"]) + my_module.set_title("Ewol: Ewol Widget in OpenGl") + my_module.set_website("http://atria-soft.github.io/" + module_name) + my_module.set_website_sources("http://github.com/atria-soft/" + module_name) + my_module.set_path([ + os.path.join(tools.get_current_path(__file__), module_name), + os.path.join(tools.get_current_path(__file__), "doc") + ]) + my_module.add_module_depend([ + 'elog', + 'etk', + 'esignal', + 'eproperty', + 'ememory', + 'gale', + 'exml', + 'ejson', + 'egami' + ]) + + return my_module \ No newline at end of file diff --git a/tools/visual_test/appl/debug.h b/tools/visual_test/appl/debug.h index d94a0be6..fe52a4aa 100644 --- a/tools/visual_test/appl/debug.h +++ b/tools/visual_test/appl/debug.h @@ -1,43 +1,43 @@ -/** +/** @file * @author Edouard DUPIN * - * @copyright 2010, Edouard DUPIN, all right reserved + * @copyright 2011, Edouard DUPIN, all right reserved * - * @license GPL v3 (see license file) + * @license APACHE v2.0 (see license file) */ #pragma once #include +#include namespace appl { + /** + * @brief Get local id of the library + * @return Unique ID of the library + */ int32_t getLogId(); }; -// TODO : Review this problem of multiple intanciation of "std::stringbuf sb" -#define APPL_BASE(info,data) \ - do { \ - if (info <= elog::getLevel(appl::getLogId())) { \ - std::stringbuf sb; \ - std::ostream tmpStream(&sb); \ - tmpStream << data; \ - elog::logStream(appl::getLogId(), info, __LINE__, __class__, __func__, tmpStream); \ - } \ - } while(0) -#define APPL_CRITICAL(data) APPL_BASE(1, data) -#define APPL_ERROR(data) APPL_BASE(2, data) -#define APPL_WARNING(data) APPL_BASE(3, data) +#define APPL_BASIC(info,data) ELOG_BASE(appl::getLogId(),info,data) + +#define APPL_PRINT(data) APPL_BASIC(-1, data) +#define APPL_CRITICAL(data) APPL_BASIC(1, data) +#define APPL_ERROR(data) APPL_BASIC(2, data) +#define APPL_WARNING(data) APPL_BASIC(3, data) #ifdef DEBUG - #define APPL_INFO(data) APPL_BASE(4, data) - #define APPL_DEBUG(data) APPL_BASE(5, data) - #define APPL_VERBOSE(data) APPL_BASE(6, data) - #define APPL_TODO(data) APPL_BASE(4, "TODO : " << data) + #define APPL_INFO(data) APPL_BASIC(4, data) + #define APPL_DEBUG(data) APPL_BASIC(5, data) + #define APPL_VERBOSE(data) APPL_BASIC(6, data) + #define APPL_TODO(data) APPL_BASIC(4, "TODO : " << data) #else - #define APPL_INFO(data) do { } while(false) - #define APPL_DEBUG(data) do { } while(false) - #define APPL_VERBOSE(data) do { } while(false) - #define APPL_TODO(data) do { } while(false) + #define APPL_INFO(data) do { } while(false) + #define APPL_DEBUG(data) do { } while(false) + #define APPL_VERBOSE(data) do { } while(false) + #define APPL_TODO(data) do { } while(false) #endif +#define APPL_HIDDEN(data) do { } while(false) + #define APPL_ASSERT(cond,data) \ do { \ if (!(cond)) { \