summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/Buffer.h
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@digia.com>2012-10-26 12:28:31 +0200
committerTor Arne Vestbø <tor.arne.vestbo@digia.com>2012-10-26 12:28:53 +0200
commit6e5818f2bbc8443b9308252a5e1543e014ef439d (patch)
tree07922adee2f13e818b9439c8a0bdf871dda59039 /src/3rdparty/angle/src/libGLESv2/Buffer.h
parent32aac0a1c009ee940920fd12f277180dd80b8eff (diff)
parentdeac55becd18efa4504eb686a1bb8081a5cd488a (diff)
Merge remote-tracking branch 'gerrit/master' into newdocs
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/Buffer.h')
-rw-r--r--src/3rdparty/angle/src/libGLESv2/Buffer.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/Buffer.h b/src/3rdparty/angle/src/libGLESv2/Buffer.h
new file mode 100644
index 0000000000..7019c4e160
--- /dev/null
+++ b/src/3rdparty/angle/src/libGLESv2/Buffer.h
@@ -0,0 +1,61 @@
+//
+// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Buffer.h: Defines the gl::Buffer class, representing storage of vertex and/or
+// index data. Implements GL buffer objects and related functionality.
+// [OpenGL ES 2.0.24] section 2.9 page 21.
+
+#ifndef LIBGLESV2_BUFFER_H_
+#define LIBGLESV2_BUFFER_H_
+
+#include <cstddef>
+#include <vector>
+
+#define GL_APICALL
+#include <GLES2/gl2.h>
+
+#include "common/angleutils.h"
+#include "common/RefCountObject.h"
+
+namespace gl
+{
+class StaticVertexBuffer;
+class StaticIndexBuffer;
+
+class Buffer : public RefCountObject
+{
+ public:
+ explicit Buffer(GLuint id);
+
+ virtual ~Buffer();
+
+ void bufferData(const void *data, GLsizeiptr size, GLenum usage);
+ void bufferSubData(const void *data, GLsizeiptr size, GLintptr offset);
+
+ void *data() { return mContents; }
+ size_t size() const { return mSize; }
+ GLenum usage() const { return mUsage; }
+
+ StaticVertexBuffer *getStaticVertexBuffer();
+ StaticIndexBuffer *getStaticIndexBuffer();
+ void invalidateStaticData();
+ void promoteStaticUsage(int dataSize);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(Buffer);
+
+ GLubyte *mContents;
+ GLsizeiptr mSize;
+ GLenum mUsage;
+
+ StaticVertexBuffer *mStaticVertexBuffer;
+ StaticIndexBuffer *mStaticIndexBuffer;
+ GLsizeiptr mUnmodifiedDataUse;
+};
+
+}
+
+#endif // LIBGLESV2_BUFFER_H_