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

Side by Side Diff: remoting/client/plugin/pepper_view.cc

Issue 9146030: Revert 118790 - Compile error due to missing operator== on SkRegion (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « remoting/client/plugin/pepper_view.h ('k') | remoting/client/rectangle_update_decoder.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "remoting/client/plugin/pepper_view.h" 5 #include "remoting/client/plugin/pepper_view.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "ppapi/cpp/completion_callback.h" 9 #include "ppapi/cpp/completion_callback.h"
10 #include "ppapi/cpp/graphics_2d.h" 10 #include "ppapi/cpp/graphics_2d.h"
11 #include "ppapi/cpp/image_data.h" 11 #include "ppapi/cpp/image_data.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 if (host_size_ == host_size) 103 if (host_size_ == host_size)
104 return; 104 return;
105 105
106 host_size_ = host_size; 106 host_size_ = host_size;
107 107
108 // Submit an update of desktop size to Javascript. 108 // Submit an update of desktop size to Javascript.
109 instance_->GetScriptableObject()->SetDesktopSize( 109 instance_->GetScriptableObject()->SetDesktopSize(
110 host_size.width(), host_size.height()); 110 host_size.width(), host_size.height());
111 } 111 }
112 112
113 void PepperView::PaintFrame(media::VideoFrame* frame, const SkRegion& region) { 113 void PepperView::PaintFrame(media::VideoFrame* frame, RectVector* rects) {
114 DCHECK(context_->main_message_loop()->BelongsToCurrentThread()); 114 DCHECK(context_->main_message_loop()->BelongsToCurrentThread());
115 115
116 SetHostSize(SkISize::Make(frame->width(), frame->height())); 116 SetHostSize(SkISize::Make(frame->width(), frame->height()));
117 117
118 if (!backing_store_.get() || backing_store_->is_null()) { 118 if (!backing_store_.get() || backing_store_->is_null()) {
119 LOG(ERROR) << "Backing store is not available."; 119 LOG(ERROR) << "Backing store is not available.";
120 return; 120 return;
121 } 121 }
122 122
123 base::Time start_time = base::Time::Now(); 123 base::Time start_time = base::Time::Now();
124 124
125 // Copy updated regions to the backing store and then paint the regions. 125 // Copy updated regions to the backing store and then paint the regions.
126 bool changes_made = false; 126 bool changes_made = false;
127 for (SkRegion::Iterator i(region); !i.done(); i.next()) 127 for (size_t i = 0; i < rects->size(); ++i)
128 changes_made |= PaintRect(frame, i.rect()); 128 changes_made |= PaintRect(frame, (*rects)[i]);
129 129
130 if (changes_made) 130 if (changes_made)
131 FlushGraphics(start_time); 131 FlushGraphics(start_time);
132 } 132 }
133 133
134 bool PepperView::PaintRect(media::VideoFrame* frame, const SkIRect& r) { 134 bool PepperView::PaintRect(media::VideoFrame* frame, const SkIRect& r) {
135 const uint8* frame_data = frame->data(media::VideoFrame::kRGBPlane); 135 const uint8* frame_data = frame->data(media::VideoFrame::kRGBPlane);
136 const int kFrameStride = frame->stride(media::VideoFrame::kRGBPlane); 136 const int kFrameStride = frame->stride(media::VideoFrame::kRGBPlane);
137 const int kBytesPerPixel = GetBytesPerPixel(media::VideoFrame::RGB32); 137 const int kBytesPerPixel = GetBytesPerPixel(media::VideoFrame::RGB32);
138 138
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 } 306 }
307 307
308 void PepperView::ReleaseFrame(media::VideoFrame* frame) { 308 void PepperView::ReleaseFrame(media::VideoFrame* frame) {
309 DCHECK(context_->main_message_loop()->BelongsToCurrentThread()); 309 DCHECK(context_->main_message_loop()->BelongsToCurrentThread());
310 310
311 if (frame) 311 if (frame)
312 frame->Release(); 312 frame->Release();
313 } 313 }
314 314
315 void PepperView::OnPartialFrameOutput(media::VideoFrame* frame, 315 void PepperView::OnPartialFrameOutput(media::VideoFrame* frame,
316 SkRegion* region, 316 RectVector* rects,
317 const base::Closure& done) { 317 const base::Closure& done) {
318 DCHECK(context_->main_message_loop()->BelongsToCurrentThread()); 318 DCHECK(context_->main_message_loop()->BelongsToCurrentThread());
319 319
320 // TODO(ajwong): Clean up this API to be async so we don't need to use a 320 // TODO(ajwong): Clean up this API to be async so we don't need to use a
321 // member variable as a hack. 321 // member variable as a hack.
322 PaintFrame(frame, *region); 322 PaintFrame(frame, rects);
323 done.Run(); 323 done.Run();
324 } 324 }
325 325
326 void PepperView::OnPaintDone(base::Time paint_start) { 326 void PepperView::OnPaintDone(base::Time paint_start) {
327 DCHECK(context_->main_message_loop()->BelongsToCurrentThread()); 327 DCHECK(context_->main_message_loop()->BelongsToCurrentThread());
328 instance_->GetStats()->video_paint_ms()->Record( 328 instance_->GetStats()->video_paint_ms()->Record(
329 (base::Time::Now() - paint_start).InMilliseconds()); 329 (base::Time::Now() - paint_start).InMilliseconds());
330 330
331 // If the last flush failed because there was already another one in progress 331 // If the last flush failed because there was already another one in progress
332 // then we perform the flush now. 332 // then we perform the flush now.
333 if (flush_blocked_) 333 if (flush_blocked_)
334 FlushGraphics(base::Time::Now()); 334 FlushGraphics(base::Time::Now());
335 return; 335 return;
336 } 336 }
337 337
338 } // namespace remoting 338 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/plugin/pepper_view.h ('k') | remoting/client/rectangle_update_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698