summaryrefslogtreecommitdiffstats
path: root/cc/test/test_image_factory.cc
diff options
context:
space:
mode:
authorreveman <reveman@chromium.org>2014-10-28 18:28:05 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-29 01:28:30 +0000
commit2232bce10844b88b9816027c2b546ccee64f46d4 (patch)
tree1f862495b3334ce7a1af5b40de39b762eba58f4e /cc/test/test_image_factory.cc
parentcb127d47af978593c05db25bb056ef6e55048a00 (diff)
downloadchromium_src-2232bce10844b88b9816027c2b546ccee64f46d4.zip
chromium_src-2232bce10844b88b9816027c2b546ccee64f46d4.tar.gz
chromium_src-2232bce10844b88b9816027c2b546ccee64f46d4.tar.bz2
gpu: Add CHROMIUM_image support to in-process command buffer.
This makes it possible to use the in-process command buffer with CHROMIUM_image extension. GpuMemoryBufferManager and ImageFactory interfaces need to be provided when creating an in-process command buffer. Existing implementations of these interfaces in content/ should work just fine. cc::TestGpuMemoryBufferManager and cc::TestImageFactory are used for cc pixel tests. They provide a minimal implementation of these interfaces using shared memory. Note: shared memory is used for in-process testing as it maps better to the GpuMemoryBuffer framework that has been designed for multi-process usage. Non-shared memory might be a bit more efficient but it would require more complexity and not match real usage as well. BUG=423533 Review URL: https://codereview.chromium.org/665463003 Cr-Commit-Position: refs/heads/master@{#301763}
Diffstat (limited to 'cc/test/test_image_factory.cc')
-rw-r--r--cc/test/test_image_factory.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/cc/test/test_image_factory.cc b/cc/test/test_image_factory.cc
new file mode 100644
index 0000000..42e3502
--- /dev/null
+++ b/cc/test/test_image_factory.cc
@@ -0,0 +1,33 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "cc/test/test_image_factory.h"
+
+#include "ui/gl/gl_image_shared_memory.h"
+
+namespace cc {
+
+TestImageFactory::TestImageFactory() {
+}
+
+TestImageFactory::~TestImageFactory() {
+}
+
+scoped_refptr<gfx::GLImage> TestImageFactory::CreateImageForGpuMemoryBuffer(
+ const gfx::GpuMemoryBufferHandle& handle,
+ const gfx::Size& size,
+ gfx::GpuMemoryBuffer::Format format,
+ unsigned internalformat,
+ int client_id) {
+ DCHECK_EQ(handle.type, gfx::SHARED_MEMORY_BUFFER);
+
+ scoped_refptr<gfx::GLImageSharedMemory> image(
+ new gfx::GLImageSharedMemory(size, internalformat));
+ if (!image->Initialize(handle, format))
+ return nullptr;
+
+ return image;
+}
+
+} // namespace cc