[DEV] correction of error of openGl error when lose context
This commit is contained in:
parent
371a3cb599
commit
8668ac9dd0
@ -124,7 +124,7 @@ public abstract class EwolWallpaper extends WallpaperService implements EwolCall
|
||||
|
||||
// On Honeycomb+ devices, this improves the performance when
|
||||
// leaving and resuming the live wallpaper.
|
||||
setPreserveEGLContextOnPause(true);
|
||||
//setPreserveEGLContextOnPause(true);
|
||||
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <ewol/renderer/ResourceManager.h>
|
||||
#include <ewol/renderer/resources/FontFreeType.h>
|
||||
#include <ewol/ewol.h>
|
||||
#include <ewol/renderer/openGL.h>
|
||||
|
||||
|
||||
// Specific for the resource :
|
||||
@ -113,6 +114,7 @@ void ewol::resource::UpdateContext(void)
|
||||
for (int32_t iii=0; iii<l_resourceList.Size(); iii++) {
|
||||
if(l_resourceList[iii] != NULL) {
|
||||
if (jjj==l_resourceList[iii]->GetResourceLevel()) {
|
||||
//EWOL_DEBUG("Update context of " << iii << " named : " << l_resourceList[iii]->GetName());
|
||||
l_resourceList[iii]->UpdateContext();
|
||||
}
|
||||
}
|
||||
@ -145,6 +147,7 @@ void ewol::resource::ContextHasBeenDestroyed(void)
|
||||
l_resourceList[iii]->RemoveContextToLate();
|
||||
}
|
||||
}
|
||||
ewol::openGL::ContextIsRemoved();
|
||||
// no context preent ...
|
||||
l_contextHasBeenRemoved = true;
|
||||
}
|
||||
|
@ -37,6 +37,12 @@ void ewol::openGL::UnInit(void)
|
||||
l_matrixCamera.Identity();
|
||||
}
|
||||
|
||||
void ewol::openGL::ContextIsRemoved(void)
|
||||
{
|
||||
// same as call Init, but in case of changing...
|
||||
ewol::openGL::Init();
|
||||
}
|
||||
|
||||
void ewol::openGL::SetBasicMatrix(const mat4& newOne)
|
||||
{
|
||||
if (l_matrixList.Size()!=1) {
|
||||
|
@ -64,6 +64,10 @@ namespace ewol {
|
||||
* @brief un-init the opengl element from the graphic card
|
||||
*/
|
||||
void UnInit(void);
|
||||
/**
|
||||
* @brief Need to call it when openGl context is removed ==> need to reset internal properties ...
|
||||
*/
|
||||
void ContextIsRemoved(void);
|
||||
/**
|
||||
* @brief When you will done an opengl rendering, you might call this reset matrix first. It remove all the stach of the matrix pushed.
|
||||
* @param[in] newOne the default matrix that might be set for the graphic card for renderer. if too more pop will be done, this is the last that mmight survived
|
||||
|
@ -776,6 +776,7 @@ void ewol::Program::SetTexture1(int32_t idElem, GLint textureOpenGlID)
|
||||
|
||||
void ewol::Program::UnUse(void)
|
||||
{
|
||||
//EWOL_WARNING("Will use program : " << m_program);
|
||||
if (0==m_program) {
|
||||
return;
|
||||
}
|
||||
|
@ -77,6 +77,7 @@ void ewol::Shader::UpdateContext(void)
|
||||
checkGlError("glCreateShader");
|
||||
return;
|
||||
} else {
|
||||
//EWOL_INFO("Creater shader with GLID=" << m_shader);
|
||||
glShaderSource(m_shader, 1, (const char**)&m_fileData, NULL);
|
||||
glCompileShader(m_shader);
|
||||
GLint compiled = 0;
|
||||
|
@ -97,6 +97,7 @@ void ewol::Texture::RemoveContext(void)
|
||||
void ewol::Texture::RemoveContextToLate(void)
|
||||
{
|
||||
m_loaded = false;
|
||||
m_texId=0;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user