The values aren't identical. e.g.: // right frustum[ 0 ][ 0 ] = clip[ 3 ] - clip[ 0 ]; versus // left frustum[ 1 ][ 0 ] = clip[ 3 ] + clip[ 0 ];
Took me while to spot that myself though, this kind of stuff is well over my head :-) Ryan On Jan 19, 10:07 pm, DanH <danhi...@ieee.org> wrote: > I'm kind of curious as to why you don't just copy the left, top, and > near planes from the right, bottom, and far planes, vs recalculating > the identical results. > > On Jan 18, 7:49 am, RyanMcNally <therealr...@gmail.com> wrote: > > > > > > > > > Hello all > > > Hopefully someone out there can shed some light on this one, because > > it's got me completely stumped. > > > I've received 5 reports, from 3 separate users on 2 different devices > > (ZTE blade and HTC Liberty), of an ArrayIndexOutOfBoundsException that > > I simply cannot explain. > > > The stacktrace: > > java.lang.ArrayIndexOutOfBoundsException > > at com.ryanm.droid.rugl.util.geom.Frustum.extractFromOGL(Frustum.java: > > 180) > > at com.ryanm.droid.rugl.util.FPSCamera.setPosition(FPSCamera.java:174) > > at com.ryanm.minedroid.BlockView.draw(BlockView.java:318) > > at com.ryanm.droid.rugl.Game.onDrawFrame(Game.java:247) > > at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java: > > 1332) > > at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116) > > ... > > > You can view the offending file > > here:http://code.google.com/p/rugl/source/browse/trunk/droid/DroidRUGL/src... > > > Line 180 is: > > frustum[ 3 ][ 0 ] /= t; > > However, the frustum array is declared as: > > private final float[][] frustum = new float[ 6 ][ 4 ]; > > so 3 and 0 are perfectly valid indices. The frustum array is not > > altered after declaration - it's private and there are only 4 "new"s > > in that file, none of which are redeclaring any of the frustum[] > > arrays. In addition, line 172 is: > > frustum[ 3 ][ 0 ] = clip[ 3 ] - clip[ 1 ]; > > and no error is raised. > > > Possible causes that I've eliminated: > > 1) Different versions of the class, so line numbers don't match up - I > > wish it were that easy. The code was copied wholesale (url in the > > class javadoc), javafied and committed. I haven't touched it since so > > there are no other versions of this class. > > 2) Someone else has taken the code, b0rked it, and is distributing > > broken APKs - Seems unlikely, and the one user who responded to me > > claims he downloaded directly from my site. > > 3) The crash report is being mangled somewhere in the reporting > > process - I'm using this > > class:http://code.google.com/p/rugl/source/browse/trunk/droid/DroidRUGL/src... > > to capture exceptions. If someone can explain how that can mangle > > reports sufficiently, I'd be grateful. > > > Remaining possibilities: > > 1) Malicious users fabricating error reports - I'd have hoped that > > three people would have better things to do than to conspire to troll > > me with bizarre crash reports, but I suppose anything is possible :-/ > > 2) VM bug > > > It's always a sad state of affairs when it comes down to blaming the > > VM, especially for such innocuous code. I very much enjoy trusting the > > VM and knowing that any bugs are my own, but I just don't know what > > else to make of this. > > I'd be enormously grateful if someone could point out where I've gone > > wrong. > > > On a side note, having AIOOBEs report the value of the incorrect index > > -as in the JVM- would have been very handy in this case. > > > Regards > > > Ryan McNally -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en