1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-02-25 15:33:57 +00:00

Cleaning up RLT_* macros

```c
 #define RLT_FIXED 1
 #undef  RLT_DYNAMIC
 #undef  RLT_MAP
```
This commit is contained in:
Nicolas Braud-Santoni 2016-05-05 15:21:44 +02:00
parent 921e4ba101
commit 9617bde3ec
No known key found for this signature in database
GPG key ID: 06EA317DE11BD278
2 changed files with 0 additions and 87 deletions

View file

@ -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

View file

@ -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();
}