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

Side by Side Diff: platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.cpp

Issue 1136753003: Add android_launch_app script to allow command line options to be passed to the sampleApp when star… (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 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 /* 2 /*
3 * Copyright 2011 Skia 3 * Copyright 2011 Skia
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 "com_skia_SkiaSampleRenderer.h" 8 #include "com_skia_SkiaSampleRenderer.h"
9 9
10 #include "SampleApp.h" 10 #include "SampleApp.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 165
166 static jmethodID GetJMethod(JNIEnv* env, jclass clazz, const char name[], 166 static jmethodID GetJMethod(JNIEnv* env, jclass clazz, const char name[],
167 const char signature[]) 167 const char signature[])
168 { 168 {
169 jmethodID m = env->GetMethodID(clazz, name, signature); 169 jmethodID m = env->GetMethodID(clazz, name, signature);
170 if (!m) SkDebugf("Could not find Java method %s\n", name); 170 if (!m) SkDebugf("Could not find Java method %s\n", name);
171 return m; 171 return m;
172 } 172 }
173 173
174 JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_init(JNIEnv* env, 174 JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_init(JNIEnv* env,
175 jobject thiz, jobject jsampleActivity, jint msaaSampleCount) 175 jobject thiz, jobject jsampleActivity, jstring cmdLineFlags, jint msaaSa mpleCount)
176 { 176 {
177 // setup jni hooks to the java activity 177 // setup jni hooks to the java activity
178 gActivityGlue.m_env = env; 178 gActivityGlue.m_env = env;
179 jclass clazz = env->FindClass("com/skia/SkiaSampleActivity"); 179 jclass clazz = env->FindClass("com/skia/SkiaSampleActivity");
180 gActivityGlue.m_obj = env->NewWeakGlobalRef(jsampleActivity); 180 gActivityGlue.m_obj = env->NewWeakGlobalRef(jsampleActivity);
181 gActivityGlue.m_setTitle = GetJMethod(env, clazz, "setTitle", "(Ljava/lang/C harSequence;)V"); 181 gActivityGlue.m_setTitle = GetJMethod(env, clazz, "setTitle", "(Ljava/lang/C harSequence;)V");
182 gActivityGlue.m_setSlideList = GetJMethod(env, clazz, "setSlideList", "([Lja va/lang/String;)V"); 182 gActivityGlue.m_setSlideList = GetJMethod(env, clazz, "setSlideList", "([Lja va/lang/String;)V");
183 gActivityGlue.m_addToDownloads = GetJMethod(env, clazz, "addToDownloads", 183 gActivityGlue.m_addToDownloads = GetJMethod(env, clazz, "addToDownloads",
184 "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); 184 "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
185 env->DeleteLocalRef(clazz); 185 env->DeleteLocalRef(clazz);
186 186
187 // setup jni hooks to the java renderer 187 // setup jni hooks to the java renderer
188 clazz = env->FindClass("com/skia/SkiaSampleRenderer"); 188 clazz = env->FindClass("com/skia/SkiaSampleRenderer");
189 gWindowGlue.m_obj = env->NewWeakGlobalRef(thiz); 189 gWindowGlue.m_obj = env->NewWeakGlobalRef(thiz);
190 gWindowGlue.m_inval = GetJMethod(env, clazz, "requestRender", "()V"); 190 gWindowGlue.m_inval = GetJMethod(env, clazz, "requestRender", "()V");
191 gWindowGlue.m_queueSkEvent = GetJMethod(env, clazz, "queueSkEvent", "()V"); 191 gWindowGlue.m_queueSkEvent = GetJMethod(env, clazz, "queueSkEvent", "()V");
192 gWindowGlue.m_startTimer = GetJMethod(env, clazz, "startTimer", "(I)V"); 192 gWindowGlue.m_startTimer = GetJMethod(env, clazz, "startTimer", "(I)V");
193 gWindowGlue.m_getMSAASampleCount = GetJMethod(env, clazz, "getMSAASampleCoun t", "()I"); 193 gWindowGlue.m_getMSAASampleCount = GetJMethod(env, clazz, "getMSAASampleCoun t", "()I");
194 env->DeleteLocalRef(clazz); 194 env->DeleteLocalRef(clazz);
195 195
196 application_init(); 196 application_init();
197
198 const char* flags = env->GetStringUTFChars(cmdLineFlags, JNI_FALSE);
199 SkTArray<SkString> flagEntries;
200 SkStrSplit(flags, " ", &flagEntries);
201
197 SkTArray<const char*> args; 202 SkTArray<const char*> args;
198
199 args.push_back("SampleApp"); 203 args.push_back("SampleApp");
200 // TODO: push ability to select skp dir into the UI 204 for (int i = 0; i < flagEntries.count(); i++) {
201 args.push_back("--pictureDir"); 205 SkDebugf(flagEntries[i].c_str());
202 args.push_back("/sdcard/skiabot/skia_skp"); 206 args.push_back(flagEntries[i].c_str());
203 207 }
204 args.push_back("--resourcePath");
205 args.push_back("/data/local/tmp/skia/resources/");
206 208
207 SkString msaaSampleCountString; 209 SkString msaaSampleCountString;
208 if (msaaSampleCount > 0) { 210 if (msaaSampleCount > 0) {
209 args.push_back("--msaa"); 211 args.push_back("--msaa");
210 msaaSampleCountString.appendS32(static_cast<uint32_t>(msaaSampleCount)); 212 msaaSampleCountString.appendS32(static_cast<uint32_t>(msaaSampleCount));
211 args.push_back(msaaSampleCountString.c_str()); 213 args.push_back(msaaSampleCountString.c_str());
212 } 214 }
213 215
214 gWindow = new SampleWindow(NULL, args.count(), const_cast<char**>(args.begin ()), NULL); 216 if (gWindow) {
217 SkDebugf("The sample window already exists.");
218 } else {
219 gWindow = new SampleWindow(NULL, args.count(), const_cast<char**>(args.b egin()), NULL);
220 }
221
222 // cleanup the command line flags
223 env->ReleaseStringUTFChars(cmdLineFlags, flags);
215 224
216 // send the list of slides up to the activity 225 // send the list of slides up to the activity
217 const int slideCount = gWindow->sampleCount(); 226 const int slideCount = gWindow->sampleCount();
218 jobjectArray slideList = env->NewObjectArray(slideCount, env->FindClass("jav a/lang/String"), env->NewStringUTF("")); 227 jobjectArray slideList = env->NewObjectArray(slideCount, env->FindClass("jav a/lang/String"), env->NewStringUTF(""));
219 for (int i = 0; i < slideCount; i++) { 228 for (int i = 0; i < slideCount; i++) {
220 jstring slideTitle = env->NewStringUTF(gWindow->getSampleTitle(i).c_str( )); 229 jstring slideTitle = env->NewStringUTF(gWindow->getSampleTitle(i).c_str( ));
221 env->SetObjectArrayElement(slideList, i, slideTitle); 230 env->SetObjectArrayElement(slideList, i, slideTitle);
222 env->DeleteLocalRef(slideTitle); 231 env->DeleteLocalRef(slideTitle);
223 } 232 }
224 env->CallVoidMethod(gActivityGlue.m_obj, gActivityGlue.m_setSlideList, slide List); 233 env->CallVoidMethod(gActivityGlue.m_obj, gActivityGlue.m_setSlideList, slide List);
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 JNIEnv* env, jobject thiz) 357 JNIEnv* env, jobject thiz)
349 { 358 {
350 gWindow->saveToPdf(); 359 gWindow->saveToPdf();
351 } 360 }
352 361
353 JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_postInval( 362 JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_postInval(
354 JNIEnv* env, jobject thiz) 363 JNIEnv* env, jobject thiz)
355 { 364 {
356 gWindow->postInvalDelay(); 365 gWindow->postInvalDelay();
357 } 366 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698