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

Side by Side Diff: tools/viewer/sk_app/android/surface_glue_android.cpp

Issue 2001153002: Move inval dedup to Window for wider usages. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "surface_glue_android.h" 8 #include "surface_glue_android.h"
9 9
10 #include <jni.h> 10 #include <jni.h>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 void SkiaAndroidApp::postMessage(const Message& message) const { 79 void SkiaAndroidApp::postMessage(const Message& message) const {
80 SkDEBUGCODE(auto writeSize =) write(fPipes[1], &message, sizeof(message)); 80 SkDEBUGCODE(auto writeSize =) write(fPipes[1], &message, sizeof(message));
81 SkASSERT(writeSize == sizeof(message)); 81 SkASSERT(writeSize == sizeof(message));
82 } 82 }
83 83
84 void SkiaAndroidApp::readMessage(Message* message) const { 84 void SkiaAndroidApp::readMessage(Message* message) const {
85 SkDEBUGCODE(auto readSize =) read(fPipes[0], message, sizeof(Message)); 85 SkDEBUGCODE(auto readSize =) read(fPipes[0], message, sizeof(Message));
86 SkASSERT(readSize == sizeof(Message)); 86 SkASSERT(readSize == sizeof(Message));
87 } 87 }
88 88
89 void SkiaAndroidApp::inval() {
90 SkAutoMutexAcquire ama(fMutex);
91 if (!fIsContentInvalidated) {
92 postMessage(Message(kContentInvalidated));
93 fIsContentInvalidated = true;
94 }
95 }
96
97 int SkiaAndroidApp::message_callback(int fd, int events, void* data) { 89 int SkiaAndroidApp::message_callback(int fd, int events, void* data) {
98 auto skiaAndroidApp = (SkiaAndroidApp*)data; 90 auto skiaAndroidApp = (SkiaAndroidApp*)data;
99 Message message; 91 Message message;
100 skiaAndroidApp->readMessage(&message); 92 skiaAndroidApp->readMessage(&message);
101 SkDebugf("message_callback %d", message.fType); 93 SkDebugf("message_callback %d", message.fType);
102 SkASSERT(message.fType != kUndefined); 94 SkASSERT(message.fType != kUndefined);
103 95
104 switch (message.fType) { 96 switch (message.fType) {
105 case kDestroyApp: { 97 case kDestroyApp: {
106 delete skiaAndroidApp; 98 delete skiaAndroidApp;
107 pthread_exit(nullptr); 99 pthread_exit(nullptr);
108 return 0; 100 return 0;
109 } 101 }
110 case kContentInvalidated: { 102 case kContentInvalidated: {
111 SkAutoMutexAcquire ama(skiaAndroidApp->fMutex);
112 skiaAndroidApp->fIsContentInvalidated = false;
113 skiaAndroidApp->paintIfNeeded(); 103 skiaAndroidApp->paintIfNeeded();
114 break; 104 break;
115 } 105 }
116 case kSurfaceCreated: { 106 case kSurfaceCreated: {
117 SkASSERT(!skiaAndroidApp->fNativeWindow && message.fNativeWindow); 107 SkASSERT(!skiaAndroidApp->fNativeWindow && message.fNativeWindow);
118 skiaAndroidApp->fNativeWindow = message.fNativeWindow; 108 skiaAndroidApp->fNativeWindow = message.fNativeWindow;
119 auto window_android = (Window_android*)skiaAndroidApp->fWindow; 109 auto window_android = (Window_android*)skiaAndroidApp->fWindow;
120 window_android->initDisplay(skiaAndroidApp->fNativeWindow); 110 window_android->initDisplay(skiaAndroidApp->fNativeWindow);
121 skiaAndroidApp->paintIfNeeded(); 111 skiaAndroidApp->paintIfNeeded();
122 break; 112 break;
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 auto skiaAndroidApp = (SkiaAndroidApp*)handle; 229 auto skiaAndroidApp = (SkiaAndroidApp*)handle;
240 Message message(kTouched); 230 Message message(kTouched);
241 message.fTouchOwner = owner; 231 message.fTouchOwner = owner;
242 message.fTouchState = state; 232 message.fTouchState = state;
243 message.fTouchX = x; 233 message.fTouchX = x;
244 message.fTouchY = y; 234 message.fTouchY = y;
245 skiaAndroidApp->postMessage(message); 235 skiaAndroidApp->postMessage(message);
246 } 236 }
247 237
248 } // namespace sk_app 238 } // namespace sk_app
OLDNEW
« tools/viewer/sk_app/Window.cpp ('K') | « tools/viewer/sk_app/android/surface_glue_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698