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

Unified Diff: cc/output/software_output_device.cc

Issue 1531403002: Revert "Delete CC." (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/output/software_output_device.h ('k') | cc/output/software_renderer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/software_output_device.cc
diff --git a/cc/output/software_output_device.cc b/cc/output/software_output_device.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f7bc61a841179a7b8cdc4b223135c027c02e68a1
--- /dev/null
+++ b/cc/output/software_output_device.cc
@@ -0,0 +1,66 @@
+// Copyright 2013 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/output/software_output_device.h"
+
+#include "base/logging.h"
+#include "cc/output/software_frame_data.h"
+#include "third_party/skia/include/core/SkCanvas.h"
+#include "ui/gfx/vsync_provider.h"
+
+namespace cc {
+
+SoftwareOutputDevice::SoftwareOutputDevice() : scale_factor_(1.f) {
+}
+
+SoftwareOutputDevice::~SoftwareOutputDevice() {}
+
+void SoftwareOutputDevice::Resize(const gfx::Size& viewport_pixel_size,
+ float scale_factor) {
+ scale_factor_ = scale_factor;
+
+ if (viewport_pixel_size_ == viewport_pixel_size)
+ return;
+
+ SkImageInfo info = SkImageInfo::MakeN32(viewport_pixel_size.width(),
+ viewport_pixel_size.height(),
+ kOpaque_SkAlphaType);
+ viewport_pixel_size_ = viewport_pixel_size;
+ surface_ = skia::AdoptRef(SkSurface::NewRaster(info));
+}
+
+SkCanvas* SoftwareOutputDevice::BeginPaint(const gfx::Rect& damage_rect) {
+ DCHECK(surface_);
+ damage_rect_ = damage_rect;
+ return surface_->getCanvas();
+}
+
+void SoftwareOutputDevice::EndPaint(SoftwareFrameData* frame_data) {
+ DCHECK(frame_data);
+ frame_data->id = 0;
+ frame_data->size = viewport_pixel_size_;
+ frame_data->damage_rect = damage_rect_;
+}
+
+void SoftwareOutputDevice::CopyToPixels(const gfx::Rect& rect, void* pixels) {
+ DCHECK(surface_);
+ SkImageInfo info = SkImageInfo::MakeN32Premul(rect.width(), rect.height());
+ surface_->getCanvas()->readPixels(info, pixels, info.minRowBytes(), rect.x(),
+ rect.y());
+}
+
+void SoftwareOutputDevice::Scroll(const gfx::Vector2d& delta,
+ const gfx::Rect& clip_rect) {
+ NOTIMPLEMENTED();
+}
+
+void SoftwareOutputDevice::ReclaimSoftwareFrame(unsigned id) {
+ NOTIMPLEMENTED();
+}
+
+gfx::VSyncProvider* SoftwareOutputDevice::GetVSyncProvider() {
+ return vsync_provider_.get();
+}
+
+} // namespace cc
« no previous file with comments | « cc/output/software_output_device.h ('k') | cc/output/software_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698