summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/angle/src/common/RefCountObject.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/angle/src/common/RefCountObject.h')
-rw-r--r--chromium/third_party/angle/src/common/RefCountObject.h64
1 files changed, 61 insertions, 3 deletions
diff --git a/chromium/third_party/angle/src/common/RefCountObject.h b/chromium/third_party/angle/src/common/RefCountObject.h
index 727c71c3624..88b63931224 100644
--- a/chromium/third_party/angle/src/common/RefCountObject.h
+++ b/chromium/third_party/angle/src/common/RefCountObject.h
@@ -14,7 +14,7 @@
#include <cstddef>
-#define GL_APICALL
+#include <GLES3/gl3.h>
#include <GLES2/gl2.h>
#include "common/debug.h"
@@ -47,7 +47,7 @@ class RefCountObjectBindingPointer
public:
GLuint id() const { return (mObject != NULL) ? mObject->id() : 0; }
- bool operator ! () const { return (get() == NULL); }
+ bool operator!() const { return (get() == NULL); }
private:
RefCountObject *mObject;
@@ -59,7 +59,65 @@ class BindingPointer : public RefCountObjectBindingPointer
public:
void set(ObjectType *newObject) { RefCountObjectBindingPointer::set(newObject); }
ObjectType *get() const { return static_cast<ObjectType*>(RefCountObjectBindingPointer::get()); }
- ObjectType *operator -> () const { return get(); }
+ ObjectType *operator->() const { return get(); }
+};
+
+template <class ObjectType>
+class FramebufferTextureBindingPointer : public RefCountObjectBindingPointer
+{
+public:
+ FramebufferTextureBindingPointer() : mType(GL_NONE), mMipLevel(0), mLayer(0) { }
+
+ void set(ObjectType *newObject, GLenum type, GLint mipLevel, GLint layer)
+ {
+ RefCountObjectBindingPointer::set(newObject);
+ mType = type;
+ mMipLevel = mipLevel;
+ mLayer = layer;
+ }
+
+ ObjectType *get() const { return static_cast<ObjectType*>(RefCountObjectBindingPointer::get()); }
+ ObjectType *operator->() const { return get(); }
+
+ GLenum type() const { return mType; }
+ GLint mipLevel() const { return mMipLevel; }
+ GLint layer() const { return mLayer; }
+
+private:
+ GLenum mType;
+ GLint mMipLevel;
+ GLint mLayer;
+};
+
+template <class ObjectType>
+class OffsetBindingPointer : public RefCountObjectBindingPointer
+{
+ public:
+ OffsetBindingPointer() : mOffset(0), mSize(0) { }
+
+ void set(ObjectType *newObject)
+ {
+ RefCountObjectBindingPointer::set(newObject);
+ mOffset = 0;
+ mSize = 0;
+ }
+
+ void set(ObjectType *newObject, GLintptr offset, GLsizeiptr size)
+ {
+ RefCountObjectBindingPointer::set(newObject);
+ mOffset = offset;
+ mSize = size;
+ }
+
+ GLintptr getOffset() const { return mOffset; }
+ GLsizeiptr getSize() const { return mSize; }
+
+ ObjectType *get() const { return static_cast<ObjectType*>(RefCountObjectBindingPointer::get()); }
+ ObjectType *operator->() const { return get(); }
+
+ private:
+ GLintptr mOffset;
+ GLsizeiptr mSize;
};
#endif // COMMON_REFCOUNTOBJECT_H_