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

Unified Diff: ui/ozone/platform/dri/dri_surface_factory.cc

Issue 403043004: [Ozone-DRI] Remove unneeded wrappers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/ozone/platform/dri/dri_surface_factory.h ('k') | ui/ozone/platform/dri/dri_surface_factory_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/ozone/platform/dri/dri_surface_factory.cc
diff --git a/ui/ozone/platform/dri/dri_surface_factory.cc b/ui/ozone/platform/dri/dri_surface_factory.cc
index 65efc2042bd1129d80884491be505fc685f8a377..d497b39b3bb6d2060b67ff1a950fb4690b0dfcf7 100644
--- a/ui/ozone/platform/dri/dri_surface_factory.cc
+++ b/ui/ozone/platform/dri/dri_surface_factory.cc
@@ -7,7 +7,6 @@
#include <errno.h>
#include "base/debug/trace_event.h"
-#include "base/message_loop/message_loop.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkDevice.h"
#include "third_party/skia/include/core/SkSurface.h"
@@ -15,7 +14,6 @@
#include "ui/ozone/platform/dri/dri_buffer.h"
#include "ui/ozone/platform/dri/dri_surface.h"
#include "ui/ozone/platform/dri/dri_util.h"
-#include "ui/ozone/platform/dri/dri_vsync_provider.h"
#include "ui/ozone/platform/dri/dri_wrapper.h"
#include "ui/ozone/platform/dri/hardware_display_controller.h"
#include "ui/ozone/platform/dri/screen_manager.h"
@@ -43,96 +41,14 @@ void UpdateCursorImage(DriBuffer* cursor, const SkBitmap& image) {
canvas->drawBitmapRectToRect(image, &damage, damage);
}
-class DriSurfaceAdapter : public ui::SurfaceOzoneCanvas {
- public:
- DriSurfaceAdapter(DriWrapper* dri,
- const base::WeakPtr<HardwareDisplayController>& controller);
- virtual ~DriSurfaceAdapter();
-
- // SurfaceOzoneCanvas:
- virtual skia::RefPtr<SkCanvas> GetCanvas() OVERRIDE;
- virtual void ResizeCanvas(const gfx::Size& viewport_size) OVERRIDE;
- virtual void PresentCanvas(const gfx::Rect& damage) OVERRIDE;
- virtual scoped_ptr<gfx::VSyncProvider> CreateVSyncProvider() OVERRIDE;
-
- private:
- void UpdateNativeSurface(const gfx::Rect& damage);
-
- DriWrapper* dri_;
- scoped_ptr<DriSurface> native_surface_;
- skia::RefPtr<SkSurface> surface_;
- gfx::Rect last_damage_;
- base::WeakPtr<HardwareDisplayController> controller_;
-
- DISALLOW_COPY_AND_ASSIGN(DriSurfaceAdapter);
-};
-
-DriSurfaceAdapter::DriSurfaceAdapter(
- DriWrapper* dri,
- const base::WeakPtr<HardwareDisplayController>& controller)
- : dri_(dri), controller_(controller) {
-}
-
-DriSurfaceAdapter::~DriSurfaceAdapter() {
-}
-
-skia::RefPtr<SkCanvas> DriSurfaceAdapter::GetCanvas() {
- return skia::SharePtr(surface_->getCanvas());
-}
-
-void DriSurfaceAdapter::ResizeCanvas(const gfx::Size& viewport_size) {
- SkImageInfo info = SkImageInfo::MakeN32(
- viewport_size.width(), viewport_size.height(), kOpaque_SkAlphaType);
- surface_ = skia::AdoptRef(SkSurface::NewRaster(info));
-
- if (controller_) {
- // Need to use the mode size rather than |viewport_size| since a display
- // cannot scanout from a buffer smaller than the mode.
- native_surface_.reset(
- new DriSurface(dri_,
- gfx::Size(controller_->get_mode().hdisplay,
- controller_->get_mode().vdisplay)));
- CHECK(native_surface_->Initialize());
- }
-}
-
-void DriSurfaceAdapter::PresentCanvas(const gfx::Rect& damage) {
- CHECK(base::MessageLoopForUI::IsCurrent());
- if (!controller_)
- return;
-
- UpdateNativeSurface(damage);
- controller_->SchedulePageFlip(std::vector<OverlayPlane>(
- 1, OverlayPlane(native_surface_->backbuffer())));
- controller_->WaitForPageFlipEvent();
- native_surface_->SwapBuffers();
-}
-
-scoped_ptr<gfx::VSyncProvider> DriSurfaceAdapter::CreateVSyncProvider() {
- return scoped_ptr<gfx::VSyncProvider>(new DriVSyncProvider(controller_));
-}
-
-void DriSurfaceAdapter::UpdateNativeSurface(const gfx::Rect& damage) {
- SkCanvas* canvas = native_surface_->GetDrawableForWidget();
-
- // The DriSurface is double buffered, so the current back buffer is
- // missing the previous update. Expand damage region.
- SkRect real_damage = RectToSkRect(UnionRects(damage, last_damage_));
-
- // Copy damage region.
- skia::RefPtr<SkImage> image = skia::AdoptRef(surface_->newImageSnapshot());
- image->draw(canvas, &real_damage, real_damage, NULL);
-
- last_damage_ = damage;
-}
-
} // namespace
// static
const gfx::AcceleratedWidget DriSurfaceFactory::kDefaultWidgetHandle = 1;
-DriSurfaceFactory::DriSurfaceFactory(DriWrapper* drm,
- ScreenManager* screen_manager)
+DriSurfaceFactory::DriSurfaceFactory(
+ DriWrapper* drm,
+ ScreenManager* screen_manager)
: drm_(drm),
screen_manager_(screen_manager),
state_(UNINITIALIZED),
@@ -190,7 +106,7 @@ scoped_ptr<ui::SurfaceOzoneCanvas> DriSurfaceFactory::CreateCanvasForWidget(
ResetCursor(w);
return scoped_ptr<ui::SurfaceOzoneCanvas>(
- new DriSurfaceAdapter(drm_, screen_manager_->GetDisplayController(w)));
+ new DriSurface(drm_, screen_manager_->GetDisplayController(w)));
}
bool DriSurfaceFactory::LoadEGLGLES2Bindings(
« no previous file with comments | « ui/ozone/platform/dri/dri_surface_factory.h ('k') | ui/ozone/platform/dri/dri_surface_factory_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698