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

Side by Side Diff: cc/test/fake_output_surface.cc

Issue 2089753003: cc: Use the correct internal format for glCopyTexImage2D calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: copytextureformat: comments Created 4 years, 6 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 unified diff | Download patch
« no previous file with comments | « cc/test/fake_output_surface.h ('k') | cc/test/pixel_test_delegating_output_surface.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/test/fake_output_surface.h" 5 #include "cc/test/fake_output_surface.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "cc/output/compositor_frame_ack.h" 9 #include "cc/output/compositor_frame_ack.h"
10 #include "cc/output/output_surface_client.h" 10 #include "cc/output/output_surface_client.h"
(...skipping 20 matching lines...) Expand all
31 std::move(software_device), 31 std::move(software_device),
32 delegated_rendering) {} 32 delegated_rendering) {}
33 33
34 FakeOutputSurface::FakeOutputSurface( 34 FakeOutputSurface::FakeOutputSurface(
35 scoped_refptr<ContextProvider> context_provider, 35 scoped_refptr<ContextProvider> context_provider,
36 scoped_refptr<ContextProvider> worker_context_provider, 36 scoped_refptr<ContextProvider> worker_context_provider,
37 std::unique_ptr<SoftwareOutputDevice> software_device, 37 std::unique_ptr<SoftwareOutputDevice> software_device,
38 bool delegated_rendering) 38 bool delegated_rendering)
39 : OutputSurface(std::move(context_provider), 39 : OutputSurface(std::move(context_provider),
40 std::move(worker_context_provider), 40 std::move(worker_context_provider),
41 std::move(software_device)), 41 std::move(software_device)) {
42 client_(NULL),
43 num_sent_frames_(0),
44 has_external_stencil_test_(false),
45 suspended_for_recycle_(false),
46 framebuffer_(0),
47 overlay_candidate_validator_(nullptr) {
48 capabilities_.delegated_rendering = delegated_rendering; 42 capabilities_.delegated_rendering = delegated_rendering;
49 } 43 }
50 44
51 FakeOutputSurface::~FakeOutputSurface() {} 45 FakeOutputSurface::~FakeOutputSurface() {}
52 46
53 void FakeOutputSurface::SwapBuffers(CompositorFrame* frame) { 47 void FakeOutputSurface::SwapBuffers(CompositorFrame* frame) {
54 if (frame->delegated_frame_data || !context_provider()) { 48 if (frame->delegated_frame_data || !context_provider()) {
55 frame->AssignTo(&last_sent_frame_); 49 frame->AssignTo(&last_sent_frame_);
56 50
57 if (last_sent_frame_.delegated_frame_data) { 51 if (last_sent_frame_.delegated_frame_data) {
58 resources_held_by_parent_.insert( 52 resources_held_by_parent_.insert(
59 resources_held_by_parent_.end(), 53 resources_held_by_parent_.end(),
60 last_sent_frame_.delegated_frame_data->resource_list.begin(), 54 last_sent_frame_.delegated_frame_data->resource_list.begin(),
61 last_sent_frame_.delegated_frame_data->resource_list.end()); 55 last_sent_frame_.delegated_frame_data->resource_list.end());
62 } 56 }
63 57
64 ++num_sent_frames_; 58 ++num_sent_frames_;
65 } else { 59 } else {
66 last_swap_rect_ = frame->gl_frame_data->sub_buffer_rect; 60 last_swap_rect_ = frame->gl_frame_data->sub_buffer_rect;
67 frame->AssignTo(&last_sent_frame_); 61 frame->AssignTo(&last_sent_frame_);
68 ++num_sent_frames_; 62 ++num_sent_frames_;
69 } 63 }
70 PostSwapBuffersComplete(); 64 PostSwapBuffersComplete();
71 client_->DidSwapBuffers(); 65 client_->DidSwapBuffers();
72 } 66 }
73 67
74 void FakeOutputSurface::BindFramebuffer() { 68 void FakeOutputSurface::BindFramebuffer() {
75 if (framebuffer_) 69 if (framebuffer_) {
76 context_provider_->ContextGL()->BindFramebuffer(GL_FRAMEBUFFER, 70 context_provider_->ContextGL()->BindFramebuffer(GL_FRAMEBUFFER,
77 framebuffer_); 71 framebuffer_);
72 } else {
73 OutputSurface::BindFramebuffer();
74 }
75 }
76
77 uint32_t FakeOutputSurface::GetFramebufferCopyTextureFormat() {
78 if (framebuffer_)
79 return framebuffer_format_;
78 else 80 else
79 OutputSurface::BindFramebuffer(); 81 return GL_RGB;
80 } 82 }
81 83
82 bool FakeOutputSurface::BindToClient(OutputSurfaceClient* client) { 84 bool FakeOutputSurface::BindToClient(OutputSurfaceClient* client) {
83 if (OutputSurface::BindToClient(client)) { 85 if (OutputSurface::BindToClient(client)) {
84 client_ = client; 86 client_ = client;
85 if (memory_policy_to_set_at_bind_) { 87 if (memory_policy_to_set_at_bind_) {
86 client_->SetMemoryPolicy(*memory_policy_to_set_at_bind_.get()); 88 client_->SetMemoryPolicy(*memory_policy_to_set_at_bind_.get());
87 memory_policy_to_set_at_bind_ = nullptr; 89 memory_policy_to_set_at_bind_ = nullptr;
88 } 90 }
89 return true; 91 return true;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 const { 125 const {
124 return overlay_candidate_validator_; 126 return overlay_candidate_validator_;
125 } 127 }
126 128
127 void FakeOutputSurface::SetMemoryPolicyToSetAtBind( 129 void FakeOutputSurface::SetMemoryPolicyToSetAtBind(
128 std::unique_ptr<ManagedMemoryPolicy> memory_policy_to_set_at_bind) { 130 std::unique_ptr<ManagedMemoryPolicy> memory_policy_to_set_at_bind) {
129 memory_policy_to_set_at_bind_.swap(memory_policy_to_set_at_bind); 131 memory_policy_to_set_at_bind_.swap(memory_policy_to_set_at_bind);
130 } 132 }
131 133
132 } // namespace cc 134 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/fake_output_surface.h ('k') | cc/test/pixel_test_delegating_output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698