Also note that drawPicture() is a lot less useful since the framework will create display lists (the equivalent of Picture) automatically for you under the scene.
On Thu, Mar 1, 2012 at 6:48 PM, Dianne Hackborn <[email protected]> wrote: > What that call is doing is not turning off HW drawing, it is creating a > separate layer (bitmap) which that specific view can do software drawing in > to, but it is then drawn to the window with the GPU. > > My first answer would be that this option is a developer option, and users > shouldn't be changing it, and they get what they deserve when apps crash. > > I know that doesn't help with you getting crash reports from users messing > with things they shouldn't. > > You could check in your app if hardware acceleration is being used, and if > in that case just change your UI to a simple message telling them they need > to turn off that developer debugging tool. > > On Thu, Mar 1, 2012 at 12:46 PM, Ab <[email protected]> wrote: >> >> My app allows the user to draw on the screen by capturing and >> processing touch events. Additionally, my application makes use of >> Canvas.drawPicture and some other methods not supported by hardware >> acceleration. >> >> On some ICS devices there is an option to force hardware acceleration >> in settings: "force gpu rendering, use 2d harware acceleartion in >> applciations". When this is enabled, my application crashes with >> error: android.view.GLES20Canvas.drawPicture(GLES20Canvas.java:895). >> So, I explicitly disabled hardware acceleration on the View that uses >> this method with: View.setLayerType(View.LAYER_TYPE_SOFTWARE, null); >> >> However, disabling hardware acceleration in this way impacts the >> performance of my drawing, the drawing gets "choppy", as if less >> MotionEvent.ACTION_MOVE are being generated. This happens on all 3.0+ >> devices, regardless of if the "force acceleration" setting is on. >> >> So, I figure that there was something in the View's LayerType which >> was assisting my drawing, and that this is lost when I call >> View.setLayerType(...). Prior to my call to View.setLayerType(...), >> View.getLayerType() evaluates to LAYER_TYPE_NONE. >> >> Any suggestions as to how to explicitly prevent Hardware Acceleration >> while preserving whatever it is that was assisting my touch input? >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en > > > > > -- > Dianne Hackborn > Android framework engineer > [email protected] > > Note: please don't send private questions to me, as I don't have time to > provide private support, and so won't reply to such e-mails. All such > questions should be posted on public forums, where I and others can see and > answer them. > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- Romain Guy Android framework engineer [email protected] -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

