35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
# Končni Projekt za 3. Letnik - PRAP
|
|
|
|
## Uporabljene knjižnice
|
|
- SDL3
|
|
|
|
## Build
|
|
gcc compiler + cmake
|
|
|
|
```bash
|
|
mkdir build
|
|
cd build
|
|
cmake ..
|
|
make -j
|
|
```
|
|
|
|
(Za Windows uporabite MSYS2 MINGW64 terminal)
|
|
|
|
## Delovanje
|
|
|
|
### Master Thread (Rendering Thread)
|
|
Ta nit/thread ustvari glavno okno in kliče metode za renderiranje. Prav tako obdeluje dogodke (events) in posodablja stanje igre.
|
|
|
|
### Game Thread (Slave Thread)
|
|
Ta nit/thread izvaja glavno zanko igre, posodablja stanje igre in entitete. Odgovarja za logiko igre, medtem ko master thread skrbi za renderiranje in dogodke.
|
|
|
|
### Sinhronizacija
|
|
Med tema dvema nitoma se uporablja `std::shared_mutex` za sinhronizacijo dostopa do skupnih virov, kot so entitete v `GameState`. Master thread uporablja `std::shared_lock` za branje entitet med renderiranjem, medtem ko game thread uporablja `std::unique_lock` za posodabljanje entitet.
|
|
|
|
## Licenca
|
|
Vsa izvorna koda (razen kadar je drugače navedeno ali uporabljeno) je licencirana pod "Lesser General Public License v2.1" edino (okrajšano na "LGPL v2.1-only"). Več informacij o licenci najdete v datoteki LICENSE.
|
|
Vse slike (v direktorijo resources/) so podane pod "Creative Commons Attribution-ShareAlike" (CC BY-SA) licenco.
|
|
Font "Roboto" je licenciran pod "SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007" (Na voljo na spletu).
|
|
|
|
## Avtorske pravice
|
|
Vse avtorske pravice (copyright) so rezervirane k avtorju te izvorne kode/slik. |