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

Side by Side Diff: skia/ext/bitmap_platform_device_linux.cc

Issue 360042: First patch in making destructors of refcounted objects private. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 1 month 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "skia/ext/bitmap_platform_device_linux.h" 5 #include "skia/ext/bitmap_platform_device_linux.h"
6 6
7 #include <cairo/cairo.h> 7 #include <cairo/cairo.h>
8 8
9 namespace skia { 9 namespace skia {
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 48
49 cairo_t* GetContext(); 49 cairo_t* GetContext();
50 cairo_surface_t* GetSurface(); 50 cairo_surface_t* GetSurface();
51 51
52 // Sets the transform and clip operations. This will not update the Cairo 52 // Sets the transform and clip operations. This will not update the Cairo
53 // surface, but will mark the config as dirty. The next call of LoadConfig 53 // surface, but will mark the config as dirty. The next call of LoadConfig
54 // will pick up these changes. 54 // will pick up these changes.
55 void SetMatrixClip(const SkMatrix& transform, const SkRegion& region); 55 void SetMatrixClip(const SkMatrix& transform, const SkRegion& region);
56 56
57 protected: 57 protected:
58 friend class base::RefCounted<BitmapPlatformDeviceData>;
59
60 ~BitmapPlatformDeviceData();
61
62 void LoadConfig(); 58 void LoadConfig();
63 59
64 // The Cairo surface inside this DC. 60 // The Cairo surface inside this DC.
65 cairo_t* context_; 61 cairo_t* context_;
66 cairo_surface_t *const surface_; 62 cairo_surface_t *const surface_;
67 63
68 // True when there is a transform or clip that has not been set to the 64 // True when there is a transform or clip that has not been set to the
69 // surface. The surface is retrieved for every text operation, and the 65 // surface. The surface is retrieved for every text operation, and the
70 // transform and clip do not change as much. We can save time by not loading 66 // transform and clip do not change as much. We can save time by not loading
71 // the clip and transform for every one. 67 // the clip and transform for every one.
72 bool config_dirty_; 68 bool config_dirty_;
73 69
74 // Translation assigned to the DC: we need to keep track of this separately 70 // Translation assigned to the DC: we need to keep track of this separately
75 // so it can be updated even if the DC isn't created yet. 71 // so it can be updated even if the DC isn't created yet.
76 SkMatrix transform_; 72 SkMatrix transform_;
77 73
78 // The current clipping 74 // The current clipping
79 SkRegion clip_region_; 75 SkRegion clip_region_;
80 76
81 // Disallow copy & assign. 77 // Disallow copy & assign.
82 BitmapPlatformDeviceData(const BitmapPlatformDeviceData&); 78 BitmapPlatformDeviceData(const BitmapPlatformDeviceData&);
83 BitmapPlatformDeviceData& operator=( 79 BitmapPlatformDeviceData& operator=(
84 const BitmapPlatformDeviceData&); 80 const BitmapPlatformDeviceData&);
81
82 private:
83 friend class base::RefCounted<BitmapPlatformDeviceData>;
84
85 ~BitmapPlatformDeviceData();
85 }; 86 };
86 87
87 BitmapPlatformDevice::BitmapPlatformDeviceData::BitmapPlatformDeviceData( 88 BitmapPlatformDevice::BitmapPlatformDeviceData::BitmapPlatformDeviceData(
88 cairo_surface_t* surface) 89 cairo_surface_t* surface)
89 : surface_(surface), 90 : surface_(surface),
90 config_dirty_(true) { // Want to load the config next time. 91 config_dirty_(true) { // Want to load the config next time.
91 context_ = cairo_create(surface); 92 context_ = cairo_create(surface);
92 } 93 }
93 94
94 BitmapPlatformDevice::BitmapPlatformDeviceData::~BitmapPlatformDeviceData() { 95 BitmapPlatformDevice::BitmapPlatformDeviceData::~BitmapPlatformDeviceData() {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 data_->SetMatrixClip(transform, region); 202 data_->SetMatrixClip(transform, region);
202 } 203 }
203 204
204 BitmapPlatformDevice& BitmapPlatformDevice::operator=( 205 BitmapPlatformDevice& BitmapPlatformDevice::operator=(
205 const BitmapPlatformDevice& other) { 206 const BitmapPlatformDevice& other) {
206 data_ = other.data_; 207 data_ = other.data_;
207 return *this; 208 return *this;
208 } 209 }
209 210
210 } // namespace skia 211 } // namespace skia
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698