Commit ae6495e5 by Jamie Madill

Use rx::ImplFactory in ResourceManager.

This will make mocking easier for unit testing ResourceManager. BUG=angleproject:942 Change-Id: I24b9d0be550991845225141d6e7d5630383a8718 Reviewed-on: https://chromium-review.googlesource.com/258901Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 87de3627
......@@ -20,8 +20,8 @@
namespace gl
{
ResourceManager::ResourceManager(rx::Renderer *renderer)
: mRenderer(renderer),
ResourceManager::ResourceManager(rx::ImplFactory *factory)
: mFactory(factory),
mRefCount(1)
{
}
......@@ -94,7 +94,7 @@ GLuint ResourceManager::createShader(const gl::Data &data, GLenum type)
if (type == GL_VERTEX_SHADER || type == GL_FRAGMENT_SHADER)
{
mShaderMap[handle] = new Shader(this, mRenderer->createShader(type), type, handle);
mShaderMap[handle] = new Shader(this, mFactory->createShader(type), type, handle);
}
else UNREACHABLE();
......@@ -106,7 +106,7 @@ GLuint ResourceManager::createProgram()
{
GLuint handle = mProgramShaderHandleAllocator.allocate();
mProgramMap[handle] = new Program(mRenderer->createProgram(), this, handle);
mProgramMap[handle] = new Program(mFactory->createProgram(), this, handle);
return handle;
}
......@@ -146,7 +146,7 @@ GLuint ResourceManager::createFenceSync()
{
GLuint handle = mFenceSyncHandleAllocator.allocate();
FenceSync *fenceSync = new FenceSync(mRenderer->createFenceSync(), handle);
FenceSync *fenceSync = new FenceSync(mFactory->createFenceSync(), handle);
fenceSync->addRef();
mFenceSyncMap[handle] = fenceSync;
......@@ -360,7 +360,7 @@ void ResourceManager::checkBufferAllocation(unsigned int buffer)
{
if (buffer != 0 && !getBuffer(buffer))
{
Buffer *bufferObject = new Buffer(mRenderer->createBuffer(), buffer);
Buffer *bufferObject = new Buffer(mFactory->createBuffer(), buffer);
mBufferMap[buffer] = bufferObject;
bufferObject->addRef();
}
......@@ -370,7 +370,7 @@ void ResourceManager::checkTextureAllocation(GLuint texture, GLenum type)
{
if (!getTexture(texture) && texture != 0)
{
Texture *textureObject = new Texture(mRenderer->createTexture(type), texture, type);
Texture *textureObject = new Texture(mFactory->createTexture(type), texture, type);
mTextureMap[texture] = textureObject;
textureObject->addRef();
}
......@@ -380,7 +380,7 @@ void ResourceManager::checkRenderbufferAllocation(GLuint renderbuffer)
{
if (renderbuffer != 0 && !getRenderbuffer(renderbuffer))
{
Renderbuffer *renderbufferObject = new Renderbuffer(mRenderer->createRenderbuffer(), renderbuffer);
Renderbuffer *renderbufferObject = new Renderbuffer(mFactory->createRenderbuffer(), renderbuffer);
mRenderbufferMap[renderbuffer] = renderbufferObject;
renderbufferObject->addRef();
}
......
......@@ -19,7 +19,7 @@
namespace rx
{
class Renderer;
class ImplFactory;
}
namespace gl
......@@ -36,7 +36,7 @@ struct Data;
class ResourceManager
{
public:
explicit ResourceManager(rx::Renderer *renderer);
explicit ResourceManager(rx::ImplFactory *factory);
~ResourceManager();
void addRef();
......@@ -78,7 +78,7 @@ class ResourceManager
private:
DISALLOW_COPY_AND_ASSIGN(ResourceManager);
rx::Renderer *mRenderer;
rx::ImplFactory *mFactory;
std::size_t mRefCount;
typedef std::map<GLuint, Buffer*> BufferMap;
......
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