summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/buffer_manager.cc
diff options
context:
space:
mode:
authorgman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-18 18:43:40 +0000
committergman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-18 18:43:40 +0000
commit8fbedc0f80187f0244b952979ee32396d84d4823 (patch)
treea584f7ac105bf685b4a3e91d5930e718a3ab7aae /gpu/command_buffer/service/buffer_manager.cc
parentedb22cfd39987c08be44997d9f2bc75f7721ce13 (diff)
downloadchromium_src-8fbedc0f80187f0244b952979ee32396d84d4823.zip
chromium_src-8fbedc0f80187f0244b952979ee32396d84d4823.tar.gz
chromium_src-8fbedc0f80187f0244b952979ee32396d84d4823.tar.bz2
Adds support for GL_FIXED vertex attributes.
Similar to sharing VBOs for both index buffers and vertex buffers this support is off by default but is turned on in the OpenGL ES 2.0 conformance tests (another CL) We can decide how/if to expose it to Pepper later if we want to claim Pepper is Open GL ES 2.0 conformant. TEST=The GL_FIXED OpenGL ES 2.0 conformance tests passes BUG=none Review URL: http://codereview.chromium.org/5026003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66649 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/buffer_manager.cc')
-rw-r--r--gpu/command_buffer/service/buffer_manager.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/gpu/command_buffer/service/buffer_manager.cc b/gpu/command_buffer/service/buffer_manager.cc
index 70c5ccb..07a9753 100644
--- a/gpu/command_buffer/service/buffer_manager.cc
+++ b/gpu/command_buffer/service/buffer_manager.cc
@@ -79,8 +79,7 @@ void BufferManager::BufferInfo::SetSize(GLsizeiptr size, bool shadow) {
bool BufferManager::BufferInfo::SetRange(
GLintptr offset, GLsizeiptr size, const GLvoid * data) {
DCHECK(!IsDeleted());
- if (offset + size < offset ||
- offset + size > size_) {
+ if (offset + size < offset || offset + size > size_) {
return false;
}
if (shadowed_) {
@@ -90,6 +89,14 @@ bool BufferManager::BufferInfo::SetRange(
return true;
}
+const void* BufferManager::BufferInfo::GetRange(
+ GLintptr offset, GLsizeiptr size) const {
+ if (!shadowed_ || (offset + size < offset || offset + size > size_)) {
+ return NULL;
+ }
+ return shadow_.get() + offset;
+}
+
void BufferManager::BufferInfo::ClearCache() {
range_set_.clear();
}