Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 06-04-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.031
Poder: 28
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Dices que los ejemplos que incluye Embarcadero funcionan más suavemente. ¿Las has comparado con tu código, a ver qué diferencias hay?

De todas formas, y adivinando, aquí te dejo algunas pistas que podrían ayudar (o no).

Por lo que dices, la construcción en capas de lo que se muestra en pantalla es así:
Código:
  TForm
    TPanel
      TScrollBox
        TImage
Cada vez que tiene que actualizar la pantalla, se llama al método Draw de TForm, que llama al método Draw de TPanel, que llama al método Draw de TScrollBox, que llama al método Draw de TImage.

Además, cada vez que dibuja el TImage hace una interpolación para el zoom, comprobando también los límites dentro de TScrollBox, que comprueba los límites también en el TPanel (aunque no sé si con alineación al área cliente optimiza algo). Y aún queda el tema de que TImage almacena la imagen completa, sin pérdida ni adaptándola al dispositivo (número de colores, tamaño, etc.), por lo que es posible que deba hacerse alguna conversión cada vez que se dibuja. Dependiendo de la implementación de los componentes (que desconozco) es posible que muchas de estas comprobaciones, interpolaciones y conversiones las haga por cada pixel de forma independiente. Si es así, normal que vaya a saltos, ya que cada parte hay que multiplicarla por el número de píxels de la imagen.

Para realizar animaciones complejas, te recomiendo dos opciones:
  1. Buscar un componente específico que haga dicha animación, ya que suele optimizar el proceso. Posiblemente es lo que hacen en los ejemplos de Embarcadero (no los he visto, así que estoy adivinando).
  2. Hacer tú el trabajo, usando como "lienzo" un componente óptimo para mostrar gráficos rápidamente. Por ejemplo, un componente que use OpenGL (OpenGL ES, en este caso concreto).

Última edición por Ñuño Martínez fecha: 06-04-2016 a las 20:44:18.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
formato de pantalla gallet API de Windows 39 04-11-2008 15:40:29
Capturar Pantalla = Pantalla negra DarkDudae Gráficos 8 27-10-2008 13:29:36
resolucion de pantalla rtorioa OOP 5 26-09-2005 20:18:52
Capturar pantalla pablo Varios 1 07-09-2004 21:15:10
Imágenes y Transiciones yusnerqui Gráficos 9 03-05-2004 15:01:42


La franja horaria es GMT +2. Ahora son las 04:35:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi