OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 #include "SkWindow.h" | 8 #include "SkWindow.h" |
9 #include "SkCanvas.h" | 9 #include "SkCanvas.h" |
10 #include "SkDevice.h" | 10 #include "SkDevice.h" |
11 #include "SkOSMenu.h" | 11 #include "SkOSMenu.h" |
12 #include "SkSystemEventTypes.h" | 12 #include "SkSystemEventTypes.h" |
13 #include "SkTime.h" | 13 #include "SkTime.h" |
14 | 14 |
15 #define SK_EventDelayInval "\xd" "n" "\xa" "l" | 15 #define SK_EventDelayInval "\xd" "n" "\xa" "l" |
16 | 16 |
17 #define TEST_BOUNDERx | |
18 | |
19 #include "SkBounder.h" | |
20 class TestSkBounder : public SkBounder { | |
21 public: | |
22 explicit TestSkBounder(const SkBitmap& bm) : fCanvas(bm) {} | |
23 | |
24 protected: | |
25 virtual bool onIRect(const SkIRect& r) SK_OVERRIDE { | |
26 SkRect rr; | |
27 | |
28 rr.set(SkIntToScalar(r.fLeft), SkIntToScalar(r.fTop), | |
29 SkIntToScalar(r.fRight), SkIntToScalar(r.fBottom)); | |
30 | |
31 SkPaint p; | |
32 | |
33 p.setStyle(SkPaint::kStroke_Style); | |
34 p.setColor(SK_ColorYELLOW); | |
35 | |
36 #if 0 | |
37 rr.inset(SK_ScalarHalf, SK_ScalarHalf); | |
38 #else | |
39 rr.inset(-SK_ScalarHalf, -SK_ScalarHalf); | |
40 #endif | |
41 | |
42 fCanvas.drawRect(rr, p); | |
43 return true; | |
44 } | |
45 private: | |
46 SkCanvas fCanvas; | |
47 }; | |
48 | |
49 SkWindow::SkWindow() : fFocusView(NULL) { | 17 SkWindow::SkWindow() : fFocusView(NULL) { |
50 fClicks.reset(); | 18 fClicks.reset(); |
51 fWaitingOnInval = false; | 19 fWaitingOnInval = false; |
52 | 20 |
53 #ifdef SK_BUILD_FOR_WINCE | 21 #ifdef SK_BUILD_FOR_WINCE |
54 fColorType = kRGB_565_SkColorType; | 22 fColorType = kRGB_565_SkColorType; |
55 #else | 23 #else |
56 fColorType = kN32_SkColorType; | 24 fColorType = kN32_SkColorType; |
57 #endif | 25 #endif |
58 | 26 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 if (updateArea) | 132 if (updateArea) |
165 *updateArea = fDirtyRgn.getBounds(); | 133 *updateArea = fDirtyRgn.getBounds(); |
166 | 134 |
167 SkAutoCanvasRestore acr(canvas, true); | 135 SkAutoCanvasRestore acr(canvas, true); |
168 canvas->concat(fMatrix); | 136 canvas->concat(fMatrix); |
169 | 137 |
170 // empty this now, so we can correctly record any inval calls that | 138 // empty this now, so we can correctly record any inval calls that |
171 // might be made during the draw call. | 139 // might be made during the draw call. |
172 fDirtyRgn.setEmpty(); | 140 fDirtyRgn.setEmpty(); |
173 | 141 |
174 #ifdef TEST_BOUNDER | |
175 TestSkBounder bounder(bm); | |
176 canvas->setBounder(&bounder); | |
177 #endif | |
178 #ifdef SK_SIMULATE_FAILED_MALLOC | 142 #ifdef SK_SIMULATE_FAILED_MALLOC |
179 gEnableControlledThrow = true; | 143 gEnableControlledThrow = true; |
180 #endif | 144 #endif |
181 #ifdef SK_BUILD_FOR_WIN32 | 145 #ifdef SK_BUILD_FOR_WIN32 |
182 //try { | 146 //try { |
183 this->draw(canvas); | 147 this->draw(canvas); |
184 //} | 148 //} |
185 //catch (...) { | 149 //catch (...) { |
186 //} | 150 //} |
187 #else | 151 #else |
188 this->draw(canvas); | 152 this->draw(canvas); |
189 #endif | 153 #endif |
190 #ifdef SK_SIMULATE_FAILED_MALLOC | 154 #ifdef SK_SIMULATE_FAILED_MALLOC |
191 gEnableControlledThrow = false; | 155 gEnableControlledThrow = false; |
192 #endif | 156 #endif |
193 #ifdef TEST_BOUNDER | |
194 canvas->setBounder(NULL); | |
195 #endif | |
196 | 157 |
197 #if defined(SK_BUILD_FOR_WINCE) && defined(USE_GX_SCREEN) | 158 #if defined(SK_BUILD_FOR_WINCE) && defined(USE_GX_SCREEN) |
198 GXEndDraw(); | 159 GXEndDraw(); |
199 #endif | 160 #endif |
200 | 161 |
201 return true; | 162 return true; |
202 } | 163 } |
203 return false; | 164 return false; |
204 } | 165 } |
205 | 166 |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 fClicks.remove(index); | 329 fClicks.remove(index); |
369 handled = true; | 330 handled = true; |
370 } | 331 } |
371 break; | 332 break; |
372 default: | 333 default: |
373 // Do nothing | 334 // Do nothing |
374 break; | 335 break; |
375 } | 336 } |
376 return handled; | 337 return handled; |
377 } | 338 } |
OLD | NEW |