#include <iostream>#include <vector>#include <map>#include <string>#include <utility>#include <constants.h>#include "sdl.h"#include "agar.h"#include "tixml.h"Prostory jmen | |
| namespace | Color |
Funkce | |
| void | window_init (SDL_Surface **pWindow, int win_w, int win_h, const char *caption) |
| Inicializace SDL a TTF, vytvoří okno o zadaných rozměrech a záhlaví. | |
| SDL_Surface * | get_text (TTF_Font *font, const char *str, SDL_Color color) |
| Vytvoření surface s textem. | |
| static int | text_width (TTF_Font *font, const char *str) |
| SDL_Surface * | get_multiline_text (TTF_Font *font, const char *str, SDL_Color color) |
| Vytvoření víceřádkového surface s textem. | |
| SDL_Surface * | create_surface (Uint16 w, Uint16 h, SDL_Color color) |
| Vytvoření surface. | |
| void | set_transparent_color (SDL_Surface *sur, SDL_Color color) |
| Nastavení průhledné barvy pro surface. | |
| void | set_transparency (SDL_Surface *sur, Uint8 alpha) |
| Nastavení průhlednosti surface. | |
| SDL_Surface * | create_transparent_surface (Uint16 w, Uint16 h, bool transparent) |
| Vytvoření surface s průhlednou barvou (volitelně celé poloprůhledně). | |
| void | draw_surface (int x, int y, SDL_Surface *surface_src, SDL_Surface *surface_dst) |
| Vykreslení surface_src do surface_dst. | |
| void | draw_center_surface (SDL_Surface *surface_src, SDL_Surface *surface_dst) |
| Vykreslení surface_src do surface_dst vycentrovaně. | |
| void | clear_surface (SDL_Color color, SDL_Surface *surface) |
| Vybarvení místa v surface_dst, na kterém by byl surface_src. | |
| void | draw_pixel (SDL_Surface *surface, int x, int y, SDL_Color color) |
| Nakreslení pixelu do surface. | |
| void | draw_line (SDL_Surface *surface, int x1, int y1, int x2, int y2, SDL_Color color) |
| Nakreslení úsečky. | |
| Uint32 | SDL_fps (Uint32 last, Uint32 fps) |
| Frames per second zdrží program, aby nevykresloval zbytečně často. | |
| static bool | interesting_event_ (SDL_Event event, SDLKey &key) |
| Uint8 | get_event (SDLKey &key) |
| Vybere z fronty událost, když je prázdná, hned pokračuje. | |
| Uint8 | wait_event (SDLKey &key) |
| Vybere z fronty událost, když je prázdná, počká. | |
| double | SDL_Rand () |
| Pseudonáhodné číslo v intervalu [0,1]. | |
Proměnné | |
| const SDL_Color | Color::transparent = {255,0,255} |
| const SDL_Color | Color::white = {255,255,255} |
| const SDL_Color | Color::yellow = {255,255,0} |
| const SDL_Color | Color::aqua = {0,255,255} |
| const SDL_Color | Color::red = {255,0,0} |
| const SDL_Color | Color::lime = {0,255,0} |
| const SDL_Color | Color::blue = {0,0,255} |
| const SDL_Color | Color::black = {0,0,0} |
| const SDL_Color | Color::green = {0,128,0} |
| const SDL_Color | Color::maroon = {128,0,0} |
| const SDL_Color | Color::olive = {128,128,0} |
| const SDL_Color | Color::purple = {128,0,128} |
| const SDL_Color | Color::gray = {128,128,128} |
| const SDL_Color | Color::navy = {0,0,128} |
| const SDL_Color | Color::teal = {0,128,128} |
| const SDL_Color | Color::silver = {192,192,192} |
| void clear_surface | ( | SDL_Color | color, | |
| SDL_Surface * | surface | |||
| ) |
Vybarvení místa v surface_dst, na kterém by byl surface_src.
| color | barva vyplnění | |
| surface | cíl |

| SDL_Surface* create_surface | ( | Uint16 | w, | |
| Uint16 | h, | |||
| SDL_Color | color | |||
| ) |
Vytvoření surface.
| w | šířka surface | |
| h | výška surface | |
| color | barva pro vyplnění |

| SDL_Surface* create_transparent_surface | ( | Uint16 | w, | |
| Uint16 | h, | |||
| bool | transparent | |||
| ) |
Vytvoření surface s průhlednou barvou (volitelně celé poloprůhledně).
| w | šířka surface | |
| h | výška surface | |
| transparent | pokud TRUE, bude nastavena poloprůhlednost surface |


| void draw_center_surface | ( | SDL_Surface * | surface_src, | |
| SDL_Surface * | surface_dst | |||
| ) |
Vykreslení surface_src do surface_dst vycentrovaně.
| surface_src | zdroj | |
| surface_dst | cíl |


| void draw_line | ( | SDL_Surface * | surface, | |
| int | x1, | |||
| int | y1, | |||
| int | x2, | |||
| int | y2, | |||
| SDL_Color | color | |||
| ) |
Nakreslení úsečky.
| surface | cíl | |
| x1 | počáteční souřadnice úsečky | |
| y1 | počáteční souřadnice | |
| x2 | koncové souřadnice úsečky | |
| y2 | koncové souřadnice úsečky | |
| color | barva úsečky |

| void draw_pixel | ( | SDL_Surface * | surface, | |
| int | x, | |||
| int | y, | |||
| SDL_Color | color | |||
| ) |
Nakreslení pixelu do surface.
| surface | cíl | |
| x | souřadnice vykreslovaného pixelu | |
| y | souřadnice | |
| color | barva pixelu |

| void draw_surface | ( | int | x, | |
| int | y, | |||
| SDL_Surface * | surface_src, | |||
| SDL_Surface * | surface_dst | |||
| ) |
Vykreslení surface_src do surface_dst.
| x | souřadnice pro vykreslení | |
| y | souřadnice pro vykreslení | |
| surface_src | zdroj | |
| surface_dst | cíl |

| Uint8 get_event | ( | SDLKey & | key | ) |
Vybere z fronty událost, když je prázdná, hned pokračuje.
Pokud narazí na nějakou zajímavou událost, vrací její typ, když je to událost doplněná o klávesu, změní ji.
| key | vrácená hodnota klávesy |


| SDL_Surface* get_multiline_text | ( | TTF_Font * | font, | |
| const char * | str, | |||
| SDL_Color | color | |||
| ) |
Vytvoření víceřádkového surface s textem.
Vytvoří surface s textem pomocí get_text(), pokud text obsahuje newline (10) vytvoří se nová řádka.
| font | pointer na písmo, kterým se má psát | |
| str | text, který se má vypsat (může obsahovat newline) | |
| color | barva textu |


| SDL_Surface* get_text | ( | TTF_Font * | font, | |
| const char * | str, | |||
| SDL_Color | color | |||
| ) |
Vytvoření surface s textem.
| font | pointer na písmo, kterým se má psát | |
| str | text, který se má vypsat | |
| color | barva textu |

| static bool interesting_event_ | ( | SDL_Event | event, | |
| SDLKey & | key | |||
| ) | [static] |

| Uint32 SDL_fps | ( | Uint32 | last, | |
| Uint32 | fps | |||
| ) |
Frames per second zdrží program, aby nevykresloval zbytečně často.
Počká od času last tak dlouho abych vykresloval fps obrázků za sekundu vráti aktualní čas ukončení teto fce poznamka: muze špatně fungovat pokud aplikace běží déle než ~49.7 dní kvůli přetečení Uint32
| last | čas posedního volání této fce | |
| fps | počet framu za sekundu kterých chceme docílit |

| double SDL_Rand | ( | ) |
Pseudonáhodné číslo v intervalu [0,1].

| void set_transparency | ( | SDL_Surface * | sur, | |
| Uint8 | alpha | |||
| ) |
Nastavení průhlednosti surface.
| sur | surface, kterému chceme nastavit průhlednost | |
| alpha | míra průhlednosti (0 - průhledné, 255 - neprůhledné) |

| void set_transparent_color | ( | SDL_Surface * | sur, | |
| SDL_Color | color | |||
| ) |
Nastavení průhledné barvy pro surface.
| sur | surface, kterému chceme nastavit průhlednou barvu | |
| color | průhledná barva |

| static int text_width | ( | TTF_Font * | font, | |
| const char * | str | |||
| ) | [static] |


| Uint8 wait_event | ( | SDLKey & | key | ) |
Vybere z fronty událost, když je prázdná, počká.
Čeká, na zajímavou událost.
| key | vrácená hodnota klávesy |


| void window_init | ( | SDL_Surface ** | pWindow, | |
| int | win_w, | |||
| int | win_h, | |||
| const char * | caption | |||
| ) |
Inicializace SDL a TTF, vytvoří okno o zadaných rozměrech a záhlaví.
Inicializuje SDL, nastavuje video mode a velikost okna, inicializuje TTF. Při úspěchu nastavuje zrušení SDL a TTF při ukončení programu. Při neúspěchu vypisuje chybovou hlášku a ukončí program.
exit, atexit
| pWindow | pointer na pointer na SDL_Surface okna | |
| win_w | šířka okna | |
| win_h | výška okna | |
| caption | titulek okna |

1.5.6