#include ".\layer.h"

Layer::Layer( SpriteRenderer* newSpriteRenderer)
{
    spriteRenderer = newSpriteRenderer;
}

Layer::~Layer(void)
{
}

void Layer::render()
{
    sortSpriteStamps();

    SpriteStamp* aStamp;
    for ( SpriteStampListIterator iter = sprites.begin();
          iter != sprites.end();
          iter++ ) {
        aStamp = ( *iter );
        spriteRenderer->renderSpriteToWorld( aStamp );
    }
}

void Layer::addSpriteStamp(SpriteStamp* spriteStamp)
{
	// Add new sprite stamp to the back fo the deque 
	if ( spriteStamp != NULL )
	{
		sprites.push_back(spriteStamp);
	} else {
		GameError( "Trying to push empty sprite to layer" );
	}
}

void Layer::removeSpriteStamp(SpriteStamp* spriteStamp)
{
	sprites.remove(spriteStamp);
}

void Layer::sortSpriteStamps(){
	//sprites.sort( LayerSpriteCompare() );
}


