2012-04-01 20 views
16

Android için donanım hızlandırmayı tuvalim ile kullanmaya çalışıyorum. SurfaceView, daha sonra çizdiğim bir tuval almak için lockCanvas() yaptım, ancakolarak değiştirdim, çünkü donanım hızlandırma kullanmak için SurfaceView alamadım. Şu anda bu tuvali donanım hızlandırması için kullanmaya çalışıyorum. doğru, yanlış (this bir TextureView)Android TextureWindows ile donanım hızlandırması lockCanvas()

kimse canvas donanım hızlandırmalı değil neden biliyor mu ve nasıl bu yüzden bunu yapmak için:

Canvas canvas = this.lockCanvas(); 
System.out.println(this.isHardwareAccelerated() + ", " + canvas.isHardwareAccelerated()); 

bana çıkışını verir?

Düzenleme: Bulduğum kadarıyla OpenGL kullanmam gerekiyor. Bununla birlikte, böyle bir tuval için donanım hızlandırmayı mümkün kılan herhangi bir planın olup olmadığını bilmek istiyorum.

+0

Etkinliğiniz için donanım hızlandırmayı etkinleştirmelisiniz: http://developer.android.com/guide/topics/manifest/activity-element.html#hwaccel. –

+0

Bunu http://developer.android.com/guide/topics/graphics/hardware-accel.html adresinde kontrol edebilirsiniz. Cevabın bu olup olmadığını bilmiyorum. Çünkü Canvas.isHardwareAccelerated uygulamasının Canvas.onDraw uygulamasında kullanılabileceğini söylüyor. – e7fendy

cevap

5

Hardware Acceleration makalesini inceleyin.

size TextureView olmaya donanım sen yani aşağıdakilerden birini donanım hızlandırma sizin TextureView bağlamında bazı düzeylerde etkin olduğundan emin olun gerekir hızlandırılmış istiyorum Temelde eğer: Uygulama düzeyinde

  • : etkinlik düzeyinde <application android:hardwareAccelerated="true" ...>
  • :
: pencere düzeyinde <activity android:hardwareAccelerated="true" />
  • TextureView sadece donanım hızlandırmalı pencerede kullanılabilir:

    getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

    Not donanım hızlandırmanın bir TextureView kullanmak aslında zorunludur. Yazılımda işlendiğinde, TextureView hiçbir şey çizmeyecektir. Uygulama donanım hızlandırmalı olduğu zaman

  • +0

    Harika cevap, teşekkürler. – Sipty

    9

    TextureView çalışır, ancak lockCanvas() dönene Canvas anda donanım ivmeli asla. Bu, TextureView'un Canvas yazılımının içine çizim yapacağınız anlamına gelir, ancak TextureView'un kendisi GPU kullanılarak çizilecektir. Şu anda, bir donanım hızlandırılmış Canvas elde etmenin tek yolu, bir Görünüm'ün onDraw(Canvas) yöntemini kullanmaktır.

    İlgili konular