From: Jordi <jb...@ti...> - 2002-10-10 23:36:24
|
On Fri, 11 Oct 2002 09:21:47 +0200, Alvaro Alea wrote: >=BFY luego que haces? recorres las 6912 direciones de memoria= para >calcular >el(los) rectangulos a blittear, para cuando la rutina en C que >realize eso >haya acabado de calcular el o los rectangulos, todabia te queda= el >redibujar >esos trozos y el blit en si, y habras consumido mucho mas tiempo= que >si >hubieses redibujado todo y echo el blit completo, pero bueno, >siempre podeis >demostrarme lo contrario :-) supongamos que los dirty rectangles vayan en grupos de 32x32= (sirve para cualquier tamanyo divisor de los tamanyos de pantalla,= cambiando algunos numerillos). Eso haria que tuvieramos la pantalla en 48 rectangulitos (digamosle rectangulitos[49], porque el ultimo rectangulo es para las zonas de memoria que no son pantalla) creamos un array de 64 kas (memoria del spectrum, digamosle dirty[65536]) donde todos los valores sean 48 (=3Dno son pantalla),= excepto las zonas de pantalla: el byte 16384 corresponde al rectangulo 0,0 -> por tanto metemos= un 0 el byte 16385 corresponde al rectangulo 0,0 -> por tanto metemos= un 0 .... el byte 16388 coresponde al rectangulo 0,1 -> metemos un 1 y asi hasta llenar toda la pantalla el ultimo byte corresponde al 7,6 -> metemos un 47 entonces, cuando hacemos un write en memoria, despues del write,= hacemos rectangulitos[dirty[direccion_escrita]]=3D1; entonces, al final de cada frame se recorren los 48 rectangulitos= (no son tantos) y se dibujan solo las partes de la pantalla que= requieren repintado p.d. esto seria una forma rapida de implementarlo, pero... 1) seria util para cuando se implemente contencion de memoria y dibujo "exacto" en pantalla??? personalmente creo que no, pero= puedo estar equivocado :) 2) iria mas rapido?? personalmente creo que si (el update de= pantalla suele ser una cosa bastante lenta), pero no seria la primera vez= que creo que algo iria mas rapido y a la hora de la verdad es mas= lento 3) vale la pena?? yo creo que no ;) ya que si quisieramos= velocidad punta optariamos por hacerlo en assembler (ahora es cuando me= agacho para esquivar las cuchilladas de Santi XDDDDDDDDD) ala, me voy a dormir y espero no despertarme con un cuchillo de= los del cobra en el esternon.... o donde sea que se claven XD bye :) Kak |