[DEV] add some optionnel parameter to display
This commit is contained in:
parent
318e44f571
commit
4fc426c414
2
external/ege
vendored
2
external/ege
vendored
@ -1 +1 @@
|
||||
Subproject commit d68acc190307c9be0232f3b17cfe0c8cbb3ea683
|
||||
Subproject commit 912f4b83167007e6ca5bed76d899316a802f1590
|
@ -49,7 +49,7 @@ void ewol::Area::LoadProgram(void)
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::Area::Draw(void)
|
||||
void ewol::Area::Draw(bool _disableDepthTest)
|
||||
{
|
||||
if (m_coord.Size()<=0) {
|
||||
//EWOL_WARNING("Nothink to draw...");
|
||||
|
@ -51,7 +51,7 @@ namespace ewol
|
||||
/**
|
||||
* @brief Draw All the refistered text in the current element on openGL
|
||||
*/
|
||||
void Draw(void);
|
||||
void Draw(bool _disableDepthTest=true);
|
||||
/**
|
||||
* @brief Clear alll the registered element in the current element
|
||||
*/
|
||||
|
@ -31,7 +31,7 @@ namespace ewol
|
||||
/**
|
||||
* @brief Virtal pure function that request the draw of all openGl elements
|
||||
*/
|
||||
virtual void Draw(void)=0;
|
||||
virtual void Draw(bool _disableDepthTest=true)=0;
|
||||
/**
|
||||
* @brief Clear alll tre registered element in the current element
|
||||
*/
|
||||
|
@ -305,7 +305,7 @@ void ewol::Drawing::LoadProgram(void)
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::Drawing::Draw(void)
|
||||
void ewol::Drawing::Draw(bool _disableDepthTest)
|
||||
{
|
||||
if (m_coord.Size()<=0) {
|
||||
// TODO : a remÚtre ...
|
||||
|
@ -82,7 +82,7 @@ namespace ewol
|
||||
/**
|
||||
* @brief Draw All the refistered text in the current element on openGL
|
||||
*/
|
||||
void Draw(void);
|
||||
void Draw(bool _disableDepthTest=true);
|
||||
/**
|
||||
* @brief Clear alll tre registered element in the current element
|
||||
*/
|
||||
|
@ -51,7 +51,7 @@ void ewol::Image::LoadProgram(void)
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::Image::Draw(void)
|
||||
void ewol::Image::Draw(bool _disableDepthTest)
|
||||
{
|
||||
if (m_coord.Size()<=0) {
|
||||
//EWOL_WARNING("Nothink to draw...");
|
||||
@ -65,7 +65,11 @@ void ewol::Image::Draw(void)
|
||||
EWOL_ERROR("No shader ...");
|
||||
return;
|
||||
}
|
||||
ewol::openGL::Disable(ewol::openGL::FLAG_DEPTH_TEST);
|
||||
if (_disableDepthTest == true) {
|
||||
ewol::openGL::Disable(ewol::openGL::FLAG_DEPTH_TEST);
|
||||
} else {
|
||||
ewol::openGL::Enable(ewol::openGL::FLAG_DEPTH_TEST);
|
||||
}
|
||||
// set Matrix : translation/positionMatrix
|
||||
mat4 tmpMatrix = ewol::openGL::GetMatrix()*m_matrixApply;
|
||||
m_GLprogram->Use();
|
||||
|
@ -55,8 +55,9 @@ namespace ewol
|
||||
public:
|
||||
/**
|
||||
* @brief Draw All the refistered text in the current element on openGL
|
||||
* @param[in] _disableDepthTest Disable the Depth test for display
|
||||
*/
|
||||
void Draw(void);
|
||||
void Draw(bool _disableDepthTest=true);
|
||||
/**
|
||||
* @brief Clear alll tre registered element in the current element
|
||||
*/
|
||||
|
@ -103,7 +103,7 @@ void ewol::Shaper::LoadProgram(void)
|
||||
}
|
||||
|
||||
|
||||
void ewol::Shaper::Draw(void)
|
||||
void ewol::Shaper::Draw(bool _disableDepthTest)
|
||||
{
|
||||
if (m_config == NULL) {
|
||||
// this is a normale case ... the user can choice to have no config basic file ...
|
||||
|
@ -79,7 +79,7 @@ namespace ewol
|
||||
/**
|
||||
* @brief Draw All the refistered text in the current element on openGL
|
||||
*/
|
||||
void Draw(void);
|
||||
void Draw(bool _disableDepthTest=true);
|
||||
/**
|
||||
* @brief Clear alll tre registered element in the current element
|
||||
*/
|
||||
|
@ -110,7 +110,7 @@ void ewol::Text::Draw(const mat4& _transformationMatrix, bool _enableDepthTest)
|
||||
}
|
||||
|
||||
|
||||
void ewol::Text::Draw(void)
|
||||
void ewol::Text::Draw(bool _disableDepthTest)
|
||||
{
|
||||
// draw BG in any case:
|
||||
m_vectorialDraw.Draw();
|
||||
|
@ -115,7 +115,7 @@ namespace ewol
|
||||
/**
|
||||
* @brief Draw All the refistered text in the current element on openGL
|
||||
*/
|
||||
void Draw(void);
|
||||
void Draw(bool _disableDepthTest=true);
|
||||
void Draw(const mat4& _transformationMatrix, bool _enableDepthTest=false);
|
||||
/**
|
||||
* @brief Clear all the registered element in the current element
|
||||
|
@ -78,14 +78,21 @@ ewol::Mesh::~Mesh(void)
|
||||
|
||||
//#define DISPLAY_NB_VERTEX_DISPLAYED
|
||||
|
||||
void ewol::Mesh::Draw(mat4& positionMatrix)
|
||||
void ewol::Mesh::Draw(mat4& _positionMatrix, bool _enableDepthTest, bool _enableDepthUpdate)
|
||||
{
|
||||
if (m_GLprogram==NULL) {
|
||||
EWOL_ERROR("No shader ...");
|
||||
return;
|
||||
}
|
||||
//EWOL_DEBUG(m_name << " " << m_light);
|
||||
ewol::openGL::Enable(ewol::openGL::FLAG_DEPTH_TEST);
|
||||
if (_enableDepthTest==true) {
|
||||
ewol::openGL::Enable(ewol::openGL::FLAG_DEPTH_TEST);
|
||||
if (false==_enableDepthUpdate) {
|
||||
glDepthMask(GL_FALSE);
|
||||
}
|
||||
} else {
|
||||
ewol::openGL::Disable(ewol::openGL::FLAG_DEPTH_TEST);
|
||||
}
|
||||
//EWOL_DEBUG(" Display " << m_coord.Size() << " elements" );
|
||||
m_GLprogram->Use();
|
||||
// set Matrix : translation/positionMatrix
|
||||
@ -93,7 +100,7 @@ void ewol::Mesh::Draw(mat4& positionMatrix)
|
||||
mat4 camMatrix = ewol::openGL::GetCameraMatrix();
|
||||
mat4 tmpMatrix = projMatrix * camMatrix;
|
||||
m_GLprogram->UniformMatrix4fv(m_GLMatrix, 1, tmpMatrix.m_mat);
|
||||
m_GLprogram->UniformMatrix4fv(m_GLMatrixPosition, 1, positionMatrix.m_mat);
|
||||
m_GLprogram->UniformMatrix4fv(m_GLMatrixPosition, 1, _positionMatrix.m_mat);
|
||||
// position :
|
||||
m_GLprogram->SendAttributePointer(m_GLPosition, 3/*x,y,z*/, m_verticesVBO, MESH_VBO_VERTICES);
|
||||
// Texture :
|
||||
@ -119,7 +126,7 @@ void ewol::Mesh::Draw(mat4& positionMatrix)
|
||||
nbElementDrawTheoric += m_listFaces.GetValue(kkk).m_index.Size();
|
||||
#endif
|
||||
} else {
|
||||
mat4 mattttt = (projMatrix * camMatrix) * positionMatrix;
|
||||
mat4 mattttt = (projMatrix * camMatrix) * _positionMatrix;
|
||||
mattttt.m_mat[3] = 0;
|
||||
mattttt.m_mat[7] = 0;
|
||||
mattttt.m_mat[11] = 0;
|
||||
@ -160,7 +167,12 @@ void ewol::Mesh::Draw(mat4& positionMatrix)
|
||||
EWOL_DEBUG(((float)nbElementDraw/(float)nbElementDrawTheoric*100.0f) << "% Request Draw : " << m_listFaces.Size() << ":" << nbElementDraw << "/" << nbElementDrawTheoric << " elements [" << m_name << "]");
|
||||
#endif
|
||||
m_GLprogram->UnUse();
|
||||
ewol::openGL::Disable(ewol::openGL::FLAG_DEPTH_TEST);
|
||||
if (_enableDepthTest==true){
|
||||
if (false==_enableDepthUpdate) {
|
||||
glDepthMask(GL_TRUE);
|
||||
}
|
||||
ewol::openGL::Disable(ewol::openGL::FLAG_DEPTH_TEST);
|
||||
}
|
||||
// TODO : UNDERSTAND why ... it is needed
|
||||
glBindBuffer(GL_ARRAY_BUFFER,0);
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ namespace ewol
|
||||
virtual ~Mesh(void);
|
||||
public:
|
||||
virtual const char* GetType(void) { return "ewol::Mesh"; };
|
||||
virtual void Draw(mat4& positionMatrix);
|
||||
virtual void Draw(mat4& _positionMatrix, bool _enableDepthTest=true, bool _enableDepthUpdate=true);
|
||||
void GenerateVBO(void);
|
||||
private:
|
||||
void CalculateNormaleFace(void);
|
||||
@ -125,7 +125,16 @@ namespace ewol
|
||||
public:
|
||||
void AddMaterial(const etk::UString& _name, ewol::Material* _data);
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Set the check of normal position befor sending it to the openGl card
|
||||
* @param[in] _status New state.
|
||||
*/
|
||||
void SetCheckNormal(bool _status) { m_checkNormal=_status; };
|
||||
/**
|
||||
* @brief Get the check value of normal position befor sending it to the openGl card
|
||||
* @return Get the chcking stus of normal or not
|
||||
*/
|
||||
bool GetCheckNormal(void) { return m_checkNormal; };
|
||||
const etk::Vector<ewol::PhysicsShape*>& GetPhysicalProperties(void) const { return m_physics; };
|
||||
private:
|
||||
void* m_pointerShape; //!< all mesh have a basic shape (bullet or other) the void pointer mermit to not depent on the bullet lib
|
||||
|
Loading…
x
Reference in New Issue
Block a user