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

Side by Side Diff: platform_tools/android/app/src/com/skia/SkiaSampleActivity.java

Issue 60273006: Support MSAA4 and (non-ES) OpenGL in Android SampleApp (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 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 package com.skia; 8 package com.skia;
9 9
10 import android.app.ActionBar; 10 import android.app.ActionBar;
(...skipping 20 matching lines...) Expand all
31 private SkiaSampleView mSampleView; 31 private SkiaSampleView mSampleView;
32 32
33 private ArrayAdapter<String> mSlideList; 33 private ArrayAdapter<String> mSlideList;
34 34
35 @Override 35 @Override
36 public void onCreate(Bundle savedInstanceState) { 36 public void onCreate(Bundle savedInstanceState) {
37 super.onCreate(savedInstanceState); 37 super.onCreate(savedInstanceState);
38 38
39 setContentView(R.layout.layout); 39 setContentView(R.layout.layout);
40 mTitle = (TextView) findViewById(R.id.title_view); 40 mTitle = (TextView) findViewById(R.id.title_view);
41 mSampleView = new SkiaSampleView(this);
42 mSlideList = new ArrayAdapter<String>(this, android.R.layout.simple_expa ndable_list_item_1); 41 mSlideList = new ArrayAdapter<String>(this, android.R.layout.simple_expa ndable_list_item_1);
43 42
44 try { 43 try {
45 System.loadLibrary("skia_android"); 44 System.loadLibrary("skia_android");
46 System.loadLibrary("SampleApp"); 45 System.loadLibrary("SampleApp");
47 46
48 LinearLayout holder = (LinearLayout) findViewById(R.id.holder); 47 createSampleView(false, 0);
49 holder.addView(mSampleView, new LinearLayout.LayoutParams(
50 ViewGroup.LayoutParams.MATCH_PARENT,
51 ViewGroup.LayoutParams.MATCH_PARENT));
52 48
53 setupActionBar(); 49 setupActionBar();
54
55 } catch (UnsatisfiedLinkError e) { 50 } catch (UnsatisfiedLinkError e) {
56 mTitle.setText("ERROR: native library could not be loaded"); 51 mTitle.setText("ERROR: native library could not be loaded");
57 } 52 }
58 } 53 }
59 54
55 private void createSampleView(boolean useOpenGLAPI, int msaaSampleCount) {
56 if (mSampleView != null) {
57 ViewGroup viewGroup = (ViewGroup) mSampleView.getParent();
58 viewGroup.removeView(mSampleView);
59 mSampleView.terminate();
60 }
61
62 mSampleView = new SkiaSampleView(this, useOpenGLAPI, msaaSampleCount);
63 LinearLayout holder = (LinearLayout) findViewById(R.id.holder);
64 holder.addView(mSampleView, new LinearLayout.LayoutParams(
65 ViewGroup.LayoutParams.MATCH_PARENT,
66 ViewGroup.LayoutParams.MATCH_PARENT));
67 }
68
60 private void setupActionBar() { 69 private void setupActionBar() {
61 ActionBar.OnNavigationListener navigationCallback = new ActionBar.OnNavi gationListener() { 70 ActionBar.OnNavigationListener navigationCallback = new ActionBar.OnNavi gationListener() {
62 @Override 71 @Override
63 public boolean onNavigationItemSelected(int position, long itemId) { 72 public boolean onNavigationItemSelected(int position, long itemId) {
64 mSampleView.goToSample(position); 73 mSampleView.goToSample(position);
65 return true; 74 return true;
66 } 75 }
67 }; 76 };
68 77
69 ActionBar actionBar = getActionBar(); 78 ActionBar actionBar = getActionBar();
70 actionBar.setDisplayShowHomeEnabled(false); 79 actionBar.setDisplayShowHomeEnabled(false);
71 actionBar.setDisplayShowTitleEnabled(false); 80 actionBar.setDisplayShowTitleEnabled(false);
72 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 81 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
73 actionBar.setListNavigationCallbacks(mSlideList, navigationCallback); 82 actionBar.setListNavigationCallbacks(mSlideList, navigationCallback);
74 } 83 }
75 84
76 @Override 85 @Override
77 protected void onResume () { 86 protected void onResume () {
78 super.onResume(); 87 super.onResume();
79 if (mSampleView.getWidth() > 0 && mSampleView.getHeight() > 0) { 88 if (mSampleView != null && mSampleView.getWidth() > 0 && mSampleView.get Height() > 0) {
80 //TODO try mSampleView.requestRender() instead 89 //TODO try mSampleView.requestRender() instead
81 mSampleView.inval(); 90 mSampleView.inval();
82 } 91 }
83 } 92 }
84 93
85 @Override 94 @Override
86 public void onDestroy() { 95 public void onDestroy() {
87 mSampleView.terminate(); 96 if (mSampleView != null) {
97 mSampleView.terminate();
98 }
88 super.onDestroy(); 99 super.onDestroy();
89 } 100 }
90 101
91 @Override 102 @Override
92 public boolean onCreateOptionsMenu(Menu menu) { 103 public boolean onCreateOptionsMenu(Menu menu) {
93 getMenuInflater().inflate(R.menu.action_bar, menu); 104 getMenuInflater().inflate(R.menu.action_bar, menu);
94 return true; 105 return true;
95 } 106 }
96 107
97 @Override 108 @Override
109 public boolean onPrepareOptionsMenu(Menu menu) {
110 if (mSampleView != null) {
111 boolean usesOpenGLAPI = mSampleView.getUsesOpenGLAPI();
112 boolean isMSAA4 = mSampleView.getMSAASampleCount() == 4;
113
114 ((MenuItem) menu.findItem(R.id.glcontext_opengles)).setChecked(!uses OpenGLAPI && !isMSAA4);
djsollen 2013/11/07 16:57:43 style nit, but a few of these lines exceed 100 cha
Kimmo Kinnunen 2013/11/20 13:45:00 Done.
115 ((MenuItem) menu.findItem(R.id.glcontext_msaa4_opengles)).setChecked (!usesOpenGLAPI && isMSAA4);
116 ((MenuItem) menu.findItem(R.id.glcontext_opengl)).setChecked(usesOpe nGLAPI && !isMSAA4);
117 ((MenuItem) menu.findItem(R.id.glcontext_msaa4_opengl)).setChecked(u sesOpenGLAPI && isMSAA4);
118 }
119 return true;
120 }
121
122 @Override
98 public boolean onOptionsItemSelected(MenuItem item) { 123 public boolean onOptionsItemSelected(MenuItem item) {
124 if (mSampleView == null) {
125 return false;
126 }
127
99 switch (item.getItemId()) { 128 switch (item.getItemId()) {
100 case R.id.overview: 129 case R.id.overview:
101 mSampleView.showOverview(); 130 mSampleView.showOverview();
102 return true; 131 return true;
103 case R.id.prev: 132 case R.id.prev:
104 mSampleView.previousSample(); 133 mSampleView.previousSample();
105 return true; 134 return true;
106 case R.id.next: 135 case R.id.next:
107 mSampleView.nextSample(); 136 mSampleView.nextSample();
108 return true; 137 return true;
109 case R.id.toggle_rendering: 138 case R.id.toggle_rendering:
110 mSampleView.toggleRenderingMode(); 139 mSampleView.toggleRenderingMode();
111 return true; 140 return true;
112 case R.id.slideshow: 141 case R.id.slideshow:
113 mSampleView.toggleSlideshow(); 142 mSampleView.toggleSlideshow();
114 return true; 143 return true;
115 case R.id.fps: 144 case R.id.fps:
116 mSampleView.toggleFPS(); 145 mSampleView.toggleFPS();
117 return true; 146 return true;
118 case R.id.tiling: 147 case R.id.tiling:
119 mSampleView.toggleTiling(); 148 mSampleView.toggleTiling();
120 return true; 149 return true;
121 case R.id.bbox: 150 case R.id.bbox:
122 mSampleView.toggleBBox(); 151 mSampleView.toggleBBox();
123 return true; 152 return true;
124 case R.id.save_to_pdf: 153 case R.id.save_to_pdf:
125 mSampleView.saveToPDF(); 154 mSampleView.saveToPDF();
126 return true; 155 return true;
156 case R.id.glcontext_opengles:
157 return setOpenGLContextSettings(false, 0);
158 case R.id.glcontext_msaa4_opengles:
159 return setOpenGLContextSettings(false, 4);
160 case R.id.glcontext_opengl:
161 return setOpenGLContextSettings(true, 0);
162 case R.id.glcontext_msaa4_opengl:
163 return setOpenGLContextSettings(true, 4);
127 default: 164 default:
128 return false; 165 return false;
129 } 166 }
130 } 167 }
131 168
132 @Override 169 @Override
133 public boolean dispatchKeyEvent(KeyEvent event) { 170 public boolean dispatchKeyEvent(KeyEvent event) {
134 final int keycode = event.getKeyCode(); 171 final int keycode = event.getKeyCode();
135 if (keycode == KeyEvent.KEYCODE_BACK) { 172 if (keycode == KeyEvent.KEYCODE_BACK) {
136 if (event.getAction() == KeyEvent.ACTION_UP) { 173 if (event.getAction() == KeyEvent.ACTION_UP) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 final DownloadManager manager = 228 final DownloadManager manager =
192 (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 229 (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
193 new Thread("Add PDF to downloads") { 230 new Thread("Add PDF to downloads") {
194 @Override 231 @Override
195 public void run() { 232 public void run() {
196 final String mimeType = "application/pdf"; 233 final String mimeType = "application/pdf";
197 manager.addCompletedDownload(title, desc, true, mimeType, path, length, true); 234 manager.addCompletedDownload(title, desc, true, mimeType, path, length, true);
198 } 235 }
199 }.start(); 236 }.start();
200 } 237 }
238
239 private boolean setOpenGLContextSettings(boolean requestedOpenGLAPI, int req uestedSampleCount) {
240 if (mSampleView != null &&
241 mSampleView.getMSAASampleCount() == requestedSampleCount &&
242 mSampleView.getUsesOpenGLAPI() == requestedOpenGLAPI) {
243 return true;
244 }
245
246 createSampleView(requestedOpenGLAPI, requestedSampleCount);
247
248 return (mSampleView.getMSAASampleCount() == 0) == (requestedSampleCount == 0) &&
249 mSampleView.getUsesOpenGLAPI() == requestedOpenGLAPI;
250 }
201 } 251 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698