[DEV] add sprite correct diaplsy and input maximum number segfault error

This commit is contained in:
Edouard DUPIN 2013-06-03 22:35:05 +02:00
parent 47ea209279
commit d2d8b6fca1
4 changed files with 25 additions and 3 deletions

View File

@ -20,16 +20,27 @@ ewol::Sprite::Sprite(const etk::UString& _imageName, const ivec2& _nbSprite) :
m_nbSprite(_nbSprite),
m_unitarySpriteSize(0,0)
{
/*
vec2 imageSize = GetRealSize();
m_unitarySpriteSize.setValue(imageSize.x()/(float)m_nbSprite.x(),
imageSize.y()/(float)m_nbSprite.y());
*/
m_unitarySpriteSize.setValue(1.0/(float)m_nbSprite.x(),
1.0/(float)m_nbSprite.y());
}
void ewol::Sprite::PrintSprite(const ivec2& _spriteID, const vec2& _size)
{
if( _spriteID.x()<0
|| _spriteID.y()<0
|| _spriteID.x()>=m_nbSprite.x()
|| _spriteID.y()>=m_nbSprite.y()) {
return;
}
PrintPart(_size, vec2((float)(_spriteID.x() )*m_unitarySpriteSize.x(), (float)(_spriteID.y() )*m_unitarySpriteSize.y()),
vec2((float)(_spriteID.x()+1)*m_unitarySpriteSize.x(), (float)(_spriteID.y()+1)*m_unitarySpriteSize.y()));
}

View File

@ -217,6 +217,10 @@ int32_t ewol::eSystemInput::localGetDestinationId(ewol::keyEvent::type_te type,
// note if id<0 ==> the it was finger event ...
void ewol::eSystemInput::Motion(ewol::keyEvent::type_te type, int pointerID, vec2 pos)
{
if (MAX_MANAGE_INPUT<=pointerID) {
// reject pointer ==> out of IDs...
return;
}
InputPoperty_ts *eventTable = NULL;
if (type == ewol::keyEvent::typeMouse) {
eventTable = m_eventMouseSaved;
@ -306,6 +310,11 @@ void ewol::eSystemInput::Motion(ewol::keyEvent::type_te type, int pointerID, vec
void ewol::eSystemInput::State(ewol::keyEvent::type_te type, int pointerID, bool isDown, vec2 pos)
{
if (MAX_MANAGE_INPUT<=pointerID) {
// reject pointer ==> out of IDs...
return;
}
EWOL_DEBUG("event pointerId=" << pointerID);
// convert position in Open-GL coordonates ...
InputPoperty_ts *eventTable = NULL;
inputLimit_ts localLimit;

View File

@ -44,7 +44,7 @@ namespace ewol
inputLimit_ts m_eventInputLimit;
inputLimit_ts m_eventMouseLimit;
void CalculateLimit(void);
#define MAX_MANAGE_INPUT (10)
#define MAX_MANAGE_INPUT (15)
InputPoperty_ts m_eventInputSaved[MAX_MANAGE_INPUT];
InputPoperty_ts m_eventMouseSaved[MAX_MANAGE_INPUT];
void AbortElement(InputPoperty_ts *eventTable, int32_t idInput, ewol::keyEvent::type_te _type);

View File

@ -38,13 +38,15 @@ ewol::TextureFile::TextureFile(etk::UString genName, etk::UString tmpfileName, i
if (false == m_element.IsLoadOk()) {
EWOL_ERROR("Error To load SVG file " << tmpName );
} else {
/*
if (size.x()>0 && size.y()>0) {
// generate the texture
m_element.GenerateAnImage(size, m_data);
} else {
*/
// generate the texture
m_element.GenerateAnImage(m_data);
}
//}
}
} else if (true == tmpName.EndWith(".png") ) {
// generate the texture