He visto que dibujar lineas en pantalla usando put_pixel necesita mucho rendimiento, la solución que tuve en mente fue estirar una imagen de 1 pixel usando size_x, y size_y para dibujar lineas en horizontal y vertical respectivamente.
Lo bueno es que funciona mucho mejor que usando put_pixel y el rendimiento es mil veces mejor, con lo cual ya me vale.
El problema es que las lineas verticales no estan funcionando, las horizontales con size_x funcionan perfecto pero las verticales con size_y, apesar de debuguear y ver que los valores estan bien, el grafico no se pinta!
Pongo el codigo por si alguien ve si tengo algun error que no veo, o sencillamente es un bug del size_y.
gracias.
PROCESS hor_line_bitmap(x, x1, y)
BEGIN
file = FPG_Main;
graph = 6;
z = -2;
LOOP
size_x = size_x + 300;
IF (size_x > x1 * 200)
size_x = x1 * 200;
END
FRAME(10);
END
END
PROCESS vert_line_bitmap(x, y, y1)
BEGIN
//say(x + ", " + size_y + ", " + y + ", " + y1);
file = FPG_Main;
graph = 6;
z = -2;
LOOP
size_y = size_y + 300;
//say(size_y);
IF (size_y > y1)// * 200)
size_y = y1;// * 200;
//say(size_y);
END
FRAME(10);
END
END
ya he dicho que estamos con un bug en el blitter... incluso lo ha anunciado josebita, e incluso te lo he dicho por mail, cuando me has pedido (presionado/apurado con criticidad de vida o muerte) que te haga el port de la expand, que ni siquiera has usado...
vale que me prestas atencion a lo que digo...
gracias, la proxima no uso el email ya que veo que no sirve para nada, asi de paso te pido las cosas en la plaza publica que va ser lo mismo...
por otro lado no veo relacion etre esto y lo otro, enfin... si es para no ayudar no manches el hilo porfa :o
por cierto no se que cohones es el blitter, esto ocurre en la version pc de toda la vida...
Quote from: FreeYourMind on February 23, 2013, 08:59:20 PM
gracias, la proxima no uso el email ya que veo que no sirve para nada, asi de paso te pido las cosas en la plaza publica que va ser lo mismo...
por otro lado no veo relacion etre esto y lo otro, enfin... si es para no ayudar no manches el hilo porfa :o
hombre lo que quiero decir es que ya te lo explique, y que no es que no uses el email, sino que no me das bola lo que te digo, que me has apurado e insistido en que te ayude en algo que no eran 10 minutos, que no tenia tiempo, porque tenia mil cosas que hacer entre las cuales arreglar el blitter (vamos que sabes que el blitter es el encargado de hacer los renders de los graficos, ya se explico varias veces)... y sin embargo insitias en que no me costaba nada, que lo necesitabas urgente y un largo etc... me tome el trabajo de hacerlo, quitar horas de otras cosas, y te dije que funcionaba pero tenias que corregir el centrado, y que me respondiste? que lo haga yo, que tu no podias, que lo harias mas adelante...
hombre, no seas tan egoista, piensa un poco que el tiempo de los demas tambien vale y que si alguien hace algo por ti, lo menos que puedes hacer es leer lo que te escribe... (ni hablar de poner tu parte para terminar lo que falta del favor que te se hizo...)
para que quede claro, esto es un bug conocido que llevamos unos meses intentando arreglarlo... no es solo el size_y, hay muchas cosas del render que no estan correctas... pero vamos, estamos solos con prg intentando corregirlo, dejarlo finalmente perfecto, y no tener que emparchar 8000 veces mas el blitter... hasta no tener esto corregido el desarrollo de bennugd queda congelado.
no se que tiene que ver mis emails privados con este tema, te lo repito de nuevo, si el size_y era un bug en el que estas trabajando lo decias y punto, no soltabas esta especie de carta abierta a la comunidad...
como nota, size_y funciona bien a partir de imagenes con 2x2 (XxY) pixels de tamaño (1x1 y 1x2 no funcionan)
claro, eso es el bug, aunque tambien se extiende a mayores de 2x2, que si bien se dibujan no lo hacen correctamente... repito, lo unico que tiene que ver es que te lo comente en ese momento, que no podia hacerlo... lo demas fue un reproche, cierto...
lo demás, el reproche lo hacias por email, no ahorcandome en la plaza publica, tambien ando entre muchos proyectos y no puedo estar en todo, el tema esta pendiente, tranquilo que cuando pueda mirarlo si lo resuelvo te lo haré saber..
es que no tenia gracia por mail... :D ;)
Lo que no entiendo es, ¿desde cuando está tan roto el blitter? ¿Es fiable desarrollar en BennuGD ahora mismo?
evidentemente no te has dado cuenta del error, y ninguno lo ha hecho... pero si hay error...
igual eso lo decides tu... si vale la pena o no desarrollar en bennugd... yo no puedo responderte eso.
No me has contestado a la primera pregunta: ¿Desde cuando falla el blitter?
desde siempre... solo que ahora es evidente para mi... y se ha hecho mas evidente.
:),me recuerda eso a mi con lazarus. Encuentro un error en lazarus. Lo subo al issue tracker. Se queda sin asignar la tira de tiempo. Se lo asignan a uno. Este me pide una chorrada de ejemplo. Lo subo. Y ahi se queda la cosa otra infinidad de tiempi. Me canso y me voy al codigo fuente y lo arreglo. Me voy al issue lea subo el parche. Y se queda para los restos ahi y ni se toman la molestia de aplicarlo.
;D
A ver si voy a tener que meterle mano y arreglarlo yo. ;)
No me toméis a mal lo que diré XD.. se que no sois tontos y que sabéis muy bien lo que haceis, pero he leído en un montón de foros de engines que al cargar gráficos que no son potencia de 8 "en lo que se refiere a resolución" se les fuerza a serlo para evitar cosas así, osea, en esencia leí que lo que hace mucha gente es simplemente incrustar los gráficos cargados para SDL en gráficos creados antes en memoria con el tamaño correcto.
Esto pasa en muchisimos lenuajes jeje.. no solo en bennu así que yo ya ni lo considero un bug, simplemente en mi caso intento trabajar con gráficos de tamaños potencia de 8.
Vamos que no se si será por esto lo del problema que comentais, si me he colado y no tiene que ver disculpad ;)
Quote from: DCelso on February 24, 2013, 12:25:26 AM
:),me recuerda eso a mi con lazarus. Encuentro un error en lazarus. Lo subo al issue tracker. Se queda sin asignar la tira de tiempo. Se lo asignan a uno. Este me pide una chorrada de ejemplo. Lo subo. Y ahi se queda la cosa otra infinidad de tiempi. Me canso y me voy al codigo fuente y lo arreglo. Me voy al issue lea subo el parche. Y se queda para los restos ahi y ni se toman la molestia de aplicarlo.
;D
;)
Quote from: Erkosone on February 24, 2013, 12:50:58 AM
No me toméis a mal lo que diré XD.. se que no sois tontos y que sabéis muy bien lo que haceis, pero he leído en un montón de foros de engines que al cargar gráficos que no son potencia de 8 "en lo que se refiere a resolución" se les fuerza a serlo para evitar cosas así, osea, en esencia leí que lo que hace mucha gente es simplemente incrustar los gráficos cargados para SDL en gráficos creados antes en memoria con el tamaño correcto.
Esto pasa en muchisimos lenuajes jeje.. no solo en bennu así que yo ya ni lo considero un bug, simplemente en mi caso intento trabajar con gráficos de tamaños potencia de 8.
Vamos que no se si será por esto lo del problema que comentais, si me he colado y no tiene que ver disculpad ;)
tiene que ver, claro... pero la cosa es que nosotros prometemos soportar graficos de cualquier tamaño, y asi lo tenemos que hacer ahora... no queda otra... y el tema es con los size y las rotaciones... juegos sin size ni rotaciones van excelentes.
Pero si no tengo entendido estáis hablando sobre un fallo de precisión, ¿no?
¿Ese bug en el blitter puede provocar que un juego se cuelgue?
si, las 2 cosas.
cuando dije que el tema era grave y serio no estaba bromeando... y por eso he detenido todo avance en bennugd.
Aún así, no acabo de entenderlo.
Estoy utilizando la versión del 9 de julio de 2012 y por mucho proyecto que le meta no me da ningún problema.
En cambio, si utilizo la versión más reciente, el juego se cuelga aleatoriamente en unos 5 minutos como mucho.
¿Probaste en linux? A ver si va a ser algo del cross compiler.
Quote from: PiXeL on February 24, 2013, 01:27:01 PM
Aún así, no acabo de entenderlo.
Estoy utilizando la versión del 9 de julio de 2012 y por mucho proyecto que le meta no me da ningún problema.
En cambio, si utilizo la versión más reciente, el juego se cuelga aleatoriamente en unos 5 minutos como mucho.
seguramente es parte del bug... que ahora es mas evidente... pero esto es si usas size y scale... si no los usas, pues no tienes bug...
Quote from: DCelso on February 24, 2013, 06:43:31 PM
¿Probaste en linux? A ver si va a ser algo del cross compiler.
olvida eso, no es problema de compilacion... falla en todos lados...
Quote from: SplinterGU on February 24, 2013, 09:54:03 PM
Quote from: PiXeL on February 24, 2013, 01:27:01 PM
Aún así, no acabo de entenderlo.
Estoy utilizando la versión del 9 de julio de 2012 y por mucho proyecto que le meta no me da ningún problema.
En cambio, si utilizo la versión más reciente, el juego se cuelga aleatoriamente en unos 5 minutos como mucho.
seguramente es parte del bug... que ahora es mas evidente... pero esto es si usas size y scale... si no los usas, pues no tienes bug...
Quote from: DCelso on February 24, 2013, 06:43:31 PM
¿Probaste en linux? A ver si va a ser algo del cross compiler.
olvida eso, no es problema de compilacion... falla en todos lados...
SplinterGu, lo decía porque en la versión actual no le van los mismos prgs que le iban en la versión anterior que él usa, y así poder descartar que pase en linux, pero quizás lo más probable sea lo que dices de que se ha agravado en las ultimas versiones
si, la cosa es que al corregir una cosa se rompe otra... esto es porque la libreria de blitter es imprecisa...
Quote from: SplinterGU on February 25, 2013, 01:54:05 AM
si, la cosa es que al corregir una cosa se rompe otra... esto es porque la libreria de blitter es imprecisa...
Unm, entonces quizás sería conveniente echar para atrás el cambio que hace que bennu se comporte de forma diferente a la otra versión, hasta que saques un parche definitivo del blitter que arregle las dos cosas. ¿No? así sería más compatible con lo que hay hasta ahora.
este tipo de discusiones no me aporta ninguna solucion al tema...
Eso no es una respuesta. ¿Qué cambio en BennuGD provocó que la versión actual falle tan pronto?
estoy un poco perdido, el bug de este hilo lo he probado en una version vieja....
pixel? cual es tu punto? a donde queres llegar? vas a colaborar en la solucion? porque la verdad no me estas ayudando nada con tus preguntas/comentarios... no entiendo a donde queres llegar y que vamos a solucionar con esto...
Quote from: FreeYourMind on February 25, 2013, 01:19:52 PM
estoy un poco perdido, el bug de este hilo lo he probado en una version vieja....
si, es correcto lo que dices... el bug existe en versiones viejas, incluso en algunas puede que al querer dibujar un grafico de alto 1, no se dibuje...
y esto no va para ti, sino al publico en general, yo ya explique mil veces que habia problemas en el blitter, y me pase mucho tiempo emparchando, incluso he comentado (esto creo que ya lo habia hecho en fenix o en las primeras versiones de bennugd) las colisiones pixel-perfect necesitan un mapa del al menos 2x2, por este bug...
pero sinceramente, me da un poco de mala espina, tener que comerme un hilo de 3 paginas de repetir cosas que ya dije y comerme un interrogatorio tal gestapo que no entiendo el punto y no aporta ninguna solucion al tema...
la cosa es, hay un bug conocido, estamos trabajando en ello, haciendo avances y retorcesos... la cosa no es simple... prg lo puede confirmar, que penso que era facil y ha visto que no lo es.
Quote from: SplinterGU on February 25, 2013, 01:35:03 PM
si, es correcto lo que dices... el bug existe en versiones viejas, incluso en algunas puede que al querer dibujar un grafico de alto 1, no se dibuje...
y esto no va para ti, sino al publico en general, yo ya explique mil veces que habia problemas en el blitter, y me pase mucho tiempo emparchando, incluso he comentado (esto creo que ya lo habia hecho en fenix o en las primeras versiones de bennugd) las colisiones pixel-perfect necesitan un mapa del al menos 2x2, por este bug...
pero sinceramente, me da un poco de mala espina, tener que comerme un hilo de 3 paginas de repetir cosas que ya dije y comerme un interrogatorio tal gestapo que no entiendo el punto y no aporta ninguna solucion al tema...
la cosa es, hay un bug conocido, estamos trabajando en ello, haciendo avances y retorcesos... la cosa no es simple... prg lo puede confirmar, que penso que era facil y ha visto que no lo es.
Bueno, no te molestes, simplemente te preguntaba por que no entendía :)
Pero eso, yo ahora mismo estoy gastando la versión de julio de 2012 y no tengo ningún problema.
Y eso que tengo juegos que hacen verdaderas virguerías con BennuGD, creando mapas absurdamente gigantésticos y un montón de cosas más. Si que he notado algunas imprecisiones al usar size_x o size_y, pero no es problema.
Lo que sí que ocurre es que con la versión de noviembre de 2012, cualquiera de nuestros juegos falla a los pocos minutos, y no sé si es por un nuevo bug o porque esa versión está a medio camino de solucionar el bug del blitter.
Noviembre es chino para mi, a lo mejor usando revision number se entiende :P
no me enojo, pero es que otra explicacion mas detallada no puedo dar sin entrar en interioridades del motor, y eso ya seria lo mismo que decir nada...
la cosa es que la ultima version se hizo un poco mas precisa, pero tiene otros problemas.
si no usas size ni angle, no deberias tener problemas.