Changeset 64490 in webkit
- Timestamp:
- Aug 2, 2010 2:01:25 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r64489 r64490 1 2010-08-02 Martin Robinson <mrobinson@igalia.com> 2 3 Reviewed by Xan Lopez. 4 5 [GTK] Style cleanup for CairoPath.h 6 https://bugs.webkit.org/show_bug.cgi?id=43133 7 8 Turn CairoPath into a class, as it has a constructor and destructor. 9 Change raw member access to use the new accessor. 10 11 No new tests as functionality has not changed. 12 13 * platform/graphics/cairo/CairoPath.h: Cleanup and indentation fix. 14 (WebCore::CairoPath::CairoPath): 15 (WebCore::CairoPath::~CairoPath): 16 (WebCore::CairoPath::context): 17 * platform/graphics/cairo/GraphicsContextCairo.cpp: 18 (WebCore::GraphicsContext::addPath): Convert raw member access to accessor access. 19 (WebCore::GraphicsContext::clip): Ditto. 20 * platform/graphics/cairo/PathCairo.cpp: 21 (WebCore::Path::Path): Ditto. 22 (WebCore::Path::operator=): Ditto. 23 (WebCore::Path::clear): Ditto. 24 (WebCore::Path::isEmpty): Ditto. 25 (WebCore::Path::currentPoint): Ditto. 26 (WebCore::Path::translate): Ditto. 27 (WebCore::Path::moveTo): Ditto. 28 (WebCore::Path::addLineTo): Ditto. 29 (WebCore::Path::addRect): Ditto. 30 (WebCore::Path::addQuadCurveTo): Ditto. 31 (WebCore::Path::addBezierCurveTo): Ditto. 32 (WebCore::Path::addArc): Ditto. 33 (WebCore::Path::addArcTo): Ditto. 34 (WebCore::Path::addEllipse): Ditto. 35 (WebCore::Path::closeSubpath): Ditto. 36 (WebCore::Path::boundingRect): Ditto. 37 (WebCore::Path::strokeBoundingRect): Ditto. 38 (WebCore::Path::contains): Ditto. 39 (WebCore::Path::strokeContains): Ditto. 40 (WebCore::Path::apply): Ditto. 41 (WebCore::Path::transform): Ditto. 42 (WebCore::Path::debugString): Ditto. 43 1 44 2010-07-20 Ojan Vafai <ojan@chromium.org> 2 45 -
trunk/WebCore/platform/graphics/cairo/CairoPath.h
r29663 r64490 1 1 /* 2 2 Copyright (C) 2007 Alp Toker <alp.toker@collabora.co.uk> 3 Copyright (C) 2010 Igalia S.L. 3 4 4 5 This library is free software; you can redistribute it and/or … … 25 26 namespace WebCore { 26 27 27 // This is necessary since cairo_path_fixed_t isn't exposed in Cairo's public API. 28 struct CairoPath { 29 cairo_t* m_cr; 28 // This is necessary since cairo_path_fixed_t isn't exposed in Cairo's public API. 29 class CairoPath { 30 public: 31 CairoPath() 32 { 33 static cairo_surface_t* pathSurface = cairo_image_surface_create(CAIRO_FORMAT_A8, 1, 1); 34 m_cr = cairo_create(pathSurface); 35 } 30 36 31 CairoPath() 32 { 33 static cairo_surface_t* pathSurface = cairo_image_surface_create(CAIRO_FORMAT_A8, 1, 1); 34 m_cr = cairo_create(pathSurface); 35 } 37 ~CairoPath() 38 { 39 cairo_destroy(m_cr); 40 } 36 41 37 ~CairoPath()38 { 39 cairo_destroy(m_cr); 40 }41 42 cairo_t* context() { return m_cr; } 43 44 private: 45 cairo_t* m_cr; 46 }; 42 47 43 48 } // namespace WebCore -
trunk/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp
r64338 r64490 163 163 static void appendWebCorePathToCairoContext(cairo_t* context, const Path& path) 164 164 { 165 appendPathToCairoContext(context, path.platformPath()-> m_cr);165 appendPathToCairoContext(context, path.platformPath()->context()); 166 166 } 167 167 … … 577 577 cairo_t* cr = m_data->cr; 578 578 579 setPathOnCairoContext(cr, m_data->m_pendingPath. m_cr);579 setPathOnCairoContext(cr, m_data->m_pendingPath.context()); 580 580 fillCurrentCairoPath(this, m_common, cr); 581 581 } … … 587 587 588 588 cairo_t* cr = m_data->cr; 589 setPathOnCairoContext(cr, m_data->m_pendingPath. m_cr);589 setPathOnCairoContext(cr, m_data->m_pendingPath.context()); 590 590 strokeCurrentCairoPath(this, m_common, cr); 591 591 } … … 598 598 cairo_t* cr = m_data->cr; 599 599 600 setPathOnCairoContext(cr, m_data->m_pendingPath. m_cr);600 setPathOnCairoContext(cr, m_data->m_pendingPath.context()); 601 601 602 602 cairo_set_fill_rule(cr, fillRule() == RULE_EVENODD ? CAIRO_FILL_RULE_EVEN_ODD : CAIRO_FILL_RULE_WINDING); … … 1130 1130 return; 1131 1131 1132 cairo_new_path(m_data->m_pendingPath. m_cr);1132 cairo_new_path(m_data->m_pendingPath.context()); 1133 1133 } 1134 1134 … … 1140 1140 cairo_matrix_t currentMatrix; 1141 1141 cairo_get_matrix(m_data->cr, ¤tMatrix); 1142 cairo_set_matrix(m_data->m_pendingPath. m_cr, ¤tMatrix);1143 appendWebCorePathToCairoContext(m_data->m_pendingPath. m_cr, path);1142 cairo_set_matrix(m_data->m_pendingPath.context(), ¤tMatrix); 1143 appendWebCorePathToCairoContext(m_data->m_pendingPath.context(), path); 1144 1144 } 1145 1145 … … 1150 1150 1151 1151 cairo_t* cr = m_data->cr; 1152 cairo_path_t* p = cairo_copy_path(path.platformPath()-> m_cr);1152 cairo_path_t* p = cairo_copy_path(path.platformPath()->context()); 1153 1153 cairo_append_path(cr, p); 1154 1154 cairo_path_destroy(p); -
trunk/WebCore/platform/graphics/cairo/PathCairo.cpp
r63599 r64490 52 52 : m_path(new CairoPath()) 53 53 { 54 cairo_t* cr = platformPath()-> m_cr;55 cairo_path_t* p = cairo_copy_path(other.platformPath()-> m_cr);54 cairo_t* cr = platformPath()->context(); 55 cairo_path_t* p = cairo_copy_path(other.platformPath()->context()); 56 56 cairo_append_path(cr, p); 57 57 cairo_path_destroy(p); … … 64 64 65 65 clear(); 66 cairo_t* cr = platformPath()-> m_cr;67 cairo_path_t* p = cairo_copy_path(other.platformPath()-> m_cr);66 cairo_t* cr = platformPath()->context(); 67 cairo_path_t* p = cairo_copy_path(other.platformPath()->context()); 68 68 cairo_append_path(cr, p); 69 69 cairo_path_destroy(p); … … 73 73 void Path::clear() 74 74 { 75 cairo_t* cr = platformPath()-> m_cr;75 cairo_t* cr = platformPath()->context(); 76 76 cairo_new_path(cr); 77 77 } … … 79 79 bool Path::isEmpty() const 80 80 { 81 return !cairo_has_current_point(platformPath()-> m_cr);81 return !cairo_has_current_point(platformPath()->context()); 82 82 } 83 83 … … 92 92 double x; 93 93 double y; 94 cairo_get_current_point(platformPath()-> m_cr, &x, &y);94 cairo_get_current_point(platformPath()->context(), &x, &y); 95 95 return FloatPoint(x, y); 96 96 } … … 98 98 void Path::translate(const FloatSize& p) 99 99 { 100 cairo_t* cr = platformPath()-> m_cr;100 cairo_t* cr = platformPath()->context(); 101 101 cairo_translate(cr, -p.width(), -p.height()); 102 102 } … … 104 104 void Path::moveTo(const FloatPoint& p) 105 105 { 106 cairo_t* cr = platformPath()-> m_cr;106 cairo_t* cr = platformPath()->context(); 107 107 cairo_move_to(cr, p.x(), p.y()); 108 108 } … … 110 110 void Path::addLineTo(const FloatPoint& p) 111 111 { 112 cairo_t* cr = platformPath()-> m_cr;112 cairo_t* cr = platformPath()->context(); 113 113 cairo_line_to(cr, p.x(), p.y()); 114 114 } … … 116 116 void Path::addRect(const FloatRect& rect) 117 117 { 118 cairo_t* cr = platformPath()-> m_cr;118 cairo_t* cr = platformPath()->context(); 119 119 cairo_rectangle(cr, rect.x(), rect.y(), rect.width(), rect.height()); 120 120 } … … 125 125 void Path::addQuadCurveTo(const FloatPoint& controlPoint, const FloatPoint& point) 126 126 { 127 cairo_t* cr = platformPath()-> m_cr;127 cairo_t* cr = platformPath()->context(); 128 128 double x, y; 129 129 double x1 = controlPoint.x(); … … 140 140 void Path::addBezierCurveTo(const FloatPoint& controlPoint1, const FloatPoint& controlPoint2, const FloatPoint& controlPoint3) 141 141 { 142 cairo_t* cr = platformPath()-> m_cr;142 cairo_t* cr = platformPath()->context(); 143 143 cairo_curve_to(cr, controlPoint1.x(), controlPoint1.y(), 144 144 controlPoint2.x(), controlPoint2.y(), … … 153 153 return; 154 154 155 cairo_t* cr = platformPath()-> m_cr;155 cairo_t* cr = platformPath()->context(); 156 156 if (anticlockwise) 157 157 cairo_arc_negative(cr, p.x(), p.y(), r, sa, ea); … … 165 165 return; 166 166 167 cairo_t* cr = platformPath()-> m_cr;167 cairo_t* cr = platformPath()->context(); 168 168 169 169 double x0, y0; … … 238 238 void Path::addEllipse(const FloatRect& rect) 239 239 { 240 cairo_t* cr = platformPath()-> m_cr;240 cairo_t* cr = platformPath()->context(); 241 241 cairo_save(cr); 242 242 float yRadius = .5 * rect.height(); … … 250 250 void Path::closeSubpath() 251 251 { 252 cairo_t* cr = platformPath()-> m_cr;252 cairo_t* cr = platformPath()->context(); 253 253 cairo_close_path(cr); 254 254 } … … 256 256 FloatRect Path::boundingRect() const 257 257 { 258 cairo_t* cr = platformPath()-> m_cr;258 cairo_t* cr = platformPath()->context(); 259 259 double x0, x1, y0, y1; 260 260 cairo_path_extents(cr, &x0, &y0, &x1, &y1); … … 264 264 FloatRect Path::strokeBoundingRect(StrokeStyleApplier* applier) 265 265 { 266 cairo_t* cr = platformPath()-> m_cr;266 cairo_t* cr = platformPath()->context(); 267 267 if (applier) { 268 268 GraphicsContext gc(cr); … … 277 277 bool Path::contains(const FloatPoint& point, WindRule rule) const 278 278 { 279 cairo_t* cr = platformPath()-> m_cr;279 cairo_t* cr = platformPath()->context(); 280 280 cairo_fill_rule_t cur = cairo_get_fill_rule(cr); 281 281 cairo_set_fill_rule(cr, rule == RULE_EVENODD ? CAIRO_FILL_RULE_EVEN_ODD : CAIRO_FILL_RULE_WINDING); … … 288 288 { 289 289 ASSERT(applier); 290 cairo_t* cr = platformPath()-> m_cr;290 cairo_t* cr = platformPath()->context(); 291 291 GraphicsContext gc(cr); 292 292 applier->strokeStyle(&gc); … … 297 297 void Path::apply(void* info, PathApplierFunction function) const 298 298 { 299 cairo_t* cr = platformPath()-> m_cr;299 cairo_t* cr = platformPath()->context(); 300 300 cairo_path_t* path = cairo_copy_path(cr); 301 301 cairo_path_data_t* data; … … 335 335 void Path::transform(const AffineTransform& trans) 336 336 { 337 cairo_t* m_cr = platformPath()->m_cr;337 cairo_t* cr = platformPath()->context(); 338 338 cairo_matrix_t c_matrix = cairo_matrix_t(trans); 339 339 cairo_matrix_invert(&c_matrix); 340 cairo_transform( m_cr, &c_matrix);340 cairo_transform(cr, &c_matrix); 341 341 } 342 342 … … 347 347 348 348 String pathString; 349 cairo_path_t* path = cairo_copy_path(platformPath()-> m_cr);349 cairo_path_t* path = cairo_copy_path(platformPath()->context()); 350 350 cairo_path_data_t* data; 351 351
Note: See TracChangeset
for help on using the changeset viewer.