ShivaVG es una implementación del estándar OpenVG escrita en ANSI C sobre OpenGL. A continuación se detalla su estructura, cómo ejecutar ejemplos y cómo configurar la compilación.
1. Estructura de dircetorios del proyecto
El repositorio principle se organiza de la siguiente forma:
ShivaVG/
├── AUTHORS
├── COPYING
├── ChangeLog
├── INSTALL
├── MYTODO
├── Makefile.am
├── NEWS
├── README
├── TODO
├── autogen.sh
├── config.h.in
├── configure.in
├── examples/
│ ├── test_dash.c
│ ├── test_image.c
│ ├── test_interpolate.c
│ ├── test_linear.c
│ ├── test_pattern.c
│ ├── test_radial.c
│ ├── test_tiger.c
│ └── test_vgu.c
├── include/
│ └── vg/
│ ├── vg.h
│ ├── vgext.h
│ └── vgu.h
├── projects/
│ └── visualc9/
│ ├── ShivaVG.sln
│ ├── ShivaVG.vcproj
│ ├── ShivaVG_test_dash.vcproj
│ ├── ShivaVG_test_image.vcproj
│ ├── ShivaVG_test_interpolate.vcproj
│ ├── ShivaVG_test_linear.vcproj
│ ├── ShivaVG_test_pattern.vcproj
│ ├── ShivaVG_test_radial.vcproj
│ ├── ShivaVG_test_tiger.vcproj
│ └── ShivaVG_test_vgu.vcproj
└── src/
├── context.c
├── image.c
├── paint.c
├── path.c
├── shiva.c
├── vg.c
└── vgu.c
- examples/ – Programas de ejemplo que ilustran las capacidades de ShivaVG.
- include/vg/ – Cabeceras con la API de OpenVG.
- projects/visualc9/ – Proyectos para Visual C++ (Windows).
- src/ – Código fuente de la librería.
2. Punto de entrada del proyecto
ShivaVG es una biblioteca, no una aplicación independiente. Para probarlo se compilna y ejecutan los ejemplos del directorio examples/.
Por ejemplo, el archivo examples/test_tiger.c dibuja la conocida imagen SVG del tigre. A continuación se muestra una secuencia típica de compilación y ejecución:
# Cambiar al directorio de ejemplos
cd examples/
# Compilar el binario
make test_tiger
# Ejecutar el programa generado
./test_tiger
Puede seleccionar otros ejemplos, como test_image o test_vgu, siguiendo el mismo procedimiento.
3. Archivos de configuración del proyecto
Los ficheros principales de configuración son configure.in y config.h.in.
configure.in
Es un script de Autoconf utilizado para generar el script configure. Durante la compilación, configure detecta el entorno del sistema y crea los Makefiles adecuados.
config.h.in
Es una plantilla que, procesada por configure, produce el archivo config.h. Este archivo contiene definiciones condicionales, como habilitación de características o rutas de bibliotecas.
Procedimiento de compilación típico
Para preparar y compilar la librería:
./autogen.sh
./configure
make
Puede especificar qué ejemplos incluir mediante opciones como --with-example-tiger. Por ejemplo:
./configure --with-example-tiger
make
Esto compilará únicamente el ejemplo test_tiger. Una vez finalizada la compilación, se puede ejecutar el binario correspondiente.