Librería SDL_draw
Mario Palomo, José de la
Huerga, Pepe González
[01-08-2002] SDL_draw 1.2.1
Liberada (Capturas de pantalla)
La última versión de esta librería esta disponible en:
http://sourceforge.net/projects/sdl-draw/
Esta librería se distribuye
bajo la licencia GNU LGPL (Library General
Public License), los detalles se encuentran
en el fichero "COPYING"distribuido junto
con el código fuente de la librería.
SDL_draw es una sencilla librería para representar primitivas
básicas
de dibujo, como puntos, rectas y circunferencias, sobre una superficie SDL.
¡Se trata de la extensión que la librería SDL (Simple DirectMedia Layer)
necesitaba!
Hasta ahora los desarrolladores de esta librería somos españoles.
Ninguno dominamos del todo bien el Inglés, pero si queremos que la
librería se utilize ampliamente como una extensión a la SDL
básica, hemos de trabajar en Inglés. Si tienes conocimientos
de Inglés y observas algo mal escrito en la Web o en el código,
por favor, envianos un mensaje a alguno de los foros que esta librería
tiene en la página de SourceForge.
Gracias de antemano por colaborar. (Si observas algo mal escrito en
español,
también nos gustaría saberlo :-))
Si utilizas la librería, nos gustaría saberlo. Puedes mandarnos
un mensaje a alguno de los foros de la página que esta librería
tiene en SourceForge,
y
pondremos
un enlace a tu página en este sitio.
Projectos que utilizan
SDL_draw
API de la librería
#include "SDL_draw.h"
void Draw_Pixel(SDL_Surface *super,
Sint16 x, Sint16
y,
Uint32 color);
Dibuja un pixel del color dado en las coordenadas x,y.
void Draw_Line(SDL_Surface *super,
Sint16 x1, Sint16
y1, Sint16 x2, Sint16 y2,
Uint32 color);
Dibuja una línea desde x1,y1 hasta x2,y2.
void Draw_Circle(SDL_Surface *super,
Sint16 x0,
Sint16 y0, Uint16 r,
Uint32
color);
Dibuja una circunferencia con centro en x0,y0 y radio r.
void Draw_FillCircle(SDL_Surface *super,
Sint16
x0, Sint16 y0, Uint16 r,
Uint32
color);
Dibuja una circunferencia rellena con el color dado, con centro en x0,y0
y radio r.
void Draw_HLine(SDL_Surface *super,
Sint16 x0,Sint16
y0, Sint16 x1,
Uint32 color);
Dibuja una línea horizontal desde x0,y0 hasta x1,y0.
void Draw_VLine(SDL_Surface *super,
Sint16 x0,Sint16
y0, Sint16 y1,
Uint32 color);
Dibuja una línea vertical desde x0,y0 hasta x0,y1.
void Draw_Rect(SDL_Surface *super,
Sint16 x,Sint16 y,
Uint16 w,Uint16 h,
Uint32 color);
Dibuja un rectángulo con la esquina superior izquierda en x,y siendo
w la anchura y h la altura.
void Draw_FillRect(SDL_Surface *super,
Sint16
x,Sint16 y, Uint16 w,Uint16 h,
Uint32
color);
Lo mismo que arriba, solo que el rectángulo es rellenado con el color.
Esta función es equivalente a SDL_FillRect (es una MACRO).
void Draw_Ellipse(SDL_Surface *super,
Sint16 x0,
Sint16 y0,
Uint16 Xradius,
Uint16 Yradius,
Uint32
color);
Dibuja una elipse con centro en x0,y0. El eje mayor es Xradius y el eje menor
es Yradius.
void Draw_FillEllipse(SDL_Surface *super,
Sint16 x0, Sint16 y0,
Uint16 Xradius, Uint16 Yradius,
Uint32 color);
Dibuja una elipse rellena (los parámetros son los mismos que los de
la función de arriba).
void Draw_Round(SDL_Surface *super,
Sint16 x0,Sint16
y0, Uint16 w,Uint16 h,
Uint16 corner, Uint32
color);
Dibuja un rectángulo con las esquinas redondeadas. x0,y0 es la esquina
superior izquierda, w es la anchura y h es la altura. Y corner es el radio
del cuarto de círculo que forma la esquina redondeada.
void Draw_FillRound(SDL_Surface *super,
Sint16 x0,Sint16
y0, Uint16 w,Uint16 h,
Uint16 corner, Uint32
color);
Lo mismo que arriba, sólo que se rellena del color el rectángulo
de esquinas redondeadas.
El fichero sdldrawtest.c es un ejemplo de aplicación que
usa la librería. Puedes compilarlo escribiendo (para el compilador
GNU):
$ export CFLAGS="`sdl-config --cflags` -I./include"
$ export LIBS="`sdl-config --libs` ./src/.libs/libSDL_draw.a"
$ gcc -o sdldrawtest sdldrawtest.c -Wall $CFLAGS $LIBS