summaryrefslogtreecommitdiffstats
path: root/ui/compositor
diff options
context:
space:
mode:
authorreveman <reveman@chromium.org>2015-05-21 16:21:07 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-21 23:21:40 +0000
commit5f717f89f305eed2be7fe113cf8fd9bb6e80a6dd (patch)
tree9f63726c11973ce13ff83b5a34fa8c57e522aca8 /ui/compositor
parent5c5e78fd2f3ce8e5d9bba747694b1ffc4d552ad9 (diff)
downloadchromium_src-5f717f89f305eed2be7fe113cf8fd9bb6e80a6dd.zip
chromium_src-5f717f89f305eed2be7fe113cf8fd9bb6e80a6dd.tar.gz
chromium_src-5f717f89f305eed2be7fe113cf8fd9bb6e80a6dd.tar.bz2
cc: Make CHROMIUM_image capability a requirement for impl-side painting.
This is a prerequisite to removing async uploads. BUG=460288 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1148273002 Cr-Commit-Position: refs/heads/master@{#331024}
Diffstat (limited to 'ui/compositor')
-rw-r--r--ui/compositor/test/in_process_context_factory.cc5
-rw-r--r--ui/compositor/test/in_process_context_factory.h2
-rw-r--r--ui/compositor/test/in_process_context_provider.cc20
-rw-r--r--ui/compositor/test/in_process_context_provider.h10
4 files changed, 31 insertions, 6 deletions
diff --git a/ui/compositor/test/in_process_context_factory.cc b/ui/compositor/test/in_process_context_factory.cc
index 431eea5..1676378 100644
--- a/ui/compositor/test/in_process_context_factory.cc
+++ b/ui/compositor/test/in_process_context_factory.cc
@@ -105,7 +105,9 @@ void InProcessContextFactory::CreateOutputSurface(
bool lose_context_when_out_of_memory = true;
scoped_refptr<InProcessContextProvider> context_provider =
- InProcessContextProvider::Create(attribs, lose_context_when_out_of_memory,
+ InProcessContextProvider::Create(attribs, &gpu_memory_buffer_manager_,
+ &image_factory_,
+ lose_context_when_out_of_memory,
compositor->widget(), "UICompositor");
scoped_ptr<cc::OutputSurface> real_output_surface;
@@ -158,6 +160,7 @@ InProcessContextFactory::SharedMainThreadContextProvider() {
bool lose_context_when_out_of_memory = false;
shared_main_thread_contexts_ = InProcessContextProvider::CreateOffscreen(
+ &gpu_memory_buffer_manager_, &image_factory_,
lose_context_when_out_of_memory);
if (shared_main_thread_contexts_.get() &&
!shared_main_thread_contexts_->BindToCurrentThread())
diff --git a/ui/compositor/test/in_process_context_factory.h b/ui/compositor/test/in_process_context_factory.h
index fdfb5cd..8b3cb09 100644
--- a/ui/compositor/test/in_process_context_factory.h
+++ b/ui/compositor/test/in_process_context_factory.h
@@ -6,6 +6,7 @@
#define UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_
#include "cc/test/test_gpu_memory_buffer_manager.h"
+#include "cc/test/test_image_factory.h"
#include "cc/test/test_shared_bitmap_manager.h"
#include "cc/test/test_task_graph_runner.h"
#include "ui/compositor/compositor.h"
@@ -57,6 +58,7 @@ class InProcessContextFactory : public ContextFactory {
scoped_refptr<cc::ContextProvider> shared_main_thread_contexts_;
cc::TestSharedBitmapManager shared_bitmap_manager_;
cc::TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
+ cc::TestImageFactory image_factory_;
cc::TestTaskGraphRunner task_graph_runner_;
uint32_t next_surface_id_namespace_;
bool use_test_surface_;
diff --git a/ui/compositor/test/in_process_context_provider.cc b/ui/compositor/test/in_process_context_provider.cc
index 6e252d8..4885c60 100644
--- a/ui/compositor/test/in_process_context_provider.cc
+++ b/ui/compositor/test/in_process_context_provider.cc
@@ -40,16 +40,21 @@ base::LazyInstance<GLES2Initializer> g_gles2_initializer =
// static
scoped_refptr<InProcessContextProvider> InProcessContextProvider::Create(
const gpu::gles2::ContextCreationAttribHelper& attribs,
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
+ gpu::ImageFactory* image_factory,
bool lose_context_when_out_of_memory,
gfx::AcceleratedWidget window,
const std::string& debug_name) {
return new InProcessContextProvider(
- attribs, lose_context_when_out_of_memory, window, debug_name);
+ attribs, gpu_memory_buffer_manager, image_factory,
+ lose_context_when_out_of_memory, window, debug_name);
}
// static
scoped_refptr<InProcessContextProvider>
InProcessContextProvider::CreateOffscreen(
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
+ gpu::ImageFactory* image_factory,
bool lose_context_when_out_of_memory) {
gpu::gles2::ContextCreationAttribHelper attribs;
attribs.alpha_size = 8;
@@ -62,17 +67,22 @@ InProcessContextProvider::CreateOffscreen(
attribs.sample_buffers = 0;
attribs.fail_if_major_perf_caveat = false;
attribs.bind_generates_resource = false;
- return new InProcessContextProvider(
- attribs, lose_context_when_out_of_memory, gfx::kNullAcceleratedWidget,
- "Offscreen");
+ return new InProcessContextProvider(attribs, gpu_memory_buffer_manager,
+ image_factory,
+ lose_context_when_out_of_memory,
+ gfx::kNullAcceleratedWidget, "Offscreen");
}
InProcessContextProvider::InProcessContextProvider(
const gpu::gles2::ContextCreationAttribHelper& attribs,
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
+ gpu::ImageFactory* image_factory,
bool lose_context_when_out_of_memory,
gfx::AcceleratedWidget window,
const std::string& debug_name)
: attribs_(attribs),
+ gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
+ image_factory_(image_factory),
lose_context_when_out_of_memory_(lose_context_when_out_of_memory),
window_(window),
debug_name_(debug_name),
@@ -99,7 +109,7 @@ bool InProcessContextProvider::BindToCurrentThread() {
window_, gfx::Size(1, 1), nullptr, /* share_context */
true, /* share_resources */
attribs_, gpu_preference, gpu::GLInProcessContextSharedMemoryLimits(),
- nullptr, nullptr));
+ gpu_memory_buffer_manager_, image_factory_));
if (!context_)
return false;
diff --git a/ui/compositor/test/in_process_context_provider.h b/ui/compositor/test/in_process_context_provider.h
index 5944bf9..dbeb0f4 100644
--- a/ui/compositor/test/in_process_context_provider.h
+++ b/ui/compositor/test/in_process_context_provider.h
@@ -18,6 +18,8 @@
namespace gpu {
class GLInProcessContext;
+class GpuMemoryBufferManager;
+class ImageFactory;
}
namespace ui {
@@ -26,17 +28,23 @@ class InProcessContextProvider : public cc::ContextProvider {
public:
static scoped_refptr<InProcessContextProvider> Create(
const gpu::gles2::ContextCreationAttribHelper& attribs,
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
+ gpu::ImageFactory* image_factory,
bool lose_context_when_out_of_memory,
gfx::AcceleratedWidget window,
const std::string& debug_name);
// Uses default attributes for creating an offscreen context.
static scoped_refptr<InProcessContextProvider> CreateOffscreen(
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
+ gpu::ImageFactory* image_factory,
bool lose_context_when_out_of_memory);
private:
InProcessContextProvider(
const gpu::gles2::ContextCreationAttribHelper& attribs,
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
+ gpu::ImageFactory* image_factory,
bool lose_context_when_out_of_memory,
gfx::AcceleratedWidget window,
const std::string& debug_name);
@@ -70,6 +78,8 @@ class InProcessContextProvider : public cc::ContextProvider {
skia::RefPtr<class GrContext> gr_context_;
gpu::gles2::ContextCreationAttribHelper attribs_;
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager_;
+ gpu::ImageFactory* image_factory_;
bool lose_context_when_out_of_memory_;
gfx::AcceleratedWidget window_;
std::string debug_name_;