Skip to content

Commit 1b6518d

Browse files
committed
Fixed #18. Removed readOnlyBuffer. It was causing problems on Android 7
1 parent 9c27b82 commit 1b6518d

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ The purpose of this application is to learn and share how to draw using OpenGL l
1212
* STereoLithography format (STL): https://en.wikipedia.org/wiki/STL_(file_format)
1313

1414

15-
News (17/04/2017)
15+
News (23/04/2017)
1616
=================
1717

18+
* Fixed #18: Removed asReadOnlyBuffer() - not working on Android 7
1819
* Enhancement #17: Added support for TLS format
1920
* Fixed #16: Toogle point drawing
2021
* Fixed #15: Toggle rotating light
@@ -125,7 +126,10 @@ ChangeLog
125126

126127
(f) fixed, (i) improved, (n) new feature
127128

128-
- 1.3.1 (17/04/2017)
129+
- 1.3.1 (23/04/2017)
130+
- (f) #18: Removed asReadOnlyBuffer() because it is causing IndexOutOfBounds on Android 7
131+
132+
- 1.3.0 (17/04/2017)
129133
- (n) #17: Added support for STL files
130134
- (n) #17: Asynchronous building of model so the build rendering is previewed
131135
- (f) #17: Added Toasts to buttons to show current state

app/build/outputs/apk/app-release.apk

-12 Bytes
Binary file not shown.

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="org.andresoviedo.dddmodel2"
4-
android:versionCode="10"
5-
android:versionName="1.3.0" >
4+
android:versionCode="11"
5+
android:versionName="1.3.1" >
66

77
<uses-sdk
88
android:minSdkVersion="8"

app/src/main/java/org/andresoviedo/app/model3D/model/Object3DBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -460,8 +460,8 @@ public static Object3DData generateArrays(AssetManager assets, Object3DData obj)
460460
obj.setDrawUsingArrays(true);
461461

462462
Log.i("Object3DBuilder", "Populating vertex array...");
463-
final FloatBuffer vertexBuffer = obj.getVerts().asReadOnlyBuffer();
464-
final IntBuffer indexBuffer = faces.getIndexBuffer().asReadOnlyBuffer();
463+
final FloatBuffer vertexBuffer = obj.getVerts();
464+
final IntBuffer indexBuffer = faces.getIndexBuffer();
465465
for (int i = 0; i < faces.getVerticesReferencesCount(); i++) {
466466
vertexArrayBuffer.put(i*3,vertexBuffer.get(indexBuffer.get(i) * 3));
467467
vertexArrayBuffer.put(i*3+1,vertexBuffer.get(indexBuffer.get(i) * 3 + 1));
@@ -476,7 +476,7 @@ public static Object3DData generateArrays(AssetManager assets, Object3DData obj)
476476
obj.setVertexNormalsArrayBuffer(vertexNormalsArrayBuffer);
477477

478478
// build file normals
479-
final FloatBuffer vertexNormalsBuffer = obj.getNormals().asReadOnlyBuffer();
479+
final FloatBuffer vertexNormalsBuffer = obj.getNormals();
480480
if (vertexNormalsBuffer.capacity() > 0) {
481481
Log.i("Object3DBuilder", "Populating normals buffer...");
482482
for (int n=0; n<faces.facesNormIdxs.size(); n++) {
@@ -706,7 +706,7 @@ public static Object3DData buildWireframe(Object3DData objData) {
706706

707707
try {
708708
Log.i("Object3DBuilder", "Building wireframe...");
709-
IntBuffer drawBuffer = objData.getDrawOrder().asReadOnlyBuffer();
709+
IntBuffer drawBuffer = objData.getDrawOrder();
710710
IntBuffer wireframeDrawOrder = createNativeByteBuffer(drawBuffer.capacity() * 2 * 4).asIntBuffer();
711711
for (int i = 0; i < drawBuffer.capacity(); i += 3) {
712712
int v0 = drawBuffer.get(i);

0 commit comments

Comments
 (0)