|
14 | 14 | #include "Sim/Objects/SolidObjectDef.h"
|
15 | 15 |
|
16 | 16 | class TransformsMemStorage : public StablePosAllocator<CMatrix44f> {
|
| 17 | +private: |
| 18 | + using MyType = StablePosAllocator::Type; |
17 | 19 | public:
|
18 | 20 | explicit TransformsMemStorage()
|
19 |
| - : StablePosAllocator<CMatrix44f>(INIT_NUM_ELEMS) |
| 21 | + : StablePosAllocator<MyType>(INIT_NUM_ELEMS) |
20 | 22 | , dirtyMap(INIT_NUM_ELEMS, BUFFERING)
|
21 | 23 | {}
|
22 | 24 | void Reset() override {
|
23 | 25 | assert(Threading::IsMainThread());
|
24 |
| - StablePosAllocator<CMatrix44f>::Reset(); |
| 26 | + StablePosAllocator<MyType>::Reset(); |
25 | 27 | dirtyMap.resize(GetSize(), BUFFERING);
|
26 | 28 | }
|
27 | 29 |
|
28 | 30 | size_t Allocate(size_t numElems) override {
|
29 | 31 | auto lock = CModelsLock::GetScopedLock();
|
30 |
| - size_t res = StablePosAllocator<CMatrix44f>::Allocate(numElems); |
| 32 | + size_t res = StablePosAllocator<MyType>::Allocate(numElems); |
31 | 33 | dirtyMap.resize(GetSize(), BUFFERING);
|
32 | 34 |
|
33 | 35 | return res;
|
34 | 36 | }
|
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 { |
36 | 38 | auto lock = CModelsLock::GetScopedLock();
|
37 |
| - StablePosAllocator<CMatrix44f>::Free(firstElem, numElems, T0); |
| 39 | + StablePosAllocator<MyType>::Free(firstElem, numElems, T0); |
38 | 40 | dirtyMap.resize(GetSize(), BUFFERING);
|
39 | 41 | }
|
40 | 42 |
|
41 |
| - const CMatrix44f& operator[](std::size_t idx) const override |
| 43 | + const MyType& operator[](std::size_t idx) const override |
42 | 44 | {
|
43 | 45 | auto lock = CModelsLock::GetScopedLock();
|
44 |
| - return StablePosAllocator<CMatrix44f>::operator[](idx); |
| 46 | + return StablePosAllocator<MyType>::operator[](idx); |
45 | 47 | }
|
46 |
| - CMatrix44f& operator[](std::size_t idx) override |
| 48 | + MyType& operator[](std::size_t idx) override |
47 | 49 | {
|
48 | 50 | auto lock = CModelsLock::GetScopedLock();
|
49 |
| - return StablePosAllocator<CMatrix44f>::operator[](idx); |
| 51 | + return StablePosAllocator<MyType>::operator[](idx); |
50 | 52 | }
|
51 | 53 | private:
|
52 | 54 | std::vector<uint8_t> dirtyMap;
|
@@ -137,33 +139,35 @@ class ScopedTransformMemAlloc {
|
137 | 139 |
|
138 | 140 | class CWorldObject;
|
139 | 141 | class ModelUniformsStorage {
|
| 142 | +private: |
| 143 | + using MyType = ModelUniformData; |
140 | 144 | public:
|
141 | 145 | ModelUniformsStorage();
|
142 | 146 | public:
|
143 | 147 | size_t AddObjects(const CWorldObject* o);
|
144 | 148 | void DelObjects(const CWorldObject* o);
|
145 | 149 | size_t GetObjOffset(const CWorldObject* o);
|
146 |
| - ModelUniformData& GetObjUniformsArray(const CWorldObject* o); |
| 150 | + MyType& GetObjUniformsArray(const CWorldObject* o); |
147 | 151 |
|
148 | 152 | size_t AddObjects(const SolidObjectDef* o) { return INVALID_INDEX; }
|
149 | 153 | void DelObjects(const SolidObjectDef* o) {}
|
150 | 154 | 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; } |
152 | 156 |
|
153 | 157 | size_t AddObjects(const S3DModel* o) { return INVALID_INDEX; }
|
154 | 158 | void DelObjects(const S3DModel* o) {}
|
155 | 159 | 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; } |
157 | 161 |
|
158 | 162 | 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(); } |
160 | 164 | public:
|
161 | 165 | static constexpr size_t INVALID_INDEX = 0;
|
162 | 166 | private:
|
163 |
| - inline static ModelUniformData dummy = {}; |
| 167 | + inline static MyType dummy = {}; |
164 | 168 |
|
165 | 169 | std::unordered_map<CWorldObject*, size_t> objectsMap;
|
166 |
| - spring::FreeListMap<ModelUniformData> storage; |
| 170 | + spring::FreeListMap<MyType> storage; |
167 | 171 | };
|
168 | 172 |
|
169 | 173 | extern ModelUniformsStorage modelUniformsStorage;
|
0 commit comments