Skip to content

Commit cddbd2e

Browse files
committed
WIP
1 parent 6cab134 commit cddbd2e

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

rts/Rendering/Models/ModelsMemStorage.h

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,41 @@
1414
#include "Sim/Objects/SolidObjectDef.h"
1515

1616
class TransformsMemStorage : public StablePosAllocator<CMatrix44f> {
17+
private:
18+
using MyType = StablePosAllocator::Type;
1719
public:
1820
explicit TransformsMemStorage()
19-
: StablePosAllocator<CMatrix44f>(INIT_NUM_ELEMS)
21+
: StablePosAllocator<MyType>(INIT_NUM_ELEMS)
2022
, dirtyMap(INIT_NUM_ELEMS, BUFFERING)
2123
{}
2224
void Reset() override {
2325
assert(Threading::IsMainThread());
24-
StablePosAllocator<CMatrix44f>::Reset();
26+
StablePosAllocator<MyType>::Reset();
2527
dirtyMap.resize(GetSize(), BUFFERING);
2628
}
2729

2830
size_t Allocate(size_t numElems) override {
2931
auto lock = CModelsLock::GetScopedLock();
30-
size_t res = StablePosAllocator<CMatrix44f>::Allocate(numElems);
32+
size_t res = StablePosAllocator<MyType>::Allocate(numElems);
3133
dirtyMap.resize(GetSize(), BUFFERING);
3234

3335
return res;
3436
}
35-
void Free(size_t firstElem, size_t numElems, const CMatrix44f* T0 = nullptr) override {
37+
void Free(size_t firstElem, size_t numElems, const MyType* T0 = nullptr) override {
3638
auto lock = CModelsLock::GetScopedLock();
37-
StablePosAllocator<CMatrix44f>::Free(firstElem, numElems, T0);
39+
StablePosAllocator<MyType>::Free(firstElem, numElems, T0);
3840
dirtyMap.resize(GetSize(), BUFFERING);
3941
}
4042

41-
const CMatrix44f& operator[](std::size_t idx) const override
43+
const MyType& operator[](std::size_t idx) const override
4244
{
4345
auto lock = CModelsLock::GetScopedLock();
44-
return StablePosAllocator<CMatrix44f>::operator[](idx);
46+
return StablePosAllocator<MyType>::operator[](idx);
4547
}
46-
CMatrix44f& operator[](std::size_t idx) override
48+
MyType& operator[](std::size_t idx) override
4749
{
4850
auto lock = CModelsLock::GetScopedLock();
49-
return StablePosAllocator<CMatrix44f>::operator[](idx);
51+
return StablePosAllocator<MyType>::operator[](idx);
5052
}
5153
private:
5254
std::vector<uint8_t> dirtyMap;
@@ -137,33 +139,35 @@ class ScopedTransformMemAlloc {
137139

138140
class CWorldObject;
139141
class ModelUniformsStorage {
142+
private:
143+
using MyType = ModelUniformData;
140144
public:
141145
ModelUniformsStorage();
142146
public:
143147
size_t AddObjects(const CWorldObject* o);
144148
void DelObjects(const CWorldObject* o);
145149
size_t GetObjOffset(const CWorldObject* o);
146-
ModelUniformData& GetObjUniformsArray(const CWorldObject* o);
150+
MyType& GetObjUniformsArray(const CWorldObject* o);
147151

148152
size_t AddObjects(const SolidObjectDef* o) { return INVALID_INDEX; }
149153
void DelObjects(const SolidObjectDef* o) {}
150154
size_t GetObjOffset(const SolidObjectDef* o) { return INVALID_INDEX; }
151-
ModelUniformData& GetObjUniformsArray(const SolidObjectDef* o) { return dummy; }
155+
auto& GetObjUniformsArray(const SolidObjectDef* o) { return dummy; }
152156

153157
size_t AddObjects(const S3DModel* o) { return INVALID_INDEX; }
154158
void DelObjects(const S3DModel* o) {}
155159
size_t GetObjOffset(const S3DModel* o) { return INVALID_INDEX; }
156-
ModelUniformData& GetObjUniformsArray(const S3DModel* o) { return dummy; }
160+
auto& GetObjUniformsArray(const S3DModel* o) { return dummy; }
157161

158162
size_t Size() const { return storage.GetData().size(); }
159-
const std::vector<ModelUniformData>& GetData() const { return storage.GetData(); }
163+
const auto& GetData() const { return storage.GetData(); }
160164
public:
161165
static constexpr size_t INVALID_INDEX = 0;
162166
private:
163-
inline static ModelUniformData dummy = {};
167+
inline static MyType dummy = {};
164168

165169
std::unordered_map<CWorldObject*, size_t> objectsMap;
166-
spring::FreeListMap<ModelUniformData> storage;
170+
spring::FreeListMap<MyType> storage;
167171
};
168172

169173
extern ModelUniformsStorage modelUniformsStorage;

rts/System/MemPoolTypes.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,8 @@ using StaticMemPoolT = StaticMemPool<N, sizeof(TypesMem<T...>), alignof(TypesMem
376376
// has gaps management
377377
template <typename T>
378378
class StablePosAllocator {
379+
public:
380+
using Type = T;
379381
public:
380382
static constexpr bool reportWork = false;
381383
template<typename ...Args>

0 commit comments

Comments
 (0)