diff options
author | reveman <reveman@chromium.org> | 2014-10-28 18:28:05 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-29 01:28:30 +0000 |
commit | 2232bce10844b88b9816027c2b546ccee64f46d4 (patch) | |
tree | 1f862495b3334ce7a1af5b40de39b762eba58f4e /cc/test/test_image_factory.cc | |
parent | cb127d47af978593c05db25bb056ef6e55048a00 (diff) | |
download | chromium_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.cc | 33 |
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 |