Compare Sprite Draw Method

Compare Sprite Draw Method

Escritório de Negócios 1.0.0
Desfrute de milhões dos mais recentes aplicativos do Android, jogos, músicas, filmes, TV, livros, revistas e muito mais. A qualquer hora, em qualquer lugar, em seus dispositivos. Este aplicativo é ta
1.0.0

Capturas de Tela

Descrição

Desfrute de milhões dos mais recentes aplicativos do Android, jogos, músicas, filmes, TV, livros, revistas e muito mais. A qualquer hora, em qualquer lugar, em seus dispositivos.

Este aplicativo é direcionado a desenvolvedores, ou qualquer pessoa curiosa sobre as diferenças de desempenho entre o OpenGL e o Canvas. Especificamente, ele mede o desempenho de desenhar sprites 2D usando explicitamente usando o OpenGL ES 2.0 com um híbrido de Java e C e desenhando sprites 2D usando tela com Java.

Quando terminar de executar um teste, pode ver uma análise de referência do desempenho pressionando o botão traseiro do dispositivo.

É semelhante ao teste do método Sprite por Chris Pruett, mas é atualizado para o OpenGL ES 2.0. Seu teste de método Sprite executa o ES 1.0 desatualizado e é quebrado em Jelly Bean (por causa do buffer de Tripple).

Este aplicativo funciona em todos os dispositivos que suportam o OpenGL ES 2.0.

Isso é livre de anúncios e sem NAG.

Mais detalhes:

Especificamente, este aplicativo mede o desempenho do desenho 2D Sprites explicitamente usando o OpenGL ES 2.0 com um híbrido de Java e C e desenhando sprites 2D usando tela com Java.

Em cada quadro:

A cor do fundo muda levemente, pulsando entre vermelho e branco.

Cada sprite move uma quantidade aleatória (gaussiana). Se o centro de um sprite passar por uma borda da tela, o sprite se move para um local de tela aleatória.

O teste de tela usa um SurfaceView e Canvas.drawbitmap (). Todos os cálculos são feitos em java (usando random.nextgaussian () e random.nextfloat ()) em um flutuador [].

Os testes OpenGL ES 2.0 usam um GlsurfaceView em Java. O cálculo é realizado em C (usando Drand48 () e um equivalente em linha C do algoritmo gaussiano de Java) em um flutuador nativo []. O desenho também é feito em C, usando Gldrawarrays (GL_Points, ...). Os métodos C (NDK) são chamados de todos os quadros de Java através do JNI.

Todos os testes têm a sobrecarga idêntica das operações de perfil em Java.

Estatística:

As informações do FPS são sobre quando os quadros são realmente publicados na tela (tecnicamente, o SurfaceFlinger).

As informações de desenho é sobre o tempo necessário para emitir (e Glflush () + Glfinish (), no teste OpenGL) os comandos de desenho. Ele não conta o tempo para realmente lançar buffers de tela.

A informação Push (somente VBO) é sobre o tempo necessário para empurrar os dados do vértice para o buffer GPU. Isso geralmente será <0,5ms (que arredonde a 0,000s) por quadro. Ao usar o teste não-VBO OpenGL, esse tempo é essencialmente incluído no tempo de desenho. Em aplicações práticas, pode levar mais tempo para impulsionar os dados para a GPU. Este exemplo contém apenas um VBO (ou matriz de vértices) com 2 carros alegóricos por sprite. Aplicações práticas teriam mais dados (como informações de tamanho e textura).

As informações de calc é sobre o tempo necessário para calcular a cor de fundo de um quadro e a nova posição de cada sprite. Quando o JIT é ativado, o tempo de cálculo é comparável entre o teste Java (Canvas) e os testes nativos (Open GL), mas com o JIT desativado, o Java sofre uma penalidade significativa.

O que há de novo na versão mais recente 1.0.0

Última atualização em 4 de outubro de 2015 versão 1.0.0
Carregado para o Google Play

Expandir

Outras Informações

  • Data de Lançamento

    2024/12/25

  • Tamanho

    60.16KB

  • Nome do Pacote

    com.terriblysimple.android.spritetest