Android first version is now ok ==> must review event and insit uninit system for android
This commit is contained in:
parent
aa3e79f8d1
commit
278fc2712f
2
Makefile
2
Makefile
@ -311,7 +311,7 @@ clean:
|
|||||||
@echo ' CLEANING : $(F_VIOLET)$(OUTPUT_NAME)$(F_NORMALE)'$(CADRE_COTERS)
|
@echo ' CLEANING : $(F_VIOLET)$(OUTPUT_NAME)$(F_NORMALE)'$(CADRE_COTERS)
|
||||||
@echo $(CADRE_HAUT_BAS)
|
@echo $(CADRE_HAUT_BAS)
|
||||||
ifeq ($(PLATFORM), Android)
|
ifeq ($(PLATFORM), Android)
|
||||||
rm -r bin libs gen obj
|
rm -rf bin libs gen obj
|
||||||
else
|
else
|
||||||
@echo Remove Folder : $(OBJECT_DIR)
|
@echo Remove Folder : $(OBJECT_DIR)
|
||||||
@rm -rf $(OBJECT_DIR)
|
@rm -rf $(OBJECT_DIR)
|
||||||
|
@ -87,13 +87,13 @@ class Plop :public ewol::Windows
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static Plop * myWindowsExample = NULL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief main input fonction
|
* @brief main application function Initialisation
|
||||||
*/
|
*/
|
||||||
int main(int argc, char *argv[])
|
void APP_Init(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
|
||||||
ewol::Init(argc, argv);
|
|
||||||
ewol::ChangeSize(800, 600);
|
ewol::ChangeSize(800, 600);
|
||||||
/*
|
/*
|
||||||
if (true == ewol::AddFont("dataTest/TextMonospace.ebt", true, true, true) ) {
|
if (true == ewol::AddFont("dataTest/TextMonospace.ebt", true, true, true) ) {
|
||||||
@ -103,23 +103,18 @@ int main(int argc, char *argv[])
|
|||||||
ewol::SetFontFolder("Font");
|
ewol::SetFontFolder("Font");
|
||||||
ewol::SetDefaultFont("freefont/FreeMono", 14);
|
ewol::SetDefaultFont("freefont/FreeMono", 14);
|
||||||
ewol::theme::LoadDefault("dataTest/exemple.eol");
|
ewol::theme::LoadDefault("dataTest/exemple.eol");
|
||||||
//ewol::theme::LoadDefault("dataTest/exemple.eol");
|
|
||||||
//exit(0);
|
|
||||||
|
|
||||||
Plop * myWindowsExample = new Plop();
|
myWindowsExample = new Plop();
|
||||||
|
|
||||||
|
|
||||||
// create the specific windows
|
// create the specific windows
|
||||||
ewol::DisplayWindows(myWindowsExample);
|
ewol::DisplayWindows(myWindowsExample);
|
||||||
|
}
|
||||||
ewol::Run();
|
|
||||||
|
/**
|
||||||
ewol::DisplayWindows(NULL);
|
* @brief main application function Un-Initialisation
|
||||||
|
*/
|
||||||
delete(myWindowsExample);
|
void APP_UnInit(void)
|
||||||
|
{
|
||||||
ewol::UnInit();
|
delete(myWindowsExample);
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
* @file guiAndroid.h
|
* @file gui.h
|
||||||
* @brief Gui abstraction layer (header)
|
* @brief Gui abstraction layer (header)
|
||||||
* @author Edouard DUPIN
|
* @author Edouard DUPIN
|
||||||
* @date 20/10/2011
|
* @date 20/10/2011
|
||||||
@ -44,6 +44,8 @@ namespace guiAbstraction
|
|||||||
bool IsPressedInput(int32_t inputID);
|
bool IsPressedInput(int32_t inputID);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//!< must be define in CPP by the application ...
|
||||||
|
void APP_Init(int argc, char *argv[]);
|
||||||
|
void APP_UnInit(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -33,8 +33,10 @@
|
|||||||
#include <ewol/Debug.h>
|
#include <ewol/Debug.h>
|
||||||
#include <etk/String.h>
|
#include <etk/String.h>
|
||||||
#include <ewol/WidgetManager.h>
|
#include <ewol/WidgetManager.h>
|
||||||
#include <base/guiAndroid.h>
|
#include <base/gui.h>
|
||||||
|
#include <ewol/ewol.h>
|
||||||
|
|
||||||
|
#include <importgl.h>
|
||||||
|
|
||||||
|
|
||||||
#include <app.h>
|
#include <app.h>
|
||||||
@ -50,9 +52,10 @@ static long sTimeOffset = 0;
|
|||||||
static int sTimeOffsetInit = 0;
|
static int sTimeOffsetInit = 0;
|
||||||
static long sTimeStopped = 0;
|
static long sTimeStopped = 0;
|
||||||
|
|
||||||
static int32_t currentWidth = 320;
|
static etkFloat_t m_width = 320;
|
||||||
static int32_t currentHeight = 480;
|
static etkFloat_t m_height = 480;
|
||||||
|
|
||||||
|
ewol::Windows* m_uniqueWindows = NULL;
|
||||||
|
|
||||||
static long _getTime(void)
|
static long _getTime(void)
|
||||||
{
|
{
|
||||||
@ -61,6 +64,9 @@ static long _getTime(void)
|
|||||||
return (long)(now.tv_sec*1000 + now.tv_usec/1000);
|
return (long)(now.tv_sec*1000 + now.tv_usec/1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Draw(void);
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -68,7 +74,8 @@ extern "C"
|
|||||||
void Java_com_example_ewolAbstraction_EwolRenderer_nativeInit( JNIEnv* env )
|
void Java_com_example_ewolAbstraction_EwolRenderer_nativeInit( JNIEnv* env )
|
||||||
{
|
{
|
||||||
EWOL_INFO("Init : Start All Application");
|
EWOL_INFO("Init : Start All Application");
|
||||||
appInit();
|
ewol::Init(0, NULL);
|
||||||
|
APP_Init(0, NULL);
|
||||||
gAppAlive = 1;
|
gAppAlive = 1;
|
||||||
sDemoStopped = 0;
|
sDemoStopped = 0;
|
||||||
sTimeOffsetInit = 0;
|
sTimeOffsetInit = 0;
|
||||||
@ -77,16 +84,24 @@ extern "C"
|
|||||||
|
|
||||||
void Java_com_example_ewolAbstraction_EwolRenderer_nativeResize( JNIEnv* env, jobject thiz, jint w, jint h )
|
void Java_com_example_ewolAbstraction_EwolRenderer_nativeResize( JNIEnv* env, jobject thiz, jint w, jint h )
|
||||||
{
|
{
|
||||||
currentWidth = w;
|
m_width = w;
|
||||||
currentHeight = h;
|
m_height = h;
|
||||||
EWOL_INFO("Resize w=" << w << " h=" << h);
|
EWOL_INFO("Resize w=" << w << " h=" << h);
|
||||||
|
if (NULL != m_uniqueWindows) {
|
||||||
|
m_uniqueWindows->CalculateSize((etkFloat_t)m_width, (etkFloat_t)m_height);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Call to finalize the graphics state */
|
/* Call to finalize the graphics state */
|
||||||
void Java_com_example_ewolAbstraction_EwolRenderer_nativeDone( JNIEnv* env )
|
void Java_com_example_ewolAbstraction_EwolRenderer_nativeDone( JNIEnv* env )
|
||||||
{
|
{
|
||||||
EWOL_INFO("Renderer : Close All Application");
|
EWOL_INFO("Renderer : Close All Application");
|
||||||
appDeinit();
|
// unset all windows
|
||||||
|
ewol::DisplayWindows(NULL);
|
||||||
|
// call application to uninit
|
||||||
|
APP_UnInit();
|
||||||
|
// uninit Ewol
|
||||||
|
ewol::UnInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is called to indicate to the render loop that it should
|
/* This is called to indicate to the render loop that it should
|
||||||
@ -111,7 +126,13 @@ extern "C"
|
|||||||
{
|
{
|
||||||
EWOL_INFO("Event : Input Motion ID=" << pointerID << " x=" << x << " y=" << y);
|
EWOL_INFO("Event : Input Motion ID=" << pointerID << " x=" << x << " y=" << y);
|
||||||
if (0 == pointerID) {
|
if (0 == pointerID) {
|
||||||
appMove(x,y);
|
//appMove(x,y);
|
||||||
|
if(NULL != m_uniqueWindows) {
|
||||||
|
m_uniqueWindows->GenEventInput(ewol::FLAG_EVENT_INPUT_1, ewol::EVENT_INPUT_TYPE_DOWN, (etkFloat_t)x, (etkFloat_t)y);
|
||||||
|
m_uniqueWindows->GenEventInput(ewol::FLAG_EVENT_INPUT_1 | ewol::FLAG_EVENT_INPUT_CLICKED, ewol::EVENT_INPUT_TYPE_SINGLE, (etkFloat_t)x, (etkFloat_t)y);
|
||||||
|
m_uniqueWindows->GenEventInput(ewol::FLAG_EVENT_INPUT_1, ewol::EVENT_INPUT_TYPE_UP, (etkFloat_t)x, (etkFloat_t)y);
|
||||||
|
m_uniqueWindows->CalculateSize((etkFloat_t)m_width, (etkFloat_t)m_height);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,7 +169,7 @@ extern "C"
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
appRender(curTime, currentWidth, currentHeight);
|
Draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -156,6 +177,121 @@ extern "C"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void Setwindow(ewol::Windows* newWindows)
|
||||||
|
{
|
||||||
|
m_uniqueWindows = newWindows;
|
||||||
|
if (NULL != m_uniqueWindows) {
|
||||||
|
m_uniqueWindows->CalculateSize((etkFloat_t)m_width, (etkFloat_t)m_height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static etkFloat_t gTriangleVertices[] = { 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f };
|
||||||
|
static etkFloat_t gTriangleVertices5[] = { 200.0f, 200.0f, 100.0f, 200.0f, 200.0f, 100.0f,
|
||||||
|
200.0f, 200.0f, 300.0f, 200.0f, 200.0f, 300.0f };
|
||||||
|
|
||||||
|
void Draw(void)
|
||||||
|
{
|
||||||
|
//EWOL_DEBUG("redraw (" << m_width << "," << m_height << ")");
|
||||||
|
if(NULL == m_uniqueWindows) {
|
||||||
|
// set the size of the open GL system
|
||||||
|
glViewport(0,0,m_width,m_height);
|
||||||
|
|
||||||
|
// Clear the screen with transparency ...
|
||||||
|
glClearColor(0.0,0.0,0.0, 1.0);
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
glMatrixMode(GL_PROJECTION);
|
||||||
|
glLoadIdentity();
|
||||||
|
//glOrtho(0., width, 0., -height, 1., 20.);
|
||||||
|
glOrtho(-m_width/2, m_width/2, m_height/2, -m_height/2, -1, 1);
|
||||||
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
glLoadIdentity();
|
||||||
|
|
||||||
|
//glTranslatef(0, -height/2, -5);
|
||||||
|
glTranslatef(-m_width/2, -m_height/2, -1.0);
|
||||||
|
|
||||||
|
glEnable(GL_BLEND);
|
||||||
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA);
|
||||||
|
//glBlendFunc(GL_SRC_ALPHA, GL_SRC_COLOR);
|
||||||
|
|
||||||
|
glEnableClientState( GL_VERTEX_ARRAY );
|
||||||
|
|
||||||
|
//LOGI("engine_draw_frame (%d,%d)",width,height);
|
||||||
|
|
||||||
|
glColor4f(0.0, 1.0, 1.0, 1.0);
|
||||||
|
glVertexPointer(2, oglTypeFloat_t, 0, gTriangleVertices5 );
|
||||||
|
glDrawArrays( GL_TRIANGLES, 0, 6);
|
||||||
|
static int vallllll = 0;
|
||||||
|
static float transparency = 0.0;
|
||||||
|
if (vallllll <= 1) {
|
||||||
|
transparency +=0.025;
|
||||||
|
if (transparency >= 1.0) {
|
||||||
|
vallllll++;
|
||||||
|
transparency = 0.0;
|
||||||
|
glColor4f(1.0, 0.0, 0.0, 1.0);
|
||||||
|
} else {
|
||||||
|
glColor4f(1.0, 0.0, 0.0, transparency);
|
||||||
|
}
|
||||||
|
} else if (vallllll <= 2) {
|
||||||
|
transparency +=0.025;
|
||||||
|
if (transparency >= 1.0) {
|
||||||
|
vallllll++;
|
||||||
|
transparency = 0.0;
|
||||||
|
glColor4f(1.0, 1.0, 0.0, 1.0);
|
||||||
|
} else {
|
||||||
|
glColor4f(1.0, 1.0, 0.0, transparency);
|
||||||
|
}
|
||||||
|
} else if (vallllll <= 3) {
|
||||||
|
transparency +=0.025;
|
||||||
|
if (transparency >= 1.0) {
|
||||||
|
vallllll++;
|
||||||
|
transparency = 0.0;
|
||||||
|
glColor4f(0.0, 1.0, 0.0, 1.0);
|
||||||
|
} else {
|
||||||
|
glColor4f(0.0, 1.0, 0.0, transparency);
|
||||||
|
}
|
||||||
|
} else if (vallllll <= 4) {
|
||||||
|
transparency +=0.025;
|
||||||
|
if (transparency >= 1.0) {
|
||||||
|
vallllll++;
|
||||||
|
transparency = 0.0;
|
||||||
|
glColor4f(0.0, 1.0, 1.0, 1.0);
|
||||||
|
} else {
|
||||||
|
glColor4f(0.0, 1.0, 1.0, transparency);
|
||||||
|
}
|
||||||
|
} else if (vallllll <= 5) {
|
||||||
|
transparency +=0.025;
|
||||||
|
if (transparency >= 1.0) {
|
||||||
|
vallllll++;
|
||||||
|
transparency = 0.0;
|
||||||
|
glColor4f(0.0, 0.0, 1.0, 1.0);
|
||||||
|
} else {
|
||||||
|
glColor4f(0.0, 0.0, 1.0, transparency);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
transparency +=0.025;
|
||||||
|
if (transparency >= 1.0) {
|
||||||
|
vallllll = 0;
|
||||||
|
transparency = 0.0;
|
||||||
|
glColor4f(1.0, 0.0, 1.0, 1.0);
|
||||||
|
} else {
|
||||||
|
glColor4f(1.0, 0.0, 1.0, transparency);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
glVertexPointer(2, oglTypeFloat_t, 0, gTriangleVertices );
|
||||||
|
glDrawArrays( GL_TRIANGLES, 0, 3);
|
||||||
|
|
||||||
|
glDisableClientState( GL_VERTEX_ARRAY );
|
||||||
|
|
||||||
|
glDisable(GL_BLEND);
|
||||||
|
} else {
|
||||||
|
m_uniqueWindows->SysDraw();
|
||||||
|
}
|
||||||
|
glFlush();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -182,13 +318,7 @@ void guiAbstraction::Init(int32_t argc, char *argv[])
|
|||||||
|
|
||||||
void guiAbstraction::Run(void)
|
void guiAbstraction::Run(void)
|
||||||
{
|
{
|
||||||
if (true == guiAbstractionIsInit) {
|
EWOL_INFO("Noting to run in android mode ...");
|
||||||
EWOL_INFO("Start Running");
|
|
||||||
//myX11Access->Run();
|
|
||||||
EWOL_INFO("Stop Running");
|
|
||||||
} else {
|
|
||||||
EWOL_CRITICAL("Can not Run X11 ==> not init ... ");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void guiAbstraction::Stop(void)
|
void guiAbstraction::Stop(void)
|
||||||
@ -203,7 +333,7 @@ void guiAbstraction::Stop(void)
|
|||||||
void guiAbstraction::SetDisplayOnWindows(ewol::Windows * newOne)
|
void guiAbstraction::SetDisplayOnWindows(ewol::Windows * newOne)
|
||||||
{
|
{
|
||||||
if (true == guiAbstractionIsInit) {
|
if (true == guiAbstractionIsInit) {
|
||||||
//myX11Access->Setwindow(newOne);
|
Setwindow(newOne);
|
||||||
} else {
|
} else {
|
||||||
EWOL_CRITICAL("Can not set Windows X11 ==> not init ... ");
|
EWOL_CRITICAL("Can not set Windows X11 ==> not init ... ");
|
||||||
}
|
}
|
||||||
@ -277,3 +407,43 @@ bool guiAbstraction::IsPressedInput(int32_t inputID)
|
|||||||
return false;
|
return false;
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// never had main in android ...
|
||||||
|
/*
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
void glOrtho(GLfloat left,
|
||||||
|
GLfloat right,
|
||||||
|
GLfloat bottom,
|
||||||
|
GLfloat top,
|
||||||
|
GLfloat nearVal,
|
||||||
|
GLfloat farVal)
|
||||||
|
{
|
||||||
|
GLfloat myMatrix[4*4];
|
||||||
|
int iii;
|
||||||
|
for(iii=0; iii<4*4 ; iii++) {
|
||||||
|
myMatrix[iii] = 0;
|
||||||
|
}
|
||||||
|
myMatrix[0] = 2.0 / (right - left);
|
||||||
|
myMatrix[5] = 2.0 / (top - bottom);
|
||||||
|
myMatrix[10] = -2.0 / (farVal - nearVal);
|
||||||
|
#if 1
|
||||||
|
myMatrix[3] = -1*(right + left) / (right - left);
|
||||||
|
myMatrix[7] = -1*(top + bottom) / (top - bottom);
|
||||||
|
myMatrix[11] = -1*(farVal + nearVal) / (farVal - nearVal);
|
||||||
|
#else
|
||||||
|
// test if matrix is not corectly instanciate ...
|
||||||
|
myMatrix[12] = -1*(right + left) / (right - left);
|
||||||
|
myMatrix[13] = -1*(top + bottom) / (top - bottom);
|
||||||
|
myMatrix[14] = -1*(farVal + nearVal) / (farVal - nearVal);
|
||||||
|
#endif
|
||||||
|
myMatrix[15] = 1;
|
||||||
|
|
||||||
|
glLoadMatrixf(myMatrix);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
/**
|
|
||||||
*******************************************************************************
|
|
||||||
* @file guiDoubleBuffer.h
|
|
||||||
* @brief Gui abstraction layer (header)
|
|
||||||
* @author Edouard DUPIN
|
|
||||||
* @date 20/10/2011
|
|
||||||
* @par Project
|
|
||||||
* ewol
|
|
||||||
*
|
|
||||||
* @par Copyright
|
|
||||||
* Copyright 2011 Edouard DUPIN, all right reserved
|
|
||||||
*
|
|
||||||
* This software is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY.
|
|
||||||
*
|
|
||||||
* Licence summary :
|
|
||||||
* You can modify and redistribute the sources code and binaries.
|
|
||||||
* You can send me the bug-fix
|
|
||||||
*
|
|
||||||
* Term of the licence in in the file licence.txt.
|
|
||||||
*
|
|
||||||
*******************************************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __GUI_ABSTRACTION_H__
|
|
||||||
#define __GUI_ABSTRACTION_H__
|
|
||||||
|
|
||||||
#include <etk/Types.h>
|
|
||||||
|
|
||||||
namespace guiAbstraction
|
|
||||||
{
|
|
||||||
void Init(int32_t argc, char *argv[]);
|
|
||||||
void Run(void);
|
|
||||||
void UnInit(void);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,39 +0,0 @@
|
|||||||
/**
|
|
||||||
*******************************************************************************
|
|
||||||
* @file guiIPhone.h
|
|
||||||
* @brief Gui abstraction layer (header)
|
|
||||||
* @author Edouard DUPIN
|
|
||||||
* @date 20/10/2011
|
|
||||||
* @par Project
|
|
||||||
* ewol
|
|
||||||
*
|
|
||||||
* @par Copyright
|
|
||||||
* Copyright 2011 Edouard DUPIN, all right reserved
|
|
||||||
*
|
|
||||||
* This software is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY.
|
|
||||||
*
|
|
||||||
* Licence summary :
|
|
||||||
* You can modify and redistribute the sources code and binaries.
|
|
||||||
* You can send me the bug-fix
|
|
||||||
*
|
|
||||||
* Term of the licence in in the file licence.txt.
|
|
||||||
*
|
|
||||||
*******************************************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __GUI_ABSTRACTION_H__
|
|
||||||
#define __GUI_ABSTRACTION_H__
|
|
||||||
|
|
||||||
#include <etk/Types.h>
|
|
||||||
|
|
||||||
namespace guiAbstraction
|
|
||||||
{
|
|
||||||
void Init(int32_t argc, char *argv[]);
|
|
||||||
void Run(void);
|
|
||||||
void UnInit(void);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -26,7 +26,7 @@
|
|||||||
#include <ewol/Debug.h>
|
#include <ewol/Debug.h>
|
||||||
#include <etk/String.h>
|
#include <etk/String.h>
|
||||||
#include <ewol/WidgetManager.h>
|
#include <ewol/WidgetManager.h>
|
||||||
#include <base/guiX11.h>
|
#include <base/gui.h>
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -876,3 +876,27 @@ bool guiAbstraction::IsPressedInput(int32_t inputID)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include <ewol/ewol.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
// init Ewol
|
||||||
|
ewol::Init(argc, argv);
|
||||||
|
// Init Application ...
|
||||||
|
APP_Init(argc, argv);
|
||||||
|
// Start Ewol diwplay while
|
||||||
|
ewol::Run();
|
||||||
|
// unset all windows
|
||||||
|
ewol::DisplayWindows(NULL);
|
||||||
|
// call application to uninit
|
||||||
|
APP_UnInit();
|
||||||
|
// uninit Ewol
|
||||||
|
ewol::UnInit();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
/**
|
|
||||||
*******************************************************************************
|
|
||||||
* @file guiX11.h
|
|
||||||
* @brief Gui abstraction layer (header)
|
|
||||||
* @author Edouard DUPIN
|
|
||||||
* @date 20/10/2011
|
|
||||||
* @par Project
|
|
||||||
* ewol
|
|
||||||
*
|
|
||||||
* @par Copyright
|
|
||||||
* Copyright 2011 Edouard DUPIN, all right reserved
|
|
||||||
*
|
|
||||||
* This software is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY.
|
|
||||||
*
|
|
||||||
* Licence summary :
|
|
||||||
* You can modify and redistribute the sources code and binaries.
|
|
||||||
* You can send me the bug-fix
|
|
||||||
*
|
|
||||||
* Term of the licence in in the file licence.txt.
|
|
||||||
*
|
|
||||||
*******************************************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __GUI_ABSTRACTION_H__
|
|
||||||
#define __GUI_ABSTRACTION_H__
|
|
||||||
|
|
||||||
#include <etk/Types.h>
|
|
||||||
#include <ewol/Windows.h>
|
|
||||||
|
|
||||||
namespace guiAbstraction
|
|
||||||
{
|
|
||||||
void Init(int32_t argc, char *argv[]);
|
|
||||||
void Run(void);
|
|
||||||
void Stop(void);
|
|
||||||
void UnInit(void);
|
|
||||||
void SetDisplayOnWindows(ewol::Windows * newOne);
|
|
||||||
void ChangeSize(int32_t w, int32_t h);
|
|
||||||
void ChangePos(int32_t x, int32_t y);
|
|
||||||
void GetAbsPos(int32_t & x, int32_t & y);
|
|
||||||
void StartResizeSystem(void);
|
|
||||||
void StartMoveSystem(void);
|
|
||||||
bool IsPressedInput(int32_t inputID);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -41,32 +41,7 @@ void glOrtho(GLfloat left,
|
|||||||
GLfloat bottom,
|
GLfloat bottom,
|
||||||
GLfloat top,
|
GLfloat top,
|
||||||
GLfloat nearVal,
|
GLfloat nearVal,
|
||||||
GLfloat farVal)
|
GLfloat farVal);
|
||||||
{
|
|
||||||
GLfloat myMatrix[4*4];
|
|
||||||
int iii;
|
|
||||||
for(iii=0; iii<4*4 ; iii++) {
|
|
||||||
myMatrix[iii] = 0;
|
|
||||||
}
|
|
||||||
myMatrix[0] = 2.0 / (right - left);
|
|
||||||
myMatrix[5] = 2.0 / (top - bottom);
|
|
||||||
myMatrix[10] = -2.0 / (farVal - nearVal);
|
|
||||||
#if 1
|
|
||||||
myMatrix[3] = -1*(right + left) / (right - left);
|
|
||||||
myMatrix[7] = -1*(top + bottom) / (top - bottom);
|
|
||||||
myMatrix[11] = -1*(farVal + nearVal) / (farVal - nearVal);
|
|
||||||
#else
|
|
||||||
// test if matrix is not corectly instanciate ...
|
|
||||||
myMatrix[12] = -1*(right + left) / (right - left);
|
|
||||||
myMatrix[13] = -1*(top + bottom) / (top - bottom);
|
|
||||||
myMatrix[14] = -1*(farVal + nearVal) / (farVal - nearVal);
|
|
||||||
#endif
|
|
||||||
myMatrix[15] = 1;
|
|
||||||
|
|
||||||
glLoadMatrixf(myMatrix);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,6 +29,14 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <typeinfo>
|
#include <typeinfo>
|
||||||
|
|
||||||
|
#if defined(__PLATFORM__Android)
|
||||||
|
# include <string.h>
|
||||||
|
# include <android/log.h>
|
||||||
|
# define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "====> EWOL", __VA_ARGS__))
|
||||||
|
# define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "====> EWOL", __VA_ARGS__))
|
||||||
|
# define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "====> EWOL", __VA_ARGS__))
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace etk{
|
namespace etk{
|
||||||
class CEndl{};
|
class CEndl{};
|
||||||
class CHex{};
|
class CHex{};
|
||||||
@ -36,12 +44,75 @@ namespace etk{
|
|||||||
private:
|
private:
|
||||||
bool hex;
|
bool hex;
|
||||||
public:
|
public:
|
||||||
|
#if defined(__PLATFORM__Android)
|
||||||
|
private:
|
||||||
|
char m_tmpChar[2048];
|
||||||
|
public:
|
||||||
|
CCout(){
|
||||||
|
hex=false;
|
||||||
|
memset(m_tmpChar, 0, 2048*sizeof(char));
|
||||||
|
};
|
||||||
|
~CCout() { };
|
||||||
|
CCout& operator << (int t) {
|
||||||
|
char tmp[256];
|
||||||
|
sprintf(tmp,"%d", t);
|
||||||
|
strcat(m_tmpChar, tmp);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CCout& operator << (unsigned int t) {
|
||||||
|
char tmp[256];
|
||||||
|
sprintf(tmp, "%d", t);
|
||||||
|
strcat(m_tmpChar, tmp);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CCout& operator << (long t) {
|
||||||
|
char tmp[256];
|
||||||
|
sprintf(tmp, "%ld", t);
|
||||||
|
strcat(m_tmpChar, tmp);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CCout& operator << (double t) {
|
||||||
|
char tmp[256];
|
||||||
|
sprintf(tmp, "%f", t);
|
||||||
|
strcat(m_tmpChar, tmp);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CCout& operator << (float t) {
|
||||||
|
char tmp[256];
|
||||||
|
sprintf(tmp, "%f", t);
|
||||||
|
strcat(m_tmpChar, tmp);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CCout& operator << (char * t) {
|
||||||
|
char tmp[256];
|
||||||
|
sprintf(tmp, "%s", t);
|
||||||
|
strcat(m_tmpChar, tmp);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CCout& operator << (const char * t) {
|
||||||
|
char tmp[256];
|
||||||
|
sprintf(tmp, "%s", t);
|
||||||
|
strcat(m_tmpChar, tmp);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CCout& operator << (char t) {
|
||||||
|
char tmp[256];
|
||||||
|
sprintf(tmp, "%c", t);
|
||||||
|
strcat(m_tmpChar, tmp);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CCout& operator << (etk::CEndl t) {
|
||||||
|
strcat(m_tmpChar, "\n");
|
||||||
|
LOGI("%s", m_tmpChar);
|
||||||
|
memset(m_tmpChar, 0, 2048*sizeof(char));
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
#else
|
||||||
CCout(){
|
CCout(){
|
||||||
hex=false;
|
hex=false;
|
||||||
};
|
};
|
||||||
|
|
||||||
~CCout() { };
|
~CCout() { };
|
||||||
|
|
||||||
CCout& operator << (int t) {
|
CCout& operator << (int t) {
|
||||||
printf("%d", t);
|
printf("%d", t);
|
||||||
return *this;
|
return *this;
|
||||||
@ -78,6 +149,7 @@ namespace etk{
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
extern etk::CCout cout;
|
extern etk::CCout cout;
|
||||||
extern etk::CEndl endl;
|
extern etk::CEndl endl;
|
||||||
|
@ -58,7 +58,8 @@ ewol::OObject2DText::~OObject2DText(void)
|
|||||||
void ewol::OObject2DText::Draw(void)
|
void ewol::OObject2DText::Draw(void)
|
||||||
{
|
{
|
||||||
if (m_coord.Size()<=0) {
|
if (m_coord.Size()<=0) {
|
||||||
EWOL_WARNING("Nothink to draw...");
|
// TODO : a remètre ...
|
||||||
|
//EWOL_WARNING("Nothink to draw...");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// TODO : Android does not support GL_QUADS ...
|
// TODO : Android does not support GL_QUADS ...
|
||||||
|
@ -68,6 +68,7 @@ bool ewol::Widget::CalculateSize(etkFloat_t availlableX, etkFloat_t availlableY)
|
|||||||
bool ewol::Widget::GenEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y)
|
bool ewol::Widget::GenEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y)
|
||||||
{
|
{
|
||||||
bool ended = false;
|
bool ended = false;
|
||||||
|
EWOL_WARNING("Input event : " << IdInput << " pos(" << x << "," << y << ")");
|
||||||
for(int32_t iii=m_inputEvent.Size()-1; iii>=0; iii--) {
|
for(int32_t iii=m_inputEvent.Size()-1; iii>=0; iii--) {
|
||||||
if (EWOL_EVENT_AREA == m_inputEvent[iii].mode) {
|
if (EWOL_EVENT_AREA == m_inputEvent[iii].mode) {
|
||||||
if( m_inputEvent[iii].area.origin.x <= x
|
if( m_inputEvent[iii].area.origin.x <= x
|
||||||
|
@ -134,6 +134,24 @@ bool ewol::Windows::OnEventInput(int32_t IdInput, eventInputType_te typeEvent, e
|
|||||||
void ewol::Windows::SysDraw(void)
|
void ewol::Windows::SysDraw(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#if defined(__PLATFORM__Android)
|
||||||
|
// set the size of the open GL system
|
||||||
|
glViewport(0,0,m_size.x,m_size.y);
|
||||||
|
|
||||||
|
// Clear the screen with transparency ...
|
||||||
|
glClearColor(0.0,0.0,0.0, 1.0);
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
glMatrixMode(GL_PROJECTION);
|
||||||
|
glLoadIdentity();
|
||||||
|
//glOrtho(0., width, 0., -height, 1., 20.);
|
||||||
|
glOrtho(-m_size.x/2, m_size.x/2, m_size.y/2, -m_size.y/2, -1, 1);
|
||||||
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
glLoadIdentity();
|
||||||
|
|
||||||
|
//glTranslatef(0, -height/2, -5);
|
||||||
|
glTranslatef(-m_size.x/2, -m_size.y/2, -1.0);
|
||||||
|
#else
|
||||||
//EWOL_DEBUG("Drow on (" << m_size.x << "," << m_size.y << ")");
|
//EWOL_DEBUG("Drow on (" << m_size.x << "," << m_size.y << ")");
|
||||||
// set the size of the open GL system
|
// set the size of the open GL system
|
||||||
glViewport(0,0,m_size.x,m_size.y);
|
glViewport(0,0,m_size.x,m_size.y);
|
||||||
@ -149,13 +167,13 @@ void ewol::Windows::SysDraw(void)
|
|||||||
glMatrixMode(GL_MODELVIEW);
|
glMatrixMode(GL_MODELVIEW);
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
glTranslatef(0, -m_size.y, -5);
|
glTranslatef(0, -m_size.y, -5);
|
||||||
|
#endif
|
||||||
//http://www.khronos.org/opengles/documentation/opengles1_0/html/glBlendFunc.html
|
//http://www.khronos.org/opengles/documentation/opengles1_0/html/glBlendFunc.html
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA);
|
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA);
|
||||||
//glBlendFunc(GL_SRC_ALPHA, GL_SRC_COLOR);
|
//glBlendFunc(GL_SRC_ALPHA, GL_SRC_COLOR);
|
||||||
|
|
||||||
GenDraw();
|
GenDraw();
|
||||||
|
|
||||||
glDisable(GL_BLEND);
|
glDisable(GL_BLEND);
|
||||||
|
@ -28,21 +28,7 @@
|
|||||||
#include <ewol/WidgetManager.h>
|
#include <ewol/WidgetManager.h>
|
||||||
#include <ewol/themeManager.h>
|
#include <ewol/themeManager.h>
|
||||||
|
|
||||||
#if defined(__PLATFORM__X11)
|
#include <base/gui.h>
|
||||||
#include <base/guiX11.h>
|
|
||||||
#elif defined(__PLATFORM__DoubleBuffer)
|
|
||||||
#include <base/guiDoubleBuffer.h>
|
|
||||||
#elif defined(__PLATFORM__Android)
|
|
||||||
#include <base/guiAndroid.h>
|
|
||||||
#elif defined(__PLATFORM__AndroidTablet)
|
|
||||||
#include <base/guiAndroidTablet.h>
|
|
||||||
#elif defined(__PLATFORM__IPhone)
|
|
||||||
#include <base/guiIPhone.h>
|
|
||||||
#elif defined(__PLATFORM__IPad)
|
|
||||||
#include <base/guiIPad.h>
|
|
||||||
#else
|
|
||||||
#error you need to specify a platform ...
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef __class__
|
#undef __class__
|
||||||
#define __class__ "ewol"
|
#define __class__ "ewol"
|
||||||
|
@ -137,11 +137,11 @@ void ewol::Test::OnRegenerateDisplay(void)
|
|||||||
|
|
||||||
AddOObject(tmpOObjects, "BouttonDecoration");
|
AddOObject(tmpOObjects, "BouttonDecoration");
|
||||||
|
|
||||||
tmpOObjects = new ewol::OObject2DColored;
|
//tmpOObjects = new ewol::OObject2DColored;
|
||||||
|
|
||||||
ewol::theme::Generate(0, 0, *tmpOObjects, 50, 50, m_size.x*0.75, m_size.y*0.75);
|
//ewol::theme::Generate(0, 0, *tmpOObjects, 50, 50, m_size.x*0.75, m_size.y*0.75);
|
||||||
|
|
||||||
AddOObject(tmpOObjects, "themeObject");
|
//AddOObject(tmpOObjects, "themeObject");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ LOCAL_MODULE := ewolabstraction
|
|||||||
|
|
||||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../Sources
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../Sources
|
||||||
|
|
||||||
LOCAL_CFLAGS := -D__PLATFORM__Android -Wno-write-strings
|
LOCAL_CFLAGS := -D__PLATFORM__Android -Wno-write-strings -DETK_DEBUG_LEVEL=3 -DEWOL_DEBUG_LEVEL=3 -DEWOL_VERSION_TAG_NAME="\"UNKNOW-debug\"" -DVERSION_BUILD_TIME="\"pasd_heure\""
|
||||||
|
|
||||||
#enable io stream in the STL ...
|
#enable io stream in the STL ...
|
||||||
#APP_STL := gnustl_static
|
#APP_STL := gnustl_static
|
||||||
@ -16,6 +16,7 @@ LOCAL_CFLAGS := -D__PLATFORM__Android -Wno-write-strings
|
|||||||
|
|
||||||
LOCAL_SRC_FILES := \
|
LOCAL_SRC_FILES := \
|
||||||
../Sources/demo.cpp \
|
../Sources/demo.cpp \
|
||||||
|
../Sources/Main.cpp \
|
||||||
../Sources/base/guiAndroid.cpp \
|
../Sources/base/guiAndroid.cpp \
|
||||||
../Sources/tinyXML/tinyxml.cpp \
|
../Sources/tinyXML/tinyxml.cpp \
|
||||||
../Sources/tinyXML/tinyxmlparser.cpp \
|
../Sources/tinyXML/tinyxmlparser.cpp \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user