SDK Multiplataforma en C logo

SDK Multiplataforma en C

Draw2D

❮ Anterior
Siguiente ❯

Funciones

voiddraw2d_start (void)
voiddraw2d_finish (void)

Tipos y Constantes

enumpixformat_t
enumcodec_t
enumfstyle_t
enumlinecap_t
enumlinejoin_t
enumfillwrap_t
enumdrawop_t
enumalign_t
enumellipsis_t
structcolor_t
structDCtx
structPalette
structPixbuf
structImage
structFont

La librería draw2d integra toda la funcionalidad necesaria para crear gráficos vectoriales en dos dimensiones. Depende directamente de geom2d (Figura 1) y, como veremos más adelante, dibujar no implica disponer de interfaz gráfica en el programa. Es posible generar imágenes utilizando un búfer interno de memoria, sin necesidad de visualizar el resultado en una ventana.

Esta librería conecta directamente con las tecnologías nativas de cada sistema operativo (Figura 2): GDI+ en sistemas Windows, Quartz2D en macOS y Cairo en Linux. En esencia draw2d ofrece una interfaz común y ligera con el fin de que el código sea portable, delegando el trabajo final en cada una de ellas. Con esto garantizamos tres cosas:

  • Eficiencia: Estas APIs han sido probadas durante años y son mantenidas por los fabricantes de los sistemas.
  • Presencia: Están integradas de "serie" en todos los ordenadores, por lo que no se requiere instalar software adicional.
  • Rendimiento: Los programas son más pequeños ya que no requieren enlazar con rutinas especiales para el manejo de gráficos, tipografías o imágenes.
  • Dependencias de draw2d en función de cada sistema operativo.
    Figura 2: draw2d conecta con las APIs de dibujo de cada sistema operativo.

enum pixformat_t

Formatos de píxel en una imagen. Número de bits y modelo de color.

enum pixformat_t
{
    ekINDEX1,
    ekINDEX2,
    ekINDEX4,
    ekINDEX8,
    ekGRAY8,
    ekRGB24,
    ekRGBA32,
    ekFIMAGE,
    ekOPTIMAL
};
ekINDEX1

1 bit por pixel. 2 colores, indexado.

ekINDEX2

2 bits por pixel. 4 colores, indexado.

ekINDEX4

4 bits por pixel. 16 colores, indexado.

ekINDEX8

8 bits por pixel. 256 colores, indexado.

ekGRAY8

8 bits por pixel en escala de grises. 256 tonos de gris.

ekRGB24

24 bits por pixel RGB. 8 bits por canal (rojo, verde, azul). El byte de menor orden corresponde al rojo y el de mayor al azul.

ekRGBA32

32 bits por pixel RGBA. 8 bits por canal (rojo, verde, azul, alpha). El byte de menor orden corresponde al rojo y el de mayor al alpha (transparencia).

ekFIMAGE

Representa el formato original de la imagen. Sólo válido en image_pixels.

ekOPTIMAL

Formato óptimo. Menor cantidad de bits para representar una imagen sin pérdida de información. Sólo válido en image_pixels.


enum codec_t

Formato de codificación y compresión de imágenes.

enum codec_t
{
    ekJPG,
    ekPNG,
    ekBMP,
    ekGIF
};
ekJPG

Joint Photographic Experts Group.

ekPNG

Portable Network Graphics.

ekBMP

BitMaP.

ekGIF

Graphics Interchange Format.


enum fstyle_t

Estilo en fuentes tipográficas. Pueden combinarse varios valores con el operator OR ('|').

enum fstyle_t
{
    ekFNORMAL,
    ekFBOLD,
    ekFITALIC,
    ekFSTRIKEOUT,
    ekFUNDERLINE,
    ekFSUBSCRIPT,
    ekFSUPSCRIPT,
    ekFPIXELS,
    ekFPOINTS
};
ekFNORMAL

Fuente normal, sin estilo. También llamada Regular.

ekFBOLD

Fuente en negrita.

ekFITALIC

Fuente en itálica.

ekFSTRIKEOUT

Fuente tachada.

ekFUNDERLINE

Fuente subrayada.

ekFSUBSCRIPT

Subíndice. Ver textview_fstyle.

ekFSUPSCRIPT

Superíndice. Ver textview_fstyle.

ekFPIXELS

Los tamaños de fuente se indicarán en píxeles.

ekFPOINTS

Los tamaños de fuente se indicarán en puntos. Tamaño en puntos.


enum linecap_t

Estilo en los extremos de línea.

enum linecap_t
{
    ekLCFLAT,
    ekLCSQUARE,
    ekLCROUND
};
ekLCFLAT

Terminación plana en el último punto de la línea.

ekLCSQUARE

Terminación en un cuadro, cuyo centro es el último punto de la línea.

ekLCROUND

Terminación en círculo, cuyo centro es el último punto de la línea.


enum linejoin_t

Estilo en las uniones de línea.

enum linejoin_t
{
    ekLJMITER,
    ekLJROUND,
    ekLJBEVEL
};
ekLJMITER

Unión en ángulo. En ángulos muy cerrados se recorta.

ekLJROUND

Unión redondeada.

ekLJBEVEL

Unión biselada.


enum fillwrap_t

Comportamiento del patrón de relleno en los límites.

enum fillwrap_t
{
    ekFCLAMP,
    ekFTILE,
    ekFFLIP
};
ekFCLAMP

Se utiliza el último valor del límite para rellenar el área exterior.

ekFTILE

Se repite el patrón.

ekFFLIP

Se repite el patrón, invirtiendo el orden.


enum drawop_t

Operación a realizar sobre primitivas gráficas.

enum drawop_t
{
    ekSTROKE,
    ekFILL,
    ekSKFILL,
    ekFILLSK
};
ekSTROKE

Dibuja el contorno de la figura con el estilo de línea predeterminado.

ekFILL

Rellena el interior de la figura con el color o patrón predeterminado.

ekSKFILL

Primero dibuja el contorno y después rellena.

ekFILLSK

Primero rellena y después dibuja el contorno.


enum align_t

Valores de alineación.

enum align_t
{
    ekLEFT,
    ekTOP,
    ekCENTER,
    ekRIGHT,
    ekBOTTOM,
    ekJUSTIFY
};
ekLEFT

Alineación al margen izquierdo.

ekTOP

Alineación al margen superior.

ekCENTER

Alineación centrada.

ekRIGHT

Alineación al margen derecho.

ekBOTTOM

Alineación al margen inferior.

ekJUSTIFY

Justificación o expansión del contenido.


enum ellipsis_t

Posición de la elipsis (...) al cortar un texto.

enum ellipsis_t
{
    ekELLIPNONE,
    ekELLIPBEGIN,
    ekELLIPMIDDLE,
    ekELLIPEND,
    ekELLIPMLINE
};
ekELLIPNONE

Sin elipsis.

ekELLIPBEGIN

Elipsis al principio del texto.

ekELLIPMIDDLE

Elipsis en el centro del texto.

ekELLIPEND

Elipsis al final del texto.

ekELLIPMLINE

Texto multilínea (sin elipsis).


struct color_t

Entero de 32 bits que representa un color RGBA. El byte de menor orden corresponde al canal rojo (Red) y el de mayor orden al canal Alpha (transparencia). Colores.

struct color_t;

struct DCtx

Contexto de dibujo 2D, destinatario para los comandos de dibujo. También se conoce como lienzo (canvas) o superficie (surface). Contextos 2D.

struct DCtx;

struct Palette

Paleta de colores, normalmente relacionada con Pixbuf indexados. Paletas.

struct Palette;

struct Pixbuf

Búfer en memoria con información de píxeles. Pixel Buffer.

struct Pixbuf;

struct Image

Contiene una imagen de mapa de bits, compuesta por píxeles. Imágenes.

struct Image;

struct Font

Contiene la familia tipográfica, tamaño y estilo con el que se dibujarán los textos. Fuentes tipográficas.

struct Font;

draw2d_start ()

Inicia la librería draw2d, reservando espacio para las estructuras internas globales. Internamente llama a core_start. En aplicaciones de escritorio, osmain llama a esta función al iniciar el programa.

void
draw2d_start(void);

draw2d_finish ()

Finaliza la librería draw2d, liberando el espacio de las estructuras internas globales. Internamente llama a core_finish. En aplicaciones de escritorio, osmain llama a esta función al salir del programa.

void
draw2d_finish(void);
❮ Anterior
Siguiente ❯