74 lines
1.5 KiB
Markdown
74 lines
1.5 KiB
Markdown
# MediaTool
|
|
|
|
This is a collection of tools and apps for working with various media (Web, Desktop Publishing, Video/Audio) on different platforms (Linux, Windows).
|
|
|
|
It tries to have low dependencies and lots of things are built from scratch.
|
|
|
|
This is a personal/hobby project - things will break/change a lot.
|
|
|
|
# Build Dependencies
|
|
|
|
## Linux
|
|
|
|
### Minimal
|
|
|
|
```bash
|
|
sudo apt-get install build-essential cmake
|
|
```
|
|
|
|
### Optional
|
|
|
|
#### Audio
|
|
|
|
```bash
|
|
sudo apt-get install libasound2-dev
|
|
```
|
|
|
|
#### Image Formats
|
|
|
|
```bash
|
|
sudo apt-get install libpng-dev
|
|
```
|
|
|
|
#### Window rendering
|
|
|
|
```bash
|
|
sudo apt-get install libwayland-dev wayland-protocols libx11-dev libxkbcommon-dev libxkbcommon-x11-dev libx11-xcb-dev libxcb-image0-dev
|
|
```
|
|
|
|
We need to generate suitable xdg shell c code for wayland:
|
|
|
|
```bash
|
|
mkdir $WORK_DIR
|
|
cd $WORK_DIR
|
|
wayland-scanner private-code < /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml > xdg-shell-protocol.cpp
|
|
wayland-scanner client-header < /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml > xdg-shell-client-protocol.h
|
|
export WAYLAND_EXTENSION_DIR=$WORK_DIR
|
|
```
|
|
|
|
In `xdg-shell-protocol.cpp` - we need access to `xdg_wm_base_interface` so export it also `extern const struct wl_interface xdg_wm_base_interface;` as per similar interface structs.
|
|
|
|
#### 3D Rendering
|
|
|
|
```bash
|
|
sudo apt-get install libgl-dev libegl1-mesa-dev libglu1-mesa-dev libglm-dev
|
|
```
|
|
|
|
#### fonts
|
|
|
|
```bash
|
|
sudo apt-get install libfreetype-dev
|
|
```
|
|
|
|
|
|
# Build from Source
|
|
|
|
## Linux
|
|
|
|
```bash
|
|
mkdir build
|
|
cd build
|
|
cmake $PATH_TO_SOURCE
|
|
make
|
|
apps/$NAME_OF_APP
|
|
```
|