diff --git a/sources/ewol/game/Element.cpp b/sources/ewol/game/Element.cpp index 8d5709fa..b38ceb88 100644 --- a/sources/ewol/game/Element.cpp +++ b/sources/ewol/game/Element.cpp @@ -43,7 +43,10 @@ game::Element::~Element(void) void game::Element::Draw(void) { if (NULL != m_resource) { - m_resource->Draw(); + m_property.m_matrix = etk::matScale(vec3(100,100,100) ) + /* etk::matRotate(m_property.m_angle, rotx)*/ + * etk::matTranslate(vec3(0.01,0.0,0.0)); + m_resource->Draw(m_property.m_matrix); } } diff --git a/sources/ewol/game/Engine.cpp b/sources/ewol/game/Engine.cpp index 89f0c268..9129286e 100644 --- a/sources/ewol/game/Engine.cpp +++ b/sources/ewol/game/Engine.cpp @@ -39,6 +39,7 @@ void game::Engine::Process(int64_t lastTime, int32_t deltaTime) void game::Engine::Draw(ewol::DrawProperty& displayProp) { + EWOL_DEBUG("Draw ..."); for (int32_t iii=0; iiiDraw(); diff --git a/sources/ewol/renderer/resources/Mesh.cpp b/sources/ewol/renderer/resources/Mesh.cpp index 49a33195..1cf3afdd 100644 --- a/sources/ewol/renderer/resources/Mesh.cpp +++ b/sources/ewol/renderer/resources/Mesh.cpp @@ -37,7 +37,7 @@ ewol::Mesh::~Mesh(void) } -void ewol::Mesh::Draw(void) +void ewol::Mesh::Draw(mat4& positionMatrix) { static float rotx = 0; static float roty = 0; @@ -61,12 +61,7 @@ void ewol::Mesh::Draw(void) m_GLprogram->Use(); // set Matrix : translation/positionMatrix mat4 tmpMatrix = ewol::openGL::GetMatrix(); - tmpMatrix = etk::matScale(vec3(100,100,100) ) - * etk::matRotate(vec3(1,0,0), rotx) - * etk::matRotate(vec3(0,1,0), roty)/* - * etk::matTranslate(vec3(0.01,0.0,0.0)) - * etk::matRotate(vec3(0,0,1), rotz)*/ - * tmpMatrix; + tmpMatrix = positionMatrix * tmpMatrix; m_GLprogram->UniformMatrix4fv(m_GLMatrix, 1, tmpMatrix.m_mat); // TextureID m_GLprogram->SetTexture0(m_GLtexID, m_texture1->GetId()); diff --git a/sources/ewol/renderer/resources/Mesh.h b/sources/ewol/renderer/resources/Mesh.h index c7094884..f47c6f0e 100644 --- a/sources/ewol/renderer/resources/Mesh.h +++ b/sources/ewol/renderer/resources/Mesh.h @@ -34,7 +34,7 @@ namespace ewol Mesh(etk::UString genName); virtual ~Mesh(void); virtual const char* GetType(void) { return "ewol::Mesh"; }; - virtual void Draw(void); + virtual void Draw(mat4& positionMatrix); }; }; diff --git a/sources/ewol/renderer/resources/MeshObj.cpp b/sources/ewol/renderer/resources/MeshObj.cpp index 01bfd5c9..b28c56e7 100644 --- a/sources/ewol/renderer/resources/MeshObj.cpp +++ b/sources/ewol/renderer/resources/MeshObj.cpp @@ -137,23 +137,3 @@ ewol::MeshObj::MeshObj(etk::UString _fileName) : } } - - - - - -/* - -// Read our .obj file -std::vector vertices; -std::vector uvs; -std::vector normals; // Won't be used at the moment. -bool res = loadOBJ("cube.obj", vertices, uvs, normals); - - - - -glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(glm::vec3), &vertices[0], GL_STATIC_DRAW); - -*/ - diff --git a/sources/ewol/widget/Scene.cpp b/sources/ewol/widget/Scene.cpp index 119f006b..673db8cb 100644 --- a/sources/ewol/widget/Scene.cpp +++ b/sources/ewol/widget/Scene.cpp @@ -34,22 +34,7 @@ widget::Scene::~Scene(void) void widget::Scene::OnRegenerateDisplay(void) { if (true == NeedRedraw()) { - /* - // clean elements - for (int32_t iii=0; iiiClear(); - } - } - for (int32_t jjj=0; jjjDraw(); - } - } - } - */ + } } @@ -129,16 +114,13 @@ void widget::Scene::GenDraw(ewol::DrawProperty displayProp) m_size.x, m_size.y); float ratio = m_size.x / m_size.y; - if (true) { + if (false) { mat4 tmpTranslate = etk::matTranslate(vec3(-m_size.x/2, -m_size.y/2, -1.0f)); mat4 tmpScale = etk::matScale(vec3(m_zoom, m_zoom, 1.0f)); mat4 tmpProjection = etk::matPerspective(-m_size.x/2, m_size.x/2, -m_size.y/2, m_size.y/2, -1, 1); mat4 tmpMat = tmpProjection * tmpScale * tmpTranslate; // set internal matrix system : ewol::openGL::SetMatrix(tmpMat); - // Call the widget drawing methode - displayProp.m_origin = m_origin; - displayProp.m_size = m_size; } else { m_zoom = 1.0/1000.0; //EWOL_INFO("ratio : " << ratio); @@ -154,11 +136,11 @@ void widget::Scene::GenDraw(ewol::DrawProperty displayProp) mat4 tmpMat = tmpProjection * tmpScale; // set internal matrix system : ewol::openGL::SetMatrix(tmpMat); - // Clear the screen with transparency ... - glClearColor(0.0, 0.0, 0.0, 1.0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } // Call the widget drawing methode + displayProp.m_origin = m_origin; + displayProp.m_size = m_size; + // Call the widget drawing methode OnDraw(displayProp); ewol::openGL::Pop(); diff --git a/test/human/appl/MainWindows.cpp b/test/human/appl/MainWindows.cpp index 04c79fff..4ae5394d 100644 --- a/test/human/appl/MainWindows.cpp +++ b/test/human/appl/MainWindows.cpp @@ -34,9 +34,6 @@ static const char * l_eventChangeWidgetNext = "event-change-widget-test-nex static const char * l_eventChangeWidgetPrevious = "event-change-widget-test-previous"; -static const char * l_basicLabel = "Test software for EWOL"; - - #undef __class__ #define __class__ "MainWindows" @@ -88,14 +85,8 @@ MainWindows::MainWindows(void) : mySpacer->SetColor(0x000000FF); m_sizerVert->SubWidgetAdd(mySpacer); } - // basic generation ... - m_subWidget = (ewol::Widget*)new widget::Label(l_basicLabel); - if (NULL != m_subWidget) { - m_subWidget->SetExpendX(true); - m_subWidget->SetExpendY(true); - m_sizerVert->SubWidgetAdd(m_subWidget); - } - + // add the basic widget with a strange methode ... + OnReceiveMessage(NULL, NULL, ""); } @@ -107,8 +98,10 @@ MainWindows::~MainWindows(void) void MainWindows::OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data) { - ewol::Windows::OnReceiveMessage(CallerObject, eventId, data); - + if( CallerObject != this + && CallerObject != NULL) { + ewol::Windows::OnReceiveMessage(CallerObject, eventId, data); + } APPL_INFO("Receive Event from the main windows ... : \"" << eventId << "\" ==> data=\"" << data << "\"" ); if (eventId == l_eventChangeTheme) { if (data=="1") { @@ -130,12 +123,16 @@ void MainWindows::OnReceiveMessage(ewol::EObject * CallerObject, const char * ev // inn theory it must be removed ... m_subWidget = NULL; } + // special init forcing ... + if(CallerObject == NULL) { + m_idWidget = 4; + } switch(m_idWidget) { default: m_idWidget = 0; case 0: - m_subWidget = (ewol::Widget*)new widget::Label(l_basicLabel); + m_subWidget = (ewol::Widget*)new widget::Label("Test software for EWOL"); if (NULL != m_subWidget) { m_subWidget->SetExpendX(true); m_subWidget->SetExpendY(true);