[DEV] display scene is back

This commit is contained in:
Edouard DUPIN 2012-12-17 07:56:33 +01:00
parent c84caed8ba
commit 03876b5a71
7 changed files with 24 additions and 66 deletions

View File

@ -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);
}
}

View File

@ -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; iii<m_elementsStatic.Size() ; iii++) {
if (NULL != m_elementsStatic[iii]) {
m_elementsStatic[iii]->Draw();

View File

@ -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());

View File

@ -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);
};
};

View File

@ -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);
*/

View File

@ -34,22 +34,7 @@ widget::Scene::~Scene(void)
void widget::Scene::OnRegenerateDisplay(void)
{
if (true == NeedRedraw()) {
/*
// clean elements
for (int32_t iii=0; iii<m_sceneElement.animated.Size(); iii++) {
if (NULL != m_sceneElement.animated[iii]) {
m_sceneElement.animated[iii]->Clear();
}
}
for (int32_t jjj=0; jjj<MAX_GROUP_NUMBER; jjj++) {
for (int32_t iii=0; iii<m_sceneElement.listAnimatedElements[jjj].Size(); iii++) {
if (NULL != m_sceneElement.listAnimatedElements[jjj][iii]) {
// find an empty slot ...
m_sceneElement.listAnimatedElements[jjj][iii]->Draw();
}
}
}
*/
}
}
@ -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();

View File

@ -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)
{
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);