SoloCodigo
Programación Específica => Programación de Videojuegos => Mensaje iniciado por: bob esponja en Domingo 28 de Noviembre de 2004, 19:35
-
buenas hace mucho que no escribo
el tema es que estoy escribiendo una libreria para todos los modos de vesa, de hecho ya la termine si no fuera por dos cositas:
la funcion putpixel de 24 bits ( 8 : 8 : 8 )
la funcion putpixel de 16 bits ( 1 : 5 : 5 : 5 )
y los modos de 16 colores
el tema es asi:
en el putpixel de 24 bits lo pone bastante bien pero se va desplazando de su posicion a medida que va mas abajo
mi funcion es algo asi:
long coord = ( ( long ) y * resolucionX + x ) * 3;
//porque cada color tiene tres bytes
aux = ( int ) coord; //la parte baja del long tiene la posicion en el banco
//la posicion alta tiene el banco
//... aca seteo el banco (no lo hago aca porque no tiene nada que vercon el problema)
screen[ aux ] = red;
screen[ ++aux ] = green;
screen[ ++aux ] = blue;
//pongo el pixel
en el modo de 16 bits ( 1 : 5 : 5 : 5 ) lo hice muy parecido al modo de 16 bits ( 5 : 6 : 5 ) siendo que este si funciona el otro no.
y los modos de 16 colores no los se manejar porque creo que trabajan como el modo 12h de vga pero nunca lo pude haer andar bien
espero respuestas....
-
creo que debes replantear tu problema, ya que la verdad no es clara la duda tienes, solo has colocado unos comentarios pero no veo ninguna inquietud en particular. :smartass:
-
lo primero es si alguien ve un problema conceptual o de programacion en el codigo que puse que es el puytpixel para las resoluciones de 24 bits.
lo segundo es que tengo una duda de si en el modo putpixel de 16 bits ( 1 : 5 : 5 : 5 ) se trabaja parecido al modo de 16 bits ( 5 : 6 : 5 ). osea "empujando" los valores de los colores en una variable de 16 bits y ponerla en la pantalla o si trabaja de otra forma.
y tercero si alguien podria decirme como trabajan los modos de 16 colores.
si alguien sabe como trabajan los modos o tiene el codigo del putpixel escriban!
-
lo segundo es que tengo una duda de si en el modo putpixel de 16 bits ( 1 : 5 : 5 : 5 ) se trabaja parecido al modo de 16 bits ( 5 : 6 : 5 ). osea "empujando" los valores de los colores en una variable de 16 bits y ponerla en la pantalla o si trabaja de otra forma.
y tercero si alguien podria decirme como trabajan los modos de 16 colores.
Los modos de ARGB y RGB de 16bit se manejan de la misma forma hasta donde tengo entendido.
Y los modos de 16 bit se manejan con paquetes de dos en dos pixeles e decir cada pixel ocupa 4 bits, por lo cual en cada byte puedes almacenar 2 pixeles, asi que podrias enviar un paqete de tipo byte(char) o uno de tipo word(short) o uno de tipo dword(int32) como quieras.
-
solucione todos menos el de 16 colores.
estas seguro de que funciona asi?
lo hago de esa forma y en la pantalla no aparece nada ( queda negro )
no sabes si tiene alguna particularidad con respecto a los otros modos?
-
hasta donde se se maneja asi...
ahora...
estas seguro de que tu patalla soporta modo de 16 colores? casi ninguna lo soporta hoy en dia, supongo... aghora deberias probar con 256 colores no?
y si te sale ahi si intentar con 16 nada mas.
-
Hola SpongeBob, sabes yo hace tiempo he querido hacer una libreria que soporte colores a 24 bits, bueno asi como tu para todas las modalidades de Vesa, no se si podrias ayudarme, ya sea dandome un ejemplo que ponga un pixel en pantalla o allgo asi, o una pagina que me ayude a hacerla, bueno gracias por tu atencion.
-
Darktigerhell aca esta lo que tengo:
http://www.esponjasdeguerra.8k.com/tutoriales.html (http://www.esponjasdeguerra.8k.com/tutoriales.html)
es el ultimo ( el que dice VESA :o ) jaja
diganme que opinan...
-
Holaq bob
revise el codigo y me parece super..
pero ta l como lo dices con tu liscencia..
mi maquina colapso totalmente y solo la logre hacer funcionar solo despues de reiniciar el pc. :unsure:
-
juank lo de que te de error es probable por esto (que dice en el archivo leeme):
¨El codigo de prueva de los modos no es muy rapido ( porque genera muchos nmeros aleatorios ) y no maneja para nada los errores asi que si no te anda algun modo es posible que tu pc no lo soporte, solo lo hize para verificar que funcionara en mi maquina.¨
el codigo de prueva inicializa los modos suponiendo que tu maquina lo soporta porque lo hice para probarlo en la mia usando los modos que se que soporta.
lo que voy a hacer es escribir una como la gente y ponerla.
tambien note en una maquina del cyber que algunos modos parecen dibujarse mal en la pantalla, eso si me tendria que fijar.
por ahora pruevenlo y diganme que anormalidades o errores les da asi la mejoro.
si es posible escriban el codigo de prueva de nuevo usando los metodos para testear errores y si los modos son soportados.
-
lo que voy a hacer es escribir una como la gente y ponerla
Si necesitas algo cuenta conmigo para eso.
ME gustaria meterle la mano a tu codigo pero no yengo mucho tiempo como comprenderas.
-
Gracias bob, auqnue lamentablemente vi este link apenas y ya tengo mi propia libreria con todos los modos, pero de todas maneras gracias.
-
haber por favor diganme de donde sacaron la info por que yo habia leido unos manuales del standard vesa y cheque el source de tus librerias y hay cosas que no concuerdan por favor si me puedes decir de donde sacaste info te lo agradeceria bob
gracias.
-
http://www.wotsit.org (http://www.wotsit.org)
Busca por vesa, svga, super vga
:hola:
-
del standar 1.2 de VESA porque ese es el que tiene mi maquina
estaria bueno que me dijeras que cosas no concuerdan a ver si las arreglo...
ese proyecto quedo un poco abandonado ( del todo ) porque ahora me puse a programar otra cosa y tengo que rendir en la facultad pero si son errores puntuales se podrian arreglar
nos vemos
ahh en el modo de 24 bits hay una cosa que hize que seguro que esta mal pero de esa forma anda en mi poantalla, para calcular la posicion en memoria del pixel enxes de hacer ( y * resolucionX + x ) * 3 hice algo asi como ( y * logical_scan_line + x ) * 3, no se si era asi pero lo que quiero remarcar es que no multiplico poir la resolucion horizontal sino por otro valor, en mi maquina anda asi.
-
mira si me quieres ayudar me ayudaria mucho que me dieras el source de un programa que me ponga un simple punto en la pantalla en modo de 16 o 24 bits de color , con eso puedo entender como funciona y de ahi me agarro . gracias .
-
Bob este proyecto continuia o se mantendra suspèndido indefinidamente o se acabo?
-
esta casi 100% frenado
lo que se que hay que arreglar es la funcion putpixel
que por lo visto en algunas maquinas funciona mal
y bue la orientacion a objetos que hice no fue de lo mas correcta,
ahora estoy escribiendo un compilador si lo termino probablemente lo retome