[DEV] correction of resource error when remove
This commit is contained in:
parent
8a48e529d4
commit
c50abe2032
@ -12,10 +12,16 @@ uniform int EW_SoftEdge;
|
|||||||
varying vec2 f_texcoord;
|
varying vec2 f_texcoord;
|
||||||
varying vec4 f_color;
|
varying vec4 f_color;
|
||||||
|
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
vec4 color = texture2D(EW_texID, f_texcoord );
|
vec4 color = texture2D(EW_texID, f_texcoord );
|
||||||
float dist = color.r;
|
float dist = color.r;
|
||||||
|
#ifndef GL_ES
|
||||||
float width = fwidth(dist);
|
float width = fwidth(dist);
|
||||||
|
#else
|
||||||
|
// float width = abs(dFdx(dist)) + abs(dFdy(dist))
|
||||||
|
float width = dist;
|
||||||
|
#endif
|
||||||
float alpha = smoothstep(0.5-width, 0.5+width, dist);
|
float alpha = smoothstep(0.5-width, 0.5+width, dist);
|
||||||
|
|
||||||
// Smooth
|
// Smooth
|
||||||
|
2
external/egami
vendored
2
external/egami
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 2fe76f92055c61a11e84bafbecc4aa0488e0b16e
|
Subproject commit 9ed82e01ab2bf9147adcb0a238db764cea162214
|
2
external/ege
vendored
2
external/ege
vendored
@ -1 +1 @@
|
|||||||
Subproject commit e23442beb1bec4fef48b9d7bb3aff8119a2909fd
|
Subproject commit 2b31c01fabad98b6cdfc842e9ff646f37534b9f0
|
@ -265,7 +265,7 @@ void ewol::compositing::Image::setSource(const std::string& _newFile, const vec2
|
|||||||
EWOL_ERROR("Can not get Image resource");
|
EWOL_ERROR("Can not get Image resource");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
m_resourceDF = ewol::resource::ImageDF::keep(_newFile, tmpSize);
|
m_resourceDF = ewol::resource::ImageDF::keep(m_filename, tmpSize);
|
||||||
if (NULL == m_resourceDF) {
|
if (NULL == m_resourceDF) {
|
||||||
EWOL_ERROR("Can not get Image resource DF");
|
EWOL_ERROR("Can not get Image resource DF");
|
||||||
}
|
}
|
||||||
@ -300,7 +300,9 @@ vec2 ewol::compositing::Image::getRealSize(void) {
|
|||||||
if (m_resource != NULL) {
|
if (m_resource != NULL) {
|
||||||
return m_resource->getRealSize();
|
return m_resource->getRealSize();
|
||||||
}
|
}
|
||||||
return m_resourceDF->getRealSize();
|
if (m_resourceDF != NULL) {
|
||||||
|
return m_resourceDF->getRealSize();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -440,6 +440,12 @@ void ewol::context::InputManager::state(enum ewol::key::type _type,
|
|||||||
<< " == >" << eventTable[_pointerID].destinationInputId
|
<< " == >" << eventTable[_pointerID].destinationInputId
|
||||||
<< " [UP] " << _pos);
|
<< " [UP] " << _pos);
|
||||||
eventTable[_pointerID].posEvent = _pos;
|
eventTable[_pointerID].posEvent = _pos;
|
||||||
|
// send up event after the single event to prevent multiple widget getting elements
|
||||||
|
localEventInput(_type,
|
||||||
|
eventTable[_pointerID].curentWidgetEvent,
|
||||||
|
_pointerID,
|
||||||
|
ewol::key::statusUp,
|
||||||
|
_pos);
|
||||||
// generate event (single)
|
// generate event (single)
|
||||||
if( abs(eventTable[_pointerID].downStart.x() - _pos.x()) < localLimit.DpiOffset
|
if( abs(eventTable[_pointerID].downStart.x() - _pos.x()) < localLimit.DpiOffset
|
||||||
&& abs(eventTable[_pointerID].downStart.y() - _pos.y()) < localLimit.DpiOffset ){
|
&& abs(eventTable[_pointerID].downStart.y() - _pos.y()) < localLimit.DpiOffset ){
|
||||||
@ -480,7 +486,7 @@ void ewol::context::InputManager::state(enum ewol::key::type _type,
|
|||||||
localEventInput(_type,
|
localEventInput(_type,
|
||||||
eventTable[_pointerID].curentWidgetEvent,
|
eventTable[_pointerID].curentWidgetEvent,
|
||||||
_pointerID,
|
_pointerID,
|
||||||
ewol::key::statusUp,
|
ewol::key::statusUpAfter,
|
||||||
_pos);
|
_pos);
|
||||||
// specific for tuch event
|
// specific for tuch event
|
||||||
if (_type == ewol::key::typeFinger) {
|
if (_type == ewol::key::typeFinger) {
|
||||||
|
@ -18,6 +18,7 @@ static const char* statusDescriptionString[ewol::key::statusCount+1] = {
|
|||||||
"statusQuad",
|
"statusQuad",
|
||||||
"statusQuinte",
|
"statusQuinte",
|
||||||
"statusUp",
|
"statusUp",
|
||||||
|
"statusUpAfter",
|
||||||
"statusEnter",
|
"statusEnter",
|
||||||
"statusLeave",
|
"statusLeave",
|
||||||
"statusAbort",
|
"statusAbort",
|
||||||
|
@ -27,6 +27,7 @@ namespace ewol {
|
|||||||
statusQuad,
|
statusQuad,
|
||||||
statusQuinte,
|
statusQuinte,
|
||||||
statusUp, // availlable on Keyboard too
|
statusUp, // availlable on Keyboard too
|
||||||
|
statusUpAfter, // mouse input & finger input this appear after the single event (depending on some case...)
|
||||||
statusEnter,
|
statusEnter,
|
||||||
statusLeave,
|
statusLeave,
|
||||||
statusAbort, // Appeare when an event is tranfert betwwen widgets (the widget which receive this has lost the events)
|
statusAbort, // Appeare when an event is tranfert betwwen widgets (the widget which receive this has lost the events)
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include <ewol/object/Manager.h>
|
#include <ewol/object/Manager.h>
|
||||||
#include <ewol/context/Context.h>
|
#include <ewol/context/Context.h>
|
||||||
#include <ewol/ewol.h>
|
#include <ewol/ewol.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#undef __class__
|
#undef __class__
|
||||||
#define __class__ "ewol::object::Manager"
|
#define __class__ "ewol::object::Manager"
|
||||||
@ -95,20 +96,33 @@ int32_t ewol::object::Manager::getNumberObject(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ewol::object::Manager::informOneObjectIsRemoved(ewol::Object* _object) {
|
void ewol::object::Manager::informOneObjectIsRemoved(ewol::Object* _object) {
|
||||||
for (size_t iii=0; iii<m_eObjectList.size(); iii++) {
|
size_t mbElement = m_eObjectList.size();
|
||||||
if (m_eObjectList[iii] != NULL) {
|
for (int64_t iii=0; iii<(int64_t)m_eObjectList.size(); ++iii) {
|
||||||
//EWOL_DEBUG("inform " << iii << "/" << m_eObjectList.size());
|
if ( m_eObjectList[iii] != NULL
|
||||||
//EWOL_DEBUG(" named '" << m_eObjectList[iii]->getName() << "' type=" << m_eObjectList[iii]->getObjectType());
|
&& m_eObjectList[iii] != _object) {
|
||||||
|
//EWOL_DEBUG("inform " << iii+1 << "/" << m_eObjectList.size());
|
||||||
|
//EWOL_DEBUG(" id=" << m_eObjectList[iii]->getId() << " named '" << m_eObjectList[iii]->getName() << "' type=" << m_eObjectList[iii]->getObjectType());
|
||||||
m_eObjectList[iii]->onObjectRemove(_object);
|
m_eObjectList[iii]->onObjectRemove(_object);
|
||||||
|
if (mbElement != m_eObjectList.size()) {
|
||||||
|
iii = -1;
|
||||||
|
mbElement = m_eObjectList.size();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//EWOL_DEBUG("inform active done");
|
||||||
|
mbElement = m_eObjectAutoRemoveList.size();
|
||||||
for (size_t iii=0; iii<m_eObjectAutoRemoveList.size(); iii++) {
|
for (size_t iii=0; iii<m_eObjectAutoRemoveList.size(); iii++) {
|
||||||
if( m_eObjectAutoRemoveList[iii] != NULL
|
if( m_eObjectAutoRemoveList[iii] != NULL
|
||||||
&& m_eObjectAutoRemoveList[iii] != _object) {
|
&& m_eObjectAutoRemoveList[iii] != _object) {
|
||||||
//EWOL_DEBUG("inform2 " << iii << "/" << m_eObjectList.size());
|
//EWOL_DEBUG("inform2 " << iii+1 << "/" << m_eObjectAutoRemoveList.size());
|
||||||
m_eObjectAutoRemoveList[iii]->onObjectRemove(_object);
|
m_eObjectAutoRemoveList[iii]->onObjectRemove(_object);
|
||||||
|
if (mbElement != m_eObjectAutoRemoveList.size()) {
|
||||||
|
iii = -1;
|
||||||
|
mbElement = m_eObjectAutoRemoveList.size();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//EWOL_DEBUG("inform in-active done");
|
||||||
// call input event manager to remove linked widget ...
|
// call input event manager to remove linked widget ...
|
||||||
ewol::getContext().onObjectRemove(_object);
|
ewol::getContext().onObjectRemove(_object);
|
||||||
}
|
}
|
||||||
@ -148,8 +162,10 @@ void ewol::object::Manager::autoRemove(ewol::Object* _object) {
|
|||||||
// remove Element
|
// remove Element
|
||||||
m_eObjectList[iii] = NULL;
|
m_eObjectList[iii] = NULL;
|
||||||
m_eObjectList.erase(m_eObjectList.begin()+iii);
|
m_eObjectList.erase(m_eObjectList.begin()+iii);
|
||||||
EWOL_DEBUG("Auto-Remove Object : [" << _object->getId() << "] type=\"" << _object->getObjectType() << "\"");
|
EWOL_DEBUG("Auto-Remove Object : [" << _object->getId() << "] type='" << _object->getObjectType() << "'");
|
||||||
informOneObjectIsRemoved(_object);
|
if (_object->getStatusResource() == false) {
|
||||||
|
informOneObjectIsRemoved(_object);
|
||||||
|
}
|
||||||
m_eObjectAutoRemoveList.push_back(_object);
|
m_eObjectAutoRemoveList.push_back(_object);
|
||||||
ewol::getContext().forceRedrawAll();
|
ewol::getContext().forceRedrawAll();
|
||||||
EWOL_DEBUG("Auto-Remove Object ... done");
|
EWOL_DEBUG("Auto-Remove Object ... done");
|
||||||
@ -164,7 +180,7 @@ void ewol::object::Manager::removeAllAutoRemove(void) {
|
|||||||
//EWOL_DEBUG("Auto-Remove Object section : " << m_eObjectAutoRemoveList.size() << " elemeents");
|
//EWOL_DEBUG("Auto-Remove Object section : " << m_eObjectAutoRemoveList.size() << " elemeents");
|
||||||
while(0<m_eObjectAutoRemoveList.size()) {
|
while(0<m_eObjectAutoRemoveList.size()) {
|
||||||
if (m_eObjectAutoRemoveList[0] != NULL) {
|
if (m_eObjectAutoRemoveList[0] != NULL) {
|
||||||
EWOL_DEBUG("Real Auto-Remove Object type=\"" << m_eObjectAutoRemoveList[0]->getObjectType() << "\"");
|
EWOL_DEBUG("Real Auto-Remove Object [" << m_eObjectAutoRemoveList[0]->getId() << "]type='" << m_eObjectAutoRemoveList[0]->getObjectType() << "'");
|
||||||
delete(m_eObjectAutoRemoveList[0]);
|
delete(m_eObjectAutoRemoveList[0]);
|
||||||
m_eObjectAutoRemoveList[0] = NULL;
|
m_eObjectAutoRemoveList[0] = NULL;
|
||||||
} else {
|
} else {
|
||||||
|
@ -447,7 +447,6 @@ namespace ewol {
|
|||||||
virtual void setMouseLimit(int32_t _numberState) {
|
virtual void setMouseLimit(int32_t _numberState) {
|
||||||
m_limitMouseEvent = _numberState;
|
m_limitMouseEvent = _numberState;
|
||||||
};
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------------------------------
|
||||||
// -- keyboard event properties Area
|
// -- keyboard event properties Area
|
||||||
// ----------------------------------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -274,7 +274,7 @@ bool ewol::widget::WidgetScrooled::onEventInput(const ewol::event::Input& _event
|
|||||||
int32_t idTable = _event.getId()-1;
|
int32_t idTable = _event.getId()-1;
|
||||||
if (_event.getStatus() == ewol::key::statusDown) {
|
if (_event.getStatus() == ewol::key::statusDown) {
|
||||||
m_fingerPresent[idTable] = true;
|
m_fingerPresent[idTable] = true;
|
||||||
} else if (_event.getStatus() == ewol::key::statusUp) {
|
} else if (_event.getStatus() == ewol::key::statusUpAfter) {
|
||||||
m_fingerPresent[idTable] = false;
|
m_fingerPresent[idTable] = false;
|
||||||
}
|
}
|
||||||
if (m_fingerScoolActivated == false) {
|
if (m_fingerScoolActivated == false) {
|
||||||
@ -300,7 +300,7 @@ bool ewol::widget::WidgetScrooled::onEventInput(const ewol::event::Input& _event
|
|||||||
}
|
}
|
||||||
if ( m_fingerPresent[0] == false
|
if ( m_fingerPresent[0] == false
|
||||||
&& m_fingerPresent[1] == false) {
|
&& m_fingerPresent[1] == false) {
|
||||||
if (_event.getStatus() == ewol::key::statusUp) {
|
if (_event.getStatus() == ewol::key::statusUpAfter) {
|
||||||
// TODO : Reset event ...
|
// TODO : Reset event ...
|
||||||
m_fingerScoolActivated = false;
|
m_fingerScoolActivated = false;
|
||||||
_event.reset();
|
_event.reset();
|
||||||
@ -317,7 +317,7 @@ bool ewol::widget::WidgetScrooled::onEventInput(const ewol::event::Input& _event
|
|||||||
m_highSpeedStartPos.setValue(relativePos.x(), relativePos.y());
|
m_highSpeedStartPos.setValue(relativePos.x(), relativePos.y());
|
||||||
EWOL_DEBUG("SCROOL == > INIT");
|
EWOL_DEBUG("SCROOL == > INIT");
|
||||||
return true;
|
return true;
|
||||||
} else if (_event.getStatus() == ewol::key::statusUp) {
|
} else if (_event.getStatus() == ewol::key::statusUpAfter) {
|
||||||
m_highSpeedMode = ewol::widget::Scroll::speedModeDisable;
|
m_highSpeedMode = ewol::widget::Scroll::speedModeDisable;
|
||||||
m_highSpeedType = ewol::key::typeUnknow;
|
m_highSpeedType = ewol::key::typeUnknow;
|
||||||
EWOL_DEBUG("SCROOL == > DISABLE");
|
EWOL_DEBUG("SCROOL == > DISABLE");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user