2010-09-17 25 views
6

Je suis à la recherche d'un moyen d'ajouter des modes de fusion plus avancés à mon programme (ceux que je pourrais me définir). Comment suggéreriez-vous d'y aller avec Android?Modes de mélange Android

La définition individuelle des pixels est trop lente pour constituer une solution viable.

+0

Cela doit également être une solution utilisant le système de rendu Canvas, et non OpenGL. – GuyNoir

+0

Salut, j'ai posé une question connexe à propos de combien de pixels Android peut dessiner et maintenir la vitesse d'actualisation de l'écran. Juste combien de pixles dessinez-vous sur chaque screeen et comment fps obtenez-vous? –

+0

Je n'ai pas vraiment la moindre idée du FPS, mais j'essayais de définir une image 50x50 plusieurs fois (environ 40-50 fois), et c'était extrêmement lent. C'est un outil de maculation, donc l'opération doit être appliquée à tous les quelques pixels le long d'une ligne tracée. – GuyNoir

Répondre

2

Pour Sois honnête, je ne suis pas sûr que ce soit supporté. En utilisant OpenGL comme exemple, les modes de fusion sont définis par OpenGL ES Spec, de sorte qu'ils peuvent potentiellement être implémentés dans le matériel. Ajouter votre propre fonction de mélange serait briser la spécification, pour ne pas mentionner incroyablement lent, car il faudrait agir pixel par pixel.

Je ne suis pas si sûr de la toile, mais je crois que vous ne pouvez pas le faire là non plus, pour des raisons similaires.

-1

Android prend en charge un sous-ensemble d'OpenGL. Ce serait la voie à suivre si vous cherchez la vitesse.

+2

Cela ne répond pas vraiment à la question. – num1

2

C'est possible même sans openGL. PORTERDUFF devrait être la solution:

android.graphics.PorterDuffXfermode

et

android.graphics.PorterDuff

Voici un très bon exemple:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Xfermodes.html

+2

Le problème est que je ne peux pas ajouter un xFermode personnalisé. Par exemple éclaircir, assombrir, saturer, etc – GuyNoir

+0

@GuyNoir éclaircir et assombrir sont déjà définis (voir PorterDuff.Mode). –