OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |