Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: gpu/command_buffer/service/buffer_manager.cc

Issue 1001833005: Update from https://crrev.com/320343 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Supress Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/buffer_manager.h ('k') | gpu/command_buffer/service/feature_info.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/buffer_manager.cc
diff --git a/gpu/command_buffer/service/buffer_manager.cc b/gpu/command_buffer/service/buffer_manager.cc
index 1f64fd57887be55344175ee81d9950dd9306f5d1..c2a0ba5c2979f3fe33f67c2d597989ae0dcd54f5 100644
--- a/gpu/command_buffer/service/buffer_manager.cc
+++ b/gpu/command_buffer/service/buffer_manager.cc
@@ -74,6 +74,27 @@ void BufferManager::StopTracking(Buffer* buffer) {
--buffer_count_;
}
+Buffer::MappedRange::MappedRange(
+ GLintptr offset, GLsizeiptr size, GLenum access, void* pointer,
+ scoped_refptr<gpu::Buffer> shm)
+ : offset(offset),
+ size(size),
+ access(access),
+ pointer(pointer),
+ shm(shm) {
+ DCHECK(pointer);
+ DCHECK(shm.get() && GetShmPointer());
+}
+
+Buffer::MappedRange::~MappedRange() {
+}
+
+void* Buffer::MappedRange::GetShmPointer() const {
+ DCHECK(shm.get());
+ return shm->GetDataAddress(static_cast<unsigned int>(offset),
+ static_cast<unsigned int>(size));
+}
+
Buffer::Buffer(BufferManager* manager, GLuint service_id)
: manager_(manager),
size_(0),
@@ -119,6 +140,7 @@ void Buffer::SetInfo(
memset(shadow_.get(), 0, size);
}
}
+ mapped_range_.reset(nullptr);
}
bool Buffer::CheckRange(
@@ -397,12 +419,23 @@ bool BufferManager::SetTarget(Buffer* buffer, GLenum target) {
// Since one BufferManager can be shared by multiple decoders, ContextState is
// passed in each time and not just passed in during initialization.
Buffer* BufferManager::GetBufferInfoForTarget(
- ContextState* state, GLenum target) {
- DCHECK(target == GL_ARRAY_BUFFER || target == GL_ELEMENT_ARRAY_BUFFER);
- if (target == GL_ARRAY_BUFFER) {
- return state->bound_array_buffer.get();
- } else {
- return state->vertex_attrib_manager->element_array_buffer();
+ ContextState* state, GLenum target) const {
+ switch (target) {
+ case GL_ARRAY_BUFFER:
+ return state->bound_array_buffer.get();
+ case GL_ELEMENT_ARRAY_BUFFER:
+ return state->vertex_attrib_manager->element_array_buffer();
+ case GL_COPY_READ_BUFFER:
+ case GL_COPY_WRITE_BUFFER:
+ case GL_PIXEL_PACK_BUFFER:
+ case GL_PIXEL_UNPACK_BUFFER:
+ case GL_TRANSFORM_FEEDBACK_BUFFER:
+ case GL_UNIFORM_BUFFER:
+ NOTIMPLEMENTED();
+ return nullptr;
+ default:
+ NOTREACHED();
+ return nullptr;
}
}
« no previous file with comments | « gpu/command_buffer/service/buffer_manager.h ('k') | gpu/command_buffer/service/feature_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698