//============================================================================ // // SSSS tt lll lll // SS SS tt ll ll // SS tttttt eeee ll ll aaaa // SSSS tt ee ee ll ll aa // SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" // SS SS tt ee ll ll aa aa // SSSS ttt eeeee llll llll aaaaa // // Copyright (c) 1995-2007 by Bradford W. Mott and the Stella team // // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // // $Id: RectList.cxx,v 1.3 2007/01/01 18:04:40 stephena Exp $ //============================================================================ #include #include "RectList.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RectList::RectList(Uint32 size) { currentSize = size; currentRect = 0; rectArray = new SDL_Rect[currentSize]; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RectList::~RectList() { delete[] rectArray; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void RectList::add(SDL_Rect* newRect) { if(currentRect >= currentSize) { currentSize = currentSize * 2; SDL_Rect *temp = new SDL_Rect[currentSize]; for(Uint32 i = 0; i < currentRect; ++i) temp[i] = rectArray[i]; delete[] rectArray; rectArray = temp; } rectArray[currentRect].x = newRect->x; rectArray[currentRect].y = newRect->y; rectArray[currentRect].w = newRect->w; rectArray[currentRect].h = newRect->h; ++currentRect; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SDL_Rect* RectList::rects() { return rectArray; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uint32 RectList::numRects() { return currentRect; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void RectList::start() { currentRect = 0; }