Skip to content

Commit 8dc172f

Browse files
committed
v3.0.2 - fixed crash setUniform4fv + "too many uniforms" error
1 parent 1d1b3cf commit 8dc172f

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ The application does not use any third party library.
1313
* Collada format (DAE): https://en.wikipedia.org/wiki/COLLADA
1414

1515

16-
News (15/07/2020)
16+
News (03/09/2020)
1717
=================
1818

19-
* New version released 3.0.0
19+
* New version released 3.0.2
2020
* Collada support for polygon with holes
2121
* Wavefront support for smoothing groups
2222
* New FPS counter (frames per second)
@@ -183,6 +183,11 @@ ChangeLog
183183

184184
(f) fixed, (i) improved, (n) new feature
185185

186+
- 3.0.2 (03/09/2020)
187+
- (f) setUniform4fv function had length zero - issue detected with Xiaomi Redmi 8
188+
- (f) gl_MaxVertexUniformVectors is apparently not working - "too many uniforms" - detected in Xiaomi Redmi 8
189+
- 3.0.1 (15/07/2020)
190+
- (f) Forgot to add requestLegacyExternalStorage option
186191
- 3.0.0 (15/07/2020)
187192
- (n) Support for Object Groups (wavefront: o,g, dae: <geometry>)
188193
- (n) Support for Smoothing Groups (wavefront)

app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools"
44
package="org.andresoviedo.dddmodel2"
5-
android:versionCode="24"
6-
android:versionName="2.7.0">
5+
android:versionCode="26"
6+
android:versionName="3.0.2">
77

88
<uses-sdk
99
tools:overrideLibrary="android.support.compat, android.arch.lifecycle" />
@@ -19,7 +19,8 @@
1919
android:allowBackup="true"
2020
android:icon="@drawable/ic_launcher"
2121
android:label="@string/app_name"
22-
android:theme="@style/AppTheme" android:largeHeap="true">
22+
android:theme="@style/AppTheme" android:largeHeap="true"
23+
android:requestLegacyExternalStorage="true">
2324
<activity
2425
android:name="org.andresoviedo.app.model3D.MainActivity"
2526
android:label="@string/app_name" >

engine/src/main/java/org/andresoviedo/android_3d_model_engine/drawer/GLES20Renderer.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,17 +211,15 @@ private void setUniform3(float[] uniform3f, String variableName) {
211211
int handle = GLES20.glGetUniformLocation(mProgram, variableName);
212212
GLUtil.checkGlError("glGetUniformLocation");
213213

214-
// Pass in the light position in eye space.
215-
GLES20.glUniform3fv(handle, 0, uniform3f, 0);
214+
GLES20.glUniform3fv(handle, 1, uniform3f, 0);
216215
GLUtil.checkGlError("glUniform3fv");
217216
}
218217

219218
private void setUniform4(float[] uniform4f, String variableName) {
220219
int handle = GLES20.glGetUniformLocation(mProgram, variableName);
221220
GLUtil.checkGlError("glGetUniformLocation");
222221

223-
// Pass in the light position in eye space.
224-
GLES20.glUniform4fv(handle, 0, uniform4f, 0);
222+
GLES20.glUniform4fv(handle, 1, uniform4f, 0);
225223
GLUtil.checkGlError("glUniform4fv");
226224
}
227225

engine/src/main/java/org/andresoviedo/android_3d_model_engine/drawer/RendererFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public Renderer getDrawer(Object3DData obj, boolean usingTextures, boolean using
8686
vertexShaderCode = vertexShaderCode.replace("void main(){", "void main(){\n\tgl_PointSize = 5.0;");
8787

8888
// use opengl constant to dynamically set up array size in shaders. That should be >=120
89-
vertexShaderCode = vertexShaderCode.replace("const int MAX_JOINTS = 60;","const int MAX_JOINTS = gl_MaxVertexUniformVectors;");
89+
vertexShaderCode = vertexShaderCode.replace("const int MAX_JOINTS = 60;","const int MAX_JOINTS = gl_MaxVertexUniformVectors > 60 ? 60 : gl_MaxVertexUniformVectors;");
9090

9191
// create drawer
9292
Log.v("RendererFactory", "\n---------- Vertex shader ----------\n");

0 commit comments

Comments
 (0)