Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 34 #include "public/platform/WebRect.h" | 34 #include "public/platform/WebRect.h" |
| 35 #include "third_party/skia/include/core/SkCanvas.h" | 35 #include "third_party/skia/include/core/SkCanvas.h" |
| 36 | 36 |
| 37 namespace blink { | 37 namespace blink { |
| 38 | 38 |
| 39 void WebScrollbarThemePainter::assign(const WebScrollbarThemePainter& painter) | 39 void WebScrollbarThemePainter::assign(const WebScrollbarThemePainter& painter) |
| 40 { | 40 { |
| 41 // This is a pointer to a static object, so no ownership transferral. | 41 // This is a pointer to a static object, so no ownership transferral. |
| 42 m_theme = painter.m_theme; | 42 m_theme = painter.m_theme; |
| 43 m_scrollbar = painter.m_scrollbar; | 43 m_scrollbar = painter.m_scrollbar; |
| 44 m_deviceScaleFactor = painter.m_deviceScaleFactor; | |
| 44 } | 45 } |
| 45 | 46 |
| 46 void WebScrollbarThemePainter::reset() | 47 void WebScrollbarThemePainter::reset() |
| 47 { | 48 { |
| 48 m_scrollbar = nullptr; | 49 m_scrollbar = nullptr; |
| 49 } | 50 } |
| 50 | 51 |
| 51 void WebScrollbarThemePainter::paintScrollbarBackground(WebCanvas* canvas, const WebRect& rect) | 52 void WebScrollbarThemePainter::paintScrollbarBackground(WebCanvas* canvas, const WebRect& rect) |
| 52 { | 53 { |
| 53 SkRect clip = SkRect::MakeXYWH(rect.x, rect.y, rect.width, rect.height); | 54 SkRect clip = SkRect::MakeXYWH(rect.x, rect.y, rect.width, rect.height); |
| 54 canvas->clipRect(clip); | 55 canvas->clipRect(clip); |
| 55 | 56 |
| 56 IntRect intRect(rect); | 57 IntRect intRect(rect); |
| 57 SkPictureBuilder pictureBuilder(intRect); | 58 SkPictureBuilder pictureBuilder(intRect); |
| 59 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
|
ccameron
2015/11/06 23:15:20
I have a vague preference for rolling this into Sk
| |
| 58 m_theme->paintScrollbarBackground(&pictureBuilder.context(), m_scrollbar.get ()); | 60 m_theme->paintScrollbarBackground(&pictureBuilder.context(), m_scrollbar.get ()); |
| 59 pictureBuilder.endRecording()->playback(canvas); | 61 pictureBuilder.endRecording()->playback(canvas); |
| 60 } | 62 } |
| 61 | 63 |
| 62 void WebScrollbarThemePainter::paintTrackBackground(WebCanvas* canvas, const Web Rect& rect) | 64 void WebScrollbarThemePainter::paintTrackBackground(WebCanvas* canvas, const Web Rect& rect) |
| 63 { | 65 { |
| 64 IntRect intRect(rect); | 66 IntRect intRect(rect); |
| 65 SkPictureBuilder pictureBuilder(intRect); | 67 SkPictureBuilder pictureBuilder(intRect); |
| 68 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 66 m_theme->paintTrackBackground(&pictureBuilder.context(), m_scrollbar.get(), intRect); | 69 m_theme->paintTrackBackground(&pictureBuilder.context(), m_scrollbar.get(), intRect); |
| 67 pictureBuilder.endRecording()->playback(canvas); | 70 pictureBuilder.endRecording()->playback(canvas); |
| 68 } | 71 } |
| 69 | 72 |
| 70 void WebScrollbarThemePainter::paintBackTrackPart(WebCanvas* canvas, const WebRe ct& rect) | 73 void WebScrollbarThemePainter::paintBackTrackPart(WebCanvas* canvas, const WebRe ct& rect) |
| 71 { | 74 { |
| 72 IntRect intRect(rect); | 75 IntRect intRect(rect); |
| 73 SkPictureBuilder pictureBuilder(intRect); | 76 SkPictureBuilder pictureBuilder(intRect); |
| 77 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 74 m_theme->paintTrackPiece(&pictureBuilder.context(), m_scrollbar.get(), intRe ct, BackTrackPart); | 78 m_theme->paintTrackPiece(&pictureBuilder.context(), m_scrollbar.get(), intRe ct, BackTrackPart); |
| 75 pictureBuilder.endRecording()->playback(canvas); | 79 pictureBuilder.endRecording()->playback(canvas); |
| 76 } | 80 } |
| 77 | 81 |
| 78 void WebScrollbarThemePainter::paintForwardTrackPart(WebCanvas* canvas, const We bRect& rect) | 82 void WebScrollbarThemePainter::paintForwardTrackPart(WebCanvas* canvas, const We bRect& rect) |
| 79 { | 83 { |
| 80 IntRect intRect(rect); | 84 IntRect intRect(rect); |
| 81 SkPictureBuilder pictureBuilder(intRect); | 85 SkPictureBuilder pictureBuilder(intRect); |
| 86 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 82 m_theme->paintTrackPiece(&pictureBuilder.context(), m_scrollbar.get(), intRe ct, ForwardTrackPart); | 87 m_theme->paintTrackPiece(&pictureBuilder.context(), m_scrollbar.get(), intRe ct, ForwardTrackPart); |
| 83 pictureBuilder.endRecording()->playback(canvas); | 88 pictureBuilder.endRecording()->playback(canvas); |
| 84 } | 89 } |
| 85 | 90 |
| 86 void WebScrollbarThemePainter::paintBackButtonStart(WebCanvas* canvas, const Web Rect& rect) | 91 void WebScrollbarThemePainter::paintBackButtonStart(WebCanvas* canvas, const Web Rect& rect) |
| 87 { | 92 { |
| 88 IntRect intRect(rect); | 93 IntRect intRect(rect); |
| 89 SkPictureBuilder pictureBuilder(intRect); | 94 SkPictureBuilder pictureBuilder(intRect); |
| 95 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 90 m_theme->paintButton(&pictureBuilder.context(), m_scrollbar.get(), intRect, BackButtonStartPart); | 96 m_theme->paintButton(&pictureBuilder.context(), m_scrollbar.get(), intRect, BackButtonStartPart); |
| 91 pictureBuilder.endRecording()->playback(canvas); | 97 pictureBuilder.endRecording()->playback(canvas); |
| 92 } | 98 } |
| 93 | 99 |
| 94 void WebScrollbarThemePainter::paintBackButtonEnd(WebCanvas* canvas, const WebRe ct& rect) | 100 void WebScrollbarThemePainter::paintBackButtonEnd(WebCanvas* canvas, const WebRe ct& rect) |
| 95 { | 101 { |
| 96 IntRect intRect(rect); | 102 IntRect intRect(rect); |
| 97 SkPictureBuilder pictureBuilder(intRect); | 103 SkPictureBuilder pictureBuilder(intRect); |
| 104 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 98 m_theme->paintButton(&pictureBuilder.context(), m_scrollbar.get(), intRect, BackButtonEndPart); | 105 m_theme->paintButton(&pictureBuilder.context(), m_scrollbar.get(), intRect, BackButtonEndPart); |
| 99 pictureBuilder.endRecording()->playback(canvas); | 106 pictureBuilder.endRecording()->playback(canvas); |
| 100 } | 107 } |
| 101 | 108 |
| 102 void WebScrollbarThemePainter::paintForwardButtonStart(WebCanvas* canvas, const WebRect& rect) | 109 void WebScrollbarThemePainter::paintForwardButtonStart(WebCanvas* canvas, const WebRect& rect) |
| 103 { | 110 { |
| 104 IntRect intRect(rect); | 111 IntRect intRect(rect); |
| 105 SkPictureBuilder pictureBuilder(intRect); | 112 SkPictureBuilder pictureBuilder(intRect); |
| 113 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 106 m_theme->paintButton(&pictureBuilder.context(), m_scrollbar.get(), intRect, ForwardButtonStartPart); | 114 m_theme->paintButton(&pictureBuilder.context(), m_scrollbar.get(), intRect, ForwardButtonStartPart); |
| 107 pictureBuilder.endRecording()->playback(canvas); | 115 pictureBuilder.endRecording()->playback(canvas); |
| 108 } | 116 } |
| 109 | 117 |
| 110 void WebScrollbarThemePainter::paintForwardButtonEnd(WebCanvas* canvas, const We bRect& rect) | 118 void WebScrollbarThemePainter::paintForwardButtonEnd(WebCanvas* canvas, const We bRect& rect) |
| 111 { | 119 { |
| 112 IntRect intRect(rect); | 120 IntRect intRect(rect); |
| 113 SkPictureBuilder pictureBuilder(intRect); | 121 SkPictureBuilder pictureBuilder(intRect); |
| 122 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 114 m_theme->paintButton(&pictureBuilder.context(), m_scrollbar.get(), intRect, ForwardButtonEndPart); | 123 m_theme->paintButton(&pictureBuilder.context(), m_scrollbar.get(), intRect, ForwardButtonEndPart); |
| 115 pictureBuilder.endRecording()->playback(canvas); | 124 pictureBuilder.endRecording()->playback(canvas); |
| 116 } | 125 } |
| 117 | 126 |
| 118 void WebScrollbarThemePainter::paintTickmarks(WebCanvas* canvas, const WebRect& rect) | 127 void WebScrollbarThemePainter::paintTickmarks(WebCanvas* canvas, const WebRect& rect) |
| 119 { | 128 { |
| 120 IntRect intRect(rect); | 129 IntRect intRect(rect); |
| 121 SkPictureBuilder pictureBuilder(intRect); | 130 SkPictureBuilder pictureBuilder(intRect); |
| 131 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 122 m_theme->paintTickmarks(&pictureBuilder.context(), m_scrollbar.get(), intRec t); | 132 m_theme->paintTickmarks(&pictureBuilder.context(), m_scrollbar.get(), intRec t); |
| 123 pictureBuilder.endRecording()->playback(canvas); | 133 pictureBuilder.endRecording()->playback(canvas); |
| 124 } | 134 } |
| 125 | 135 |
| 126 void WebScrollbarThemePainter::paintThumb(WebCanvas* canvas, const WebRect& rect ) | 136 void WebScrollbarThemePainter::paintThumb(WebCanvas* canvas, const WebRect& rect ) |
| 127 { | 137 { |
| 128 IntRect intRect(rect); | 138 IntRect intRect(rect); |
| 129 SkPictureBuilder pictureBuilder(intRect); | 139 SkPictureBuilder pictureBuilder(intRect); |
| 140 pictureBuilder.context().setDeviceScaleFactor(m_deviceScaleFactor); | |
| 130 m_theme->paintThumb(&pictureBuilder.context(), m_scrollbar.get(), intRect); | 141 m_theme->paintThumb(&pictureBuilder.context(), m_scrollbar.get(), intRect); |
| 131 pictureBuilder.endRecording()->playback(canvas); | 142 pictureBuilder.endRecording()->playback(canvas); |
| 132 } | 143 } |
| 133 | 144 |
| 134 WebScrollbarThemePainter::WebScrollbarThemePainter(ScrollbarTheme* theme, Scroll bar* scrollbar) | 145 WebScrollbarThemePainter::WebScrollbarThemePainter(ScrollbarTheme* theme, Scroll bar* scrollbar, float deviceScaleFactor) |
| 135 : m_theme(theme) | 146 : m_theme(theme) |
| 136 , m_scrollbar(scrollbar) | 147 , m_scrollbar(scrollbar) |
| 148 , m_deviceScaleFactor(deviceScaleFactor) | |
| 137 { | 149 { |
| 138 } | 150 } |
| 139 | 151 |
| 140 } // namespace blink | 152 } // namespace blink |
| OLD | NEW |