mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-02-25 07:24:00 +00:00
Cleaning up RLT_* macros
```c #define RLT_FIXED 1 #undef RLT_DYNAMIC #undef RLT_MAP ```
This commit is contained in:
parent
921e4ba101
commit
9617bde3ec
2 changed files with 0 additions and 87 deletions
42
BBGE/Core.h
42
BBGE/Core.h
|
@ -332,48 +332,17 @@ public:
|
|||
|
||||
inline bool empty()
|
||||
{
|
||||
#ifdef RLT_FIXED
|
||||
return objectCount == 0;
|
||||
#endif
|
||||
#ifdef RLT_DYNAMIC
|
||||
return renderObjectList.empty();
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
inline RenderObject *getFirst()
|
||||
{
|
||||
#ifdef RLT_DYNAMIC
|
||||
if (renderObjectList.empty()) return 0;
|
||||
iter = renderObjectList.begin();
|
||||
return *iter;
|
||||
#endif
|
||||
#ifdef RLT_MAP
|
||||
if (renderObjectMap.empty()) return 0;
|
||||
iter = renderObjectMap.begin();
|
||||
return (*iter).second;
|
||||
#endif
|
||||
#ifdef RLT_FIXED
|
||||
iter = 0;
|
||||
return getNext();
|
||||
#endif
|
||||
}
|
||||
|
||||
RenderObject *getNext()
|
||||
{
|
||||
#ifdef RLT_DYNAMIC
|
||||
if (iter == renderObjectList.end()) return 0;
|
||||
iter++;
|
||||
if (iter == renderObjectList.end()) return 0;
|
||||
return *iter;
|
||||
#endif
|
||||
#ifdef RLT_MAP
|
||||
if (iter == renderObjectMap.end()) return 0;
|
||||
iter++;
|
||||
if (iter == renderObjectMap.end()) return 0;
|
||||
return (*iter).second;
|
||||
#endif
|
||||
#ifdef RLT_FIXED
|
||||
const int size = renderObjects.size();
|
||||
int i;
|
||||
for (i = iter; i < size; i++)
|
||||
|
@ -391,7 +360,6 @@ public:
|
|||
iter = i;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -427,20 +395,10 @@ protected:
|
|||
};
|
||||
std::vector<DisplayListElement> displayList;
|
||||
|
||||
#ifdef RLT_DYNAMIC
|
||||
RenderObjectList renderObjectList;
|
||||
RenderObjectList::iterator iter;
|
||||
#endif
|
||||
#ifdef RLT_MAP
|
||||
RenderObjectMap renderObjectMap;
|
||||
RenderObjectMap::iterator iter;
|
||||
#endif
|
||||
#ifdef RLT_FIXED
|
||||
RenderObjects renderObjects;
|
||||
int objectCount;
|
||||
int firstFreeIdx;
|
||||
int iter;
|
||||
#endif
|
||||
};
|
||||
|
||||
class Core : public ActionMapper, public StateManager
|
||||
|
|
|
@ -20,14 +20,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
*/
|
||||
#include "Core.h"
|
||||
|
||||
#ifdef RLT_FIXED
|
||||
#define BASE_ARRAY_SIZE 100 // Size of an object array in a new layer
|
||||
#endif
|
||||
|
||||
RenderObjectLayer::RenderObjectLayer()
|
||||
#ifdef RLT_FIXED
|
||||
: renderObjects(BASE_ARRAY_SIZE)
|
||||
#endif
|
||||
{
|
||||
followCamera = NO_FOLLOW_CAMERA;
|
||||
visible = true;
|
||||
|
@ -43,13 +39,11 @@ RenderObjectLayer::RenderObjectLayer()
|
|||
|
||||
displayListValid = false;
|
||||
|
||||
#ifdef RLT_FIXED
|
||||
const int size = renderObjects.size();
|
||||
for (int i = 0; i < size; i++)
|
||||
renderObjects[i] = 0;
|
||||
objectCount = 0;
|
||||
firstFreeIdx = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
RenderObjectLayer::~RenderObjectLayer()
|
||||
|
@ -68,19 +62,12 @@ void RenderObjectLayer::setOptimizeStatic(bool opt)
|
|||
clearDisplayList();
|
||||
}
|
||||
|
||||
#ifdef RLT_DYNAMIC
|
||||
bool sortRenderObjectsByDepth(RenderObject *r1, RenderObject *r2)
|
||||
{
|
||||
return r1->getSortDepth() < r2->getSortDepth();
|
||||
}
|
||||
#endif
|
||||
|
||||
void RenderObjectLayer::sort()
|
||||
{
|
||||
if (optimizeStatic && displayListValid)
|
||||
return; // Assume the order hasn't changed
|
||||
|
||||
#ifdef RLT_FIXED
|
||||
// Compress the list before sorting to boost speed.
|
||||
const int size = renderObjects.size();
|
||||
int from, to;
|
||||
|
@ -141,15 +128,10 @@ void RenderObjectLayer::sort()
|
|||
sortDepths[best] = d;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef RLT_DYNAMIC
|
||||
renderObjectList.sort(sortRenderObjectsByDepth);
|
||||
#endif
|
||||
}
|
||||
|
||||
void RenderObjectLayer::add(RenderObject* r)
|
||||
{
|
||||
#ifdef RLT_FIXED
|
||||
int size = renderObjects.size();
|
||||
if (firstFreeIdx >= size)
|
||||
{
|
||||
|
@ -166,20 +148,12 @@ void RenderObjectLayer::add(RenderObject* r)
|
|||
if (!renderObjects[firstFreeIdx])
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef RLT_DYNAMIC
|
||||
renderObjectList.push_back(r);
|
||||
#endif
|
||||
#ifdef RLT_MAP
|
||||
renderObjectMap[intptr_t(r)] = r;
|
||||
#endif
|
||||
|
||||
clearDisplayList();
|
||||
}
|
||||
|
||||
void RenderObjectLayer::remove(RenderObject* r)
|
||||
{
|
||||
#ifdef RLT_FIXED
|
||||
const int idx = r->getIdx();
|
||||
if (idx < 0 || idx >= renderObjects.size())
|
||||
{
|
||||
|
@ -196,20 +170,12 @@ void RenderObjectLayer::remove(RenderObject* r)
|
|||
if (idx < firstFreeIdx)
|
||||
firstFreeIdx = idx;
|
||||
r->setIdx(-1);
|
||||
#endif
|
||||
#ifdef RLT_DYNAMIC
|
||||
renderObjectList.remove(r);
|
||||
#endif
|
||||
#ifdef RLT_MAP
|
||||
renderObjectMap[intptr_t(r)] = 0;
|
||||
#endif
|
||||
|
||||
clearDisplayList();
|
||||
}
|
||||
|
||||
void RenderObjectLayer::moveToFront(RenderObject *r)
|
||||
{
|
||||
#ifdef RLT_FIXED
|
||||
const int size = renderObjects.size();
|
||||
const int curIdx = r->getIdx();
|
||||
int lastUsed;
|
||||
|
@ -267,18 +233,12 @@ void RenderObjectLayer::moveToFront(RenderObject *r)
|
|||
while (renderObjects[firstFreeIdx])
|
||||
firstFreeIdx++;
|
||||
}
|
||||
#endif // RLT_FIXED
|
||||
#ifdef RLT_DYNAMIC
|
||||
renderObjectList.remove(r);
|
||||
renderObjectList.push_back(r);
|
||||
#endif
|
||||
|
||||
clearDisplayList();
|
||||
}
|
||||
|
||||
void RenderObjectLayer::moveToBack(RenderObject *r)
|
||||
{
|
||||
#ifdef RLT_FIXED
|
||||
const int size = renderObjects.size();
|
||||
const int curIdx = r->getIdx();
|
||||
int firstUsed;
|
||||
|
@ -341,11 +301,6 @@ void RenderObjectLayer::moveToBack(RenderObject *r)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#endif // RLT_FIXED
|
||||
#ifdef RLT_DYNAMIC
|
||||
renderObjectList.remove(r);
|
||||
renderObjectList.push_front(r);
|
||||
#endif
|
||||
|
||||
clearDisplayList();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue