107 lines
3.1 KiB
Markdown
107 lines
3.1 KiB
Markdown
# Manigraph: Graficadora de variedades
|
|
Diaz Camacho Pedro Emilio
|
|
|
|
# Resumen
|
|
manigraph es un graficador interactiva de variedades que lee archivos binarios, con la información de
|
|
una variedad multidimensional y grafica esta variedad en una proyección tridimensional.
|
|
|
|
# Dependencias
|
|
Para poder compilar el proyecto hace falta los siguientes pro.
|
|
## Programas
|
|
- `cc`: Cualquier compilador de C.
|
|
- `git`: Gestor de dependencias. (Opcional)
|
|
- `make`: Herramienta para compilar automáticamente. (Opcional)
|
|
|
|
## Librerías
|
|
- `openGL`: A cross-platform API for rendering 2D and 3D graphics. (no incluida)
|
|
- `glfw`: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input.
|
|
- `cglm`: Highly Optimized 2D / 3D Graphics Math (glm) for C.
|
|
### Linux
|
|
Para compilar `glfw` en linux hacen falta las siguientes librerías según el caso. (no incluidas)
|
|
- `x11`: libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel
|
|
- `wayland`: libwayland-dev libxkbcommon-dev wayland-protocols
|
|
|
|
# Codigo fuente
|
|
Para adquirir el código fuente de manigraph se puede usar git o descargar manualmente los
|
|
archivos zip.
|
|
|
|
## git via https
|
|
Usando git se necesitan ejecutar los siguientes comándos en la terminal.
|
|
|
|
```
|
|
git clone https://gitea.adles.top/software/manigraph.git
|
|
cd manigraph
|
|
git submodule update --init --recursive
|
|
```
|
|
|
|
## zip files
|
|
Alternativamente se puede descargar el código fuente en formato zip usando las siguientes
|
|
direcciones y acomodando manualmente las carpetas de `glfw` y `cglm` en `ext/`.
|
|
|
|
- [manigraph](https://gitea.adles.top/software/manigraph/archive/main.zip)
|
|
- [glfw](https://github.com/glfw/glfw/archive/refs/heads/master.zip)
|
|
- [cglm](https://github.com/recp/cglm/archive/refs/heads/master.zip)
|
|
|
|
|
|
# Compilación
|
|
Para compilar manualmente el proyecto se puede usar `make` o ejecutar los comandos manualmente
|
|
en el código fuente de `manigraph`.
|
|
|
|
## Make
|
|
Los siguientes comandos sirven para compilar `manigraph` deacuerdo al sistema operativo.
|
|
|
|
```
|
|
make windows
|
|
make linux-x11
|
|
make linux-wayland
|
|
make cocoa
|
|
```
|
|
|
|
## Manualmente
|
|
se pueden compilar el proyecto manualmente sin necesidad del programa `make`.
|
|
|
|
### GLFW
|
|
Si tienes problemas compilando `GLFW` puedes checar su página web oficial
|
|
explicando el tema: [Compiling GLFW](https://www.glfw.org/docs/3.3/compile.html).
|
|
|
|
#### Windows
|
|
```
|
|
cc -fPIC -shared -D_GLFW_WIN32 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o glfw.dll
|
|
```
|
|
|
|
#### Linux
|
|
```
|
|
cc -fPIC -shared -D_GLFW_X11 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so
|
|
cc -fPIC -shared -D_GLFW_WAYLAND -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so
|
|
```
|
|
|
|
#### Mac
|
|
```
|
|
cc -fPIC -shared -D_GLFW_COCOA -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so
|
|
```
|
|
|
|
### Manigraph
|
|
#### Windows
|
|
```
|
|
cc -L. -lglfw -lGL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph.exe
|
|
```
|
|
#### Linux
|
|
```
|
|
cc -L. -lglfw -lGL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph
|
|
```
|
|
#### Mac
|
|
```
|
|
cc -L. -lglfw -framework GL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph
|
|
```
|
|
|
|
# Ejecutar
|
|
En linux se puede ejecutar el programa sin instalar la llibreria de glfw usando:
|
|
## make
|
|
```
|
|
make run-linux
|
|
```
|
|
## manual
|
|
```
|
|
LD_LIBRARY_PATH=. ./manigraph
|
|
```
|