Commit e826ef02 by Nicolas Capens

Refactor GL objects into named and unnamed ones.

Bug 20045861 Change-Id: Ib6a6625d3eb876a1444ae4dab17c6e25246fbc43 Reviewed-on: https://swiftshader-review.googlesource.com/2794Tested-by: 's avatarNicolas Capens <capn@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 9cc8c967
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
namespace gl namespace gl
{ {
Object::Object(GLuint name) : name(name) Object::Object()
{ {
referenceCount = 0; referenceCount = 0;
} }
...@@ -50,4 +50,12 @@ void Object::release() ...@@ -50,4 +50,12 @@ void Object::release()
} }
} }
NamedObject::NamedObject(GLuint name) : name(name)
{
}
NamedObject::~NamedObject()
{
}
} }
...@@ -26,18 +26,25 @@ namespace gl ...@@ -26,18 +26,25 @@ namespace gl
class Object class Object
{ {
public: public:
explicit Object(GLuint name); Object();
virtual ~Object(); virtual ~Object();
virtual void addRef(); virtual void addRef();
virtual void release(); virtual void release();
const GLuint name;
private: private:
volatile int referenceCount; volatile int referenceCount;
}; };
class NamedObject : public Object
{
public:
explicit NamedObject(GLuint name);
virtual ~NamedObject();
const GLuint name;
};
template<class ObjectType> template<class ObjectType>
class BindingPointer class BindingPointer
{ {
......
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
namespace egl namespace egl
{ {
class Texture : public gl::Object class Texture : public gl::NamedObject
{ {
public: public:
Texture(GLuint name) : Object(name) {}; Texture(GLuint name) : NamedObject(name) {};
virtual void releaseTexImage() = 0; virtual void releaseTexImage() = 0;
}; };
} }
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
namespace gl namespace gl
{ {
Buffer::Buffer(GLuint name) : Object(name) Buffer::Buffer(GLuint name) : NamedObject(name)
{ {
mContents = 0; mContents = 0;
mSize = 0; mSize = 0;
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
namespace gl namespace gl
{ {
class Buffer : public Object class Buffer : public NamedObject
{ {
public: public:
explicit Buffer(GLuint name); explicit Buffer(GLuint name);
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
namespace gl namespace gl
{ {
Query::Query(GLuint name, GLenum type) : Object(name) Query::Query(GLuint name, GLenum type) : NamedObject(name)
{ {
mQuery = NULL; mQuery = NULL;
mStatus = GL_FALSE; mStatus = GL_FALSE;
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
namespace gl namespace gl
{ {
class Query : public Object class Query : public NamedObject
{ {
public: public:
Query(GLuint name, GLenum type); Query(GLuint name, GLenum type);
......
...@@ -180,7 +180,7 @@ GLsizei RenderbufferTextureCubeMap::getSamples() const ...@@ -180,7 +180,7 @@ GLsizei RenderbufferTextureCubeMap::getSamples() const
////// Renderbuffer Implementation ////// ////// Renderbuffer Implementation //////
Renderbuffer::Renderbuffer(GLuint name, RenderbufferInterface *instance) : Object(name) Renderbuffer::Renderbuffer(GLuint name, RenderbufferInterface *instance) : NamedObject(name)
{ {
ASSERT(instance != NULL); ASSERT(instance != NULL);
mInstance = instance; mInstance = instance;
......
...@@ -134,7 +134,7 @@ protected: ...@@ -134,7 +134,7 @@ protected:
// Renderbuffer implements the GL renderbuffer object. // Renderbuffer implements the GL renderbuffer object.
// It's only a proxy for a RenderbufferInterface instance; the internal object // It's only a proxy for a RenderbufferInterface instance; the internal object
// can change whenever glRenderbufferStorage is called. // can change whenever glRenderbufferStorage is called.
class Renderbuffer : public Object class Renderbuffer : public NamedObject
{ {
public: public:
Renderbuffer(GLuint name, RenderbufferInterface *storage); Renderbuffer(GLuint name, RenderbufferInterface *storage);
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
namespace gl namespace gl
{ {
Texture::Texture(GLuint name) : Object(name) Texture::Texture(GLuint name) : NamedObject(name)
{ {
mMinFilter = GL_NEAREST_MIPMAP_LINEAR; mMinFilter = GL_NEAREST_MIPMAP_LINEAR;
mMagFilter = GL_LINEAR; mMagFilter = GL_LINEAR;
......
...@@ -44,7 +44,7 @@ enum ...@@ -44,7 +44,7 @@ enum
IMPLEMENTATION_MAX_SAMPLES = 4 IMPLEMENTATION_MAX_SAMPLES = 4
}; };
class Texture : public Object class Texture : public NamedObject
{ {
public: public:
explicit Texture(GLuint name); explicit Texture(GLuint name);
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
namespace es1 namespace es1
{ {
Buffer::Buffer(GLuint name) : Object(name) Buffer::Buffer(GLuint name) : NamedObject(name)
{ {
mContents = 0; mContents = 0;
mSize = 0; mSize = 0;
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
namespace es1 namespace es1
{ {
class Buffer : public gl::Object class Buffer : public gl::NamedObject
{ {
public: public:
explicit Buffer(GLuint name); explicit Buffer(GLuint name);
......
...@@ -136,7 +136,7 @@ GLsizei RenderbufferTexture2D::getSamples() const ...@@ -136,7 +136,7 @@ GLsizei RenderbufferTexture2D::getSamples() const
////// Renderbuffer Implementation ////// ////// Renderbuffer Implementation //////
Renderbuffer::Renderbuffer(GLuint name, RenderbufferInterface *instance) : Object(name) Renderbuffer::Renderbuffer(GLuint name, RenderbufferInterface *instance) : NamedObject(name)
{ {
ASSERT(instance != NULL); ASSERT(instance != NULL);
mInstance = instance; mInstance = instance;
......
...@@ -113,7 +113,7 @@ protected: ...@@ -113,7 +113,7 @@ protected:
// Renderbuffer implements the GL renderbuffer object. // Renderbuffer implements the GL renderbuffer object.
// It's only a proxy for a RenderbufferInterface instance; the internal object // It's only a proxy for a RenderbufferInterface instance; the internal object
// can change whenever glRenderbufferStorage is called. // can change whenever glRenderbufferStorage is called.
class Renderbuffer : public gl::Object class Renderbuffer : public gl::NamedObject
{ {
public: public:
Renderbuffer(GLuint name, RenderbufferInterface *storage); Renderbuffer(GLuint name, RenderbufferInterface *storage);
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
namespace es2 namespace es2
{ {
Buffer::Buffer(GLuint name) : Object(name) Buffer::Buffer(GLuint name) : NamedObject(name)
{ {
mContents = 0; mContents = 0;
mSize = 0; mSize = 0;
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
namespace es2 namespace es2
{ {
class Buffer : public gl::Object class Buffer : public gl::NamedObject
{ {
public: public:
explicit Buffer(GLuint name); explicit Buffer(GLuint name);
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
namespace es2 namespace es2
{ {
Query::Query(GLuint name, GLenum type) : Object(name) Query::Query(GLuint name, GLenum type) : NamedObject(name)
{ {
mQuery = NULL; mQuery = NULL;
mStatus = GL_FALSE; mStatus = GL_FALSE;
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
namespace es2 namespace es2
{ {
class Query : public gl::Object class Query : public gl::NamedObject
{ {
public: public:
Query(GLuint name, GLenum type); Query(GLuint name, GLenum type);
......
...@@ -272,7 +272,7 @@ GLsizei RenderbufferTextureCubeMap::getSamples() const ...@@ -272,7 +272,7 @@ GLsizei RenderbufferTextureCubeMap::getSamples() const
////// Renderbuffer Implementation ////// ////// Renderbuffer Implementation //////
Renderbuffer::Renderbuffer(GLuint name, RenderbufferInterface *instance) : Object(name) Renderbuffer::Renderbuffer(GLuint name, RenderbufferInterface *instance) : NamedObject(name)
{ {
ASSERT(instance != NULL); ASSERT(instance != NULL);
mInstance = instance; mInstance = instance;
......
...@@ -164,7 +164,7 @@ protected: ...@@ -164,7 +164,7 @@ protected:
// Renderbuffer implements the GL renderbuffer object. // Renderbuffer implements the GL renderbuffer object.
// It's only a proxy for a RenderbufferInterface instance; the internal object // It's only a proxy for a RenderbufferInterface instance; the internal object
// can change whenever glRenderbufferStorage is called. // can change whenever glRenderbufferStorage is called.
class Renderbuffer : public gl::Object class Renderbuffer : public gl::NamedObject
{ {
public: public:
Renderbuffer(GLuint name, RenderbufferInterface *storage); Renderbuffer(GLuint name, RenderbufferInterface *storage);
......
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
namespace es2 namespace es2
{ {
class Sampler : public gl::Object class Sampler : public gl::NamedObject
{ {
public: public:
Sampler(GLuint name) : Object(name) Sampler(GLuint name) : NamedObject(name)
{ {
mMinFilter = GL_NEAREST_MIPMAP_LINEAR; mMinFilter = GL_NEAREST_MIPMAP_LINEAR;
mMagFilter = GL_LINEAR; mMagFilter = GL_LINEAR;
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
namespace es2 namespace es2
{ {
TransformFeedback::TransformFeedback(GLuint name) : Object(name), mActive(false), mPaused(false) TransformFeedback::TransformFeedback(GLuint name) : NamedObject(name), mActive(false), mPaused(false)
{ {
mGenericBuffer = NULL; mGenericBuffer = NULL;
} }
......
...@@ -24,7 +24,7 @@ namespace es2 ...@@ -24,7 +24,7 @@ namespace es2
{ {
class Buffer; class Buffer;
class TransformFeedback : public gl::Object class TransformFeedback : public gl::NamedObject
{ {
public: public:
// FIXME: Change this when implementing transform feedback // FIXME: Change this when implementing transform feedback
......
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