Canvas в SurfaceView — аппаратное ускорение

Я разрабатываю на ICS и пытаюсь понять, почему Canvas.isHardwareAccelerated() всегда будет возвращать FALSE при использовании Холст внутри SurfaceView.

Я попробовал очень простой пример: http://android-coding.blogspot.com/2011/05/drawing-on-surfaceview.html Или вот этот: http://jmsliu.com/199/android-canvas-example.html

Я даже модифицировал их, чтобы внутри цикла отрисовки не было вызовов canvas. думая, что я, возможно, попал в некоторые неподдерживаемые операции ускорения HW для определенных вызовов рисования. Я проверил этот список в разделе «Неподдерживаемые операции рисования». developer.android.com/guide/topics/graphics/hardware-accel.html но я ничего этого не делаю.

Я использую флаг рендеринга Force GPU в параметрах разработчика. вместе с внутри манифестов я также указываю minSDK/targetSDK >= 14.

View.isHardwareAccelerated вернет TRUE, в то время как Canvas.isHardwareAccelerated всегда будет возвращать FALSE.

Я видел, что Canvas.java имеет жестко запрограммированный возврат false для isHardwareAccelerated(), а HardwareCanvas.java возвращает true. Я предполагаю, что по некоторым причинам я не получаю HW-путь, почему?

Может ли Canvas внутри SurfaceView быть ускорен HW?

Спасибо

12
задан user1019096 6 March 2012 в 17:26
поделиться