Commit a4ef812c by Jamie Madill Committed by Commit Bot

De-templatize ResourceManagerBase.

Bug: skia:7647 Change-Id: I568cb63118c944c7eca7efcd2445718dc7fda350 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404745Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 1ab73f0f
...@@ -40,18 +40,16 @@ IDType AllocateEmptyObject(HandleAllocator *handleAllocator, ...@@ -40,18 +40,16 @@ IDType AllocateEmptyObject(HandleAllocator *handleAllocator,
} // anonymous namespace } // anonymous namespace
template <typename HandleAllocatorType> ResourceManagerBase::ResourceManagerBase() : mRefCount(1) {}
ResourceManagerBase<HandleAllocatorType>::ResourceManagerBase() : mRefCount(1)
{}
template <typename HandleAllocatorType> ResourceManagerBase::~ResourceManagerBase() = default;
void ResourceManagerBase<HandleAllocatorType>::addRef()
void ResourceManagerBase::addRef()
{ {
mRefCount++; mRefCount++;
} }
template <typename HandleAllocatorType> void ResourceManagerBase::release(const Context *context)
void ResourceManagerBase<HandleAllocatorType>::release(const Context *context)
{ {
if (--mRefCount == 0) if (--mRefCount == 0)
{ {
...@@ -60,15 +58,14 @@ void ResourceManagerBase<HandleAllocatorType>::release(const Context *context) ...@@ -60,15 +58,14 @@ void ResourceManagerBase<HandleAllocatorType>::release(const Context *context)
} }
} }
template <typename ResourceType, typename HandleAllocatorType, typename ImplT, typename IDType> template <typename ResourceType, typename ImplT, typename IDType>
TypedResourceManager<ResourceType, HandleAllocatorType, ImplT, IDType>::~TypedResourceManager() TypedResourceManager<ResourceType, ImplT, IDType>::~TypedResourceManager()
{ {
ASSERT(mObjectMap.empty()); ASSERT(mObjectMap.empty());
} }
template <typename ResourceType, typename HandleAllocatorType, typename ImplT, typename IDType> template <typename ResourceType, typename ImplT, typename IDType>
void TypedResourceManager<ResourceType, HandleAllocatorType, ImplT, IDType>::reset( void TypedResourceManager<ResourceType, ImplT, IDType>::reset(const Context *context)
const Context *context)
{ {
this->mHandleAllocator.reset(); this->mHandleAllocator.reset();
for (const auto &resource : mObjectMap) for (const auto &resource : mObjectMap)
...@@ -81,10 +78,9 @@ void TypedResourceManager<ResourceType, HandleAllocatorType, ImplT, IDType>::res ...@@ -81,10 +78,9 @@ void TypedResourceManager<ResourceType, HandleAllocatorType, ImplT, IDType>::res
mObjectMap.clear(); mObjectMap.clear();
} }
template <typename ResourceType, typename HandleAllocatorType, typename ImplT, typename IDType> template <typename ResourceType, typename ImplT, typename IDType>
void TypedResourceManager<ResourceType, HandleAllocatorType, ImplT, IDType>::deleteObject( void TypedResourceManager<ResourceType, ImplT, IDType>::deleteObject(const Context *context,
const Context *context, IDType handle)
IDType handle)
{ {
ResourceType *resource = nullptr; ResourceType *resource = nullptr;
if (!mObjectMap.erase(handle, &resource)) if (!mObjectMap.erase(handle, &resource))
...@@ -101,23 +97,13 @@ void TypedResourceManager<ResourceType, HandleAllocatorType, ImplT, IDType>::del ...@@ -101,23 +97,13 @@ void TypedResourceManager<ResourceType, HandleAllocatorType, ImplT, IDType>::del
} }
} }
template class ResourceManagerBase<HandleAllocator>; template class TypedResourceManager<Buffer, BufferManager, BufferID>;
template class TypedResourceManager<Buffer, HandleAllocator, BufferManager, BufferID>; template class TypedResourceManager<Texture, TextureManager, TextureID>;
template class TypedResourceManager<Texture, HandleAllocator, TextureManager, TextureID>; template class TypedResourceManager<Renderbuffer, RenderbufferManager, RenderbufferID>;
template class TypedResourceManager<Renderbuffer, template class TypedResourceManager<Sampler, SamplerManager, SamplerID>;
HandleAllocator, template class TypedResourceManager<Sync, SyncManager, GLuint>;
RenderbufferManager, template class TypedResourceManager<Framebuffer, FramebufferManager, FramebufferID>;
RenderbufferID>; template class TypedResourceManager<ProgramPipeline, ProgramPipelineManager, ProgramPipelineID>;
template class TypedResourceManager<Sampler, HandleAllocator, SamplerManager, SamplerID>;
template class TypedResourceManager<Sync, HandleAllocator, SyncManager, GLuint>;
template class TypedResourceManager<Framebuffer,
HandleAllocator,
FramebufferManager,
FramebufferID>;
template class TypedResourceManager<ProgramPipeline,
HandleAllocator,
ProgramPipelineManager,
ProgramPipelineID>;
// BufferManager Implementation. // BufferManager Implementation.
......
...@@ -44,7 +44,6 @@ class Shader; ...@@ -44,7 +44,6 @@ class Shader;
class Sync; class Sync;
class Texture; class Texture;
template <typename HandleAllocatorType>
class ResourceManagerBase : angle::NonCopyable class ResourceManagerBase : angle::NonCopyable
{ {
public: public:
...@@ -55,16 +54,16 @@ class ResourceManagerBase : angle::NonCopyable ...@@ -55,16 +54,16 @@ class ResourceManagerBase : angle::NonCopyable
protected: protected:
virtual void reset(const Context *context) = 0; virtual void reset(const Context *context) = 0;
virtual ~ResourceManagerBase() {} virtual ~ResourceManagerBase();
HandleAllocatorType mHandleAllocator; HandleAllocator mHandleAllocator;
private: private:
size_t mRefCount; size_t mRefCount;
}; };
template <typename ResourceType, typename HandleAllocatorType, typename ImplT, typename IDType> template <typename ResourceType, typename ImplT, typename IDType>
class TypedResourceManager : public ResourceManagerBase<HandleAllocatorType> class TypedResourceManager : public ResourceManagerBase
{ {
public: public:
TypedResourceManager() {} TypedResourceManager() {}
...@@ -127,7 +126,7 @@ class TypedResourceManager : public ResourceManagerBase<HandleAllocatorType> ...@@ -127,7 +126,7 @@ class TypedResourceManager : public ResourceManagerBase<HandleAllocatorType>
} }
}; };
class BufferManager : public TypedResourceManager<Buffer, HandleAllocator, BufferManager, BufferID> class BufferManager : public TypedResourceManager<Buffer, BufferManager, BufferID>
{ {
public: public:
BufferID createBuffer(); BufferID createBuffer();
...@@ -146,7 +145,7 @@ class BufferManager : public TypedResourceManager<Buffer, HandleAllocator, Buffe ...@@ -146,7 +145,7 @@ class BufferManager : public TypedResourceManager<Buffer, HandleAllocator, Buffe
~BufferManager() override {} ~BufferManager() override {}
}; };
class ShaderProgramManager : public ResourceManagerBase<HandleAllocator> class ShaderProgramManager : public ResourceManagerBase
{ {
public: public:
ShaderProgramManager(); ShaderProgramManager();
...@@ -184,8 +183,7 @@ class ShaderProgramManager : public ResourceManagerBase<HandleAllocator> ...@@ -184,8 +183,7 @@ class ShaderProgramManager : public ResourceManagerBase<HandleAllocator>
ResourceMap<Program, ShaderProgramID> mPrograms; ResourceMap<Program, ShaderProgramID> mPrograms;
}; };
class TextureManager class TextureManager : public TypedResourceManager<Texture, TextureManager, TextureID>
: public TypedResourceManager<Texture, HandleAllocator, TextureManager, TextureID>
{ {
public: public:
TextureID createTexture(); TextureID createTexture();
...@@ -215,10 +213,8 @@ class TextureManager ...@@ -215,10 +213,8 @@ class TextureManager
~TextureManager() override {} ~TextureManager() override {}
}; };
class RenderbufferManager : public TypedResourceManager<Renderbuffer, class RenderbufferManager
HandleAllocator, : public TypedResourceManager<Renderbuffer, RenderbufferManager, RenderbufferID>
RenderbufferManager,
RenderbufferID>
{ {
public: public:
RenderbufferID createRenderbuffer(); RenderbufferID createRenderbuffer();
...@@ -236,8 +232,7 @@ class RenderbufferManager : public TypedResourceManager<Renderbuffer, ...@@ -236,8 +232,7 @@ class RenderbufferManager : public TypedResourceManager<Renderbuffer,
~RenderbufferManager() override {} ~RenderbufferManager() override {}
}; };
class SamplerManager class SamplerManager : public TypedResourceManager<Sampler, SamplerManager, SamplerID>
: public TypedResourceManager<Sampler, HandleAllocator, SamplerManager, SamplerID>
{ {
public: public:
SamplerID createSampler(); SamplerID createSampler();
...@@ -256,7 +251,7 @@ class SamplerManager ...@@ -256,7 +251,7 @@ class SamplerManager
~SamplerManager() override {} ~SamplerManager() override {}
}; };
class SyncManager : public TypedResourceManager<Sync, HandleAllocator, SyncManager, GLuint> class SyncManager : public TypedResourceManager<Sync, SyncManager, GLuint>
{ {
public: public:
GLuint createSync(rx::GLImplFactory *factory); GLuint createSync(rx::GLImplFactory *factory);
...@@ -269,7 +264,7 @@ class SyncManager : public TypedResourceManager<Sync, HandleAllocator, SyncManag ...@@ -269,7 +264,7 @@ class SyncManager : public TypedResourceManager<Sync, HandleAllocator, SyncManag
}; };
class FramebufferManager class FramebufferManager
: public TypedResourceManager<Framebuffer, HandleAllocator, FramebufferManager, FramebufferID> : public TypedResourceManager<Framebuffer, FramebufferManager, FramebufferID>
{ {
public: public:
FramebufferID createFramebuffer(); FramebufferID createFramebuffer();
...@@ -296,10 +291,8 @@ class FramebufferManager ...@@ -296,10 +291,8 @@ class FramebufferManager
~FramebufferManager() override {} ~FramebufferManager() override {}
}; };
class ProgramPipelineManager : public TypedResourceManager<ProgramPipeline, class ProgramPipelineManager
HandleAllocator, : public TypedResourceManager<ProgramPipeline, ProgramPipelineManager, ProgramPipelineID>
ProgramPipelineManager,
ProgramPipelineID>
{ {
public: public:
ProgramPipelineID createProgramPipeline(); ProgramPipelineID createProgramPipeline();
...@@ -318,7 +311,7 @@ class ProgramPipelineManager : public TypedResourceManager<ProgramPipeline, ...@@ -318,7 +311,7 @@ class ProgramPipelineManager : public TypedResourceManager<ProgramPipeline,
~ProgramPipelineManager() override {} ~ProgramPipelineManager() override {}
}; };
class MemoryObjectManager : public ResourceManagerBase<HandleAllocator> class MemoryObjectManager : public ResourceManagerBase
{ {
public: public:
MemoryObjectManager(); MemoryObjectManager();
...@@ -336,7 +329,7 @@ class MemoryObjectManager : public ResourceManagerBase<HandleAllocator> ...@@ -336,7 +329,7 @@ class MemoryObjectManager : public ResourceManagerBase<HandleAllocator>
ResourceMap<MemoryObject, MemoryObjectID> mMemoryObjects; ResourceMap<MemoryObject, MemoryObjectID> mMemoryObjects;
}; };
class SemaphoreManager : public ResourceManagerBase<HandleAllocator> class SemaphoreManager : public ResourceManagerBase
{ {
public: public:
SemaphoreManager(); SemaphoreManager();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment