introduccion C

Páginas: 10 (2297 palabras) Publicado: 8 de julio de 2013
http://www.lawebdeprogramacion.com

Programación Gráfica en C (Nivel Principiante)
Introducción
Este documento trata de explicar, a grandes rasgos, cómo funciona el dibujo de pixels bajo
MS-DOS. En los tiempos que corren, es algo ya anticuado y prácticamente obsoleto, debido a
que ya el 99% de los programas están hechos en Win95/98, y ahora con Windows 2000 y el
próximo Windows ME,reducirán a 0 la programación bajo MS-DOS, pero, en mi opinión, y
basándome en mi experiencia (poca), el manejo de gráficos es más “asequible” bajo MSDOS. Esto es un curso de iniciación al manejo de memoria gráfica, pixels, RGB, etc., y no
pretende ser exhaustivo, sino dar unas líneas generales sobre cómo se hace, con sus ventajas e
inconvenientes respecto a Windows. Se dan por supuesto algunosconocimientos de C (y
saber que es el Assembler), ya que los ejemplos serán fragmentos de código, no listados
completos. El 95% de lo comentado aquí lo he comprobado yo mismo, y funciona, y se puede
decir que es un pequeño recopilatorio de mis “andaduras” con la VGA desde que comenzé a
programar en C.
Una nota más, emplearé abundantes tecnicismos en inglés (sin traducción ni acentos), asique
losiento por los amantes de la lengua de Cervantes :)
Espero que sirva de ayuda a todo aquel nostálgico, programador principiante o fanático del
DOS. No soy un experto redactor, así que si algo no está bien explicado, mis disculpas por
adelantado.
Un saludo,
- KaRt0nEs
Un poco de historia
No puedo empezar sin hacer un breve resumen antes de la evolución de las tarjetas gráficas
desde losprimeros PCs.
Cuando salieron los primeros PCs (8086 y similares), los monitores eran monocromos o de
escasos colores (4, 8 o a lo sumo 16). Eran los tiempos de las tarjetas CGA y EGA, lentas y
muy simples. Con la llegada de los 286 y los 386, aparecieron las VGA, que soportaban 256
colores, algo más que de sobra para gráficos, juegos, etc. en esa época. Supusieron una
revolución no sólo por esto,sino porque, aunque aparentemente soportaran pocos modos de
vídeo (320x200 y 640x480 en modo gráfico son los más conocidos, aparte del clásico 80x25
del MS-DOS), los Hackers pronto descubrieron que podían manipularlas para conseguir
modos gráficos no-nativos, como el famoso 320x240. Esto permitía jugar con muchos
parámetros, como velocidades de refresco, colores, resoluciones, etc. Segeneralizó el modo
de 320x240 para los juegos, ya que si nos fijamos, esta resolución si mantiene el ratio
(320x240, 640x480, 800x600,etc.) para que los pixels se vean cuadrados (en 320x200 se ven
“achatados”). Debido a la velocidad de estos modos gráficos de baja resolución y a las
optimizaciones que se han ido realizando, ha sido el estandar hasta la aparición de Windows
95.
Funcionamiento de laVGA. Comparación con el GUI de Windows
Cuando vemos una imagen en la pantalla, estamos viendo una copia de la imagen real. La
imagen no se dibuja directamente en el CRT (Tubo de Rayos Catódicos) del monitor, sino que
primero se pinta en la memoria de la tarjeta, y posteriormente se vuelca el contenido al
monitor (a una velocidad que ni nos damos cuenta, a no ser que nuestros programas seanterriblemente lentos).
Esquema:
Orden de
dibujar un pixel

El pixel se pinta en
la memoria gráfica

La memoria gráfica es volcada al
monitor, y vemos el pixel

http://www.lawebdeprogramacion.com

Hay que tener en cuenta otras variables, como el refresco del monitor, a la hora de conseguir
velocidad, pero no entraremos en estos detalles (eso se lo dejo a los programadores de Demos
yJuegos) salvo que entre en las optimizaciones que utilice como ejemplos.
La memoria gráfica se utiliza como la memoria normal, aunque antes hay que cambiar el
modo de vídeo a la VGA. El tratamiento del modo gráfico es simple y tosco, ya que el MSDOS no distingue entre píxels, caracteres o valores. Trata todo como datos, lo que nos da una
ventaja, y es el poder manipularlos a nuestra voluntad...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • introduccion c ++
  • Introducción C
  • introduccion a-c
  • Introduccion a c++
  • Introduccion a C#
  • introduccion a c++
  • introducción c++ 2012
  • manual de introduccion a c++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS