Fixed sprite allocation bugs
* Fixed bug that would cause the renderer for sprites to be corrupted on when the sprite vector is resized * Changed deleted_sprites variable to deleted_animation in sprite object * Changed sprite pointer vector to sprite id vector in canvas object * Changed the value stored in Fixture UserData pointer to sprite id rather than sprite pointer because pointer would change on resize anyway
This commit is contained in:
@@ -1,6 +1,44 @@
|
||||
#ifndef RC_WINDOWCLOSE_H_INCLUDED
|
||||
#define RC_WINDOWCLOSE_H_INCLUDED
|
||||
|
||||
void rc_clearCanvas()
|
||||
{
|
||||
if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size())
|
||||
{
|
||||
if(rc_canvas[rc_active_canvas].texture)
|
||||
switch(rc_canvas[rc_active_canvas].type)
|
||||
{
|
||||
case RC_CANVAS_TYPE_2D:
|
||||
VideoDriver->clearBuffers(true, true, true, rc_clear_color);
|
||||
break;
|
||||
case RC_CANVAS_TYPE_SPRITE:
|
||||
VideoDriver->clearBuffers(true, true, true, rc_clear_color);
|
||||
|
||||
for(int i = 0; i < rc_joint.size(); i++)
|
||||
{
|
||||
if(rc_joint[i].canvas == rc_active_canvas)
|
||||
{
|
||||
rc_deleteJoint(i);
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < rc_sprite.size(); i++)
|
||||
{
|
||||
if(rc_sprite[i].parent_canvas == rc_active_canvas)
|
||||
{
|
||||
rc_deleteSprite(i);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
VideoDriver->clearBuffers(true, true, true, rc_clear_color);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void rc_closeWindow_hw()
|
||||
{
|
||||
irrtheora::stopVideo();
|
||||
|
||||
Reference in New Issue
Block a user