From cf9d42c7d23dc8690732de42f3b571306d5008ae Mon Sep 17 00:00:00 2001 From: durk Date: Tue, 16 Jan 2024 06:45:14 -0600 Subject: [PATCH] MUSIC!!! :scream_cat: stream large files instead of loading them into memory --- docs/build/doctrees/environment.pickle | Bin 2263753 -> 2315017 bytes docs/build/doctrees/reference/mixer.doctree | Bin 19987 -> 45079 bytes .../html/_sources/reference/mixer.rst.txt | 3 + docs/build/html/genindex.html | 20 +- docs/build/html/objects.inv | Bin 12723 -> 13011 bytes docs/build/html/reference/mixer.html | 93 +++++++ docs/build/html/searchindex.js | 2 +- docs/source/reference/mixer.rst | 3 + docs/source/xml/_mixer_8hpp.xml | 40 ++- .../source/xml/classkn_1_1mixer_1_1_music.xml | 238 +++++++++++++++++- .../source/xml/classkn_1_1mixer_1_1_sound.xml | 20 +- docs/source/xml/index.xml | 13 +- include/Mixer.hpp | 63 ++++- src/mixer.cpp | 82 +++++- 14 files changed, 538 insertions(+), 39 deletions(-) diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index f426a74b6052bdc2b7edcaa85474e5ae6d5458fa..a16cbbacd821ee935f7e3d2c52860321322a8b11 100644 GIT binary patch literal 2315017 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 - +
  • kn::KEYDOWN (C++ member)
  • kn::KEYMAPCHANGED (C++ member) @@ -584,6 +584,22 @@

    K

  • kn::math::Vec2::operator== (C++ function)
  • kn::math::Vec2::ZERO (C++ function) +
  • +
  • kn::mixer::Music (C++ class) +
  • +
  • kn::mixer::Music::load (C++ function) +
  • +
  • kn::mixer::Music::Music (C++ function) +
  • +
  • kn::mixer::Music::pause (C++ function) +
  • +
  • kn::mixer::Music::play (C++ function) +
  • +
  • kn::mixer::Music::resume (C++ function) +
  • +
  • kn::mixer::Music::setVolume (C++ function) +
  • +
  • kn::mixer::Music::unload (C++ function)
  • kn::mixer::Sound (C++ class)
  • diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 581937242541258c9d8821832a4790812674de00..57cd2225a1fbf0d2acb63a6b6c92095cd3f56c20 100644 GIT binary patch delta 12949 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 LJCOW8kc6X%-JBB9 delta 12659 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 diff --git a/docs/build/html/reference/mixer.html b/docs/build/html/reference/mixer.html index 410093f..cf48301 100644 --- a/docs/build/html/reference/mixer.html +++ b/docs/build/html/reference/mixer.html @@ -267,6 +267,89 @@

    mixer#< +
    +
    +class Music#
    +

    A music object.

    +
    +

    Warning

    +

    This class is planned to become a singleton.

    +
    +
    +

    Public Functions

    +
    +
    +explicit Music(const std::string &fileDir)#
    +

    Create a music object.

    +
    +
    Parameters:
    +

    fileDir – The directory of the music file.

    +
    +
    +
    + +
    +
    +void setVolume(float volume)#
    +

    Set the volume of the music.

    +
    +
    Parameters:
    +

    volume – The volume to set.

    +
    +
    +
    + +
    +
    +void play(int loops = 0, int fadeMs = 0)#
    +

    Play the music.

    +
    +
    Parameters:
    +
      +
    • loops – The number of times to loop the music.

    • +
    • fadeMs – The number of milliseconds to fade in.

    • +
    +
    +
    +
    + +
    +
    +void pause(int fadeMs = 0)#
    +

    Pause the music.

    +
    +
    Parameters:
    +

    fadeMs – The number of milliseconds to fade out.

    +
    +
    +
    + +
    +
    +void resume()#
    +

    Resume the music.

    +
    + +
    +
    +void load(const std::string &fileDir)#
    +

    Load a music file.

    +
    +
    Parameters:
    +

    fileDir – The directory of the music file.

    +
    +
    +
    + +
    +
    +void unload()#
    +

    Free the music from memory.

    +
    + +
    +
    + @@ -332,6 +415,16 @@

    mixer#<
  • Sound::unload()
+
  • Music +
  • diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index f8d1ebb..8fea3b6 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["getting_started/index", "index", "installation", "reference/constants", "reference/draw", "reference/entity", "reference/error_logger", "reference/font", "reference/index", "reference/input", "reference/math", "reference/mixer", "reference/overflow", "reference/rect", "reference/render_window", "reference/texture", "reference/texture_cache", "reference/tile_map", "reference/time", "tutorials/index"], "filenames": ["getting_started/index.rst", "index.rst", "installation.rst", "reference/constants.rst", "reference/draw.rst", "reference/entity.rst", "reference/error_logger.rst", "reference/font.rst", "reference/index.rst", "reference/input.rst", "reference/math.rst", "reference/mixer.rst", "reference/overflow.rst", "reference/rect.rst", "reference/render_window.rst", "reference/texture.rst", "reference/texture_cache.rst", "reference/tile_map.rst", "reference/time.rst", "tutorials/index.rst"], "titles": ["Getting Started", "Kraken Engine Docs", "Installation", "constants", "draw", "Entity", "ErrorLogger", "Font", "API Reference", "input", "math", "mixer", "overflow", "Rect", "RenderWindow", "Texture", "TextureCache", "TileMap", "time", "Tutorials"], "terms": {"after": 0, "follow": [0, 2], "instal": [0, 1], "guid": [0, 1], "you": [0, 1, 2, 19], "ar": [0, 10, 19], "readi": [0, 2], "your": [0, 1, 2], "first": [0, 10, 12, 14], "kraken": [0, 2, 19], "engin": [0, 2, 19], "program": [0, 2], "includ": [0, 1, 2], "krakenengin": 0, "hpp": 0, "const": [0, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17], "kn": [0, 3, 4, 9, 10, 14], "math": [0, 8, 9, 13, 14, 15, 16], "vec2": [0, 9, 10, 13, 14, 15, 16], "screen_siz": [0, 13], "800": 0, "600": 0, "int": [0, 3, 4, 7, 9, 11, 13, 14, 18], "main": 0, "renderwindow": [0, 8], "getinst": [0, 6, 14], "time": [0, 5, 8, 10, 11, 14], "clock": [0, 18], "bool": [0, 7, 10, 12, 13, 14], "done": 0, "fals": [0, 10, 12, 14], "while": [0, 5, 15], "tick": [0, 18], "auto": 0, "event": [0, 3, 14], "getev": [0, 14], "type": 0, "quit": [0, 3], "true": [0, 10, 12, 14], "cl": [0, 14], "flip": [0, 14], "return": [0, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 18], "exit_success": 0, "thi": [0, 1, 2, 10, 12, 15, 16, 17, 18, 19], "code": 0, "open": [0, 2], "close": [0, 10, 12], "when": 0, "user": [0, 14, 15], "press": [0, 9], "": [0, 1, 5], "x": [0, 13, 14], "button": [0, 9], "It": [0, 1], "also": 0, "clear": [0, 14], "screen": [0, 14], "everi": 0, "frame": [0, 5, 14, 18], "buffer": [0, 14], "The": [0, 1, 2, 4, 5, 7, 9, 10, 11, 13, 14, 15, 16, 17, 18], "function": [0, 1, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "elaps": 0, "sinc": [0, 5], "last": [0, 5], "call": [0, 16], "second": [0, 10, 12], "i": [1, 2, 10, 12, 14, 15, 16, 17, 18, 19], "power": 1, "extens": 1, "sdl2": [1, 2], "design": 1, "streamlin": 1, "game": 1, "develop": [1, 2], "process": [1, 2], "provid": 1, "suit": 1, "easi": 1, "us": [1, 2, 12, 14, 15, 17], "featur": 1, "textur": [1, 5, 7, 8, 14, 16, 17], "cach": [1, 16, 17], "collis": [1, 5], "logic": 1, "allow": 1, "focu": 1, "creat": [1, 5, 7, 11, 15, 16, 19], "immers": 1, "experi": 1, "player": 1, "document": 1, "comprehens": 1, "cover": 1, "everyth": 1, "from": [1, 2, 5, 11, 14, 16, 17], "advanc": 1, "intend": 1, "both": 1, "beginn": 1, "experienc": 1, "get": [1, 5, 6, 9, 10, 13, 14, 15, 16, 18, 19], "start": [1, 2], "tutori": 1, "api": 1, "refer": [1, 6, 10, 14, 16], "plan": [1, 16, 18], "implement": 1, "essenti": 1, "mathemat": 1, "like": [1, 6], "pathfind": 1, "raycast": 1, "built": [1, 2], "physic": 1, "further": 1, "enhanc": 1, "its": 1, "capabl": 1, "versatil": 1, "join": 1, "our": 1, "discord": 1, "help": [1, 19], "share": 1, "project": 1, "contribut": 1, "we": [1, 19], "look": [1, 6], "forward": 1, "see": 1, "incred": 1, "now": 2, "ha": 2, "onli": [2, 14, 17], "been": 2, "test": 2, "confirm": 2, "work": [2, 19], "system": 2, "mingw64": 2, "window": [2, 14], "10": 2, "11": 2, "manjaro": 2, "arch": 2, "ubuntu": 2, "debian": 2, "still": 2, "product": [2, 12], "mean": 2, "aren": 2, "t": [2, 5, 10], "ani": 2, "pre": 2, "binari": 2, "yet": 2, "so": 2, "have": 2, "build": 2, "yourself": 2, "befor": [2, 14], "ensur": 2, "c": 2, "compil": [2, 19], "cmake": 2, "git": 2, "clone": 2, "repositori": 2, "directori": [2, 7, 11], "cmd": 2, "enter": 2, "command": 2, "termin": 2, "md": 2, "cd": 2, "g": 2, "unix": 2, "makefil": 2, "d": 2, "cmake_cxx_compil": 2, "x86_64": 2, "w64": 2, "mingw32": 2, "make": 2, "drag": 2, "dll": 2, "file": [2, 6, 7, 11, 16, 17], "bin": 2, "next": 2, "execut": 2, "mai": 2, "own": 2, "gener": 2, "long": 2, "64": 2, "bit": 2, "cmakelist": 2, "txt": 2, "under": [2, 19], "current": [2, 17, 19], "difficult": 2, "link": 2, "depend": 2, "As": 2, "must": 2, "_dep": 2, "src": 2, "sdl2_ttf": 2, "sdl2_mixer": 2, "sdl2_imag": 2, "tmxlite": 2, "And": 2, "sdl2_build": 2, "namespac": [3, 12], "log_level": 3, "trace": 3, "1": [3, 10, 11], "debug": 3, "2": 3, "warn": 3, "3": 3, "error": [3, 6], "4": 3, "fatal": 3, "alwai": 3, "typedef": 3, "float": [3, 11, 13, 15], "float32_t": [3, 12], "doubl": [3, 5, 10, 14, 18], "float64_t": [3, 12], "sdl_scancod": 3, "kei": [3, 9], "sdl_event": 3, "sdl_color": 3, "color": [3, 4, 7, 14, 16], "variabl": 3, "sc_0": 3, "sdl_scancode_0": 3, "sc_1": 3, "sdl_scancode_1": 3, "sc_2": 3, "sdl_scancode_2": 3, "sc_3": 3, "sdl_scancode_3": 3, "sc_4": 3, "sdl_scancode_4": 3, "sc_5": 3, "sdl_scancode_5": 3, "sc_6": 3, "sdl_scancode_6": 3, "sc_7": 3, "sdl_scancode_7": 3, "sc_8": 3, "sdl_scancode_8": 3, "sc_9": 3, "sdl_scancode_9": 3, "sc_a": 3, "sdl_scancode_a": 3, "sc_b": 3, "sdl_scancode_b": 3, "sc_c": 3, "sdl_scancode_c": 3, "sc_d": 3, "sdl_scancode_d": 3, "sc_e": 3, "sdl_scancode_": 3, "sc_f": 3, "sdl_scancode_f": 3, "sc_g": 3, "sdl_scancode_g": 3, "sc_h": 3, "sdl_scancode_h": 3, "sc_i": 3, "sdl_scancode_i": 3, "sc_j": 3, "sdl_scancode_j": 3, "sc_k": 3, "sdl_scancode_k": 3, "sc_l": 3, "sdl_scancode_l": 3, "sc_m": 3, "sdl_scancode_m": 3, "sc_n": 3, "sdl_scancode_n": 3, "sc_o": 3, "sdl_scancode_o": 3, "sc_p": 3, "sdl_scancode_p": 3, "sc_q": 3, "sdl_scancode_q": 3, "sc_r": 3, "sdl_scancode_r": 3, "sc_": 3, "sc_t": 3, "sdl_scancode_t": 3, "sc_u": 3, "sdl_scancode_u": 3, "sc_v": 3, "sdl_scancode_v": 3, "sc_w": 3, "sdl_scancode_w": 3, "sc_x": 3, "sdl_scancode_x": 3, "sc_y": 3, "sc_z": 3, "sdl_scancode_z": 3, "sc_down": 3, "sdl_scancode_down": 3, "sc_left": 3, "sdl_scancode_left": 3, "sc_right": 3, "sdl_scancode_right": 3, "sc_up": 3, "sdl_scancode_up": 3, "sc_lalt": 3, "sdl_scancode_lalt": 3, "sc_lctrl": 3, "sdl_scancode_lctrl": 3, "sc_lshift": 3, "sdl_scancode_lshift": 3, "sc_ralt": 3, "sdl_scancode_ralt": 3, "sc_rctrl": 3, "sdl_scancode_rctrl": 3, "sc_return": 3, "sdl_scancode_return": 3, "sc_rshift": 3, "sdl_scancode_rshift": 3, "sc_space": 3, "sdl_scancode_spac": 3, "sc_tab": 3, "sdl_scancode_tab": 3, "sdl_eventtyp": 3, "sdl_quit": 3, "displayev": 3, "sdl_displayev": 3, "windowev": 3, "sdl_windowev": 3, "syswmev": 3, "sdl_syswmev": 3, "keydown": 3, "sdl_keydown": 3, "keyup": 3, "sdl_keyup": 3, "textedit": 3, "sdl_textedit": 3, "textinput": 3, "sdl_textinput": 3, "keymapchang": 3, "sdl_keymapchang": 3, "mousemot": 3, "sdl_mousemot": 3, "mousebuttondown": 3, "sdl_mousebuttondown": 3, "mousebuttonup": 3, "sdl_mousebuttonup": 3, "mousewheel": 3, "sdl_mousewheel": 3, "joyaxismot": 3, "sdl_joyaxismot": 3, "joyballmot": 3, "sdl_joyballmot": 3, "joyhatmot": 3, "sdl_joyhatmot": 3, "joybuttondown": 3, "sdl_joybuttondown": 3, "joybuttonup": 3, "sdl_joybuttonup": 3, "joydevicead": 3, "sdl_joydevicead": 3, "joydeviceremov": 3, "sdl_joydeviceremov": 3, "controlleraxismot": 3, "sdl_controlleraxismot": 3, "controllerbuttondown": 3, "sdl_controllerbuttondown": 3, "controllerbuttonup": 3, "sdl_controllerbuttonup": 3, "controllerdevicead": 3, "sdl_controllerdevicead": 3, "controllerdeviceremov": 3, "sdl_controllerdeviceremov": 3, "controllerdeviceremap": 3, "sdl_controllerdeviceremap": 3, "clipboardupd": 3, "sdl_clipboardupd": 3, "dropfil": 3, "sdl_dropfil": 3, "droptext": 3, "sdl_droptext": 3, "dropbegin": 3, "sdl_dropbegin": 3, "dropcomplet": 3, "sdl_dropcomplet": 3, "audiodevicead": 3, "sdl_audiodevicead": 3, "audiodeviceremov": 3, "sdl_audiodeviceremov": 3, "userev": 3, "sdl_userev": 3, "sdl_keycod": 3, "k_0": 3, "sdlk_0": 3, "k_1": 3, "sdlk_1": 3, "k_2": 3, "sdlk_2": 3, "k_3": 3, "sdlk_3": 3, "k_4": 3, "sdlk_4": 3, "k_5": 3, "sdlk_5": 3, "k_6": 3, "sdlk_6": 3, "k_7": 3, "sdlk_7": 3, "k_8": 3, "sdlk_8": 3, "k_9": 3, "sdlk_9": 3, "k_a": 3, "sdlk_a": 3, "k_b": 3, "sdlk_b": 3, "k_c": 3, "sdlk_c": 3, "k_d": 3, "sdlk_d": 3, "k_e": 3, "sdlk_e": 3, "k_f": 3, "sdlk_f": 3, "k_g": 3, "sdlk_g": 3, "k_h": 3, "sdlk_h": 3, "k_i": 3, "sdlk_i": 3, "k_j": 3, "sdlk_j": 3, "k_k": 3, "sdlk_k": 3, "k_l": 3, "sdlk_l": 3, "k_m": 3, "sdlk_m": 3, "k_n": 3, "sdlk_n": 3, "k_o": 3, "sdlk_o": 3, "k_p": 3, "sdlk_p": 3, "k_q": 3, "sdlk_q": 3, "k_r": 3, "sdlk_r": 3, "k_": 3, "sdlk_": 3, "k_t": 3, "sdlk_t": 3, "k_u": 3, "sdlk_u": 3, "k_v": 3, "sdlk_v": 3, "k_w": 3, "sdlk_w": 3, "k_x": 3, "sdlk_x": 3, "k_y": 3, "sdlk_y": 3, "k_z": 3, "sdlk_z": 3, "k_down": 3, "sdlk_down": 3, "k_left": 3, "sdlk_left": 3, "k_right": 3, "sdlk_right": 3, "k_up": 3, "sdlk_up": 3, "k_applic": 3, "sdlk_applic": 3, "k_audiomut": 3, "sdlk_audiomut": 3, "k_audionext": 3, "sdlk_audionext": 3, "k_audioplai": 3, "sdlk_audioplai": 3, "k_audioprev": 3, "sdlk_audioprev": 3, "k_audiostop": 3, "sdlk_audiostop": 3, "k_backslash": 3, "sdlk_backslash": 3, "k_backspac": 3, "sdlk_backspac": 3, "k_capslock": 3, "sdlk_capslock": 3, "k_comma": 3, "sdlk_comma": 3, "k_delet": 3, "sdlk_delet": 3, "k_displayswitch": 3, "sdlk_displayswitch": 3, "k_end": 3, "sdlk_end": 3, "k_equal": 3, "sdlk_equal": 3, "k_escap": 3, "sdlk_escap": 3, "k_f1": 3, "sdlk_f1": 3, "k_f2": 3, "sdlk_f2": 3, "k_f3": 3, "sdlk_f3": 3, "k_f4": 3, "sdlk_f4": 3, "k_f5": 3, "sdlk_f5": 3, "k_f6": 3, "sdlk_f6": 3, "k_f7": 3, "sdlk_f7": 3, "k_f8": 3, "sdlk_f8": 3, "k_f9": 3, "sdlk_f9": 3, "k_f10": 3, "sdlk_f10": 3, "k_f11": 3, "sdlk_f11": 3, "k_f12": 3, "sdlk_f12": 3, "k_backquot": 3, "sdlk_backquot": 3, "k_home": 3, "sdlk_home": 3, "k_insert": 3, "sdlk_insert": 3, "k_kp_0": 3, "sdlk_kp_0": 3, "k_kp_1": 3, "sdlk_kp_1": 3, "k_kp_2": 3, "sdlk_kp_2": 3, "k_kp_3": 3, "sdlk_kp_3": 3, "k_kp_4": 3, "sdlk_kp_4": 3, "k_kp_5": 3, "sdlk_kp_5": 3, "k_kp_6": 3, "sdlk_kp_6": 3, "k_kp_7": 3, "sdlk_kp_7": 3, "k_kp_8": 3, "sdlk_kp_8": 3, "k_kp_9": 3, "sdlk_kp_9": 3, "k_kp_divid": 3, "sdlk_kp_divid": 3, "k_kp_enter": 3, "sdlk_kp_enter": 3, "k_kp_minu": 3, "sdlk_kp_minu": 3, "k_kp_multipli": 3, "sdlk_kp_multipli": 3, "k_kp_period": 3, "sdlk_kp_period": 3, "k_kp_plu": 3, "sdlk_kp_plu": 3, "k_lalt": 3, "sdlk_lalt": 3, "k_lctrl": 3, "sdlk_lctrl": 3, "k_leftbracket": 3, "sdlk_leftbracket": 3, "k_lshift": 3, "sdlk_lshift": 3, "k_minu": 3, "sdlk_minu": 3, "k_numlockclear": 3, "sdlk_numlockclear": 3, "k_pagedown": 3, "sdlk_pagedown": 3, "k_pageup": 3, "sdlk_pageup": 3, "k_period": 3, "sdlk_period": 3, "k_printscreen": 3, "sdlk_printscreen": 3, "k_ralt": 3, "sdlk_ralt": 3, "k_rctrl": 3, "sdlk_rctrl": 3, "k_return": 3, "sdlk_return": 3, "k_rightbracket": 3, "sdlk_rightbracket": 3, "k_rshift": 3, "sdlk_rshift": 3, "k_semicolon": 3, "sdlk_semicolon": 3, "k_slash": 3, "sdlk_slash": 3, "k_space": 3, "sdlk_space": 3, "k_tab": 3, "sdlk_tab": 3, "k_ampersand": 3, "sdlk_ampersand": 3, "k_asterisk": 3, "sdlk_asterisk": 3, "k_at": 3, "sdlk_at": 3, "k_caret": 3, "sdlk_caret": 3, "k_colon": 3, "sdlk_colon": 3, "k_dollar": 3, "sdlk_dollar": 3, "k_exclaim": 3, "sdlk_exclaim": 3, "k_greater": 3, "sdlk_greater": 3, "k_hash": 3, "sdlk_hash": 3, "k_leftparen": 3, "sdlk_leftparen": 3, "k_less": 3, "sdlk_less": 3, "k_percent": 3, "sdlk_percent": 3, "k_plu": 3, "sdlk_plu": 3, "k_question": 3, "sdlk_question": 3, "k_quotedbl": 3, "sdlk_quotedbl": 3, "k_rightparen": 3, "sdlk_rightparen": 3, "k_underscor": 3, "sdlk_underscor": 3, "button_left": 3, "sdl_button_left": 3, "button_middl": 3, "sdl_button_middl": 3, "button_right": 3, "sdl_button_right": 3, "void": [4, 5, 6, 11, 13, 14, 15, 16, 17], "rect": [4, 8, 14, 15, 17], "thick": 4, "0": [4, 7, 10, 11, 12, 14], "rectangl": [4, 13, 14], "If": 4, "remain": 4, "fill": 4, "paramet": [4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "class": [5, 6, 7, 10, 11, 14, 15, 16, 17, 18], "an": [5, 10, 12, 16], "inherit": 5, "public": [5, 6, 7, 10, 11, 13, 14, 15, 16, 17, 18], "explicit": [5, 11, 15], "std": [5, 6, 7, 9, 11, 14, 16, 17], "shared_ptr": [5, 7, 14, 16, 17], "gettextur": [5, 16], "pointer": [5, 16], "protect": 5, "templat": 5, "typenam": 5, "inlin": [5, 6, 13, 14], "moveandcollid": 5, "deltatim": 5, "vector": [5, 9, 10, 14], "other": [5, 10], "move": [5, 9, 15, 16], "check": [5, 10, 12, 13, 19], "singleton": [6, 14, 16, 18], "log": 6, "handl": 6, "fail": [6, 10], "consol": 6, "string": [6, 7, 11, 14, 16, 17], "logstr": 6, "given": 6, "timestamp": 6, "mon": 6, "nov": 6, "20": 6, "23": 6, "28": 6, "22": 6, "2023": 6, "static": [6, 10, 14], "instanc": [6, 14], "A": [7, 10, 11, 13, 15, 16, 17, 18], "render": [7, 14], "text": 7, "filedir": [7, 11], "ptsize": 7, "point": [7, 13], "size": [7, 13, 15, 16], "antialia": 7, "wraplength": 7, "whether": [7, 13, 14], "length": [7, 10], "wrap": 7, "entiti": 8, "errorlogg": 8, "font": [8, 16], "texturecach": [8, 15, 17], "tilemap": 8, "constant": 8, "draw": [8, 14, 17], "input": 8, "mixer": 8, "overflow": [8, 10], "getmousepo": 9, "mous": 9, "posit": [9, 13, 14], "getmousebuttonpress": 9, "uint8": 9, "getkeyspress": 9, "getvector": 9, "left": 9, "right": 9, "up": 9, "down": 9, "2d": [10, 13], "getlength": 10, "happen": 10, "otherwis": [10, 12, 14], "normal": 10, "place": 10, "occur": [10, 12], "zero": [10, 12], "distanceto": 10, "distanc": 10, "anoth": [10, 13], "oper": 10, "add": 10, "two": 10, "sum": [10, 12], "subtract": 10, "differ": 10, "addit": 10, "same": 10, "compar": 10, "all": [10, 16], "compon": 10, "set": [10, 11, 13, 14, 15], "clampvec": 10, "vec": 10, "min": [10, 13], "max": [10, 13], "clamp": [10, 13], "minimum": [10, 13], "valu": [10, 12, 13], "maximum": [10, 13], "lerpvec": 10, "b": 10, "linearli": 10, "interpol": 10, "sound": 11, "object": [11, 15, 17], "plai": 11, "loop": 11, "playtim": 11, "fadem": 11, "number": 11, "millisecond": 11, "fade": 11, "setvolum": 11, "volum": 11, "unload": [11, 16], "free": 11, "memori": 11, "issumvalid": 12, "would": 12, "summat": 12, "valid": [12, 14], "uint32_t": 12, "uint64_t": 12, "int32_t": 12, "int64_t": 12, "isproductvalid": 12, "multiplc": 12, "closetozero": 12, "toler": 12, "0001": 12, "accuraci": 12, "anyth": 12, "closer": 12, "than": 12, "consid": 12, "0001f": 12, "struct": [13, 17], "sdl_frect": 13, "default": [13, 16], "y": [13, 14], "w": 13, "h": 13, "construct": [13, 17, 19], "new": [13, 14], "width": [13, 15], "height": [13, 15], "getpo": 13, "getsiz": [13, 15], "setsiz": [13, 15], "collidepoint": 13, "po": 13, "collid": 13, "colliderect": 13, "setcent": 13, "setleft": 13, "setright": 13, "settop": 13, "setbottom": 13, "settopleft": 13, "settopmid": 13, "settopright": 13, "setbottomleft": 13, "setbottommid": 13, "setbottomright": 13, "setleftmid": 13, "setrightmid": 13, "getcent": 13, "getleft": 13, "getright": 13, "gettop": 13, "getbottom": 13, "gettopleft": 13, "gettopmid": 13, "gettopright": 13, "getbottomleft": 13, "getbottommid": 13, "getbottomright": 13, "getleftmid": 13, "getrightmid": 13, "context": 14, "255": 14, "blit": 14, "crop": [14, 17], "blitex": 14, "angl": 14, "flipx": 14, "flipi": 14, "axi": 14, "sdl_render": 14, "getrender": 14, "getfullscreen": 14, "fullscreen": 14, "settitl": 14, "newtitl": 14, "titl": 14, "setfullscreen": 14, "getscal": 14, "scale": [14, 15], "setscal": 14, "newscal": 14, "instanti": [14, 16], "sdl_textur": 15, "load": [15, 16], "meant": 15, "sdl": 15, "getrect": 15, "getsdltextur": 15, "scalebi": 15, "factor": 15, "fitwidth": 15, "fit": 15, "maintain": 15, "aspect": 15, "ratio": 15, "fitheight": 15, "becom": [16, 18], "name": 16, "path": [16, 17], "solid": 16, "exist": 16, "recommend": 16, "map": [16, 17], "getcach": 16, "unloadal": 16, "method": 16, "destructor": 16, "repres": 17, "tile": 17, "compat": 17, "orthogon": 17, "layer": 17, "tmxpath": 17, "tmx": 17, "member": 17, "keep": 18, "track": 18, "framer": 18, "60": 18, "delta": 18, "between": 18, "rate": 18, "calcul": 18, "page": 19, "hard": 19, "video": 19, "most": 19, "out": 19, "pleas": 19, "back": 19, "soon": 19, "updat": 19}, "objects": {"": [[3, 0, 1, "_CPPv42kn", "kn"], [3, 1, 1, "_CPPv4N2kn16AUDIODEVICEADDEDE", "kn::AUDIODEVICEADDED"], [3, 1, 1, "_CPPv4N2kn18AUDIODEVICEREMOVEDE", "kn::AUDIODEVICEREMOVED"], [3, 1, 1, "_CPPv4N2kn11BUTTON_LEFTE", "kn::BUTTON_LEFT"], [3, 1, 1, "_CPPv4N2kn13BUTTON_MIDDLEE", "kn::BUTTON_MIDDLE"], [3, 1, 1, "_CPPv4N2kn12BUTTON_RIGHTE", "kn::BUTTON_RIGHT"], [3, 1, 1, "_CPPv4N2kn15CLIPBOARDUPDATEE", "kn::CLIPBOARDUPDATE"], [3, 1, 1, "_CPPv4N2kn20CONTROLLERAXISMOTIONE", "kn::CONTROLLERAXISMOTION"], [3, 1, 1, "_CPPv4N2kn20CONTROLLERBUTTONDOWNE", "kn::CONTROLLERBUTTONDOWN"], [3, 1, 1, "_CPPv4N2kn18CONTROLLERBUTTONUPE", "kn::CONTROLLERBUTTONUP"], [3, 1, 1, "_CPPv4N2kn21CONTROLLERDEVICEADDEDE", "kn::CONTROLLERDEVICEADDED"], [3, 1, 1, "_CPPv4N2kn24CONTROLLERDEVICEREMAPPEDE", "kn::CONTROLLERDEVICEREMAPPED"], [3, 1, 1, "_CPPv4N2kn23CONTROLLERDEVICEREMOVEDE", "kn::CONTROLLERDEVICEREMOVED"], [3, 0, 1, "_CPPv4N2kn5ColorE", "kn::Color"], [3, 1, 1, "_CPPv4N2kn12DISPLAYEVENTE", "kn::DISPLAYEVENT"], [3, 1, 1, "_CPPv4N2kn9DROPBEGINE", "kn::DROPBEGIN"], [3, 1, 1, "_CPPv4N2kn12DROPCOMPLETEE", "kn::DROPCOMPLETE"], [3, 1, 1, "_CPPv4N2kn8DROPFILEE", "kn::DROPFILE"], [3, 1, 1, "_CPPv4N2kn8DROPTEXTE", "kn::DROPTEXT"], [5, 2, 1, "_CPPv4N2kn6EntityE", "kn::Entity"], [5, 3, 1, "_CPPv4N2kn6Entity6EntityENSt10shared_ptrI7TextureEE", "kn::Entity::Entity"], [5, 4, 1, "_CPPv4N2kn6Entity6EntityENSt10shared_ptrI7TextureEE", "kn::Entity::Entity::texture"], [5, 3, 1, "_CPPv4NK2kn6Entity10getTextureEv", "kn::Entity::getTexture"], [5, 3, 1, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE", "kn::Entity::moveAndCollide"], [5, 5, 1, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE", "kn::Entity::moveAndCollide::T"], [5, 4, 1, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE", "kn::Entity::moveAndCollide::deltaTime"], [5, 4, 1, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE", "kn::Entity::moveAndCollide::others"], [6, 2, 1, "_CPPv4N2kn11ErrorLoggerE", "kn::ErrorLogger"], [6, 3, 1, "_CPPv4N2kn11ErrorLogger11getInstanceEv", "kn::ErrorLogger::getInstance"], [6, 3, 1, "_CPPv4N2kn11ErrorLogger3logERKNSt6stringE", "kn::ErrorLogger::log"], [6, 4, 1, "_CPPv4N2kn11ErrorLogger3logERKNSt6stringE", "kn::ErrorLogger::log::logString"], [3, 0, 1, "_CPPv4N2kn5EventE", "kn::Event"], [7, 2, 1, "_CPPv4N2kn4FontE", "kn::Font"], [7, 3, 1, "_CPPv4N2kn4Font4FontERKNSt6stringEi", "kn::Font::Font"], [7, 4, 1, "_CPPv4N2kn4Font4FontERKNSt6stringEi", "kn::Font::Font::fileDir"], [7, 4, 1, "_CPPv4N2kn4Font4FontERKNSt6stringEi", "kn::Font::Font::ptSize"], [7, 3, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render"], [7, 4, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render::antialias"], [7, 4, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render::color"], [7, 4, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render::text"], [7, 4, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render::wrapLength"], [3, 1, 1, "_CPPv4N2kn13JOYAXISMOTIONE", "kn::JOYAXISMOTION"], [3, 1, 1, "_CPPv4N2kn13JOYBALLMOTIONE", "kn::JOYBALLMOTION"], [3, 1, 1, "_CPPv4N2kn13JOYBUTTONDOWNE", "kn::JOYBUTTONDOWN"], [3, 1, 1, "_CPPv4N2kn11JOYBUTTONUPE", "kn::JOYBUTTONUP"], [3, 1, 1, "_CPPv4N2kn14JOYDEVICEADDEDE", "kn::JOYDEVICEADDED"], [3, 1, 1, "_CPPv4N2kn16JOYDEVICEREMOVEDE", "kn::JOYDEVICEREMOVED"], [3, 1, 1, "_CPPv4N2kn12JOYHATMOTIONE", "kn::JOYHATMOTION"], [3, 1, 1, "_CPPv4N2kn7KEYDOWNE", "kn::KEYDOWN"], [3, 1, 1, "_CPPv4N2kn13KEYMAPCHANGEDE", "kn::KEYMAPCHANGED"], [3, 0, 1, "_CPPv4N2kn4KEYSE", "kn::KEYS"], [3, 1, 1, "_CPPv4N2kn5KEYUPE", "kn::KEYUP"], [3, 1, 1, "_CPPv4N2kn3K_0E", "kn::K_0"], [3, 1, 1, "_CPPv4N2kn3K_1E", "kn::K_1"], [3, 1, 1, "_CPPv4N2kn3K_2E", "kn::K_2"], [3, 1, 1, "_CPPv4N2kn3K_3E", "kn::K_3"], [3, 1, 1, "_CPPv4N2kn3K_4E", "kn::K_4"], [3, 1, 1, "_CPPv4N2kn3K_5E", "kn::K_5"], [3, 1, 1, "_CPPv4N2kn3K_6E", "kn::K_6"], [3, 1, 1, "_CPPv4N2kn3K_7E", "kn::K_7"], [3, 1, 1, "_CPPv4N2kn3K_8E", "kn::K_8"], [3, 1, 1, "_CPPv4N2kn3K_9E", "kn::K_9"], [3, 1, 1, "_CPPv4N2kn11K_AMPERSANDE", "kn::K_AMPERSAND"], [3, 1, 1, "_CPPv4N2kn13K_APPLICATIONE", "kn::K_APPLICATION"], [3, 1, 1, "_CPPv4N2kn10K_ASTERISKE", "kn::K_ASTERISK"], [3, 1, 1, "_CPPv4N2kn4K_ATE", "kn::K_AT"], [3, 1, 1, "_CPPv4N2kn11K_AUDIOMUTEE", "kn::K_AUDIOMUTE"], [3, 1, 1, "_CPPv4N2kn11K_AUDIONEXTE", "kn::K_AUDIONEXT"], [3, 1, 1, "_CPPv4N2kn11K_AUDIOPLAYE", "kn::K_AUDIOPLAY"], [3, 1, 1, "_CPPv4N2kn11K_AUDIOPREVE", "kn::K_AUDIOPREV"], [3, 1, 1, "_CPPv4N2kn11K_AUDIOSTOPE", "kn::K_AUDIOSTOP"], [3, 1, 1, "_CPPv4N2kn11K_BACKQUOTEE", "kn::K_BACKQUOTE"], [3, 1, 1, "_CPPv4N2kn11K_BACKSLASHE", "kn::K_BACKSLASH"], [3, 1, 1, "_CPPv4N2kn11K_BACKSPACEE", "kn::K_BACKSPACE"], [3, 1, 1, "_CPPv4N2kn10K_CAPSLOCKE", "kn::K_CAPSLOCK"], [3, 1, 1, "_CPPv4N2kn7K_CARETE", "kn::K_CARET"], [3, 1, 1, "_CPPv4N2kn7K_COLONE", "kn::K_COLON"], [3, 1, 1, "_CPPv4N2kn7K_COMMAE", "kn::K_COMMA"], [3, 1, 1, "_CPPv4N2kn8K_DELETEE", "kn::K_DELETE"], [3, 1, 1, "_CPPv4N2kn15K_DISPLAYSWITCHE", "kn::K_DISPLAYSWITCH"], [3, 1, 1, "_CPPv4N2kn8K_DOLLARE", "kn::K_DOLLAR"], [3, 1, 1, "_CPPv4N2kn6K_DOWNE", "kn::K_DOWN"], [3, 1, 1, "_CPPv4N2kn5K_ENDE", "kn::K_END"], [3, 1, 1, "_CPPv4N2kn8K_EQUALSE", "kn::K_EQUALS"], [3, 1, 1, "_CPPv4N2kn8K_ESCAPEE", "kn::K_ESCAPE"], [3, 1, 1, "_CPPv4N2kn9K_EXCLAIME", "kn::K_EXCLAIM"], [3, 1, 1, "_CPPv4N2kn4K_F1E", "kn::K_F1"], [3, 1, 1, "_CPPv4N2kn5K_F10E", "kn::K_F10"], [3, 1, 1, "_CPPv4N2kn5K_F11E", "kn::K_F11"], [3, 1, 1, "_CPPv4N2kn5K_F12E", "kn::K_F12"], [3, 1, 1, "_CPPv4N2kn4K_F2E", "kn::K_F2"], [3, 1, 1, "_CPPv4N2kn4K_F3E", "kn::K_F3"], [3, 1, 1, "_CPPv4N2kn4K_F4E", "kn::K_F4"], [3, 1, 1, "_CPPv4N2kn4K_F5E", "kn::K_F5"], [3, 1, 1, "_CPPv4N2kn4K_F6E", "kn::K_F6"], [3, 1, 1, "_CPPv4N2kn4K_F7E", "kn::K_F7"], [3, 1, 1, "_CPPv4N2kn4K_F8E", "kn::K_F8"], [3, 1, 1, "_CPPv4N2kn4K_F9E", "kn::K_F9"], [3, 1, 1, "_CPPv4N2kn9K_GREATERE", "kn::K_GREATER"], [3, 1, 1, "_CPPv4N2kn6K_HASHE", "kn::K_HASH"], [3, 1, 1, "_CPPv4N2kn6K_HOMEE", "kn::K_HOME"], [3, 1, 1, "_CPPv4N2kn8K_INSERTE", "kn::K_INSERT"], [3, 1, 1, "_CPPv4N2kn6K_KP_0E", "kn::K_KP_0"], [3, 1, 1, "_CPPv4N2kn6K_KP_1E", "kn::K_KP_1"], [3, 1, 1, "_CPPv4N2kn6K_KP_2E", "kn::K_KP_2"], [3, 1, 1, "_CPPv4N2kn6K_KP_3E", "kn::K_KP_3"], [3, 1, 1, "_CPPv4N2kn6K_KP_4E", "kn::K_KP_4"], [3, 1, 1, "_CPPv4N2kn6K_KP_5E", "kn::K_KP_5"], [3, 1, 1, "_CPPv4N2kn6K_KP_6E", "kn::K_KP_6"], [3, 1, 1, "_CPPv4N2kn6K_KP_7E", "kn::K_KP_7"], [3, 1, 1, "_CPPv4N2kn6K_KP_8E", "kn::K_KP_8"], [3, 1, 1, "_CPPv4N2kn6K_KP_9E", "kn::K_KP_9"], [3, 1, 1, "_CPPv4N2kn11K_KP_DIVIDEE", "kn::K_KP_DIVIDE"], [3, 1, 1, "_CPPv4N2kn10K_KP_ENTERE", "kn::K_KP_ENTER"], [3, 1, 1, "_CPPv4N2kn10K_KP_MINUSE", "kn::K_KP_MINUS"], [3, 1, 1, "_CPPv4N2kn13K_KP_MULTIPLYE", "kn::K_KP_MULTIPLY"], [3, 1, 1, "_CPPv4N2kn11K_KP_PERIODE", "kn::K_KP_PERIOD"], [3, 1, 1, "_CPPv4N2kn9K_KP_PLUSE", "kn::K_KP_PLUS"], [3, 1, 1, "_CPPv4N2kn6K_LALTE", "kn::K_LALT"], [3, 1, 1, "_CPPv4N2kn7K_LCTRLE", "kn::K_LCTRL"], [3, 1, 1, "_CPPv4N2kn6K_LEFTE", "kn::K_LEFT"], [3, 1, 1, "_CPPv4N2kn13K_LEFTBRACKETE", "kn::K_LEFTBRACKET"], [3, 1, 1, "_CPPv4N2kn11K_LEFTPARENE", "kn::K_LEFTPAREN"], [3, 1, 1, "_CPPv4N2kn6K_LESSE", "kn::K_LESS"], [3, 1, 1, "_CPPv4N2kn8K_LSHIFTE", "kn::K_LSHIFT"], [3, 1, 1, "_CPPv4N2kn7K_MINUSE", "kn::K_MINUS"], [3, 1, 1, "_CPPv4N2kn14K_NUMLOCKCLEARE", "kn::K_NUMLOCKCLEAR"], [3, 1, 1, "_CPPv4N2kn10K_PAGEDOWNE", "kn::K_PAGEDOWN"], [3, 1, 1, "_CPPv4N2kn8K_PAGEUPE", "kn::K_PAGEUP"], [3, 1, 1, "_CPPv4N2kn9K_PERCENTE", "kn::K_PERCENT"], [3, 1, 1, "_CPPv4N2kn8K_PERIODE", "kn::K_PERIOD"], [3, 1, 1, "_CPPv4N2kn6K_PLUSE", "kn::K_PLUS"], [3, 1, 1, "_CPPv4N2kn13K_PRINTSCREENE", "kn::K_PRINTSCREEN"], [3, 1, 1, "_CPPv4N2kn10K_QUESTIONE", "kn::K_QUESTION"], [3, 1, 1, "_CPPv4N2kn10K_QUOTEDBLE", "kn::K_QUOTEDBL"], [3, 1, 1, "_CPPv4N2kn6K_RALTE", "kn::K_RALT"], [3, 1, 1, "_CPPv4N2kn7K_RCTRLE", "kn::K_RCTRL"], [3, 1, 1, "_CPPv4N2kn8K_RETURNE", "kn::K_RETURN"], [3, 1, 1, "_CPPv4N2kn7K_RIGHTE", "kn::K_RIGHT"], [3, 1, 1, "_CPPv4N2kn14K_RIGHTBRACKETE", "kn::K_RIGHTBRACKET"], [3, 1, 1, "_CPPv4N2kn12K_RIGHTPARENE", "kn::K_RIGHTPAREN"], [3, 1, 1, "_CPPv4N2kn8K_RSHIFTE", "kn::K_RSHIFT"], [3, 1, 1, "_CPPv4N2kn11K_SEMICOLONE", "kn::K_SEMICOLON"], [3, 1, 1, "_CPPv4N2kn7K_SLASHE", "kn::K_SLASH"], [3, 1, 1, "_CPPv4N2kn7K_SPACEE", "kn::K_SPACE"], [3, 1, 1, "_CPPv4N2kn5K_TABE", "kn::K_TAB"], [3, 1, 1, "_CPPv4N2kn12K_UNDERSCOREE", "kn::K_UNDERSCORE"], [3, 1, 1, "_CPPv4N2kn4K_UPE", "kn::K_UP"], [3, 1, 1, "_CPPv4N2kn3K_aE", "kn::K_a"], [3, 1, 1, "_CPPv4N2kn3K_bE", "kn::K_b"], [3, 1, 1, "_CPPv4N2kn3K_cE", "kn::K_c"], [3, 1, 1, "_CPPv4N2kn3K_dE", "kn::K_d"], [3, 1, 1, "_CPPv4N2kn3K_eE", "kn::K_e"], [3, 1, 1, "_CPPv4N2kn3K_fE", "kn::K_f"], [3, 1, 1, "_CPPv4N2kn3K_gE", "kn::K_g"], [3, 1, 1, "_CPPv4N2kn3K_hE", "kn::K_h"], [3, 1, 1, "_CPPv4N2kn3K_iE", "kn::K_i"], [3, 1, 1, "_CPPv4N2kn3K_jE", "kn::K_j"], [3, 1, 1, "_CPPv4N2kn3K_kE", "kn::K_k"], [3, 1, 1, "_CPPv4N2kn3K_lE", "kn::K_l"], [3, 1, 1, "_CPPv4N2kn3K_mE", "kn::K_m"], [3, 1, 1, "_CPPv4N2kn3K_nE", "kn::K_n"], [3, 1, 1, "_CPPv4N2kn3K_oE", "kn::K_o"], [3, 1, 1, "_CPPv4N2kn3K_pE", "kn::K_p"], [3, 1, 1, "_CPPv4N2kn3K_qE", "kn::K_q"], [3, 1, 1, "_CPPv4N2kn3K_rE", "kn::K_r"], [3, 1, 1, "_CPPv4N2kn3K_sE", "kn::K_s"], [3, 1, 1, "_CPPv4N2kn3K_tE", "kn::K_t"], [3, 1, 1, "_CPPv4N2kn3K_uE", "kn::K_u"], [3, 1, 1, "_CPPv4N2kn3K_vE", "kn::K_v"], [3, 1, 1, "_CPPv4N2kn3K_wE", "kn::K_w"], [3, 1, 1, "_CPPv4N2kn3K_xE", "kn::K_x"], [3, 1, 1, "_CPPv4N2kn3K_yE", "kn::K_y"], [3, 1, 1, "_CPPv4N2kn3K_zE", "kn::K_z"], [3, 1, 1, "_CPPv4N2kn15MOUSEBUTTONDOWNE", "kn::MOUSEBUTTONDOWN"], [3, 1, 1, "_CPPv4N2kn13MOUSEBUTTONUPE", "kn::MOUSEBUTTONUP"], [3, 1, 1, "_CPPv4N2kn11MOUSEMOTIONE", "kn::MOUSEMOTION"], [3, 1, 1, "_CPPv4N2kn10MOUSEWHEELE", "kn::MOUSEWHEEL"], [3, 1, 1, "_CPPv4N2kn4QUITE", "kn::QUIT"], [13, 2, 1, "_CPPv4N2kn4RectE", "kn::Rect"], [13, 3, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect"], [13, 3, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect"], [13, 3, 1, "_CPPv4N2kn4Rect4RectEv", "kn::Rect::Rect"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::h"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect::h"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::w"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect::w"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::x"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect::x"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::y"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect::y"], [13, 3, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp"], [13, 4, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp::max"], [13, 4, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp::min"], [13, 3, 1, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E", "kn::Rect::collidePoint"], [13, 4, 1, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E", "kn::Rect::collidePoint::pos"], [13, 3, 1, "_CPPv4N2kn4Rect11collideRectERK4Rect", "kn::Rect::collideRect"], [13, 4, 1, "_CPPv4N2kn4Rect11collideRectERK4Rect", "kn::Rect::collideRect::rect"], [13, 3, 1, "_CPPv4N2kn4Rect9getBottomEv", "kn::Rect::getBottom"], [13, 3, 1, "_CPPv4N2kn4Rect13getBottomLeftEv", "kn::Rect::getBottomLeft"], [13, 3, 1, "_CPPv4N2kn4Rect12getBottomMidEv", "kn::Rect::getBottomMid"], [13, 3, 1, "_CPPv4N2kn4Rect14getBottomRightEv", "kn::Rect::getBottomRight"], [13, 3, 1, "_CPPv4N2kn4Rect9getCenterEv", "kn::Rect::getCenter"], [13, 3, 1, "_CPPv4N2kn4Rect7getLeftEv", "kn::Rect::getLeft"], [13, 3, 1, "_CPPv4N2kn4Rect10getLeftMidEv", "kn::Rect::getLeftMid"], [13, 3, 1, "_CPPv4N2kn4Rect6getPosEv", "kn::Rect::getPos"], [13, 3, 1, "_CPPv4N2kn4Rect8getRightEv", "kn::Rect::getRight"], [13, 3, 1, "_CPPv4N2kn4Rect11getRightMidEv", "kn::Rect::getRightMid"], [13, 3, 1, "_CPPv4N2kn4Rect7getSizeEv", "kn::Rect::getSize"], [13, 3, 1, "_CPPv4N2kn4Rect6getTopEv", "kn::Rect::getTop"], [13, 3, 1, "_CPPv4N2kn4Rect10getTopLeftEv", "kn::Rect::getTopLeft"], [13, 3, 1, "_CPPv4N2kn4Rect9getTopMidEv", "kn::Rect::getTopMid"], [13, 3, 1, "_CPPv4N2kn4Rect11getTopRightEv", "kn::Rect::getTopRight"], [13, 3, 1, "_CPPv4N2kn4Rect9setBottomEf", "kn::Rect::setBottom"], [13, 4, 1, "_CPPv4N2kn4Rect9setBottomEf", "kn::Rect::setBottom::y"], [13, 3, 1, "_CPPv4N2kn4Rect13setBottomLeftERKN4math4Vec2E", "kn::Rect::setBottomLeft"], [13, 4, 1, "_CPPv4N2kn4Rect13setBottomLeftERKN4math4Vec2E", "kn::Rect::setBottomLeft::pos"], [13, 3, 1, "_CPPv4N2kn4Rect12setBottomMidERKN4math4Vec2E", "kn::Rect::setBottomMid"], [13, 4, 1, "_CPPv4N2kn4Rect12setBottomMidERKN4math4Vec2E", "kn::Rect::setBottomMid::pos"], [13, 3, 1, "_CPPv4N2kn4Rect14setBottomRightERKN4math4Vec2E", "kn::Rect::setBottomRight"], [13, 4, 1, "_CPPv4N2kn4Rect14setBottomRightERKN4math4Vec2E", "kn::Rect::setBottomRight::pos"], [13, 3, 1, "_CPPv4N2kn4Rect9setCenterERKN4math4Vec2E", "kn::Rect::setCenter"], [13, 4, 1, "_CPPv4N2kn4Rect9setCenterERKN4math4Vec2E", "kn::Rect::setCenter::pos"], [13, 3, 1, "_CPPv4N2kn4Rect7setLeftEf", "kn::Rect::setLeft"], [13, 4, 1, "_CPPv4N2kn4Rect7setLeftEf", "kn::Rect::setLeft::x"], [13, 3, 1, "_CPPv4N2kn4Rect10setLeftMidERKN4math4Vec2E", "kn::Rect::setLeftMid"], [13, 4, 1, "_CPPv4N2kn4Rect10setLeftMidERKN4math4Vec2E", "kn::Rect::setLeftMid::pos"], [13, 3, 1, "_CPPv4N2kn4Rect8setRightEf", "kn::Rect::setRight"], [13, 4, 1, "_CPPv4N2kn4Rect8setRightEf", "kn::Rect::setRight::x"], [13, 3, 1, "_CPPv4N2kn4Rect11setRightMidERKN4math4Vec2E", "kn::Rect::setRightMid"], [13, 4, 1, "_CPPv4N2kn4Rect11setRightMidERKN4math4Vec2E", "kn::Rect::setRightMid::pos"], [13, 3, 1, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E", "kn::Rect::setSize"], [13, 4, 1, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E", "kn::Rect::setSize::size"], [13, 3, 1, "_CPPv4N2kn4Rect6setTopEf", "kn::Rect::setTop"], [13, 4, 1, "_CPPv4N2kn4Rect6setTopEf", "kn::Rect::setTop::y"], [13, 3, 1, "_CPPv4N2kn4Rect10setTopLeftERKN4math4Vec2E", "kn::Rect::setTopLeft"], [13, 4, 1, "_CPPv4N2kn4Rect10setTopLeftERKN4math4Vec2E", "kn::Rect::setTopLeft::pos"], [13, 3, 1, "_CPPv4N2kn4Rect9setTopMidERKN4math4Vec2E", "kn::Rect::setTopMid"], [13, 4, 1, "_CPPv4N2kn4Rect9setTopMidERKN4math4Vec2E", "kn::Rect::setTopMid::pos"], [13, 3, 1, "_CPPv4N2kn4Rect11setTopRightERKN4math4Vec2E", "kn::Rect::setTopRight"], [13, 4, 1, "_CPPv4N2kn4Rect11setTopRightERKN4math4Vec2E", "kn::Rect::setTopRight::pos"], [14, 2, 1, "_CPPv4N2kn12RenderWindowE", "kn::RenderWindow"], [14, 3, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit"], [14, 3, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::crop"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit::position"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::rect"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::texture"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit::texture"], [14, 3, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx"], [14, 3, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::angle"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::angle"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::crop"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::flipX"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::flipX"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::flipY"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::flipY"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::position"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::rect"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::texture"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::texture"], [14, 3, 1, "_CPPv4N2kn12RenderWindow3clsE5Color", "kn::RenderWindow::cls"], [14, 4, 1, "_CPPv4N2kn12RenderWindow3clsE5Color", "kn::RenderWindow::cls::color"], [14, 3, 1, "_CPPv4N2kn12RenderWindow4flipEv", "kn::RenderWindow::flip"], [14, 3, 1, "_CPPv4N2kn12RenderWindow9getEventsEv", "kn::RenderWindow::getEvents"], [14, 3, 1, "_CPPv4NK2kn12RenderWindow13getFullscreenEv", "kn::RenderWindow::getFullscreen"], [14, 3, 1, "_CPPv4N2kn12RenderWindow11getInstanceEv", "kn::RenderWindow::getInstance"], [14, 3, 1, "_CPPv4N2kn12RenderWindow11getRendererEv", "kn::RenderWindow::getRenderer"], [14, 3, 1, "_CPPv4N2kn12RenderWindow8getScaleEv", "kn::RenderWindow::getScale"], [14, 3, 1, "_CPPv4N2kn12RenderWindow13setFullscreenEb", "kn::RenderWindow::setFullscreen"], [14, 4, 1, "_CPPv4N2kn12RenderWindow13setFullscreenEb", "kn::RenderWindow::setFullscreen::fullscreen"], [14, 3, 1, "_CPPv4N2kn12RenderWindow8setScaleEi", "kn::RenderWindow::setScale"], [14, 4, 1, "_CPPv4N2kn12RenderWindow8setScaleEi", "kn::RenderWindow::setScale::newScale"], [14, 3, 1, "_CPPv4N2kn12RenderWindow8setTitleERKNSt6stringE", "kn::RenderWindow::setTitle"], [14, 4, 1, "_CPPv4N2kn12RenderWindow8setTitleERKNSt6stringE", "kn::RenderWindow::setTitle::newTitle"], [3, 1, 1, "_CPPv4N2kn4SC_0E", "kn::SC_0"], [3, 1, 1, "_CPPv4N2kn4SC_1E", "kn::SC_1"], [3, 1, 1, "_CPPv4N2kn4SC_2E", "kn::SC_2"], [3, 1, 1, "_CPPv4N2kn4SC_3E", "kn::SC_3"], [3, 1, 1, "_CPPv4N2kn4SC_4E", "kn::SC_4"], [3, 1, 1, "_CPPv4N2kn4SC_5E", "kn::SC_5"], [3, 1, 1, "_CPPv4N2kn4SC_6E", "kn::SC_6"], [3, 1, 1, "_CPPv4N2kn4SC_7E", "kn::SC_7"], [3, 1, 1, "_CPPv4N2kn4SC_8E", "kn::SC_8"], [3, 1, 1, "_CPPv4N2kn4SC_9E", "kn::SC_9"], [3, 1, 1, "_CPPv4N2kn4SC_AE", "kn::SC_A"], [3, 1, 1, "_CPPv4N2kn4SC_BE", "kn::SC_B"], [3, 1, 1, "_CPPv4N2kn4SC_CE", "kn::SC_C"], [3, 1, 1, "_CPPv4N2kn4SC_DE", "kn::SC_D"], [3, 1, 1, "_CPPv4N2kn7SC_DOWNE", "kn::SC_DOWN"], [3, 1, 1, "_CPPv4N2kn4SC_EE", "kn::SC_E"], [3, 1, 1, "_CPPv4N2kn4SC_FE", "kn::SC_F"], [3, 1, 1, "_CPPv4N2kn4SC_GE", "kn::SC_G"], [3, 1, 1, "_CPPv4N2kn4SC_HE", "kn::SC_H"], [3, 1, 1, "_CPPv4N2kn4SC_IE", "kn::SC_I"], [3, 1, 1, "_CPPv4N2kn4SC_JE", "kn::SC_J"], [3, 1, 1, "_CPPv4N2kn4SC_KE", "kn::SC_K"], [3, 1, 1, "_CPPv4N2kn4SC_LE", "kn::SC_L"], [3, 1, 1, "_CPPv4N2kn7SC_LALTE", "kn::SC_LALT"], [3, 1, 1, "_CPPv4N2kn8SC_LCTRLE", "kn::SC_LCTRL"], [3, 1, 1, "_CPPv4N2kn7SC_LEFTE", "kn::SC_LEFT"], [3, 1, 1, "_CPPv4N2kn9SC_LSHIFTE", "kn::SC_LSHIFT"], [3, 1, 1, "_CPPv4N2kn4SC_ME", "kn::SC_M"], [3, 1, 1, "_CPPv4N2kn4SC_NE", "kn::SC_N"], [3, 1, 1, "_CPPv4N2kn4SC_OE", "kn::SC_O"], [3, 1, 1, "_CPPv4N2kn4SC_PE", "kn::SC_P"], [3, 1, 1, "_CPPv4N2kn4SC_QE", "kn::SC_Q"], [3, 1, 1, "_CPPv4N2kn4SC_RE", "kn::SC_R"], [3, 1, 1, "_CPPv4N2kn7SC_RALTE", "kn::SC_RALT"], [3, 1, 1, "_CPPv4N2kn8SC_RCTRLE", "kn::SC_RCTRL"], [3, 1, 1, "_CPPv4N2kn9SC_RETURNE", "kn::SC_RETURN"], [3, 1, 1, "_CPPv4N2kn8SC_RIGHTE", "kn::SC_RIGHT"], [3, 1, 1, "_CPPv4N2kn9SC_RSHIFTE", "kn::SC_RSHIFT"], [3, 1, 1, "_CPPv4N2kn4SC_SE", "kn::SC_S"], [3, 1, 1, "_CPPv4N2kn8SC_SPACEE", "kn::SC_SPACE"], [3, 1, 1, "_CPPv4N2kn4SC_TE", "kn::SC_T"], [3, 1, 1, "_CPPv4N2kn6SC_TABE", "kn::SC_TAB"], [3, 1, 1, "_CPPv4N2kn4SC_UE", "kn::SC_U"], [3, 1, 1, "_CPPv4N2kn5SC_UPE", "kn::SC_UP"], [3, 1, 1, "_CPPv4N2kn4SC_VE", "kn::SC_V"], [3, 1, 1, "_CPPv4N2kn4SC_WE", "kn::SC_W"], [3, 1, 1, "_CPPv4N2kn4SC_XE", "kn::SC_X"], [3, 1, 1, "_CPPv4N2kn4SC_YE", "kn::SC_Y"], [3, 1, 1, "_CPPv4N2kn4SC_ZE", "kn::SC_Z"], [3, 1, 1, "_CPPv4N2kn10SYSWMEVENTE", "kn::SYSWMEVENT"], [3, 1, 1, "_CPPv4N2kn11TEXTEDITINGE", "kn::TEXTEDITING"], [3, 1, 1, "_CPPv4N2kn9TEXTINPUTE", "kn::TEXTINPUT"], [15, 2, 1, "_CPPv4N2kn7TextureE", "kn::Texture"], [15, 3, 1, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture", "kn::Texture::Texture"], [15, 4, 1, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture", "kn::Texture::Texture::texture"], [15, 3, 1, "_CPPv4N2kn7Texture9fitHeightEf", "kn::Texture::fitHeight"], [15, 4, 1, "_CPPv4N2kn7Texture9fitHeightEf", "kn::Texture::fitHeight::height"], [15, 3, 1, "_CPPv4N2kn7Texture8fitWidthEf", "kn::Texture::fitWidth"], [15, 4, 1, "_CPPv4N2kn7Texture8fitWidthEf", "kn::Texture::fitWidth::width"], [15, 3, 1, "_CPPv4NK2kn7Texture7getRectEv", "kn::Texture::getRect"], [15, 3, 1, "_CPPv4NK2kn7Texture13getSDLTextureEv", "kn::Texture::getSDLTexture"], [15, 3, 1, "_CPPv4NK2kn7Texture7getSizeEv", "kn::Texture::getSize"], [15, 3, 1, "_CPPv4N2kn7Texture7scaleByEf", "kn::Texture::scaleBy"], [15, 4, 1, "_CPPv4N2kn7Texture7scaleByEf", "kn::Texture::scaleBy::factor"], [15, 3, 1, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E", "kn::Texture::setSize"], [15, 4, 1, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E", "kn::Texture::setSize::size"], [16, 2, 1, "_CPPv4N2kn12TextureCacheE", "kn::TextureCache"], [16, 3, 1, "_CPPv4N2kn12TextureCache12TextureCacheEv", "kn::TextureCache::TextureCache"], [16, 3, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color", "kn::TextureCache::create"], [16, 4, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color", "kn::TextureCache::create::color"], [16, 4, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color", "kn::TextureCache::create::name"], [16, 4, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color", "kn::TextureCache::create::size"], [16, 3, 1, "_CPPv4NK2kn12TextureCache8getCacheEv", "kn::TextureCache::getCache"], [16, 3, 1, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE", "kn::TextureCache::getTexture"], [16, 4, 1, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE", "kn::TextureCache::getTexture::name"], [16, 3, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load"], [16, 4, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load::name"], [16, 4, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load::path"], [16, 3, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move"], [16, 4, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move::name"], [16, 4, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move::texture"], [16, 3, 1, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE", "kn::TextureCache::unload"], [16, 4, 1, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE", "kn::TextureCache::unload::name"], [16, 3, 1, "_CPPv4N2kn12TextureCache9unloadAllEv", "kn::TextureCache::unloadAll"], [17, 2, 1, "_CPPv4N2kn4TileE", "kn::Tile"], [17, 1, 1, "_CPPv4N2kn4Tile4cropE", "kn::Tile::crop"], [17, 1, 1, "_CPPv4N2kn4Tile4rectE", "kn::Tile::rect"], [17, 1, 1, "_CPPv4N2kn4Tile7textureE", "kn::Tile::texture"], [17, 2, 1, "_CPPv4N2kn7TileMapE", "kn::TileMap"], [17, 3, 1, "_CPPv4N2kn7TileMap7TileMapER12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap"], [17, 4, 1, "_CPPv4N2kn7TileMap7TileMapER12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap::textureCache"], [17, 4, 1, "_CPPv4N2kn7TileMap7TileMapER12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap::tmxPath"], [17, 3, 1, "_CPPv4N2kn7TileMap4drawEv", "kn::TileMap::draw"], [3, 1, 1, "_CPPv4N2kn9USEREVENTE", "kn::USEREVENT"], [3, 1, 1, "_CPPv4N2kn11WINDOWEVENTE", "kn::WINDOWEVENT"], [4, 3, 1, "_CPPv4N2kn4draw4rectER4RectK5Colori", "kn::draw::rect"], [4, 4, 1, "_CPPv4N2kn4draw4rectER4RectK5Colori", "kn::draw::rect::color"], [4, 4, 1, "_CPPv4N2kn4draw4rectER4RectK5Colori", "kn::draw::rect::rect"], [4, 4, 1, "_CPPv4N2kn4draw4rectER4RectK5Colori", "kn::draw::rect::thickness"], [3, 0, 1, "_CPPv4N2kn9float32_tE", "kn::float32_t"], [3, 0, 1, "_CPPv4N2kn9float64_tE", "kn::float64_t"], [9, 3, 1, "_CPPv4N2kn5input14getKeysPressedEv", "kn::input::getKeysPressed"], [9, 3, 1, "_CPPv4N2kn5input21getMouseButtonPressedEv", "kn::input::getMouseButtonPressed"], [9, 3, 1, "_CPPv4N2kn5input11getMousePosEv", "kn::input::getMousePos"], [9, 3, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector"], [9, 4, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector::down"], [9, 4, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector::left"], [9, 4, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector::right"], [9, 4, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector::up"], [10, 2, 1, "_CPPv4N2kn4math4Vec2E", "kn::math::Vec2"], [10, 3, 1, "_CPPv4N2kn4math4Vec24ZEROEv", "kn::math::Vec2::ZERO"], [10, 3, 1, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2", "kn::math::Vec2::distanceTo"], [10, 4, 1, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2", "kn::math::Vec2::distanceTo::other"], [10, 3, 1, "_CPPv4NK2kn4math4Vec29getLengthEv", "kn::math::Vec2::getLength"], [10, 3, 1, "_CPPv4N2kn4math4Vec29normalizeEv", "kn::math::Vec2::normalize"], [10, 3, 1, "_CPPv4NK2kn4math4Vec2neERK4Vec2", "kn::math::Vec2::operator!="], [10, 4, 1, "_CPPv4NK2kn4math4Vec2neERK4Vec2", "kn::math::Vec2::operator!=::other"], [10, 3, 1, "_CPPv4NK2kn4math4Vec2plERK4Vec2", "kn::math::Vec2::operator+"], [10, 4, 1, "_CPPv4NK2kn4math4Vec2plERK4Vec2", "kn::math::Vec2::operator+::other"], [10, 3, 1, "_CPPv4N2kn4math4Vec2pLERK4Vec2", "kn::math::Vec2::operator+="], [10, 4, 1, "_CPPv4N2kn4math4Vec2pLERK4Vec2", "kn::math::Vec2::operator+=::other"], [10, 3, 1, "_CPPv4NK2kn4math4Vec2miERK4Vec2", "kn::math::Vec2::operator-"], [10, 4, 1, "_CPPv4NK2kn4math4Vec2miERK4Vec2", "kn::math::Vec2::operator-::other"], [10, 3, 1, "_CPPv4NK2kn4math4Vec2eqERK4Vec2", "kn::math::Vec2::operator=="], [10, 4, 1, "_CPPv4NK2kn4math4Vec2eqERK4Vec2", "kn::math::Vec2::operator==::other"], [10, 3, 1, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec"], [10, 4, 1, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::max"], [10, 4, 1, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::min"], [10, 4, 1, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::vec"], [10, 3, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d", "kn::math::lerpVec"], [10, 4, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d", "kn::math::lerpVec::a"], [10, 4, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d", "kn::math::lerpVec::b"], [10, 4, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d", "kn::math::lerpVec::t"], [11, 2, 1, "_CPPv4N2kn5mixer5SoundE", "kn::mixer::Sound"], [11, 3, 1, "_CPPv4N2kn5mixer5Sound5SoundERKNSt6stringE", "kn::mixer::Sound::Sound"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound5SoundERKNSt6stringE", "kn::mixer::Sound::Sound::fileDir"], [11, 3, 1, "_CPPv4N2kn5mixer5Sound4playEiii", "kn::mixer::Sound::play"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound4playEiii", "kn::mixer::Sound::play::fadeMs"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound4playEiii", "kn::mixer::Sound::play::loops"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound4playEiii", "kn::mixer::Sound::play::playTime"], [11, 3, 1, "_CPPv4N2kn5mixer5Sound9setVolumeEf", "kn::mixer::Sound::setVolume"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound9setVolumeEf", "kn::mixer::Sound::setVolume::volume"], [11, 3, 1, "_CPPv4N2kn5mixer5Sound6unloadEv", "kn::mixer::Sound::unload"], [12, 0, 1, "_CPPv4N2kn8overflowE", "kn::overflow"], [12, 3, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float32_tK9float32_t", "kn::overflow::closeToZero"], [12, 3, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float64_tK9float64_t", "kn::overflow::closeToZero"], [12, 4, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float32_tK9float32_t", "kn::overflow::closeToZero::tolerance"], [12, 4, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float64_tK9float64_t", "kn::overflow::closeToZero::tolerance"], [12, 4, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float32_tK9float32_t", "kn::overflow::closeToZero::value"], [12, 4, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float64_tK9float64_t", "kn::overflow::closeToZero::value"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK7int32_tRK7int32_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK7int64_tRK7int64_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint32_tRK8uint32_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint64_tRK8uint64_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK9float32_tRK9float32_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK9float64_tRK9float64_t", "kn::overflow::isProductValid"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK7int32_tRK7int32_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK7int64_tRK7int64_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint32_tRK8uint32_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint64_tRK8uint64_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK9float32_tRK9float32_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK9float64_tRK9float64_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK7int32_tRK7int32_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK7int64_tRK7int64_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint32_tRK8uint32_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint64_tRK8uint64_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK9float32_tRK9float32_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK9float64_tRK9float64_t", "kn::overflow::isProductValid::second"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK7int32_tRK7int32_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK7int64_tRK7int64_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint32_tRK8uint32_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint64_tRK8uint64_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK9float32_tRK9float32_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK9float64_tRK9float64_t", "kn::overflow::isSumValid"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK7int32_tRK7int32_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK7int64_tRK7int64_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint32_tRK8uint32_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint64_tRK8uint64_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK9float32_tRK9float32_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK9float64_tRK9float64_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK7int32_tRK7int32_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK7int64_tRK7int64_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint32_tRK8uint32_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint64_tRK8uint64_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK9float32_tRK9float32_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK9float64_tRK9float64_t", "kn::overflow::isSumValid::second"], [18, 2, 1, "_CPPv4N2kn4time5ClockE", "kn::time::Clock"], [18, 3, 1, "_CPPv4N2kn4time5Clock4tickEi", "kn::time::Clock::tick"], [18, 4, 1, "_CPPv4N2kn4time5Clock4tickEi", "kn::time::Clock::tick::frameRate"]]}, "objtypes": {"0": "cpp:type", "1": "cpp:member", "2": "cpp:class", "3": "cpp:function", "4": "cpp:functionParam", "5": "cpp:templateParam"}, "objnames": {"0": ["cpp", "type", "C++ type"], "1": ["cpp", "member", "C++ member"], "2": ["cpp", "class", "C++ class"], "3": ["cpp", "function", "C++ function"], "4": ["cpp", "functionParam", "C++ function parameter"], "5": ["cpp", "templateParam", "C++ template parameter"]}, "titleterms": {"get": 0, "start": 0, "creat": 0, "window": 0, "kraken": 1, "engin": 1, "doc": 1, "about": 1, "futur": 1, "commun": 1, "instal": 2, "constant": 3, "draw": 4, "entiti": 5, "errorlogg": 6, "font": 7, "api": 8, "refer": 8, "input": 9, "math": 10, "mixer": 11, "overflow": 12, "rect": 13, "renderwindow": 14, "textur": 15, "texturecach": 16, "tilemap": 17, "time": 18, "tutori": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Getting Started": [[0, "getting-started"]], "Creating a Window": [[0, "creating-a-window"]], "Kraken Engine Docs": [[1, "kraken-engine-docs"]], "About": [[1, "about"]], "Future of Kraken Engine": [[1, "future-of-kraken-engine"]], "Community": [[1, "community"]], "Installation": [[2, "installation"]], "constants": [[3, "constants"]], "draw": [[4, "draw"]], "Entity": [[5, "entity"]], "ErrorLogger": [[6, "errorlogger"]], "Font": [[7, "font"]], "API Reference": [[8, "api-reference"]], "input": [[9, "input"]], "math": [[10, "math"]], "mixer": [[11, "mixer"]], "overflow": [[12, "overflow"]], "Rect": [[13, "rect"]], "RenderWindow": [[14, "renderwindow"]], "Texture": [[15, "texture"]], "TextureCache": [[16, "texturecache"]], "TileMap": [[17, "tilemap"]], "time": [[18, "time"]], "Tutorials": [[19, "tutorials"]]}, "indexentries": {"kn (c++ type)": [[3, "_CPPv42kn"]], "kn::audiodeviceadded (c++ member)": [[3, "_CPPv4N2kn16AUDIODEVICEADDEDE"]], "kn::audiodeviceremoved (c++ member)": [[3, "_CPPv4N2kn18AUDIODEVICEREMOVEDE"]], "kn::button_left (c++ member)": [[3, "_CPPv4N2kn11BUTTON_LEFTE"]], "kn::button_middle (c++ member)": [[3, "_CPPv4N2kn13BUTTON_MIDDLEE"]], "kn::button_right (c++ member)": [[3, "_CPPv4N2kn12BUTTON_RIGHTE"]], "kn::clipboardupdate (c++ member)": [[3, "_CPPv4N2kn15CLIPBOARDUPDATEE"]], "kn::controlleraxismotion (c++ member)": [[3, "_CPPv4N2kn20CONTROLLERAXISMOTIONE"]], "kn::controllerbuttondown (c++ member)": [[3, "_CPPv4N2kn20CONTROLLERBUTTONDOWNE"]], "kn::controllerbuttonup (c++ member)": [[3, "_CPPv4N2kn18CONTROLLERBUTTONUPE"]], "kn::controllerdeviceadded (c++ member)": [[3, "_CPPv4N2kn21CONTROLLERDEVICEADDEDE"]], "kn::controllerdeviceremapped (c++ member)": [[3, "_CPPv4N2kn24CONTROLLERDEVICEREMAPPEDE"]], "kn::controllerdeviceremoved (c++ member)": [[3, "_CPPv4N2kn23CONTROLLERDEVICEREMOVEDE"]], "kn::color (c++ type)": [[3, "_CPPv4N2kn5ColorE"]], "kn::displayevent (c++ member)": [[3, "_CPPv4N2kn12DISPLAYEVENTE"]], "kn::dropbegin (c++ member)": [[3, "_CPPv4N2kn9DROPBEGINE"]], "kn::dropcomplete (c++ member)": [[3, "_CPPv4N2kn12DROPCOMPLETEE"]], "kn::dropfile (c++ member)": [[3, "_CPPv4N2kn8DROPFILEE"]], "kn::droptext (c++ member)": [[3, "_CPPv4N2kn8DROPTEXTE"]], "kn::event (c++ type)": [[3, "_CPPv4N2kn5EventE"]], "kn::joyaxismotion (c++ member)": [[3, "_CPPv4N2kn13JOYAXISMOTIONE"]], "kn::joyballmotion (c++ member)": [[3, "_CPPv4N2kn13JOYBALLMOTIONE"]], "kn::joybuttondown (c++ member)": [[3, "_CPPv4N2kn13JOYBUTTONDOWNE"]], "kn::joybuttonup (c++ member)": [[3, "_CPPv4N2kn11JOYBUTTONUPE"]], "kn::joydeviceadded (c++ member)": [[3, "_CPPv4N2kn14JOYDEVICEADDEDE"]], "kn::joydeviceremoved (c++ member)": [[3, "_CPPv4N2kn16JOYDEVICEREMOVEDE"]], "kn::joyhatmotion (c++ member)": [[3, "_CPPv4N2kn12JOYHATMOTIONE"]], "kn::keydown (c++ member)": [[3, "_CPPv4N2kn7KEYDOWNE"]], "kn::keymapchanged (c++ member)": [[3, "_CPPv4N2kn13KEYMAPCHANGEDE"]], "kn::keys (c++ type)": [[3, "_CPPv4N2kn4KEYSE"]], "kn::keyup (c++ member)": [[3, "_CPPv4N2kn5KEYUPE"]], "kn::k_0 (c++ member)": [[3, "_CPPv4N2kn3K_0E"]], "kn::k_1 (c++ member)": [[3, "_CPPv4N2kn3K_1E"]], "kn::k_2 (c++ member)": [[3, "_CPPv4N2kn3K_2E"]], "kn::k_3 (c++ member)": [[3, "_CPPv4N2kn3K_3E"]], "kn::k_4 (c++ member)": [[3, "_CPPv4N2kn3K_4E"]], "kn::k_5 (c++ member)": [[3, "_CPPv4N2kn3K_5E"]], "kn::k_6 (c++ member)": [[3, "_CPPv4N2kn3K_6E"]], "kn::k_7 (c++ member)": [[3, "_CPPv4N2kn3K_7E"]], "kn::k_8 (c++ member)": [[3, "_CPPv4N2kn3K_8E"]], "kn::k_9 (c++ member)": [[3, "_CPPv4N2kn3K_9E"]], "kn::k_ampersand (c++ member)": [[3, "_CPPv4N2kn11K_AMPERSANDE"]], "kn::k_application (c++ member)": [[3, "_CPPv4N2kn13K_APPLICATIONE"]], "kn::k_asterisk (c++ member)": [[3, "_CPPv4N2kn10K_ASTERISKE"]], "kn::k_at (c++ member)": [[3, "_CPPv4N2kn4K_ATE"]], "kn::k_audiomute (c++ member)": [[3, "_CPPv4N2kn11K_AUDIOMUTEE"]], "kn::k_audionext (c++ member)": [[3, "_CPPv4N2kn11K_AUDIONEXTE"]], "kn::k_audioplay (c++ member)": [[3, "_CPPv4N2kn11K_AUDIOPLAYE"]], "kn::k_audioprev (c++ member)": [[3, "_CPPv4N2kn11K_AUDIOPREVE"]], "kn::k_audiostop (c++ member)": [[3, "_CPPv4N2kn11K_AUDIOSTOPE"]], "kn::k_backquote (c++ member)": [[3, "_CPPv4N2kn11K_BACKQUOTEE"]], "kn::k_backslash (c++ member)": [[3, "_CPPv4N2kn11K_BACKSLASHE"]], "kn::k_backspace (c++ member)": [[3, "_CPPv4N2kn11K_BACKSPACEE"]], "kn::k_capslock (c++ member)": [[3, "_CPPv4N2kn10K_CAPSLOCKE"]], "kn::k_caret (c++ member)": [[3, "_CPPv4N2kn7K_CARETE"]], "kn::k_colon (c++ member)": [[3, "_CPPv4N2kn7K_COLONE"]], "kn::k_comma (c++ member)": [[3, "_CPPv4N2kn7K_COMMAE"]], "kn::k_delete (c++ member)": [[3, "_CPPv4N2kn8K_DELETEE"]], "kn::k_displayswitch (c++ member)": [[3, "_CPPv4N2kn15K_DISPLAYSWITCHE"]], "kn::k_dollar (c++ member)": [[3, "_CPPv4N2kn8K_DOLLARE"]], "kn::k_down (c++ member)": [[3, "_CPPv4N2kn6K_DOWNE"]], "kn::k_end (c++ member)": [[3, "_CPPv4N2kn5K_ENDE"]], "kn::k_equals (c++ member)": [[3, "_CPPv4N2kn8K_EQUALSE"]], "kn::k_escape (c++ member)": [[3, "_CPPv4N2kn8K_ESCAPEE"]], "kn::k_exclaim (c++ member)": [[3, "_CPPv4N2kn9K_EXCLAIME"]], "kn::k_f1 (c++ member)": [[3, "_CPPv4N2kn4K_F1E"]], "kn::k_f10 (c++ member)": [[3, "_CPPv4N2kn5K_F10E"]], "kn::k_f11 (c++ member)": [[3, "_CPPv4N2kn5K_F11E"]], "kn::k_f12 (c++ member)": [[3, "_CPPv4N2kn5K_F12E"]], "kn::k_f2 (c++ member)": [[3, "_CPPv4N2kn4K_F2E"]], "kn::k_f3 (c++ member)": [[3, "_CPPv4N2kn4K_F3E"]], "kn::k_f4 (c++ member)": [[3, "_CPPv4N2kn4K_F4E"]], "kn::k_f5 (c++ member)": [[3, "_CPPv4N2kn4K_F5E"]], "kn::k_f6 (c++ member)": [[3, "_CPPv4N2kn4K_F6E"]], "kn::k_f7 (c++ member)": [[3, "_CPPv4N2kn4K_F7E"]], "kn::k_f8 (c++ member)": [[3, "_CPPv4N2kn4K_F8E"]], "kn::k_f9 (c++ member)": [[3, "_CPPv4N2kn4K_F9E"]], "kn::k_greater (c++ member)": [[3, "_CPPv4N2kn9K_GREATERE"]], "kn::k_hash (c++ member)": [[3, "_CPPv4N2kn6K_HASHE"]], "kn::k_home (c++ member)": [[3, "_CPPv4N2kn6K_HOMEE"]], "kn::k_insert (c++ member)": [[3, "_CPPv4N2kn8K_INSERTE"]], "kn::k_kp_0 (c++ member)": [[3, "_CPPv4N2kn6K_KP_0E"]], "kn::k_kp_1 (c++ member)": [[3, "_CPPv4N2kn6K_KP_1E"]], "kn::k_kp_2 (c++ member)": [[3, "_CPPv4N2kn6K_KP_2E"]], "kn::k_kp_3 (c++ member)": [[3, "_CPPv4N2kn6K_KP_3E"]], "kn::k_kp_4 (c++ member)": [[3, "_CPPv4N2kn6K_KP_4E"]], "kn::k_kp_5 (c++ member)": [[3, "_CPPv4N2kn6K_KP_5E"]], "kn::k_kp_6 (c++ member)": [[3, "_CPPv4N2kn6K_KP_6E"]], "kn::k_kp_7 (c++ member)": [[3, "_CPPv4N2kn6K_KP_7E"]], "kn::k_kp_8 (c++ member)": [[3, "_CPPv4N2kn6K_KP_8E"]], "kn::k_kp_9 (c++ member)": [[3, "_CPPv4N2kn6K_KP_9E"]], "kn::k_kp_divide (c++ member)": [[3, "_CPPv4N2kn11K_KP_DIVIDEE"]], "kn::k_kp_enter (c++ member)": [[3, "_CPPv4N2kn10K_KP_ENTERE"]], "kn::k_kp_minus (c++ member)": [[3, "_CPPv4N2kn10K_KP_MINUSE"]], "kn::k_kp_multiply (c++ member)": [[3, "_CPPv4N2kn13K_KP_MULTIPLYE"]], "kn::k_kp_period (c++ member)": [[3, "_CPPv4N2kn11K_KP_PERIODE"]], "kn::k_kp_plus (c++ member)": [[3, "_CPPv4N2kn9K_KP_PLUSE"]], "kn::k_lalt (c++ member)": [[3, "_CPPv4N2kn6K_LALTE"]], "kn::k_lctrl (c++ member)": [[3, "_CPPv4N2kn7K_LCTRLE"]], "kn::k_left (c++ member)": [[3, "_CPPv4N2kn6K_LEFTE"]], "kn::k_leftbracket (c++ member)": [[3, "_CPPv4N2kn13K_LEFTBRACKETE"]], "kn::k_leftparen (c++ member)": [[3, "_CPPv4N2kn11K_LEFTPARENE"]], "kn::k_less (c++ member)": [[3, "_CPPv4N2kn6K_LESSE"]], "kn::k_lshift (c++ member)": [[3, "_CPPv4N2kn8K_LSHIFTE"]], "kn::k_minus (c++ member)": [[3, "_CPPv4N2kn7K_MINUSE"]], "kn::k_numlockclear (c++ member)": [[3, "_CPPv4N2kn14K_NUMLOCKCLEARE"]], "kn::k_pagedown (c++ member)": [[3, "_CPPv4N2kn10K_PAGEDOWNE"]], "kn::k_pageup (c++ member)": [[3, "_CPPv4N2kn8K_PAGEUPE"]], "kn::k_percent (c++ member)": [[3, "_CPPv4N2kn9K_PERCENTE"]], "kn::k_period (c++ member)": [[3, "_CPPv4N2kn8K_PERIODE"]], "kn::k_plus (c++ member)": [[3, "_CPPv4N2kn6K_PLUSE"]], "kn::k_printscreen (c++ member)": [[3, "_CPPv4N2kn13K_PRINTSCREENE"]], "kn::k_question (c++ member)": [[3, "_CPPv4N2kn10K_QUESTIONE"]], "kn::k_quotedbl (c++ member)": [[3, "_CPPv4N2kn10K_QUOTEDBLE"]], "kn::k_ralt (c++ member)": [[3, "_CPPv4N2kn6K_RALTE"]], "kn::k_rctrl (c++ member)": [[3, "_CPPv4N2kn7K_RCTRLE"]], "kn::k_return (c++ member)": [[3, "_CPPv4N2kn8K_RETURNE"]], "kn::k_right (c++ member)": [[3, "_CPPv4N2kn7K_RIGHTE"]], "kn::k_rightbracket (c++ member)": [[3, "_CPPv4N2kn14K_RIGHTBRACKETE"]], "kn::k_rightparen (c++ member)": [[3, "_CPPv4N2kn12K_RIGHTPARENE"]], "kn::k_rshift (c++ member)": [[3, "_CPPv4N2kn8K_RSHIFTE"]], "kn::k_semicolon (c++ member)": [[3, "_CPPv4N2kn11K_SEMICOLONE"]], "kn::k_slash (c++ member)": [[3, "_CPPv4N2kn7K_SLASHE"]], "kn::k_space (c++ member)": [[3, "_CPPv4N2kn7K_SPACEE"]], "kn::k_tab (c++ member)": [[3, "_CPPv4N2kn5K_TABE"]], "kn::k_underscore (c++ member)": [[3, "_CPPv4N2kn12K_UNDERSCOREE"]], "kn::k_up (c++ member)": [[3, "_CPPv4N2kn4K_UPE"]], "kn::k_a (c++ member)": [[3, "_CPPv4N2kn3K_aE"]], "kn::k_b (c++ member)": [[3, "_CPPv4N2kn3K_bE"]], "kn::k_c (c++ member)": [[3, "_CPPv4N2kn3K_cE"]], "kn::k_d (c++ member)": [[3, "_CPPv4N2kn3K_dE"]], "kn::k_e (c++ member)": [[3, "_CPPv4N2kn3K_eE"]], "kn::k_f (c++ member)": [[3, "_CPPv4N2kn3K_fE"]], "kn::k_g (c++ member)": [[3, "_CPPv4N2kn3K_gE"]], "kn::k_h (c++ member)": [[3, "_CPPv4N2kn3K_hE"]], "kn::k_i (c++ member)": [[3, "_CPPv4N2kn3K_iE"]], "kn::k_j (c++ member)": [[3, "_CPPv4N2kn3K_jE"]], "kn::k_k (c++ member)": [[3, "_CPPv4N2kn3K_kE"]], "kn::k_l (c++ member)": [[3, "_CPPv4N2kn3K_lE"]], "kn::k_m (c++ member)": [[3, "_CPPv4N2kn3K_mE"]], "kn::k_n (c++ member)": [[3, "_CPPv4N2kn3K_nE"]], "kn::k_o (c++ member)": [[3, "_CPPv4N2kn3K_oE"]], "kn::k_p (c++ member)": [[3, "_CPPv4N2kn3K_pE"]], "kn::k_q (c++ member)": [[3, "_CPPv4N2kn3K_qE"]], "kn::k_r (c++ member)": [[3, "_CPPv4N2kn3K_rE"]], "kn::k_s (c++ member)": [[3, "_CPPv4N2kn3K_sE"]], "kn::k_t (c++ member)": [[3, "_CPPv4N2kn3K_tE"]], "kn::k_u (c++ member)": [[3, "_CPPv4N2kn3K_uE"]], "kn::k_v (c++ member)": [[3, "_CPPv4N2kn3K_vE"]], "kn::k_w (c++ member)": [[3, "_CPPv4N2kn3K_wE"]], "kn::k_x (c++ member)": [[3, "_CPPv4N2kn3K_xE"]], "kn::k_y (c++ member)": [[3, "_CPPv4N2kn3K_yE"]], "kn::k_z (c++ member)": [[3, "_CPPv4N2kn3K_zE"]], "kn::mousebuttondown (c++ member)": [[3, "_CPPv4N2kn15MOUSEBUTTONDOWNE"]], "kn::mousebuttonup (c++ member)": [[3, "_CPPv4N2kn13MOUSEBUTTONUPE"]], "kn::mousemotion (c++ member)": [[3, "_CPPv4N2kn11MOUSEMOTIONE"]], "kn::mousewheel (c++ member)": [[3, "_CPPv4N2kn10MOUSEWHEELE"]], "kn::quit (c++ member)": [[3, "_CPPv4N2kn4QUITE"]], "kn::sc_0 (c++ member)": [[3, "_CPPv4N2kn4SC_0E"]], "kn::sc_1 (c++ member)": [[3, "_CPPv4N2kn4SC_1E"]], "kn::sc_2 (c++ member)": [[3, "_CPPv4N2kn4SC_2E"]], "kn::sc_3 (c++ member)": [[3, "_CPPv4N2kn4SC_3E"]], "kn::sc_4 (c++ member)": [[3, "_CPPv4N2kn4SC_4E"]], "kn::sc_5 (c++ member)": [[3, "_CPPv4N2kn4SC_5E"]], "kn::sc_6 (c++ member)": [[3, "_CPPv4N2kn4SC_6E"]], "kn::sc_7 (c++ member)": [[3, "_CPPv4N2kn4SC_7E"]], "kn::sc_8 (c++ member)": [[3, "_CPPv4N2kn4SC_8E"]], "kn::sc_9 (c++ member)": [[3, "_CPPv4N2kn4SC_9E"]], "kn::sc_a (c++ member)": [[3, "_CPPv4N2kn4SC_AE"]], "kn::sc_b (c++ member)": [[3, "_CPPv4N2kn4SC_BE"]], "kn::sc_c (c++ member)": [[3, "_CPPv4N2kn4SC_CE"]], "kn::sc_d (c++ member)": [[3, "_CPPv4N2kn4SC_DE"]], "kn::sc_down (c++ member)": [[3, "_CPPv4N2kn7SC_DOWNE"]], "kn::sc_e (c++ member)": [[3, "_CPPv4N2kn4SC_EE"]], "kn::sc_f (c++ member)": [[3, "_CPPv4N2kn4SC_FE"]], "kn::sc_g (c++ member)": [[3, "_CPPv4N2kn4SC_GE"]], "kn::sc_h (c++ member)": [[3, "_CPPv4N2kn4SC_HE"]], "kn::sc_i (c++ member)": [[3, "_CPPv4N2kn4SC_IE"]], "kn::sc_j (c++ member)": [[3, "_CPPv4N2kn4SC_JE"]], "kn::sc_k (c++ member)": [[3, "_CPPv4N2kn4SC_KE"]], "kn::sc_l (c++ member)": [[3, "_CPPv4N2kn4SC_LE"]], "kn::sc_lalt (c++ member)": [[3, "_CPPv4N2kn7SC_LALTE"]], "kn::sc_lctrl (c++ member)": [[3, "_CPPv4N2kn8SC_LCTRLE"]], "kn::sc_left (c++ member)": [[3, "_CPPv4N2kn7SC_LEFTE"]], "kn::sc_lshift (c++ member)": [[3, "_CPPv4N2kn9SC_LSHIFTE"]], "kn::sc_m (c++ member)": [[3, "_CPPv4N2kn4SC_ME"]], "kn::sc_n (c++ member)": [[3, "_CPPv4N2kn4SC_NE"]], "kn::sc_o (c++ member)": [[3, "_CPPv4N2kn4SC_OE"]], "kn::sc_p (c++ member)": [[3, "_CPPv4N2kn4SC_PE"]], "kn::sc_q (c++ member)": [[3, "_CPPv4N2kn4SC_QE"]], "kn::sc_r (c++ member)": [[3, "_CPPv4N2kn4SC_RE"]], "kn::sc_ralt (c++ member)": [[3, "_CPPv4N2kn7SC_RALTE"]], "kn::sc_rctrl (c++ member)": [[3, "_CPPv4N2kn8SC_RCTRLE"]], "kn::sc_return (c++ member)": [[3, "_CPPv4N2kn9SC_RETURNE"]], "kn::sc_right (c++ member)": [[3, "_CPPv4N2kn8SC_RIGHTE"]], "kn::sc_rshift (c++ member)": [[3, "_CPPv4N2kn9SC_RSHIFTE"]], "kn::sc_s (c++ member)": [[3, "_CPPv4N2kn4SC_SE"]], "kn::sc_space (c++ member)": [[3, "_CPPv4N2kn8SC_SPACEE"]], "kn::sc_t (c++ member)": [[3, "_CPPv4N2kn4SC_TE"]], "kn::sc_tab (c++ member)": [[3, "_CPPv4N2kn6SC_TABE"]], "kn::sc_u (c++ member)": [[3, "_CPPv4N2kn4SC_UE"]], "kn::sc_up (c++ member)": [[3, "_CPPv4N2kn5SC_UPE"]], "kn::sc_v (c++ member)": [[3, "_CPPv4N2kn4SC_VE"]], "kn::sc_w (c++ member)": [[3, "_CPPv4N2kn4SC_WE"]], "kn::sc_x (c++ member)": [[3, "_CPPv4N2kn4SC_XE"]], "kn::sc_y (c++ member)": [[3, "_CPPv4N2kn4SC_YE"]], "kn::sc_z (c++ member)": [[3, "_CPPv4N2kn4SC_ZE"]], "kn::syswmevent (c++ member)": [[3, "_CPPv4N2kn10SYSWMEVENTE"]], "kn::textediting (c++ member)": [[3, "_CPPv4N2kn11TEXTEDITINGE"]], "kn::textinput (c++ member)": [[3, "_CPPv4N2kn9TEXTINPUTE"]], "kn::userevent (c++ member)": [[3, "_CPPv4N2kn9USEREVENTE"]], "kn::windowevent (c++ member)": [[3, "_CPPv4N2kn11WINDOWEVENTE"]], "kn::float32_t (c++ type)": [[3, "_CPPv4N2kn9float32_tE"]], "kn::float64_t (c++ type)": [[3, "_CPPv4N2kn9float64_tE"]], "kn::draw::rect (c++ function)": [[4, "_CPPv4N2kn4draw4rectER4RectK5Colori"]], "kn::entity (c++ class)": [[5, "_CPPv4N2kn6EntityE"]], "kn::entity::entity (c++ function)": [[5, "_CPPv4N2kn6Entity6EntityENSt10shared_ptrI7TextureEE"]], "kn::entity::gettexture (c++ function)": [[5, "_CPPv4NK2kn6Entity10getTextureEv"]], "kn::entity::moveandcollide (c++ function)": [[5, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE"]], "kn::errorlogger (c++ class)": [[6, "_CPPv4N2kn11ErrorLoggerE"]], "kn::errorlogger::getinstance (c++ function)": [[6, "_CPPv4N2kn11ErrorLogger11getInstanceEv"]], "kn::errorlogger::log (c++ function)": [[6, "_CPPv4N2kn11ErrorLogger3logERKNSt6stringE"]], "kn::font (c++ class)": [[7, "_CPPv4N2kn4FontE"]], "kn::font::font (c++ function)": [[7, "_CPPv4N2kn4Font4FontERKNSt6stringEi"]], "kn::font::render (c++ function)": [[7, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori"]], "kn::input::getkeyspressed (c++ function)": [[9, "_CPPv4N2kn5input14getKeysPressedEv"]], "kn::input::getmousebuttonpressed (c++ function)": [[9, "_CPPv4N2kn5input21getMouseButtonPressedEv"]], "kn::input::getmousepos (c++ function)": [[9, "_CPPv4N2kn5input11getMousePosEv"]], "kn::input::getvector (c++ function)": [[9, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE"]], "kn::math::vec2 (c++ class)": [[10, "_CPPv4N2kn4math4Vec2E"]], "kn::math::vec2::zero (c++ function)": [[10, "_CPPv4N2kn4math4Vec24ZEROEv"]], "kn::math::vec2::distanceto (c++ function)": [[10, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2"]], "kn::math::vec2::getlength (c++ function)": [[10, "_CPPv4NK2kn4math4Vec29getLengthEv"]], "kn::math::vec2::normalize (c++ function)": [[10, "_CPPv4N2kn4math4Vec29normalizeEv"]], "kn::math::vec2::operator!= (c++ function)": [[10, "_CPPv4NK2kn4math4Vec2neERK4Vec2"]], "kn::math::vec2::operator+ (c++ function)": [[10, "_CPPv4NK2kn4math4Vec2plERK4Vec2"]], "kn::math::vec2::operator+= (c++ function)": [[10, "_CPPv4N2kn4math4Vec2pLERK4Vec2"]], "kn::math::vec2::operator- (c++ function)": [[10, "_CPPv4NK2kn4math4Vec2miERK4Vec2"]], "kn::math::vec2::operator== (c++ function)": [[10, "_CPPv4NK2kn4math4Vec2eqERK4Vec2"]], "kn::math::clampvec (c++ function)": [[10, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2"]], "kn::math::lerpvec (c++ function)": [[10, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d"]], "kn::mixer::sound (c++ class)": [[11, "_CPPv4N2kn5mixer5SoundE"]], "kn::mixer::sound::sound (c++ function)": [[11, "_CPPv4N2kn5mixer5Sound5SoundERKNSt6stringE"]], "kn::mixer::sound::play (c++ function)": [[11, "_CPPv4N2kn5mixer5Sound4playEiii"]], "kn::mixer::sound::setvolume (c++ function)": [[11, "_CPPv4N2kn5mixer5Sound9setVolumeEf"]], "kn::mixer::sound::unload (c++ function)": [[11, "_CPPv4N2kn5mixer5Sound6unloadEv"]], "kn::overflow (c++ type)": [[12, "_CPPv4N2kn8overflowE"]], "kn::overflow::closetozero (c++ function)": [[12, "_CPPv4N2kn8overflow11closeToZeroERK9float32_tK9float32_t"], [12, "_CPPv4N2kn8overflow11closeToZeroERK9float64_tK9float64_t"]], "kn::overflow::isproductvalid (c++ function)": [[12, "_CPPv4N2kn8overflow14isProductValidERK7int32_tRK7int32_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK7int64_tRK7int64_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK8uint32_tRK8uint32_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK8uint64_tRK8uint64_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK9float32_tRK9float32_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK9float64_tRK9float64_t"]], "kn::overflow::issumvalid (c++ function)": [[12, "_CPPv4N2kn8overflow10isSumValidERK7int32_tRK7int32_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK7int64_tRK7int64_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK8uint32_tRK8uint32_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK8uint64_tRK8uint64_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK9float32_tRK9float32_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK9float64_tRK9float64_t"]], "kn::rect (c++ struct)": [[13, "_CPPv4N2kn4RectE"]], "kn::rect::rect (c++ function)": [[13, "_CPPv4N2kn4Rect4RectEffff"], [13, "_CPPv4N2kn4Rect4RectEiiii"], [13, "_CPPv4N2kn4Rect4RectEv"]], "kn::rect::clamp (c++ function)": [[13, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E"]], "kn::rect::collidepoint (c++ function)": [[13, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E"]], "kn::rect::colliderect (c++ function)": [[13, "_CPPv4N2kn4Rect11collideRectERK4Rect"]], "kn::rect::getbottom (c++ function)": [[13, "_CPPv4N2kn4Rect9getBottomEv"]], "kn::rect::getbottomleft (c++ function)": [[13, "_CPPv4N2kn4Rect13getBottomLeftEv"]], "kn::rect::getbottommid (c++ function)": [[13, "_CPPv4N2kn4Rect12getBottomMidEv"]], "kn::rect::getbottomright (c++ function)": [[13, "_CPPv4N2kn4Rect14getBottomRightEv"]], "kn::rect::getcenter (c++ function)": [[13, "_CPPv4N2kn4Rect9getCenterEv"]], "kn::rect::getleft (c++ function)": [[13, "_CPPv4N2kn4Rect7getLeftEv"]], "kn::rect::getleftmid (c++ function)": [[13, "_CPPv4N2kn4Rect10getLeftMidEv"]], "kn::rect::getpos (c++ function)": [[13, "_CPPv4N2kn4Rect6getPosEv"]], "kn::rect::getright (c++ function)": [[13, "_CPPv4N2kn4Rect8getRightEv"]], "kn::rect::getrightmid (c++ function)": [[13, "_CPPv4N2kn4Rect11getRightMidEv"]], "kn::rect::getsize (c++ function)": [[13, "_CPPv4N2kn4Rect7getSizeEv"]], "kn::rect::gettop (c++ function)": [[13, "_CPPv4N2kn4Rect6getTopEv"]], "kn::rect::gettopleft (c++ function)": [[13, "_CPPv4N2kn4Rect10getTopLeftEv"]], "kn::rect::gettopmid (c++ function)": [[13, "_CPPv4N2kn4Rect9getTopMidEv"]], "kn::rect::gettopright (c++ function)": [[13, "_CPPv4N2kn4Rect11getTopRightEv"]], "kn::rect::setbottom (c++ function)": [[13, "_CPPv4N2kn4Rect9setBottomEf"]], "kn::rect::setbottomleft (c++ function)": [[13, "_CPPv4N2kn4Rect13setBottomLeftERKN4math4Vec2E"]], "kn::rect::setbottommid (c++ function)": [[13, "_CPPv4N2kn4Rect12setBottomMidERKN4math4Vec2E"]], "kn::rect::setbottomright (c++ function)": [[13, "_CPPv4N2kn4Rect14setBottomRightERKN4math4Vec2E"]], "kn::rect::setcenter (c++ function)": [[13, "_CPPv4N2kn4Rect9setCenterERKN4math4Vec2E"]], "kn::rect::setleft (c++ function)": [[13, "_CPPv4N2kn4Rect7setLeftEf"]], "kn::rect::setleftmid (c++ function)": [[13, "_CPPv4N2kn4Rect10setLeftMidERKN4math4Vec2E"]], "kn::rect::setright (c++ function)": [[13, "_CPPv4N2kn4Rect8setRightEf"]], "kn::rect::setrightmid (c++ function)": [[13, "_CPPv4N2kn4Rect11setRightMidERKN4math4Vec2E"]], "kn::rect::setsize (c++ function)": [[13, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E"]], "kn::rect::settop (c++ function)": [[13, "_CPPv4N2kn4Rect6setTopEf"]], "kn::rect::settopleft (c++ function)": [[13, "_CPPv4N2kn4Rect10setTopLeftERKN4math4Vec2E"]], "kn::rect::settopmid (c++ function)": [[13, "_CPPv4N2kn4Rect9setTopMidERKN4math4Vec2E"]], "kn::rect::settopright (c++ function)": [[13, "_CPPv4N2kn4Rect11setTopRightERKN4math4Vec2E"]], "kn::renderwindow (c++ class)": [[14, "_CPPv4N2kn12RenderWindowE"]], "kn::renderwindow::blit (c++ function)": [[14, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect"], [14, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E"]], "kn::renderwindow::blitex (c++ function)": [[14, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb"], [14, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb"]], "kn::renderwindow::cls (c++ function)": [[14, "_CPPv4N2kn12RenderWindow3clsE5Color"]], "kn::renderwindow::flip (c++ function)": [[14, "_CPPv4N2kn12RenderWindow4flipEv"]], "kn::renderwindow::getevents (c++ function)": [[14, "_CPPv4N2kn12RenderWindow9getEventsEv"]], "kn::renderwindow::getfullscreen (c++ function)": [[14, "_CPPv4NK2kn12RenderWindow13getFullscreenEv"]], "kn::renderwindow::getinstance (c++ function)": [[14, "_CPPv4N2kn12RenderWindow11getInstanceEv"]], "kn::renderwindow::getrenderer (c++ function)": [[14, "_CPPv4N2kn12RenderWindow11getRendererEv"]], "kn::renderwindow::getscale (c++ function)": [[14, "_CPPv4N2kn12RenderWindow8getScaleEv"]], "kn::renderwindow::setfullscreen (c++ function)": [[14, "_CPPv4N2kn12RenderWindow13setFullscreenEb"]], "kn::renderwindow::setscale (c++ function)": [[14, "_CPPv4N2kn12RenderWindow8setScaleEi"]], "kn::renderwindow::settitle (c++ function)": [[14, "_CPPv4N2kn12RenderWindow8setTitleERKNSt6stringE"]], "kn::texture (c++ class)": [[15, "_CPPv4N2kn7TextureE"]], "kn::texture::texture (c++ function)": [[15, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture"]], "kn::texture::fitheight (c++ function)": [[15, "_CPPv4N2kn7Texture9fitHeightEf"]], "kn::texture::fitwidth (c++ function)": [[15, "_CPPv4N2kn7Texture8fitWidthEf"]], "kn::texture::getrect (c++ function)": [[15, "_CPPv4NK2kn7Texture7getRectEv"]], "kn::texture::getsdltexture (c++ function)": [[15, "_CPPv4NK2kn7Texture13getSDLTextureEv"]], "kn::texture::getsize (c++ function)": [[15, "_CPPv4NK2kn7Texture7getSizeEv"]], "kn::texture::scaleby (c++ function)": [[15, "_CPPv4N2kn7Texture7scaleByEf"]], "kn::texture::setsize (c++ function)": [[15, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E"]], "kn::texturecache (c++ class)": [[16, "_CPPv4N2kn12TextureCacheE"]], "kn::texturecache::texturecache (c++ function)": [[16, "_CPPv4N2kn12TextureCache12TextureCacheEv"]], "kn::texturecache::create (c++ function)": [[16, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color"]], "kn::texturecache::getcache (c++ function)": [[16, "_CPPv4NK2kn12TextureCache8getCacheEv"]], "kn::texturecache::gettexture (c++ function)": [[16, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE"]], "kn::texturecache::load (c++ function)": [[16, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE"]], "kn::texturecache::move (c++ function)": [[16, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE"]], "kn::texturecache::unload (c++ function)": [[16, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE"]], "kn::texturecache::unloadall (c++ function)": [[16, "_CPPv4N2kn12TextureCache9unloadAllEv"]], "kn::tile (c++ struct)": [[17, "_CPPv4N2kn4TileE"]], "kn::tile::crop (c++ member)": [[17, "_CPPv4N2kn4Tile4cropE"]], "kn::tile::rect (c++ member)": [[17, "_CPPv4N2kn4Tile4rectE"]], "kn::tile::texture (c++ member)": [[17, "_CPPv4N2kn4Tile7textureE"]], "kn::tilemap (c++ class)": [[17, "_CPPv4N2kn7TileMapE"]], "kn::tilemap::tilemap (c++ function)": [[17, "_CPPv4N2kn7TileMap7TileMapER12TextureCacheRKNSt6stringE"]], "kn::tilemap::draw (c++ function)": [[17, "_CPPv4N2kn7TileMap4drawEv"]], "kn::time::clock (c++ class)": [[18, "_CPPv4N2kn4time5ClockE"]], "kn::time::clock::tick (c++ function)": [[18, "_CPPv4N2kn4time5Clock4tickEi"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["getting_started/index", "index", "installation", "reference/constants", "reference/draw", "reference/entity", "reference/error_logger", "reference/font", "reference/index", "reference/input", "reference/math", "reference/mixer", "reference/overflow", "reference/rect", "reference/render_window", "reference/texture", "reference/texture_cache", "reference/tile_map", "reference/time", "tutorials/index"], "filenames": ["getting_started/index.rst", "index.rst", "installation.rst", "reference/constants.rst", "reference/draw.rst", "reference/entity.rst", "reference/error_logger.rst", "reference/font.rst", "reference/index.rst", "reference/input.rst", "reference/math.rst", "reference/mixer.rst", "reference/overflow.rst", "reference/rect.rst", "reference/render_window.rst", "reference/texture.rst", "reference/texture_cache.rst", "reference/tile_map.rst", "reference/time.rst", "tutorials/index.rst"], "titles": ["Getting Started", "Kraken Engine Docs", "Installation", "constants", "draw", "Entity", "ErrorLogger", "Font", "API Reference", "input", "math", "mixer", "overflow", "Rect", "RenderWindow", "Texture", "TextureCache", "TileMap", "time", "Tutorials"], "terms": {"after": 0, "follow": [0, 2], "instal": [0, 1], "guid": [0, 1], "you": [0, 1, 2, 19], "ar": [0, 10, 19], "readi": [0, 2], "your": [0, 1, 2], "first": [0, 10, 12, 14], "kraken": [0, 2, 19], "engin": [0, 2, 19], "program": [0, 2], "includ": [0, 1, 2], "krakenengin": 0, "hpp": 0, "const": [0, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17], "kn": [0, 3, 4, 9, 10, 14], "math": [0, 8, 9, 13, 14, 15, 16], "vec2": [0, 9, 10, 13, 14, 15, 16], "screen_siz": [0, 13], "800": 0, "600": 0, "int": [0, 3, 4, 7, 9, 11, 13, 14, 18], "main": 0, "renderwindow": [0, 8], "getinst": [0, 6, 14], "time": [0, 5, 8, 10, 11, 14], "clock": [0, 18], "bool": [0, 7, 10, 12, 13, 14], "done": 0, "fals": [0, 10, 12, 14], "while": [0, 5, 15], "tick": [0, 18], "auto": 0, "event": [0, 3, 14], "getev": [0, 14], "type": 0, "quit": [0, 3], "true": [0, 10, 12, 14], "cl": [0, 14], "flip": [0, 14], "return": [0, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 18], "exit_success": 0, "thi": [0, 1, 2, 10, 11, 12, 15, 16, 17, 18, 19], "code": 0, "open": [0, 2], "close": [0, 10, 12], "when": 0, "user": [0, 14, 15], "press": [0, 9], "": [0, 1, 5], "x": [0, 13, 14], "button": [0, 9], "It": [0, 1], "also": 0, "clear": [0, 14], "screen": [0, 14], "everi": 0, "frame": [0, 5, 14, 18], "buffer": [0, 14], "The": [0, 1, 2, 4, 5, 7, 9, 10, 11, 13, 14, 15, 16, 17, 18], "function": [0, 1, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "elaps": 0, "sinc": [0, 5], "last": [0, 5], "call": [0, 16], "second": [0, 10, 12], "i": [1, 2, 10, 11, 12, 14, 15, 16, 17, 18, 19], "power": 1, "extens": 1, "sdl2": [1, 2], "design": 1, "streamlin": 1, "game": 1, "develop": [1, 2], "process": [1, 2], "provid": 1, "suit": 1, "easi": 1, "us": [1, 2, 12, 14, 15, 17], "featur": 1, "textur": [1, 5, 7, 8, 14, 16, 17], "cach": [1, 16, 17], "collis": [1, 5], "logic": 1, "allow": 1, "focu": 1, "creat": [1, 5, 7, 11, 15, 16, 19], "immers": 1, "experi": 1, "player": 1, "document": 1, "comprehens": 1, "cover": 1, "everyth": 1, "from": [1, 2, 5, 11, 14, 16, 17], "advanc": 1, "intend": 1, "both": 1, "beginn": 1, "experienc": 1, "get": [1, 5, 6, 9, 10, 13, 14, 15, 16, 18, 19], "start": [1, 2], "tutori": 1, "api": 1, "refer": [1, 6, 10, 14, 16], "plan": [1, 11, 16, 18], "implement": 1, "essenti": 1, "mathemat": 1, "like": [1, 6], "pathfind": 1, "raycast": 1, "built": [1, 2], "physic": 1, "further": 1, "enhanc": 1, "its": 1, "capabl": 1, "versatil": 1, "join": 1, "our": 1, "discord": 1, "help": [1, 19], "share": 1, "project": 1, "contribut": 1, "we": [1, 19], "look": [1, 6], "forward": 1, "see": 1, "incred": 1, "now": 2, "ha": 2, "onli": [2, 14, 17], "been": 2, "test": 2, "confirm": 2, "work": [2, 19], "system": 2, "mingw64": 2, "window": [2, 14], "10": 2, "11": 2, "manjaro": 2, "arch": 2, "ubuntu": 2, "debian": 2, "still": 2, "product": [2, 12], "mean": 2, "aren": 2, "t": [2, 5, 10], "ani": 2, "pre": 2, "binari": 2, "yet": 2, "so": 2, "have": 2, "build": 2, "yourself": 2, "befor": [2, 14], "ensur": 2, "c": 2, "compil": [2, 19], "cmake": 2, "git": 2, "clone": 2, "repositori": 2, "directori": [2, 7, 11], "cmd": 2, "enter": 2, "command": 2, "termin": 2, "md": 2, "cd": 2, "g": 2, "unix": 2, "makefil": 2, "d": 2, "cmake_cxx_compil": 2, "x86_64": 2, "w64": 2, "mingw32": 2, "make": 2, "drag": 2, "dll": 2, "file": [2, 6, 7, 11, 16, 17], "bin": 2, "next": 2, "execut": 2, "mai": 2, "own": 2, "gener": 2, "long": 2, "64": 2, "bit": 2, "cmakelist": 2, "txt": 2, "under": [2, 19], "current": [2, 17, 19], "difficult": 2, "link": 2, "depend": 2, "As": 2, "must": 2, "_dep": 2, "src": 2, "sdl2_ttf": 2, "sdl2_mixer": 2, "sdl2_imag": 2, "tmxlite": 2, "And": 2, "sdl2_build": 2, "namespac": [3, 12], "log_level": 3, "trace": 3, "1": [3, 10, 11], "debug": 3, "2": 3, "warn": 3, "3": 3, "error": [3, 6], "4": 3, "fatal": 3, "alwai": 3, "typedef": 3, "float": [3, 11, 13, 15], "float32_t": [3, 12], "doubl": [3, 5, 10, 14, 18], "float64_t": [3, 12], "sdl_scancod": 3, "kei": [3, 9], "sdl_event": 3, "sdl_color": 3, "color": [3, 4, 7, 14, 16], "variabl": 3, "sc_0": 3, "sdl_scancode_0": 3, "sc_1": 3, "sdl_scancode_1": 3, "sc_2": 3, "sdl_scancode_2": 3, "sc_3": 3, "sdl_scancode_3": 3, "sc_4": 3, "sdl_scancode_4": 3, "sc_5": 3, "sdl_scancode_5": 3, "sc_6": 3, "sdl_scancode_6": 3, "sc_7": 3, "sdl_scancode_7": 3, "sc_8": 3, "sdl_scancode_8": 3, "sc_9": 3, "sdl_scancode_9": 3, "sc_a": 3, "sdl_scancode_a": 3, "sc_b": 3, "sdl_scancode_b": 3, "sc_c": 3, "sdl_scancode_c": 3, "sc_d": 3, "sdl_scancode_d": 3, "sc_e": 3, "sdl_scancode_": 3, "sc_f": 3, "sdl_scancode_f": 3, "sc_g": 3, "sdl_scancode_g": 3, "sc_h": 3, "sdl_scancode_h": 3, "sc_i": 3, "sdl_scancode_i": 3, "sc_j": 3, "sdl_scancode_j": 3, "sc_k": 3, "sdl_scancode_k": 3, "sc_l": 3, "sdl_scancode_l": 3, "sc_m": 3, "sdl_scancode_m": 3, "sc_n": 3, "sdl_scancode_n": 3, "sc_o": 3, "sdl_scancode_o": 3, "sc_p": 3, "sdl_scancode_p": 3, "sc_q": 3, "sdl_scancode_q": 3, "sc_r": 3, "sdl_scancode_r": 3, "sc_": 3, "sc_t": 3, "sdl_scancode_t": 3, "sc_u": 3, "sdl_scancode_u": 3, "sc_v": 3, "sdl_scancode_v": 3, "sc_w": 3, "sdl_scancode_w": 3, "sc_x": 3, "sdl_scancode_x": 3, "sc_y": 3, "sc_z": 3, "sdl_scancode_z": 3, "sc_down": 3, "sdl_scancode_down": 3, "sc_left": 3, "sdl_scancode_left": 3, "sc_right": 3, "sdl_scancode_right": 3, "sc_up": 3, "sdl_scancode_up": 3, "sc_lalt": 3, "sdl_scancode_lalt": 3, "sc_lctrl": 3, "sdl_scancode_lctrl": 3, "sc_lshift": 3, "sdl_scancode_lshift": 3, "sc_ralt": 3, "sdl_scancode_ralt": 3, "sc_rctrl": 3, "sdl_scancode_rctrl": 3, "sc_return": 3, "sdl_scancode_return": 3, "sc_rshift": 3, "sdl_scancode_rshift": 3, "sc_space": 3, "sdl_scancode_spac": 3, "sc_tab": 3, "sdl_scancode_tab": 3, "sdl_eventtyp": 3, "sdl_quit": 3, "displayev": 3, "sdl_displayev": 3, "windowev": 3, "sdl_windowev": 3, "syswmev": 3, "sdl_syswmev": 3, "keydown": 3, "sdl_keydown": 3, "keyup": 3, "sdl_keyup": 3, "textedit": 3, "sdl_textedit": 3, "textinput": 3, "sdl_textinput": 3, "keymapchang": 3, "sdl_keymapchang": 3, "mousemot": 3, "sdl_mousemot": 3, "mousebuttondown": 3, "sdl_mousebuttondown": 3, "mousebuttonup": 3, "sdl_mousebuttonup": 3, "mousewheel": 3, "sdl_mousewheel": 3, "joyaxismot": 3, "sdl_joyaxismot": 3, "joyballmot": 3, "sdl_joyballmot": 3, "joyhatmot": 3, "sdl_joyhatmot": 3, "joybuttondown": 3, "sdl_joybuttondown": 3, "joybuttonup": 3, "sdl_joybuttonup": 3, "joydevicead": 3, "sdl_joydevicead": 3, "joydeviceremov": 3, "sdl_joydeviceremov": 3, "controlleraxismot": 3, "sdl_controlleraxismot": 3, "controllerbuttondown": 3, "sdl_controllerbuttondown": 3, "controllerbuttonup": 3, "sdl_controllerbuttonup": 3, "controllerdevicead": 3, "sdl_controllerdevicead": 3, "controllerdeviceremov": 3, "sdl_controllerdeviceremov": 3, "controllerdeviceremap": 3, "sdl_controllerdeviceremap": 3, "clipboardupd": 3, "sdl_clipboardupd": 3, "dropfil": 3, "sdl_dropfil": 3, "droptext": 3, "sdl_droptext": 3, "dropbegin": 3, "sdl_dropbegin": 3, "dropcomplet": 3, "sdl_dropcomplet": 3, "audiodevicead": 3, "sdl_audiodevicead": 3, "audiodeviceremov": 3, "sdl_audiodeviceremov": 3, "userev": 3, "sdl_userev": 3, "sdl_keycod": 3, "k_0": 3, "sdlk_0": 3, "k_1": 3, "sdlk_1": 3, "k_2": 3, "sdlk_2": 3, "k_3": 3, "sdlk_3": 3, "k_4": 3, "sdlk_4": 3, "k_5": 3, "sdlk_5": 3, "k_6": 3, "sdlk_6": 3, "k_7": 3, "sdlk_7": 3, "k_8": 3, "sdlk_8": 3, "k_9": 3, "sdlk_9": 3, "k_a": 3, "sdlk_a": 3, "k_b": 3, "sdlk_b": 3, "k_c": 3, "sdlk_c": 3, "k_d": 3, "sdlk_d": 3, "k_e": 3, "sdlk_e": 3, "k_f": 3, "sdlk_f": 3, "k_g": 3, "sdlk_g": 3, "k_h": 3, "sdlk_h": 3, "k_i": 3, "sdlk_i": 3, "k_j": 3, "sdlk_j": 3, "k_k": 3, "sdlk_k": 3, "k_l": 3, "sdlk_l": 3, "k_m": 3, "sdlk_m": 3, "k_n": 3, "sdlk_n": 3, "k_o": 3, "sdlk_o": 3, "k_p": 3, "sdlk_p": 3, "k_q": 3, "sdlk_q": 3, "k_r": 3, "sdlk_r": 3, "k_": 3, "sdlk_": 3, "k_t": 3, "sdlk_t": 3, "k_u": 3, "sdlk_u": 3, "k_v": 3, "sdlk_v": 3, "k_w": 3, "sdlk_w": 3, "k_x": 3, "sdlk_x": 3, "k_y": 3, "sdlk_y": 3, "k_z": 3, "sdlk_z": 3, "k_down": 3, "sdlk_down": 3, "k_left": 3, "sdlk_left": 3, "k_right": 3, "sdlk_right": 3, "k_up": 3, "sdlk_up": 3, "k_applic": 3, "sdlk_applic": 3, "k_audiomut": 3, "sdlk_audiomut": 3, "k_audionext": 3, "sdlk_audionext": 3, "k_audioplai": 3, "sdlk_audioplai": 3, "k_audioprev": 3, "sdlk_audioprev": 3, "k_audiostop": 3, "sdlk_audiostop": 3, "k_backslash": 3, "sdlk_backslash": 3, "k_backspac": 3, "sdlk_backspac": 3, "k_capslock": 3, "sdlk_capslock": 3, "k_comma": 3, "sdlk_comma": 3, "k_delet": 3, "sdlk_delet": 3, "k_displayswitch": 3, "sdlk_displayswitch": 3, "k_end": 3, "sdlk_end": 3, "k_equal": 3, "sdlk_equal": 3, "k_escap": 3, "sdlk_escap": 3, "k_f1": 3, "sdlk_f1": 3, "k_f2": 3, "sdlk_f2": 3, "k_f3": 3, "sdlk_f3": 3, "k_f4": 3, "sdlk_f4": 3, "k_f5": 3, "sdlk_f5": 3, "k_f6": 3, "sdlk_f6": 3, "k_f7": 3, "sdlk_f7": 3, "k_f8": 3, "sdlk_f8": 3, "k_f9": 3, "sdlk_f9": 3, "k_f10": 3, "sdlk_f10": 3, "k_f11": 3, "sdlk_f11": 3, "k_f12": 3, "sdlk_f12": 3, "k_backquot": 3, "sdlk_backquot": 3, "k_home": 3, "sdlk_home": 3, "k_insert": 3, "sdlk_insert": 3, "k_kp_0": 3, "sdlk_kp_0": 3, "k_kp_1": 3, "sdlk_kp_1": 3, "k_kp_2": 3, "sdlk_kp_2": 3, "k_kp_3": 3, "sdlk_kp_3": 3, "k_kp_4": 3, "sdlk_kp_4": 3, "k_kp_5": 3, "sdlk_kp_5": 3, "k_kp_6": 3, "sdlk_kp_6": 3, "k_kp_7": 3, "sdlk_kp_7": 3, "k_kp_8": 3, "sdlk_kp_8": 3, "k_kp_9": 3, "sdlk_kp_9": 3, "k_kp_divid": 3, "sdlk_kp_divid": 3, "k_kp_enter": 3, "sdlk_kp_enter": 3, "k_kp_minu": 3, "sdlk_kp_minu": 3, "k_kp_multipli": 3, "sdlk_kp_multipli": 3, "k_kp_period": 3, "sdlk_kp_period": 3, "k_kp_plu": 3, "sdlk_kp_plu": 3, "k_lalt": 3, "sdlk_lalt": 3, "k_lctrl": 3, "sdlk_lctrl": 3, "k_leftbracket": 3, "sdlk_leftbracket": 3, "k_lshift": 3, "sdlk_lshift": 3, "k_minu": 3, "sdlk_minu": 3, "k_numlockclear": 3, "sdlk_numlockclear": 3, "k_pagedown": 3, "sdlk_pagedown": 3, "k_pageup": 3, "sdlk_pageup": 3, "k_period": 3, "sdlk_period": 3, "k_printscreen": 3, "sdlk_printscreen": 3, "k_ralt": 3, "sdlk_ralt": 3, "k_rctrl": 3, "sdlk_rctrl": 3, "k_return": 3, "sdlk_return": 3, "k_rightbracket": 3, "sdlk_rightbracket": 3, "k_rshift": 3, "sdlk_rshift": 3, "k_semicolon": 3, "sdlk_semicolon": 3, "k_slash": 3, "sdlk_slash": 3, "k_space": 3, "sdlk_space": 3, "k_tab": 3, "sdlk_tab": 3, "k_ampersand": 3, "sdlk_ampersand": 3, "k_asterisk": 3, "sdlk_asterisk": 3, "k_at": 3, "sdlk_at": 3, "k_caret": 3, "sdlk_caret": 3, "k_colon": 3, "sdlk_colon": 3, "k_dollar": 3, "sdlk_dollar": 3, "k_exclaim": 3, "sdlk_exclaim": 3, "k_greater": 3, "sdlk_greater": 3, "k_hash": 3, "sdlk_hash": 3, "k_leftparen": 3, "sdlk_leftparen": 3, "k_less": 3, "sdlk_less": 3, "k_percent": 3, "sdlk_percent": 3, "k_plu": 3, "sdlk_plu": 3, "k_question": 3, "sdlk_question": 3, "k_quotedbl": 3, "sdlk_quotedbl": 3, "k_rightparen": 3, "sdlk_rightparen": 3, "k_underscor": 3, "sdlk_underscor": 3, "button_left": 3, "sdl_button_left": 3, "button_middl": 3, "sdl_button_middl": 3, "button_right": 3, "sdl_button_right": 3, "void": [4, 5, 6, 11, 13, 14, 15, 16, 17], "rect": [4, 8, 14, 15, 17], "thick": 4, "0": [4, 7, 10, 11, 12, 14], "rectangl": [4, 13, 14], "If": 4, "remain": 4, "fill": 4, "paramet": [4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "class": [5, 6, 7, 10, 11, 14, 15, 16, 17, 18], "an": [5, 10, 12, 16], "inherit": 5, "public": [5, 6, 7, 10, 11, 13, 14, 15, 16, 17, 18], "explicit": [5, 11, 15], "std": [5, 6, 7, 9, 11, 14, 16, 17], "shared_ptr": [5, 7, 14, 16, 17], "gettextur": [5, 16], "pointer": [5, 16], "protect": 5, "templat": 5, "typenam": 5, "inlin": [5, 6, 13, 14], "moveandcollid": 5, "deltatim": 5, "vector": [5, 9, 10, 14], "other": [5, 10], "move": [5, 9, 15, 16], "check": [5, 10, 12, 13, 19], "singleton": [6, 11, 14, 16, 18], "log": 6, "handl": 6, "fail": [6, 10], "consol": 6, "string": [6, 7, 11, 14, 16, 17], "logstr": 6, "given": 6, "timestamp": 6, "mon": 6, "nov": 6, "20": 6, "23": 6, "28": 6, "22": 6, "2023": 6, "static": [6, 10, 14], "instanc": [6, 14], "A": [7, 10, 11, 13, 15, 16, 17, 18], "render": [7, 14], "text": 7, "filedir": [7, 11], "ptsize": 7, "point": [7, 13], "size": [7, 13, 15, 16], "antialia": 7, "wraplength": 7, "whether": [7, 13, 14], "length": [7, 10], "wrap": 7, "entiti": 8, "errorlogg": 8, "font": [8, 16], "texturecach": [8, 15, 17], "tilemap": 8, "constant": 8, "draw": [8, 14, 17], "input": 8, "mixer": 8, "overflow": [8, 10], "getmousepo": 9, "mous": 9, "posit": [9, 13, 14], "getmousebuttonpress": 9, "uint8": 9, "getkeyspress": 9, "getvector": 9, "left": 9, "right": 9, "up": 9, "down": 9, "2d": [10, 13], "getlength": 10, "happen": 10, "otherwis": [10, 12, 14], "normal": 10, "place": 10, "occur": [10, 12], "zero": [10, 12], "distanceto": 10, "distanc": 10, "anoth": [10, 13], "oper": 10, "add": 10, "two": 10, "sum": [10, 12], "subtract": 10, "differ": 10, "addit": 10, "same": 10, "compar": 10, "all": [10, 16], "compon": 10, "set": [10, 11, 13, 14, 15], "clampvec": 10, "vec": 10, "min": [10, 13], "max": [10, 13], "clamp": [10, 13], "minimum": [10, 13], "valu": [10, 12, 13], "maximum": [10, 13], "lerpvec": 10, "b": 10, "linearli": 10, "interpol": 10, "sound": 11, "object": [11, 15, 17], "plai": 11, "loop": 11, "playtim": 11, "fadem": 11, "number": 11, "millisecond": 11, "fade": 11, "setvolum": 11, "volum": 11, "unload": [11, 16], "free": 11, "memori": 11, "music": 11, "becom": [11, 16, 18], "paus": 11, "out": [11, 19], "resum": 11, "load": [11, 15, 16], "issumvalid": 12, "would": 12, "summat": 12, "valid": [12, 14], "uint32_t": 12, "uint64_t": 12, "int32_t": 12, "int64_t": 12, "isproductvalid": 12, "multiplc": 12, "closetozero": 12, "toler": 12, "0001": 12, "accuraci": 12, "anyth": 12, "closer": 12, "than": 12, "consid": 12, "0001f": 12, "struct": [13, 17], "sdl_frect": 13, "default": [13, 16], "y": [13, 14], "w": 13, "h": 13, "construct": [13, 17, 19], "new": [13, 14], "width": [13, 15], "height": [13, 15], "getpo": 13, "getsiz": [13, 15], "setsiz": [13, 15], "collidepoint": 13, "po": 13, "collid": 13, "colliderect": 13, "setcent": 13, "setleft": 13, "setright": 13, "settop": 13, "setbottom": 13, "settopleft": 13, "settopmid": 13, "settopright": 13, "setbottomleft": 13, "setbottommid": 13, "setbottomright": 13, "setleftmid": 13, "setrightmid": 13, "getcent": 13, "getleft": 13, "getright": 13, "gettop": 13, "getbottom": 13, "gettopleft": 13, "gettopmid": 13, "gettopright": 13, "getbottomleft": 13, "getbottommid": 13, "getbottomright": 13, "getleftmid": 13, "getrightmid": 13, "context": 14, "255": 14, "blit": 14, "crop": [14, 17], "blitex": 14, "angl": 14, "flipx": 14, "flipi": 14, "axi": 14, "sdl_render": 14, "getrender": 14, "getfullscreen": 14, "fullscreen": 14, "settitl": 14, "newtitl": 14, "titl": 14, "setfullscreen": 14, "getscal": 14, "scale": [14, 15], "setscal": 14, "newscal": 14, "instanti": [14, 16], "sdl_textur": 15, "meant": 15, "sdl": 15, "getrect": 15, "getsdltextur": 15, "scalebi": 15, "factor": 15, "fitwidth": 15, "fit": 15, "maintain": 15, "aspect": 15, "ratio": 15, "fitheight": 15, "name": 16, "path": [16, 17], "solid": 16, "exist": 16, "recommend": 16, "map": [16, 17], "getcach": 16, "unloadal": 16, "method": 16, "destructor": 16, "repres": 17, "tile": 17, "compat": 17, "orthogon": 17, "layer": 17, "tmxpath": 17, "tmx": 17, "member": 17, "keep": 18, "track": 18, "framer": 18, "60": 18, "delta": 18, "between": 18, "rate": 18, "calcul": 18, "page": 19, "hard": 19, "video": 19, "most": 19, "pleas": 19, "back": 19, "soon": 19, "updat": 19}, "objects": {"": [[3, 0, 1, "_CPPv42kn", "kn"], [3, 1, 1, "_CPPv4N2kn16AUDIODEVICEADDEDE", "kn::AUDIODEVICEADDED"], [3, 1, 1, "_CPPv4N2kn18AUDIODEVICEREMOVEDE", "kn::AUDIODEVICEREMOVED"], [3, 1, 1, "_CPPv4N2kn11BUTTON_LEFTE", "kn::BUTTON_LEFT"], [3, 1, 1, "_CPPv4N2kn13BUTTON_MIDDLEE", "kn::BUTTON_MIDDLE"], [3, 1, 1, "_CPPv4N2kn12BUTTON_RIGHTE", "kn::BUTTON_RIGHT"], [3, 1, 1, "_CPPv4N2kn15CLIPBOARDUPDATEE", "kn::CLIPBOARDUPDATE"], [3, 1, 1, "_CPPv4N2kn20CONTROLLERAXISMOTIONE", "kn::CONTROLLERAXISMOTION"], [3, 1, 1, "_CPPv4N2kn20CONTROLLERBUTTONDOWNE", "kn::CONTROLLERBUTTONDOWN"], [3, 1, 1, "_CPPv4N2kn18CONTROLLERBUTTONUPE", "kn::CONTROLLERBUTTONUP"], [3, 1, 1, "_CPPv4N2kn21CONTROLLERDEVICEADDEDE", "kn::CONTROLLERDEVICEADDED"], [3, 1, 1, "_CPPv4N2kn24CONTROLLERDEVICEREMAPPEDE", "kn::CONTROLLERDEVICEREMAPPED"], [3, 1, 1, "_CPPv4N2kn23CONTROLLERDEVICEREMOVEDE", "kn::CONTROLLERDEVICEREMOVED"], [3, 0, 1, "_CPPv4N2kn5ColorE", "kn::Color"], [3, 1, 1, "_CPPv4N2kn12DISPLAYEVENTE", "kn::DISPLAYEVENT"], [3, 1, 1, "_CPPv4N2kn9DROPBEGINE", "kn::DROPBEGIN"], [3, 1, 1, "_CPPv4N2kn12DROPCOMPLETEE", "kn::DROPCOMPLETE"], [3, 1, 1, "_CPPv4N2kn8DROPFILEE", "kn::DROPFILE"], [3, 1, 1, "_CPPv4N2kn8DROPTEXTE", "kn::DROPTEXT"], [5, 2, 1, "_CPPv4N2kn6EntityE", "kn::Entity"], [5, 3, 1, "_CPPv4N2kn6Entity6EntityENSt10shared_ptrI7TextureEE", "kn::Entity::Entity"], [5, 4, 1, "_CPPv4N2kn6Entity6EntityENSt10shared_ptrI7TextureEE", "kn::Entity::Entity::texture"], [5, 3, 1, "_CPPv4NK2kn6Entity10getTextureEv", "kn::Entity::getTexture"], [5, 3, 1, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE", "kn::Entity::moveAndCollide"], [5, 5, 1, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE", "kn::Entity::moveAndCollide::T"], [5, 4, 1, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE", "kn::Entity::moveAndCollide::deltaTime"], [5, 4, 1, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE", "kn::Entity::moveAndCollide::others"], [6, 2, 1, "_CPPv4N2kn11ErrorLoggerE", "kn::ErrorLogger"], [6, 3, 1, "_CPPv4N2kn11ErrorLogger11getInstanceEv", "kn::ErrorLogger::getInstance"], [6, 3, 1, "_CPPv4N2kn11ErrorLogger3logERKNSt6stringE", "kn::ErrorLogger::log"], [6, 4, 1, "_CPPv4N2kn11ErrorLogger3logERKNSt6stringE", "kn::ErrorLogger::log::logString"], [3, 0, 1, "_CPPv4N2kn5EventE", "kn::Event"], [7, 2, 1, "_CPPv4N2kn4FontE", "kn::Font"], [7, 3, 1, "_CPPv4N2kn4Font4FontERKNSt6stringEi", "kn::Font::Font"], [7, 4, 1, "_CPPv4N2kn4Font4FontERKNSt6stringEi", "kn::Font::Font::fileDir"], [7, 4, 1, "_CPPv4N2kn4Font4FontERKNSt6stringEi", "kn::Font::Font::ptSize"], [7, 3, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render"], [7, 4, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render::antialias"], [7, 4, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render::color"], [7, 4, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render::text"], [7, 4, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori", "kn::Font::render::wrapLength"], [3, 1, 1, "_CPPv4N2kn13JOYAXISMOTIONE", "kn::JOYAXISMOTION"], [3, 1, 1, "_CPPv4N2kn13JOYBALLMOTIONE", "kn::JOYBALLMOTION"], [3, 1, 1, "_CPPv4N2kn13JOYBUTTONDOWNE", "kn::JOYBUTTONDOWN"], [3, 1, 1, "_CPPv4N2kn11JOYBUTTONUPE", "kn::JOYBUTTONUP"], [3, 1, 1, "_CPPv4N2kn14JOYDEVICEADDEDE", "kn::JOYDEVICEADDED"], [3, 1, 1, "_CPPv4N2kn16JOYDEVICEREMOVEDE", "kn::JOYDEVICEREMOVED"], [3, 1, 1, "_CPPv4N2kn12JOYHATMOTIONE", "kn::JOYHATMOTION"], [3, 1, 1, "_CPPv4N2kn7KEYDOWNE", "kn::KEYDOWN"], [3, 1, 1, "_CPPv4N2kn13KEYMAPCHANGEDE", "kn::KEYMAPCHANGED"], [3, 0, 1, "_CPPv4N2kn4KEYSE", "kn::KEYS"], [3, 1, 1, "_CPPv4N2kn5KEYUPE", "kn::KEYUP"], [3, 1, 1, "_CPPv4N2kn3K_0E", "kn::K_0"], [3, 1, 1, "_CPPv4N2kn3K_1E", "kn::K_1"], [3, 1, 1, "_CPPv4N2kn3K_2E", "kn::K_2"], [3, 1, 1, "_CPPv4N2kn3K_3E", "kn::K_3"], [3, 1, 1, "_CPPv4N2kn3K_4E", "kn::K_4"], [3, 1, 1, "_CPPv4N2kn3K_5E", "kn::K_5"], [3, 1, 1, "_CPPv4N2kn3K_6E", "kn::K_6"], [3, 1, 1, "_CPPv4N2kn3K_7E", "kn::K_7"], [3, 1, 1, "_CPPv4N2kn3K_8E", "kn::K_8"], [3, 1, 1, "_CPPv4N2kn3K_9E", "kn::K_9"], [3, 1, 1, "_CPPv4N2kn11K_AMPERSANDE", "kn::K_AMPERSAND"], [3, 1, 1, "_CPPv4N2kn13K_APPLICATIONE", "kn::K_APPLICATION"], [3, 1, 1, "_CPPv4N2kn10K_ASTERISKE", "kn::K_ASTERISK"], [3, 1, 1, "_CPPv4N2kn4K_ATE", "kn::K_AT"], [3, 1, 1, "_CPPv4N2kn11K_AUDIOMUTEE", "kn::K_AUDIOMUTE"], [3, 1, 1, "_CPPv4N2kn11K_AUDIONEXTE", "kn::K_AUDIONEXT"], [3, 1, 1, "_CPPv4N2kn11K_AUDIOPLAYE", "kn::K_AUDIOPLAY"], [3, 1, 1, "_CPPv4N2kn11K_AUDIOPREVE", "kn::K_AUDIOPREV"], [3, 1, 1, "_CPPv4N2kn11K_AUDIOSTOPE", "kn::K_AUDIOSTOP"], [3, 1, 1, "_CPPv4N2kn11K_BACKQUOTEE", "kn::K_BACKQUOTE"], [3, 1, 1, "_CPPv4N2kn11K_BACKSLASHE", "kn::K_BACKSLASH"], [3, 1, 1, "_CPPv4N2kn11K_BACKSPACEE", "kn::K_BACKSPACE"], [3, 1, 1, "_CPPv4N2kn10K_CAPSLOCKE", "kn::K_CAPSLOCK"], [3, 1, 1, "_CPPv4N2kn7K_CARETE", "kn::K_CARET"], [3, 1, 1, "_CPPv4N2kn7K_COLONE", "kn::K_COLON"], [3, 1, 1, "_CPPv4N2kn7K_COMMAE", "kn::K_COMMA"], [3, 1, 1, "_CPPv4N2kn8K_DELETEE", "kn::K_DELETE"], [3, 1, 1, "_CPPv4N2kn15K_DISPLAYSWITCHE", "kn::K_DISPLAYSWITCH"], [3, 1, 1, "_CPPv4N2kn8K_DOLLARE", "kn::K_DOLLAR"], [3, 1, 1, "_CPPv4N2kn6K_DOWNE", "kn::K_DOWN"], [3, 1, 1, "_CPPv4N2kn5K_ENDE", "kn::K_END"], [3, 1, 1, "_CPPv4N2kn8K_EQUALSE", "kn::K_EQUALS"], [3, 1, 1, "_CPPv4N2kn8K_ESCAPEE", "kn::K_ESCAPE"], [3, 1, 1, "_CPPv4N2kn9K_EXCLAIME", "kn::K_EXCLAIM"], [3, 1, 1, "_CPPv4N2kn4K_F1E", "kn::K_F1"], [3, 1, 1, "_CPPv4N2kn5K_F10E", "kn::K_F10"], [3, 1, 1, "_CPPv4N2kn5K_F11E", "kn::K_F11"], [3, 1, 1, "_CPPv4N2kn5K_F12E", "kn::K_F12"], [3, 1, 1, "_CPPv4N2kn4K_F2E", "kn::K_F2"], [3, 1, 1, "_CPPv4N2kn4K_F3E", "kn::K_F3"], [3, 1, 1, "_CPPv4N2kn4K_F4E", "kn::K_F4"], [3, 1, 1, "_CPPv4N2kn4K_F5E", "kn::K_F5"], [3, 1, 1, "_CPPv4N2kn4K_F6E", "kn::K_F6"], [3, 1, 1, "_CPPv4N2kn4K_F7E", "kn::K_F7"], [3, 1, 1, "_CPPv4N2kn4K_F8E", "kn::K_F8"], [3, 1, 1, "_CPPv4N2kn4K_F9E", "kn::K_F9"], [3, 1, 1, "_CPPv4N2kn9K_GREATERE", "kn::K_GREATER"], [3, 1, 1, "_CPPv4N2kn6K_HASHE", "kn::K_HASH"], [3, 1, 1, "_CPPv4N2kn6K_HOMEE", "kn::K_HOME"], [3, 1, 1, "_CPPv4N2kn8K_INSERTE", "kn::K_INSERT"], [3, 1, 1, "_CPPv4N2kn6K_KP_0E", "kn::K_KP_0"], [3, 1, 1, "_CPPv4N2kn6K_KP_1E", "kn::K_KP_1"], [3, 1, 1, "_CPPv4N2kn6K_KP_2E", "kn::K_KP_2"], [3, 1, 1, "_CPPv4N2kn6K_KP_3E", "kn::K_KP_3"], [3, 1, 1, "_CPPv4N2kn6K_KP_4E", "kn::K_KP_4"], [3, 1, 1, "_CPPv4N2kn6K_KP_5E", "kn::K_KP_5"], [3, 1, 1, "_CPPv4N2kn6K_KP_6E", "kn::K_KP_6"], [3, 1, 1, "_CPPv4N2kn6K_KP_7E", "kn::K_KP_7"], [3, 1, 1, "_CPPv4N2kn6K_KP_8E", "kn::K_KP_8"], [3, 1, 1, "_CPPv4N2kn6K_KP_9E", "kn::K_KP_9"], [3, 1, 1, "_CPPv4N2kn11K_KP_DIVIDEE", "kn::K_KP_DIVIDE"], [3, 1, 1, "_CPPv4N2kn10K_KP_ENTERE", "kn::K_KP_ENTER"], [3, 1, 1, "_CPPv4N2kn10K_KP_MINUSE", "kn::K_KP_MINUS"], [3, 1, 1, "_CPPv4N2kn13K_KP_MULTIPLYE", "kn::K_KP_MULTIPLY"], [3, 1, 1, "_CPPv4N2kn11K_KP_PERIODE", "kn::K_KP_PERIOD"], [3, 1, 1, "_CPPv4N2kn9K_KP_PLUSE", "kn::K_KP_PLUS"], [3, 1, 1, "_CPPv4N2kn6K_LALTE", "kn::K_LALT"], [3, 1, 1, "_CPPv4N2kn7K_LCTRLE", "kn::K_LCTRL"], [3, 1, 1, "_CPPv4N2kn6K_LEFTE", "kn::K_LEFT"], [3, 1, 1, "_CPPv4N2kn13K_LEFTBRACKETE", "kn::K_LEFTBRACKET"], [3, 1, 1, "_CPPv4N2kn11K_LEFTPARENE", "kn::K_LEFTPAREN"], [3, 1, 1, "_CPPv4N2kn6K_LESSE", "kn::K_LESS"], [3, 1, 1, "_CPPv4N2kn8K_LSHIFTE", "kn::K_LSHIFT"], [3, 1, 1, "_CPPv4N2kn7K_MINUSE", "kn::K_MINUS"], [3, 1, 1, "_CPPv4N2kn14K_NUMLOCKCLEARE", "kn::K_NUMLOCKCLEAR"], [3, 1, 1, "_CPPv4N2kn10K_PAGEDOWNE", "kn::K_PAGEDOWN"], [3, 1, 1, "_CPPv4N2kn8K_PAGEUPE", "kn::K_PAGEUP"], [3, 1, 1, "_CPPv4N2kn9K_PERCENTE", "kn::K_PERCENT"], [3, 1, 1, "_CPPv4N2kn8K_PERIODE", "kn::K_PERIOD"], [3, 1, 1, "_CPPv4N2kn6K_PLUSE", "kn::K_PLUS"], [3, 1, 1, "_CPPv4N2kn13K_PRINTSCREENE", "kn::K_PRINTSCREEN"], [3, 1, 1, "_CPPv4N2kn10K_QUESTIONE", "kn::K_QUESTION"], [3, 1, 1, "_CPPv4N2kn10K_QUOTEDBLE", "kn::K_QUOTEDBL"], [3, 1, 1, "_CPPv4N2kn6K_RALTE", "kn::K_RALT"], [3, 1, 1, "_CPPv4N2kn7K_RCTRLE", "kn::K_RCTRL"], [3, 1, 1, "_CPPv4N2kn8K_RETURNE", "kn::K_RETURN"], [3, 1, 1, "_CPPv4N2kn7K_RIGHTE", "kn::K_RIGHT"], [3, 1, 1, "_CPPv4N2kn14K_RIGHTBRACKETE", "kn::K_RIGHTBRACKET"], [3, 1, 1, "_CPPv4N2kn12K_RIGHTPARENE", "kn::K_RIGHTPAREN"], [3, 1, 1, "_CPPv4N2kn8K_RSHIFTE", "kn::K_RSHIFT"], [3, 1, 1, "_CPPv4N2kn11K_SEMICOLONE", "kn::K_SEMICOLON"], [3, 1, 1, "_CPPv4N2kn7K_SLASHE", "kn::K_SLASH"], [3, 1, 1, "_CPPv4N2kn7K_SPACEE", "kn::K_SPACE"], [3, 1, 1, "_CPPv4N2kn5K_TABE", "kn::K_TAB"], [3, 1, 1, "_CPPv4N2kn12K_UNDERSCOREE", "kn::K_UNDERSCORE"], [3, 1, 1, "_CPPv4N2kn4K_UPE", "kn::K_UP"], [3, 1, 1, "_CPPv4N2kn3K_aE", "kn::K_a"], [3, 1, 1, "_CPPv4N2kn3K_bE", "kn::K_b"], [3, 1, 1, "_CPPv4N2kn3K_cE", "kn::K_c"], [3, 1, 1, "_CPPv4N2kn3K_dE", "kn::K_d"], [3, 1, 1, "_CPPv4N2kn3K_eE", "kn::K_e"], [3, 1, 1, "_CPPv4N2kn3K_fE", "kn::K_f"], [3, 1, 1, "_CPPv4N2kn3K_gE", "kn::K_g"], [3, 1, 1, "_CPPv4N2kn3K_hE", "kn::K_h"], [3, 1, 1, "_CPPv4N2kn3K_iE", "kn::K_i"], [3, 1, 1, "_CPPv4N2kn3K_jE", "kn::K_j"], [3, 1, 1, "_CPPv4N2kn3K_kE", "kn::K_k"], [3, 1, 1, "_CPPv4N2kn3K_lE", "kn::K_l"], [3, 1, 1, "_CPPv4N2kn3K_mE", "kn::K_m"], [3, 1, 1, "_CPPv4N2kn3K_nE", "kn::K_n"], [3, 1, 1, "_CPPv4N2kn3K_oE", "kn::K_o"], [3, 1, 1, "_CPPv4N2kn3K_pE", "kn::K_p"], [3, 1, 1, "_CPPv4N2kn3K_qE", "kn::K_q"], [3, 1, 1, "_CPPv4N2kn3K_rE", "kn::K_r"], [3, 1, 1, "_CPPv4N2kn3K_sE", "kn::K_s"], [3, 1, 1, "_CPPv4N2kn3K_tE", "kn::K_t"], [3, 1, 1, "_CPPv4N2kn3K_uE", "kn::K_u"], [3, 1, 1, "_CPPv4N2kn3K_vE", "kn::K_v"], [3, 1, 1, "_CPPv4N2kn3K_wE", "kn::K_w"], [3, 1, 1, "_CPPv4N2kn3K_xE", "kn::K_x"], [3, 1, 1, "_CPPv4N2kn3K_yE", "kn::K_y"], [3, 1, 1, "_CPPv4N2kn3K_zE", "kn::K_z"], [3, 1, 1, "_CPPv4N2kn15MOUSEBUTTONDOWNE", "kn::MOUSEBUTTONDOWN"], [3, 1, 1, "_CPPv4N2kn13MOUSEBUTTONUPE", "kn::MOUSEBUTTONUP"], [3, 1, 1, "_CPPv4N2kn11MOUSEMOTIONE", "kn::MOUSEMOTION"], [3, 1, 1, "_CPPv4N2kn10MOUSEWHEELE", "kn::MOUSEWHEEL"], [3, 1, 1, "_CPPv4N2kn4QUITE", "kn::QUIT"], [13, 2, 1, "_CPPv4N2kn4RectE", "kn::Rect"], [13, 3, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect"], [13, 3, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect"], [13, 3, 1, "_CPPv4N2kn4Rect4RectEv", "kn::Rect::Rect"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::h"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect::h"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::w"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect::w"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::x"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect::x"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::y"], [13, 4, 1, "_CPPv4N2kn4Rect4RectEiiii", "kn::Rect::Rect::y"], [13, 3, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp"], [13, 4, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp::max"], [13, 4, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp::min"], [13, 3, 1, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E", "kn::Rect::collidePoint"], [13, 4, 1, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E", "kn::Rect::collidePoint::pos"], [13, 3, 1, "_CPPv4N2kn4Rect11collideRectERK4Rect", "kn::Rect::collideRect"], [13, 4, 1, "_CPPv4N2kn4Rect11collideRectERK4Rect", "kn::Rect::collideRect::rect"], [13, 3, 1, "_CPPv4N2kn4Rect9getBottomEv", "kn::Rect::getBottom"], [13, 3, 1, "_CPPv4N2kn4Rect13getBottomLeftEv", "kn::Rect::getBottomLeft"], [13, 3, 1, "_CPPv4N2kn4Rect12getBottomMidEv", "kn::Rect::getBottomMid"], [13, 3, 1, "_CPPv4N2kn4Rect14getBottomRightEv", "kn::Rect::getBottomRight"], [13, 3, 1, "_CPPv4N2kn4Rect9getCenterEv", "kn::Rect::getCenter"], [13, 3, 1, "_CPPv4N2kn4Rect7getLeftEv", "kn::Rect::getLeft"], [13, 3, 1, "_CPPv4N2kn4Rect10getLeftMidEv", "kn::Rect::getLeftMid"], [13, 3, 1, "_CPPv4N2kn4Rect6getPosEv", "kn::Rect::getPos"], [13, 3, 1, "_CPPv4N2kn4Rect8getRightEv", "kn::Rect::getRight"], [13, 3, 1, "_CPPv4N2kn4Rect11getRightMidEv", "kn::Rect::getRightMid"], [13, 3, 1, "_CPPv4N2kn4Rect7getSizeEv", "kn::Rect::getSize"], [13, 3, 1, "_CPPv4N2kn4Rect6getTopEv", "kn::Rect::getTop"], [13, 3, 1, "_CPPv4N2kn4Rect10getTopLeftEv", "kn::Rect::getTopLeft"], [13, 3, 1, "_CPPv4N2kn4Rect9getTopMidEv", "kn::Rect::getTopMid"], [13, 3, 1, "_CPPv4N2kn4Rect11getTopRightEv", "kn::Rect::getTopRight"], [13, 3, 1, "_CPPv4N2kn4Rect9setBottomEf", "kn::Rect::setBottom"], [13, 4, 1, "_CPPv4N2kn4Rect9setBottomEf", "kn::Rect::setBottom::y"], [13, 3, 1, "_CPPv4N2kn4Rect13setBottomLeftERKN4math4Vec2E", "kn::Rect::setBottomLeft"], [13, 4, 1, "_CPPv4N2kn4Rect13setBottomLeftERKN4math4Vec2E", "kn::Rect::setBottomLeft::pos"], [13, 3, 1, "_CPPv4N2kn4Rect12setBottomMidERKN4math4Vec2E", "kn::Rect::setBottomMid"], [13, 4, 1, "_CPPv4N2kn4Rect12setBottomMidERKN4math4Vec2E", "kn::Rect::setBottomMid::pos"], [13, 3, 1, "_CPPv4N2kn4Rect14setBottomRightERKN4math4Vec2E", "kn::Rect::setBottomRight"], [13, 4, 1, "_CPPv4N2kn4Rect14setBottomRightERKN4math4Vec2E", "kn::Rect::setBottomRight::pos"], [13, 3, 1, "_CPPv4N2kn4Rect9setCenterERKN4math4Vec2E", "kn::Rect::setCenter"], [13, 4, 1, "_CPPv4N2kn4Rect9setCenterERKN4math4Vec2E", "kn::Rect::setCenter::pos"], [13, 3, 1, "_CPPv4N2kn4Rect7setLeftEf", "kn::Rect::setLeft"], [13, 4, 1, "_CPPv4N2kn4Rect7setLeftEf", "kn::Rect::setLeft::x"], [13, 3, 1, "_CPPv4N2kn4Rect10setLeftMidERKN4math4Vec2E", "kn::Rect::setLeftMid"], [13, 4, 1, "_CPPv4N2kn4Rect10setLeftMidERKN4math4Vec2E", "kn::Rect::setLeftMid::pos"], [13, 3, 1, "_CPPv4N2kn4Rect8setRightEf", "kn::Rect::setRight"], [13, 4, 1, "_CPPv4N2kn4Rect8setRightEf", "kn::Rect::setRight::x"], [13, 3, 1, "_CPPv4N2kn4Rect11setRightMidERKN4math4Vec2E", "kn::Rect::setRightMid"], [13, 4, 1, "_CPPv4N2kn4Rect11setRightMidERKN4math4Vec2E", "kn::Rect::setRightMid::pos"], [13, 3, 1, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E", "kn::Rect::setSize"], [13, 4, 1, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E", "kn::Rect::setSize::size"], [13, 3, 1, "_CPPv4N2kn4Rect6setTopEf", "kn::Rect::setTop"], [13, 4, 1, "_CPPv4N2kn4Rect6setTopEf", "kn::Rect::setTop::y"], [13, 3, 1, "_CPPv4N2kn4Rect10setTopLeftERKN4math4Vec2E", "kn::Rect::setTopLeft"], [13, 4, 1, "_CPPv4N2kn4Rect10setTopLeftERKN4math4Vec2E", "kn::Rect::setTopLeft::pos"], [13, 3, 1, "_CPPv4N2kn4Rect9setTopMidERKN4math4Vec2E", "kn::Rect::setTopMid"], [13, 4, 1, "_CPPv4N2kn4Rect9setTopMidERKN4math4Vec2E", "kn::Rect::setTopMid::pos"], [13, 3, 1, "_CPPv4N2kn4Rect11setTopRightERKN4math4Vec2E", "kn::Rect::setTopRight"], [13, 4, 1, "_CPPv4N2kn4Rect11setTopRightERKN4math4Vec2E", "kn::Rect::setTopRight::pos"], [14, 2, 1, "_CPPv4N2kn12RenderWindowE", "kn::RenderWindow"], [14, 3, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit"], [14, 3, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::crop"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit::position"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::rect"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::texture"], [14, 4, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit::texture"], [14, 3, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx"], [14, 3, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::angle"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::angle"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::crop"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::flipX"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::flipX"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::flipY"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::flipY"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::position"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::rect"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::texture"], [14, 4, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::texture"], [14, 3, 1, "_CPPv4N2kn12RenderWindow3clsE5Color", "kn::RenderWindow::cls"], [14, 4, 1, "_CPPv4N2kn12RenderWindow3clsE5Color", "kn::RenderWindow::cls::color"], [14, 3, 1, "_CPPv4N2kn12RenderWindow4flipEv", "kn::RenderWindow::flip"], [14, 3, 1, "_CPPv4N2kn12RenderWindow9getEventsEv", "kn::RenderWindow::getEvents"], [14, 3, 1, "_CPPv4NK2kn12RenderWindow13getFullscreenEv", "kn::RenderWindow::getFullscreen"], [14, 3, 1, "_CPPv4N2kn12RenderWindow11getInstanceEv", "kn::RenderWindow::getInstance"], [14, 3, 1, "_CPPv4N2kn12RenderWindow11getRendererEv", "kn::RenderWindow::getRenderer"], [14, 3, 1, "_CPPv4N2kn12RenderWindow8getScaleEv", "kn::RenderWindow::getScale"], [14, 3, 1, "_CPPv4N2kn12RenderWindow13setFullscreenEb", "kn::RenderWindow::setFullscreen"], [14, 4, 1, "_CPPv4N2kn12RenderWindow13setFullscreenEb", "kn::RenderWindow::setFullscreen::fullscreen"], [14, 3, 1, "_CPPv4N2kn12RenderWindow8setScaleEi", "kn::RenderWindow::setScale"], [14, 4, 1, "_CPPv4N2kn12RenderWindow8setScaleEi", "kn::RenderWindow::setScale::newScale"], [14, 3, 1, "_CPPv4N2kn12RenderWindow8setTitleERKNSt6stringE", "kn::RenderWindow::setTitle"], [14, 4, 1, "_CPPv4N2kn12RenderWindow8setTitleERKNSt6stringE", "kn::RenderWindow::setTitle::newTitle"], [3, 1, 1, "_CPPv4N2kn4SC_0E", "kn::SC_0"], [3, 1, 1, "_CPPv4N2kn4SC_1E", "kn::SC_1"], [3, 1, 1, "_CPPv4N2kn4SC_2E", "kn::SC_2"], [3, 1, 1, "_CPPv4N2kn4SC_3E", "kn::SC_3"], [3, 1, 1, "_CPPv4N2kn4SC_4E", "kn::SC_4"], [3, 1, 1, "_CPPv4N2kn4SC_5E", "kn::SC_5"], [3, 1, 1, "_CPPv4N2kn4SC_6E", "kn::SC_6"], [3, 1, 1, "_CPPv4N2kn4SC_7E", "kn::SC_7"], [3, 1, 1, "_CPPv4N2kn4SC_8E", "kn::SC_8"], [3, 1, 1, "_CPPv4N2kn4SC_9E", "kn::SC_9"], [3, 1, 1, "_CPPv4N2kn4SC_AE", "kn::SC_A"], [3, 1, 1, "_CPPv4N2kn4SC_BE", "kn::SC_B"], [3, 1, 1, "_CPPv4N2kn4SC_CE", "kn::SC_C"], [3, 1, 1, "_CPPv4N2kn4SC_DE", "kn::SC_D"], [3, 1, 1, "_CPPv4N2kn7SC_DOWNE", "kn::SC_DOWN"], [3, 1, 1, "_CPPv4N2kn4SC_EE", "kn::SC_E"], [3, 1, 1, "_CPPv4N2kn4SC_FE", "kn::SC_F"], [3, 1, 1, "_CPPv4N2kn4SC_GE", "kn::SC_G"], [3, 1, 1, "_CPPv4N2kn4SC_HE", "kn::SC_H"], [3, 1, 1, "_CPPv4N2kn4SC_IE", "kn::SC_I"], [3, 1, 1, "_CPPv4N2kn4SC_JE", "kn::SC_J"], [3, 1, 1, "_CPPv4N2kn4SC_KE", "kn::SC_K"], [3, 1, 1, "_CPPv4N2kn4SC_LE", "kn::SC_L"], [3, 1, 1, "_CPPv4N2kn7SC_LALTE", "kn::SC_LALT"], [3, 1, 1, "_CPPv4N2kn8SC_LCTRLE", "kn::SC_LCTRL"], [3, 1, 1, "_CPPv4N2kn7SC_LEFTE", "kn::SC_LEFT"], [3, 1, 1, "_CPPv4N2kn9SC_LSHIFTE", "kn::SC_LSHIFT"], [3, 1, 1, "_CPPv4N2kn4SC_ME", "kn::SC_M"], [3, 1, 1, "_CPPv4N2kn4SC_NE", "kn::SC_N"], [3, 1, 1, "_CPPv4N2kn4SC_OE", "kn::SC_O"], [3, 1, 1, "_CPPv4N2kn4SC_PE", "kn::SC_P"], [3, 1, 1, "_CPPv4N2kn4SC_QE", "kn::SC_Q"], [3, 1, 1, "_CPPv4N2kn4SC_RE", "kn::SC_R"], [3, 1, 1, "_CPPv4N2kn7SC_RALTE", "kn::SC_RALT"], [3, 1, 1, "_CPPv4N2kn8SC_RCTRLE", "kn::SC_RCTRL"], [3, 1, 1, "_CPPv4N2kn9SC_RETURNE", "kn::SC_RETURN"], [3, 1, 1, "_CPPv4N2kn8SC_RIGHTE", "kn::SC_RIGHT"], [3, 1, 1, "_CPPv4N2kn9SC_RSHIFTE", "kn::SC_RSHIFT"], [3, 1, 1, "_CPPv4N2kn4SC_SE", "kn::SC_S"], [3, 1, 1, "_CPPv4N2kn8SC_SPACEE", "kn::SC_SPACE"], [3, 1, 1, "_CPPv4N2kn4SC_TE", "kn::SC_T"], [3, 1, 1, "_CPPv4N2kn6SC_TABE", "kn::SC_TAB"], [3, 1, 1, "_CPPv4N2kn4SC_UE", "kn::SC_U"], [3, 1, 1, "_CPPv4N2kn5SC_UPE", "kn::SC_UP"], [3, 1, 1, "_CPPv4N2kn4SC_VE", "kn::SC_V"], [3, 1, 1, "_CPPv4N2kn4SC_WE", "kn::SC_W"], [3, 1, 1, "_CPPv4N2kn4SC_XE", "kn::SC_X"], [3, 1, 1, "_CPPv4N2kn4SC_YE", "kn::SC_Y"], [3, 1, 1, "_CPPv4N2kn4SC_ZE", "kn::SC_Z"], [3, 1, 1, "_CPPv4N2kn10SYSWMEVENTE", "kn::SYSWMEVENT"], [3, 1, 1, "_CPPv4N2kn11TEXTEDITINGE", "kn::TEXTEDITING"], [3, 1, 1, "_CPPv4N2kn9TEXTINPUTE", "kn::TEXTINPUT"], [15, 2, 1, "_CPPv4N2kn7TextureE", "kn::Texture"], [15, 3, 1, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture", "kn::Texture::Texture"], [15, 4, 1, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture", "kn::Texture::Texture::texture"], [15, 3, 1, "_CPPv4N2kn7Texture9fitHeightEf", "kn::Texture::fitHeight"], [15, 4, 1, "_CPPv4N2kn7Texture9fitHeightEf", "kn::Texture::fitHeight::height"], [15, 3, 1, "_CPPv4N2kn7Texture8fitWidthEf", "kn::Texture::fitWidth"], [15, 4, 1, "_CPPv4N2kn7Texture8fitWidthEf", "kn::Texture::fitWidth::width"], [15, 3, 1, "_CPPv4NK2kn7Texture7getRectEv", "kn::Texture::getRect"], [15, 3, 1, "_CPPv4NK2kn7Texture13getSDLTextureEv", "kn::Texture::getSDLTexture"], [15, 3, 1, "_CPPv4NK2kn7Texture7getSizeEv", "kn::Texture::getSize"], [15, 3, 1, "_CPPv4N2kn7Texture7scaleByEf", "kn::Texture::scaleBy"], [15, 4, 1, "_CPPv4N2kn7Texture7scaleByEf", "kn::Texture::scaleBy::factor"], [15, 3, 1, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E", "kn::Texture::setSize"], [15, 4, 1, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E", "kn::Texture::setSize::size"], [16, 2, 1, "_CPPv4N2kn12TextureCacheE", "kn::TextureCache"], [16, 3, 1, "_CPPv4N2kn12TextureCache12TextureCacheEv", "kn::TextureCache::TextureCache"], [16, 3, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color", "kn::TextureCache::create"], [16, 4, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color", "kn::TextureCache::create::color"], [16, 4, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color", "kn::TextureCache::create::name"], [16, 4, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color", "kn::TextureCache::create::size"], [16, 3, 1, "_CPPv4NK2kn12TextureCache8getCacheEv", "kn::TextureCache::getCache"], [16, 3, 1, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE", "kn::TextureCache::getTexture"], [16, 4, 1, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE", "kn::TextureCache::getTexture::name"], [16, 3, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load"], [16, 4, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load::name"], [16, 4, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load::path"], [16, 3, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move"], [16, 4, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move::name"], [16, 4, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move::texture"], [16, 3, 1, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE", "kn::TextureCache::unload"], [16, 4, 1, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE", "kn::TextureCache::unload::name"], [16, 3, 1, "_CPPv4N2kn12TextureCache9unloadAllEv", "kn::TextureCache::unloadAll"], [17, 2, 1, "_CPPv4N2kn4TileE", "kn::Tile"], [17, 1, 1, "_CPPv4N2kn4Tile4cropE", "kn::Tile::crop"], [17, 1, 1, "_CPPv4N2kn4Tile4rectE", "kn::Tile::rect"], [17, 1, 1, "_CPPv4N2kn4Tile7textureE", "kn::Tile::texture"], [17, 2, 1, "_CPPv4N2kn7TileMapE", "kn::TileMap"], [17, 3, 1, "_CPPv4N2kn7TileMap7TileMapER12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap"], [17, 4, 1, "_CPPv4N2kn7TileMap7TileMapER12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap::textureCache"], [17, 4, 1, "_CPPv4N2kn7TileMap7TileMapER12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap::tmxPath"], [17, 3, 1, "_CPPv4N2kn7TileMap4drawEv", "kn::TileMap::draw"], [3, 1, 1, "_CPPv4N2kn9USEREVENTE", "kn::USEREVENT"], [3, 1, 1, "_CPPv4N2kn11WINDOWEVENTE", "kn::WINDOWEVENT"], [4, 3, 1, "_CPPv4N2kn4draw4rectER4RectK5Colori", "kn::draw::rect"], [4, 4, 1, "_CPPv4N2kn4draw4rectER4RectK5Colori", "kn::draw::rect::color"], [4, 4, 1, "_CPPv4N2kn4draw4rectER4RectK5Colori", "kn::draw::rect::rect"], [4, 4, 1, "_CPPv4N2kn4draw4rectER4RectK5Colori", "kn::draw::rect::thickness"], [3, 0, 1, "_CPPv4N2kn9float32_tE", "kn::float32_t"], [3, 0, 1, "_CPPv4N2kn9float64_tE", "kn::float64_t"], [9, 3, 1, "_CPPv4N2kn5input14getKeysPressedEv", "kn::input::getKeysPressed"], [9, 3, 1, "_CPPv4N2kn5input21getMouseButtonPressedEv", "kn::input::getMouseButtonPressed"], [9, 3, 1, "_CPPv4N2kn5input11getMousePosEv", "kn::input::getMousePos"], [9, 3, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector"], [9, 4, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector::down"], [9, 4, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector::left"], [9, 4, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector::right"], [9, 4, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE", "kn::input::getVector::up"], [10, 2, 1, "_CPPv4N2kn4math4Vec2E", "kn::math::Vec2"], [10, 3, 1, "_CPPv4N2kn4math4Vec24ZEROEv", "kn::math::Vec2::ZERO"], [10, 3, 1, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2", "kn::math::Vec2::distanceTo"], [10, 4, 1, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2", "kn::math::Vec2::distanceTo::other"], [10, 3, 1, "_CPPv4NK2kn4math4Vec29getLengthEv", "kn::math::Vec2::getLength"], [10, 3, 1, "_CPPv4N2kn4math4Vec29normalizeEv", "kn::math::Vec2::normalize"], [10, 3, 1, "_CPPv4NK2kn4math4Vec2neERK4Vec2", "kn::math::Vec2::operator!="], [10, 4, 1, "_CPPv4NK2kn4math4Vec2neERK4Vec2", "kn::math::Vec2::operator!=::other"], [10, 3, 1, "_CPPv4NK2kn4math4Vec2plERK4Vec2", "kn::math::Vec2::operator+"], [10, 4, 1, "_CPPv4NK2kn4math4Vec2plERK4Vec2", "kn::math::Vec2::operator+::other"], [10, 3, 1, "_CPPv4N2kn4math4Vec2pLERK4Vec2", "kn::math::Vec2::operator+="], [10, 4, 1, "_CPPv4N2kn4math4Vec2pLERK4Vec2", "kn::math::Vec2::operator+=::other"], [10, 3, 1, "_CPPv4NK2kn4math4Vec2miERK4Vec2", "kn::math::Vec2::operator-"], [10, 4, 1, "_CPPv4NK2kn4math4Vec2miERK4Vec2", "kn::math::Vec2::operator-::other"], [10, 3, 1, "_CPPv4NK2kn4math4Vec2eqERK4Vec2", "kn::math::Vec2::operator=="], [10, 4, 1, "_CPPv4NK2kn4math4Vec2eqERK4Vec2", "kn::math::Vec2::operator==::other"], [10, 3, 1, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec"], [10, 4, 1, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::max"], [10, 4, 1, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::min"], [10, 4, 1, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::vec"], [10, 3, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d", "kn::math::lerpVec"], [10, 4, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d", "kn::math::lerpVec::a"], [10, 4, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d", "kn::math::lerpVec::b"], [10, 4, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d", "kn::math::lerpVec::t"], [11, 2, 1, "_CPPv4N2kn5mixer5MusicE", "kn::mixer::Music"], [11, 3, 1, "_CPPv4N2kn5mixer5Music5MusicERKNSt6stringE", "kn::mixer::Music::Music"], [11, 4, 1, "_CPPv4N2kn5mixer5Music5MusicERKNSt6stringE", "kn::mixer::Music::Music::fileDir"], [11, 3, 1, "_CPPv4N2kn5mixer5Music4loadERKNSt6stringE", "kn::mixer::Music::load"], [11, 4, 1, "_CPPv4N2kn5mixer5Music4loadERKNSt6stringE", "kn::mixer::Music::load::fileDir"], [11, 3, 1, "_CPPv4N2kn5mixer5Music5pauseEi", "kn::mixer::Music::pause"], [11, 4, 1, "_CPPv4N2kn5mixer5Music5pauseEi", "kn::mixer::Music::pause::fadeMs"], [11, 3, 1, "_CPPv4N2kn5mixer5Music4playEii", "kn::mixer::Music::play"], [11, 4, 1, "_CPPv4N2kn5mixer5Music4playEii", "kn::mixer::Music::play::fadeMs"], [11, 4, 1, "_CPPv4N2kn5mixer5Music4playEii", "kn::mixer::Music::play::loops"], [11, 3, 1, "_CPPv4N2kn5mixer5Music6resumeEv", "kn::mixer::Music::resume"], [11, 3, 1, "_CPPv4N2kn5mixer5Music9setVolumeEf", "kn::mixer::Music::setVolume"], [11, 4, 1, "_CPPv4N2kn5mixer5Music9setVolumeEf", "kn::mixer::Music::setVolume::volume"], [11, 3, 1, "_CPPv4N2kn5mixer5Music6unloadEv", "kn::mixer::Music::unload"], [11, 2, 1, "_CPPv4N2kn5mixer5SoundE", "kn::mixer::Sound"], [11, 3, 1, "_CPPv4N2kn5mixer5Sound5SoundERKNSt6stringE", "kn::mixer::Sound::Sound"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound5SoundERKNSt6stringE", "kn::mixer::Sound::Sound::fileDir"], [11, 3, 1, "_CPPv4N2kn5mixer5Sound4playEiii", "kn::mixer::Sound::play"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound4playEiii", "kn::mixer::Sound::play::fadeMs"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound4playEiii", "kn::mixer::Sound::play::loops"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound4playEiii", "kn::mixer::Sound::play::playTime"], [11, 3, 1, "_CPPv4N2kn5mixer5Sound9setVolumeEf", "kn::mixer::Sound::setVolume"], [11, 4, 1, "_CPPv4N2kn5mixer5Sound9setVolumeEf", "kn::mixer::Sound::setVolume::volume"], [11, 3, 1, "_CPPv4N2kn5mixer5Sound6unloadEv", "kn::mixer::Sound::unload"], [12, 0, 1, "_CPPv4N2kn8overflowE", "kn::overflow"], [12, 3, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float32_tK9float32_t", "kn::overflow::closeToZero"], [12, 3, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float64_tK9float64_t", "kn::overflow::closeToZero"], [12, 4, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float32_tK9float32_t", "kn::overflow::closeToZero::tolerance"], [12, 4, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float64_tK9float64_t", "kn::overflow::closeToZero::tolerance"], [12, 4, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float32_tK9float32_t", "kn::overflow::closeToZero::value"], [12, 4, 1, "_CPPv4N2kn8overflow11closeToZeroERK9float64_tK9float64_t", "kn::overflow::closeToZero::value"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK7int32_tRK7int32_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK7int64_tRK7int64_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint32_tRK8uint32_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint64_tRK8uint64_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK9float32_tRK9float32_t", "kn::overflow::isProductValid"], [12, 3, 1, "_CPPv4N2kn8overflow14isProductValidERK9float64_tRK9float64_t", "kn::overflow::isProductValid"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK7int32_tRK7int32_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK7int64_tRK7int64_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint32_tRK8uint32_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint64_tRK8uint64_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK9float32_tRK9float32_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK9float64_tRK9float64_t", "kn::overflow::isProductValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK7int32_tRK7int32_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK7int64_tRK7int64_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint32_tRK8uint32_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK8uint64_tRK8uint64_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK9float32_tRK9float32_t", "kn::overflow::isProductValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow14isProductValidERK9float64_tRK9float64_t", "kn::overflow::isProductValid::second"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK7int32_tRK7int32_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK7int64_tRK7int64_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint32_tRK8uint32_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint64_tRK8uint64_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK9float32_tRK9float32_t", "kn::overflow::isSumValid"], [12, 3, 1, "_CPPv4N2kn8overflow10isSumValidERK9float64_tRK9float64_t", "kn::overflow::isSumValid"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK7int32_tRK7int32_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK7int64_tRK7int64_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint32_tRK8uint32_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint64_tRK8uint64_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK9float32_tRK9float32_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK9float64_tRK9float64_t", "kn::overflow::isSumValid::first"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK7int32_tRK7int32_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK7int64_tRK7int64_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint32_tRK8uint32_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK8uint64_tRK8uint64_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK9float32_tRK9float32_t", "kn::overflow::isSumValid::second"], [12, 4, 1, "_CPPv4N2kn8overflow10isSumValidERK9float64_tRK9float64_t", "kn::overflow::isSumValid::second"], [18, 2, 1, "_CPPv4N2kn4time5ClockE", "kn::time::Clock"], [18, 3, 1, "_CPPv4N2kn4time5Clock4tickEi", "kn::time::Clock::tick"], [18, 4, 1, "_CPPv4N2kn4time5Clock4tickEi", "kn::time::Clock::tick::frameRate"]]}, "objtypes": {"0": "cpp:type", "1": "cpp:member", "2": "cpp:class", "3": "cpp:function", "4": "cpp:functionParam", "5": "cpp:templateParam"}, "objnames": {"0": ["cpp", "type", "C++ type"], "1": ["cpp", "member", "C++ member"], "2": ["cpp", "class", "C++ class"], "3": ["cpp", "function", "C++ function"], "4": ["cpp", "functionParam", "C++ function parameter"], "5": ["cpp", "templateParam", "C++ template parameter"]}, "titleterms": {"get": 0, "start": 0, "creat": 0, "window": 0, "kraken": 1, "engin": 1, "doc": 1, "about": 1, "futur": 1, "commun": 1, "instal": 2, "constant": 3, "draw": 4, "entiti": 5, "errorlogg": 6, "font": 7, "api": 8, "refer": 8, "input": 9, "math": 10, "mixer": 11, "overflow": 12, "rect": 13, "renderwindow": 14, "textur": 15, "texturecach": 16, "tilemap": 17, "time": 18, "tutori": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Getting Started": [[0, "getting-started"]], "Creating a Window": [[0, "creating-a-window"]], "Kraken Engine Docs": [[1, "kraken-engine-docs"]], "About": [[1, "about"]], "Future of Kraken Engine": [[1, "future-of-kraken-engine"]], "Community": [[1, "community"]], "Installation": [[2, "installation"]], "constants": [[3, "constants"]], "draw": [[4, "draw"]], "Entity": [[5, "entity"]], "ErrorLogger": [[6, "errorlogger"]], "Font": [[7, "font"]], "API Reference": [[8, "api-reference"]], "input": [[9, "input"]], "math": [[10, "math"]], "mixer": [[11, "mixer"]], "overflow": [[12, "overflow"]], "Rect": [[13, "rect"]], "RenderWindow": [[14, "renderwindow"]], "Texture": [[15, "texture"]], "TextureCache": [[16, "texturecache"]], "TileMap": [[17, "tilemap"]], "time": [[18, "time"]], "Tutorials": [[19, "tutorials"]]}, "indexentries": {"kn (c++ type)": [[3, "_CPPv42kn"]], "kn::audiodeviceadded (c++ member)": [[3, "_CPPv4N2kn16AUDIODEVICEADDEDE"]], "kn::audiodeviceremoved (c++ member)": [[3, "_CPPv4N2kn18AUDIODEVICEREMOVEDE"]], "kn::button_left (c++ member)": [[3, "_CPPv4N2kn11BUTTON_LEFTE"]], "kn::button_middle (c++ member)": [[3, "_CPPv4N2kn13BUTTON_MIDDLEE"]], "kn::button_right (c++ member)": [[3, "_CPPv4N2kn12BUTTON_RIGHTE"]], "kn::clipboardupdate (c++ member)": [[3, "_CPPv4N2kn15CLIPBOARDUPDATEE"]], "kn::controlleraxismotion (c++ member)": [[3, "_CPPv4N2kn20CONTROLLERAXISMOTIONE"]], "kn::controllerbuttondown (c++ member)": [[3, "_CPPv4N2kn20CONTROLLERBUTTONDOWNE"]], "kn::controllerbuttonup (c++ member)": [[3, "_CPPv4N2kn18CONTROLLERBUTTONUPE"]], "kn::controllerdeviceadded (c++ member)": [[3, "_CPPv4N2kn21CONTROLLERDEVICEADDEDE"]], "kn::controllerdeviceremapped (c++ member)": [[3, "_CPPv4N2kn24CONTROLLERDEVICEREMAPPEDE"]], "kn::controllerdeviceremoved (c++ member)": [[3, "_CPPv4N2kn23CONTROLLERDEVICEREMOVEDE"]], "kn::color (c++ type)": [[3, "_CPPv4N2kn5ColorE"]], "kn::displayevent (c++ member)": [[3, "_CPPv4N2kn12DISPLAYEVENTE"]], "kn::dropbegin (c++ member)": [[3, "_CPPv4N2kn9DROPBEGINE"]], "kn::dropcomplete (c++ member)": [[3, "_CPPv4N2kn12DROPCOMPLETEE"]], "kn::dropfile (c++ member)": [[3, "_CPPv4N2kn8DROPFILEE"]], "kn::droptext (c++ member)": [[3, "_CPPv4N2kn8DROPTEXTE"]], "kn::event (c++ type)": [[3, "_CPPv4N2kn5EventE"]], "kn::joyaxismotion (c++ member)": [[3, "_CPPv4N2kn13JOYAXISMOTIONE"]], "kn::joyballmotion (c++ member)": [[3, "_CPPv4N2kn13JOYBALLMOTIONE"]], "kn::joybuttondown (c++ member)": [[3, "_CPPv4N2kn13JOYBUTTONDOWNE"]], "kn::joybuttonup (c++ member)": [[3, "_CPPv4N2kn11JOYBUTTONUPE"]], "kn::joydeviceadded (c++ member)": [[3, "_CPPv4N2kn14JOYDEVICEADDEDE"]], "kn::joydeviceremoved (c++ member)": [[3, "_CPPv4N2kn16JOYDEVICEREMOVEDE"]], "kn::joyhatmotion (c++ member)": [[3, "_CPPv4N2kn12JOYHATMOTIONE"]], "kn::keydown (c++ member)": [[3, "_CPPv4N2kn7KEYDOWNE"]], "kn::keymapchanged (c++ member)": [[3, "_CPPv4N2kn13KEYMAPCHANGEDE"]], "kn::keys (c++ type)": [[3, "_CPPv4N2kn4KEYSE"]], "kn::keyup (c++ member)": [[3, "_CPPv4N2kn5KEYUPE"]], "kn::k_0 (c++ member)": [[3, "_CPPv4N2kn3K_0E"]], "kn::k_1 (c++ member)": [[3, "_CPPv4N2kn3K_1E"]], "kn::k_2 (c++ member)": [[3, "_CPPv4N2kn3K_2E"]], "kn::k_3 (c++ member)": [[3, "_CPPv4N2kn3K_3E"]], "kn::k_4 (c++ member)": [[3, "_CPPv4N2kn3K_4E"]], "kn::k_5 (c++ member)": [[3, "_CPPv4N2kn3K_5E"]], "kn::k_6 (c++ member)": [[3, "_CPPv4N2kn3K_6E"]], "kn::k_7 (c++ member)": [[3, "_CPPv4N2kn3K_7E"]], "kn::k_8 (c++ member)": [[3, "_CPPv4N2kn3K_8E"]], "kn::k_9 (c++ member)": [[3, "_CPPv4N2kn3K_9E"]], "kn::k_ampersand (c++ member)": [[3, "_CPPv4N2kn11K_AMPERSANDE"]], "kn::k_application (c++ member)": [[3, "_CPPv4N2kn13K_APPLICATIONE"]], "kn::k_asterisk (c++ member)": [[3, "_CPPv4N2kn10K_ASTERISKE"]], "kn::k_at (c++ member)": [[3, "_CPPv4N2kn4K_ATE"]], "kn::k_audiomute (c++ member)": [[3, "_CPPv4N2kn11K_AUDIOMUTEE"]], "kn::k_audionext (c++ member)": [[3, "_CPPv4N2kn11K_AUDIONEXTE"]], "kn::k_audioplay (c++ member)": [[3, "_CPPv4N2kn11K_AUDIOPLAYE"]], "kn::k_audioprev (c++ member)": [[3, "_CPPv4N2kn11K_AUDIOPREVE"]], "kn::k_audiostop (c++ member)": [[3, "_CPPv4N2kn11K_AUDIOSTOPE"]], "kn::k_backquote (c++ member)": [[3, "_CPPv4N2kn11K_BACKQUOTEE"]], "kn::k_backslash (c++ member)": [[3, "_CPPv4N2kn11K_BACKSLASHE"]], "kn::k_backspace (c++ member)": [[3, "_CPPv4N2kn11K_BACKSPACEE"]], "kn::k_capslock (c++ member)": [[3, "_CPPv4N2kn10K_CAPSLOCKE"]], "kn::k_caret (c++ member)": [[3, "_CPPv4N2kn7K_CARETE"]], "kn::k_colon (c++ member)": [[3, "_CPPv4N2kn7K_COLONE"]], "kn::k_comma (c++ member)": [[3, "_CPPv4N2kn7K_COMMAE"]], "kn::k_delete (c++ member)": [[3, "_CPPv4N2kn8K_DELETEE"]], "kn::k_displayswitch (c++ member)": [[3, "_CPPv4N2kn15K_DISPLAYSWITCHE"]], "kn::k_dollar (c++ member)": [[3, "_CPPv4N2kn8K_DOLLARE"]], "kn::k_down (c++ member)": [[3, "_CPPv4N2kn6K_DOWNE"]], "kn::k_end (c++ member)": [[3, "_CPPv4N2kn5K_ENDE"]], "kn::k_equals (c++ member)": [[3, "_CPPv4N2kn8K_EQUALSE"]], "kn::k_escape (c++ member)": [[3, "_CPPv4N2kn8K_ESCAPEE"]], "kn::k_exclaim (c++ member)": [[3, "_CPPv4N2kn9K_EXCLAIME"]], "kn::k_f1 (c++ member)": [[3, "_CPPv4N2kn4K_F1E"]], "kn::k_f10 (c++ member)": [[3, "_CPPv4N2kn5K_F10E"]], "kn::k_f11 (c++ member)": [[3, "_CPPv4N2kn5K_F11E"]], "kn::k_f12 (c++ member)": [[3, "_CPPv4N2kn5K_F12E"]], "kn::k_f2 (c++ member)": [[3, "_CPPv4N2kn4K_F2E"]], "kn::k_f3 (c++ member)": [[3, "_CPPv4N2kn4K_F3E"]], "kn::k_f4 (c++ member)": [[3, "_CPPv4N2kn4K_F4E"]], "kn::k_f5 (c++ member)": [[3, "_CPPv4N2kn4K_F5E"]], "kn::k_f6 (c++ member)": [[3, "_CPPv4N2kn4K_F6E"]], "kn::k_f7 (c++ member)": [[3, "_CPPv4N2kn4K_F7E"]], "kn::k_f8 (c++ member)": [[3, "_CPPv4N2kn4K_F8E"]], "kn::k_f9 (c++ member)": [[3, "_CPPv4N2kn4K_F9E"]], "kn::k_greater (c++ member)": [[3, "_CPPv4N2kn9K_GREATERE"]], "kn::k_hash (c++ member)": [[3, "_CPPv4N2kn6K_HASHE"]], "kn::k_home (c++ member)": [[3, "_CPPv4N2kn6K_HOMEE"]], "kn::k_insert (c++ member)": [[3, "_CPPv4N2kn8K_INSERTE"]], "kn::k_kp_0 (c++ member)": [[3, "_CPPv4N2kn6K_KP_0E"]], "kn::k_kp_1 (c++ member)": [[3, "_CPPv4N2kn6K_KP_1E"]], "kn::k_kp_2 (c++ member)": [[3, "_CPPv4N2kn6K_KP_2E"]], "kn::k_kp_3 (c++ member)": [[3, "_CPPv4N2kn6K_KP_3E"]], "kn::k_kp_4 (c++ member)": [[3, "_CPPv4N2kn6K_KP_4E"]], "kn::k_kp_5 (c++ member)": [[3, "_CPPv4N2kn6K_KP_5E"]], "kn::k_kp_6 (c++ member)": [[3, "_CPPv4N2kn6K_KP_6E"]], "kn::k_kp_7 (c++ member)": [[3, "_CPPv4N2kn6K_KP_7E"]], "kn::k_kp_8 (c++ member)": [[3, "_CPPv4N2kn6K_KP_8E"]], "kn::k_kp_9 (c++ member)": [[3, "_CPPv4N2kn6K_KP_9E"]], "kn::k_kp_divide (c++ member)": [[3, "_CPPv4N2kn11K_KP_DIVIDEE"]], "kn::k_kp_enter (c++ member)": [[3, "_CPPv4N2kn10K_KP_ENTERE"]], "kn::k_kp_minus (c++ member)": [[3, "_CPPv4N2kn10K_KP_MINUSE"]], "kn::k_kp_multiply (c++ member)": [[3, "_CPPv4N2kn13K_KP_MULTIPLYE"]], "kn::k_kp_period (c++ member)": [[3, "_CPPv4N2kn11K_KP_PERIODE"]], "kn::k_kp_plus (c++ member)": [[3, "_CPPv4N2kn9K_KP_PLUSE"]], "kn::k_lalt (c++ member)": [[3, "_CPPv4N2kn6K_LALTE"]], "kn::k_lctrl (c++ member)": [[3, "_CPPv4N2kn7K_LCTRLE"]], "kn::k_left (c++ member)": [[3, "_CPPv4N2kn6K_LEFTE"]], "kn::k_leftbracket (c++ member)": [[3, "_CPPv4N2kn13K_LEFTBRACKETE"]], "kn::k_leftparen (c++ member)": [[3, "_CPPv4N2kn11K_LEFTPARENE"]], "kn::k_less (c++ member)": [[3, "_CPPv4N2kn6K_LESSE"]], "kn::k_lshift (c++ member)": [[3, "_CPPv4N2kn8K_LSHIFTE"]], "kn::k_minus (c++ member)": [[3, "_CPPv4N2kn7K_MINUSE"]], "kn::k_numlockclear (c++ member)": [[3, "_CPPv4N2kn14K_NUMLOCKCLEARE"]], "kn::k_pagedown (c++ member)": [[3, "_CPPv4N2kn10K_PAGEDOWNE"]], "kn::k_pageup (c++ member)": [[3, "_CPPv4N2kn8K_PAGEUPE"]], "kn::k_percent (c++ member)": [[3, "_CPPv4N2kn9K_PERCENTE"]], "kn::k_period (c++ member)": [[3, "_CPPv4N2kn8K_PERIODE"]], "kn::k_plus (c++ member)": [[3, "_CPPv4N2kn6K_PLUSE"]], "kn::k_printscreen (c++ member)": [[3, "_CPPv4N2kn13K_PRINTSCREENE"]], "kn::k_question (c++ member)": [[3, "_CPPv4N2kn10K_QUESTIONE"]], "kn::k_quotedbl (c++ member)": [[3, "_CPPv4N2kn10K_QUOTEDBLE"]], "kn::k_ralt (c++ member)": [[3, "_CPPv4N2kn6K_RALTE"]], "kn::k_rctrl (c++ member)": [[3, "_CPPv4N2kn7K_RCTRLE"]], "kn::k_return (c++ member)": [[3, "_CPPv4N2kn8K_RETURNE"]], "kn::k_right (c++ member)": [[3, "_CPPv4N2kn7K_RIGHTE"]], "kn::k_rightbracket (c++ member)": [[3, "_CPPv4N2kn14K_RIGHTBRACKETE"]], "kn::k_rightparen (c++ member)": [[3, "_CPPv4N2kn12K_RIGHTPARENE"]], "kn::k_rshift (c++ member)": [[3, "_CPPv4N2kn8K_RSHIFTE"]], "kn::k_semicolon (c++ member)": [[3, "_CPPv4N2kn11K_SEMICOLONE"]], "kn::k_slash (c++ member)": [[3, "_CPPv4N2kn7K_SLASHE"]], "kn::k_space (c++ member)": [[3, "_CPPv4N2kn7K_SPACEE"]], "kn::k_tab (c++ member)": [[3, "_CPPv4N2kn5K_TABE"]], "kn::k_underscore (c++ member)": [[3, "_CPPv4N2kn12K_UNDERSCOREE"]], "kn::k_up (c++ member)": [[3, "_CPPv4N2kn4K_UPE"]], "kn::k_a (c++ member)": [[3, "_CPPv4N2kn3K_aE"]], "kn::k_b (c++ member)": [[3, "_CPPv4N2kn3K_bE"]], "kn::k_c (c++ member)": [[3, "_CPPv4N2kn3K_cE"]], "kn::k_d (c++ member)": [[3, "_CPPv4N2kn3K_dE"]], "kn::k_e (c++ member)": [[3, "_CPPv4N2kn3K_eE"]], "kn::k_f (c++ member)": [[3, "_CPPv4N2kn3K_fE"]], "kn::k_g (c++ member)": [[3, "_CPPv4N2kn3K_gE"]], "kn::k_h (c++ member)": [[3, "_CPPv4N2kn3K_hE"]], "kn::k_i (c++ member)": [[3, "_CPPv4N2kn3K_iE"]], "kn::k_j (c++ member)": [[3, "_CPPv4N2kn3K_jE"]], "kn::k_k (c++ member)": [[3, "_CPPv4N2kn3K_kE"]], "kn::k_l (c++ member)": [[3, "_CPPv4N2kn3K_lE"]], "kn::k_m (c++ member)": [[3, "_CPPv4N2kn3K_mE"]], "kn::k_n (c++ member)": [[3, "_CPPv4N2kn3K_nE"]], "kn::k_o (c++ member)": [[3, "_CPPv4N2kn3K_oE"]], "kn::k_p (c++ member)": [[3, "_CPPv4N2kn3K_pE"]], "kn::k_q (c++ member)": [[3, "_CPPv4N2kn3K_qE"]], "kn::k_r (c++ member)": [[3, "_CPPv4N2kn3K_rE"]], "kn::k_s (c++ member)": [[3, "_CPPv4N2kn3K_sE"]], "kn::k_t (c++ member)": [[3, "_CPPv4N2kn3K_tE"]], "kn::k_u (c++ member)": [[3, "_CPPv4N2kn3K_uE"]], "kn::k_v (c++ member)": [[3, "_CPPv4N2kn3K_vE"]], "kn::k_w (c++ member)": [[3, "_CPPv4N2kn3K_wE"]], "kn::k_x (c++ member)": [[3, "_CPPv4N2kn3K_xE"]], "kn::k_y (c++ member)": [[3, "_CPPv4N2kn3K_yE"]], "kn::k_z (c++ member)": [[3, "_CPPv4N2kn3K_zE"]], "kn::mousebuttondown (c++ member)": [[3, "_CPPv4N2kn15MOUSEBUTTONDOWNE"]], "kn::mousebuttonup (c++ member)": [[3, "_CPPv4N2kn13MOUSEBUTTONUPE"]], "kn::mousemotion (c++ member)": [[3, "_CPPv4N2kn11MOUSEMOTIONE"]], "kn::mousewheel (c++ member)": [[3, "_CPPv4N2kn10MOUSEWHEELE"]], "kn::quit (c++ member)": [[3, "_CPPv4N2kn4QUITE"]], "kn::sc_0 (c++ member)": [[3, "_CPPv4N2kn4SC_0E"]], "kn::sc_1 (c++ member)": [[3, "_CPPv4N2kn4SC_1E"]], "kn::sc_2 (c++ member)": [[3, "_CPPv4N2kn4SC_2E"]], "kn::sc_3 (c++ member)": [[3, "_CPPv4N2kn4SC_3E"]], "kn::sc_4 (c++ member)": [[3, "_CPPv4N2kn4SC_4E"]], "kn::sc_5 (c++ member)": [[3, "_CPPv4N2kn4SC_5E"]], "kn::sc_6 (c++ member)": [[3, "_CPPv4N2kn4SC_6E"]], "kn::sc_7 (c++ member)": [[3, "_CPPv4N2kn4SC_7E"]], "kn::sc_8 (c++ member)": [[3, "_CPPv4N2kn4SC_8E"]], "kn::sc_9 (c++ member)": [[3, "_CPPv4N2kn4SC_9E"]], "kn::sc_a (c++ member)": [[3, "_CPPv4N2kn4SC_AE"]], "kn::sc_b (c++ member)": [[3, "_CPPv4N2kn4SC_BE"]], "kn::sc_c (c++ member)": [[3, "_CPPv4N2kn4SC_CE"]], "kn::sc_d (c++ member)": [[3, "_CPPv4N2kn4SC_DE"]], "kn::sc_down (c++ member)": [[3, "_CPPv4N2kn7SC_DOWNE"]], "kn::sc_e (c++ member)": [[3, "_CPPv4N2kn4SC_EE"]], "kn::sc_f (c++ member)": [[3, "_CPPv4N2kn4SC_FE"]], "kn::sc_g (c++ member)": [[3, "_CPPv4N2kn4SC_GE"]], "kn::sc_h (c++ member)": [[3, "_CPPv4N2kn4SC_HE"]], "kn::sc_i (c++ member)": [[3, "_CPPv4N2kn4SC_IE"]], "kn::sc_j (c++ member)": [[3, "_CPPv4N2kn4SC_JE"]], "kn::sc_k (c++ member)": [[3, "_CPPv4N2kn4SC_KE"]], "kn::sc_l (c++ member)": [[3, "_CPPv4N2kn4SC_LE"]], "kn::sc_lalt (c++ member)": [[3, "_CPPv4N2kn7SC_LALTE"]], "kn::sc_lctrl (c++ member)": [[3, "_CPPv4N2kn8SC_LCTRLE"]], "kn::sc_left (c++ member)": [[3, "_CPPv4N2kn7SC_LEFTE"]], "kn::sc_lshift (c++ member)": [[3, "_CPPv4N2kn9SC_LSHIFTE"]], "kn::sc_m (c++ member)": [[3, "_CPPv4N2kn4SC_ME"]], "kn::sc_n (c++ member)": [[3, "_CPPv4N2kn4SC_NE"]], "kn::sc_o (c++ member)": [[3, "_CPPv4N2kn4SC_OE"]], "kn::sc_p (c++ member)": [[3, "_CPPv4N2kn4SC_PE"]], "kn::sc_q (c++ member)": [[3, "_CPPv4N2kn4SC_QE"]], "kn::sc_r (c++ member)": [[3, "_CPPv4N2kn4SC_RE"]], "kn::sc_ralt (c++ member)": [[3, "_CPPv4N2kn7SC_RALTE"]], "kn::sc_rctrl (c++ member)": [[3, "_CPPv4N2kn8SC_RCTRLE"]], "kn::sc_return (c++ member)": [[3, "_CPPv4N2kn9SC_RETURNE"]], "kn::sc_right (c++ member)": [[3, "_CPPv4N2kn8SC_RIGHTE"]], "kn::sc_rshift (c++ member)": [[3, "_CPPv4N2kn9SC_RSHIFTE"]], "kn::sc_s (c++ member)": [[3, "_CPPv4N2kn4SC_SE"]], "kn::sc_space (c++ member)": [[3, "_CPPv4N2kn8SC_SPACEE"]], "kn::sc_t (c++ member)": [[3, "_CPPv4N2kn4SC_TE"]], "kn::sc_tab (c++ member)": [[3, "_CPPv4N2kn6SC_TABE"]], "kn::sc_u (c++ member)": [[3, "_CPPv4N2kn4SC_UE"]], "kn::sc_up (c++ member)": [[3, "_CPPv4N2kn5SC_UPE"]], "kn::sc_v (c++ member)": [[3, "_CPPv4N2kn4SC_VE"]], "kn::sc_w (c++ member)": [[3, "_CPPv4N2kn4SC_WE"]], "kn::sc_x (c++ member)": [[3, "_CPPv4N2kn4SC_XE"]], "kn::sc_y (c++ member)": [[3, "_CPPv4N2kn4SC_YE"]], "kn::sc_z (c++ member)": [[3, "_CPPv4N2kn4SC_ZE"]], "kn::syswmevent (c++ member)": [[3, "_CPPv4N2kn10SYSWMEVENTE"]], "kn::textediting (c++ member)": [[3, "_CPPv4N2kn11TEXTEDITINGE"]], "kn::textinput (c++ member)": [[3, "_CPPv4N2kn9TEXTINPUTE"]], "kn::userevent (c++ member)": [[3, "_CPPv4N2kn9USEREVENTE"]], "kn::windowevent (c++ member)": [[3, "_CPPv4N2kn11WINDOWEVENTE"]], "kn::float32_t (c++ type)": [[3, "_CPPv4N2kn9float32_tE"]], "kn::float64_t (c++ type)": [[3, "_CPPv4N2kn9float64_tE"]], "kn::draw::rect (c++ function)": [[4, "_CPPv4N2kn4draw4rectER4RectK5Colori"]], "kn::entity (c++ class)": [[5, "_CPPv4N2kn6EntityE"]], "kn::entity::entity (c++ function)": [[5, "_CPPv4N2kn6Entity6EntityENSt10shared_ptrI7TextureEE"]], "kn::entity::gettexture (c++ function)": [[5, "_CPPv4NK2kn6Entity10getTextureEv"]], "kn::entity::moveandcollide (c++ function)": [[5, "_CPPv4I0EN2kn6Entity14moveAndCollideEvdRKNSt6vectorINSt10shared_ptrI1TEEEE"]], "kn::errorlogger (c++ class)": [[6, "_CPPv4N2kn11ErrorLoggerE"]], "kn::errorlogger::getinstance (c++ function)": [[6, "_CPPv4N2kn11ErrorLogger11getInstanceEv"]], "kn::errorlogger::log (c++ function)": [[6, "_CPPv4N2kn11ErrorLogger3logERKNSt6stringE"]], "kn::font (c++ class)": [[7, "_CPPv4N2kn4FontE"]], "kn::font::font (c++ function)": [[7, "_CPPv4N2kn4Font4FontERKNSt6stringEi"]], "kn::font::render (c++ function)": [[7, "_CPPv4N2kn4Font6renderERKNSt6stringEb5Colori"]], "kn::input::getkeyspressed (c++ function)": [[9, "_CPPv4N2kn5input14getKeysPressedEv"]], "kn::input::getmousebuttonpressed (c++ function)": [[9, "_CPPv4N2kn5input21getMouseButtonPressedEv"]], "kn::input::getmousepos (c++ function)": [[9, "_CPPv4N2kn5input11getMousePosEv"]], "kn::input::getvector (c++ function)": [[9, "_CPPv4N2kn5input9getVectorERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEERKNSt6vectorI4KEYSEE"]], "kn::math::vec2 (c++ class)": [[10, "_CPPv4N2kn4math4Vec2E"]], "kn::math::vec2::zero (c++ function)": [[10, "_CPPv4N2kn4math4Vec24ZEROEv"]], "kn::math::vec2::distanceto (c++ function)": [[10, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2"]], "kn::math::vec2::getlength (c++ function)": [[10, "_CPPv4NK2kn4math4Vec29getLengthEv"]], "kn::math::vec2::normalize (c++ function)": [[10, "_CPPv4N2kn4math4Vec29normalizeEv"]], "kn::math::vec2::operator!= (c++ function)": [[10, "_CPPv4NK2kn4math4Vec2neERK4Vec2"]], "kn::math::vec2::operator+ (c++ function)": [[10, "_CPPv4NK2kn4math4Vec2plERK4Vec2"]], "kn::math::vec2::operator+= (c++ function)": [[10, "_CPPv4N2kn4math4Vec2pLERK4Vec2"]], "kn::math::vec2::operator- (c++ function)": [[10, "_CPPv4NK2kn4math4Vec2miERK4Vec2"]], "kn::math::vec2::operator== (c++ function)": [[10, "_CPPv4NK2kn4math4Vec2eqERK4Vec2"]], "kn::math::clampvec (c++ function)": [[10, "_CPPv4N2kn4math8clampVecERK4Vec2RK4Vec2RK4Vec2"]], "kn::math::lerpvec (c++ function)": [[10, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2d"]], "kn::mixer::music (c++ class)": [[11, "_CPPv4N2kn5mixer5MusicE"]], "kn::mixer::music::music (c++ function)": [[11, "_CPPv4N2kn5mixer5Music5MusicERKNSt6stringE"]], "kn::mixer::music::load (c++ function)": [[11, "_CPPv4N2kn5mixer5Music4loadERKNSt6stringE"]], "kn::mixer::music::pause (c++ function)": [[11, "_CPPv4N2kn5mixer5Music5pauseEi"]], "kn::mixer::music::play (c++ function)": [[11, "_CPPv4N2kn5mixer5Music4playEii"]], "kn::mixer::music::resume (c++ function)": [[11, "_CPPv4N2kn5mixer5Music6resumeEv"]], "kn::mixer::music::setvolume (c++ function)": [[11, "_CPPv4N2kn5mixer5Music9setVolumeEf"]], "kn::mixer::music::unload (c++ function)": [[11, "_CPPv4N2kn5mixer5Music6unloadEv"]], "kn::mixer::sound (c++ class)": [[11, "_CPPv4N2kn5mixer5SoundE"]], "kn::mixer::sound::sound (c++ function)": [[11, "_CPPv4N2kn5mixer5Sound5SoundERKNSt6stringE"]], "kn::mixer::sound::play (c++ function)": [[11, "_CPPv4N2kn5mixer5Sound4playEiii"]], "kn::mixer::sound::setvolume (c++ function)": [[11, "_CPPv4N2kn5mixer5Sound9setVolumeEf"]], "kn::mixer::sound::unload (c++ function)": [[11, "_CPPv4N2kn5mixer5Sound6unloadEv"]], "kn::overflow (c++ type)": [[12, "_CPPv4N2kn8overflowE"]], "kn::overflow::closetozero (c++ function)": [[12, "_CPPv4N2kn8overflow11closeToZeroERK9float32_tK9float32_t"], [12, "_CPPv4N2kn8overflow11closeToZeroERK9float64_tK9float64_t"]], "kn::overflow::isproductvalid (c++ function)": [[12, "_CPPv4N2kn8overflow14isProductValidERK7int32_tRK7int32_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK7int64_tRK7int64_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK8uint32_tRK8uint32_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK8uint64_tRK8uint64_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK9float32_tRK9float32_t"], [12, "_CPPv4N2kn8overflow14isProductValidERK9float64_tRK9float64_t"]], "kn::overflow::issumvalid (c++ function)": [[12, "_CPPv4N2kn8overflow10isSumValidERK7int32_tRK7int32_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK7int64_tRK7int64_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK8uint32_tRK8uint32_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK8uint64_tRK8uint64_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK9float32_tRK9float32_t"], [12, "_CPPv4N2kn8overflow10isSumValidERK9float64_tRK9float64_t"]], "kn::rect (c++ struct)": [[13, "_CPPv4N2kn4RectE"]], "kn::rect::rect (c++ function)": [[13, "_CPPv4N2kn4Rect4RectEffff"], [13, "_CPPv4N2kn4Rect4RectEiiii"], [13, "_CPPv4N2kn4Rect4RectEv"]], "kn::rect::clamp (c++ function)": [[13, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E"]], "kn::rect::collidepoint (c++ function)": [[13, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E"]], "kn::rect::colliderect (c++ function)": [[13, "_CPPv4N2kn4Rect11collideRectERK4Rect"]], "kn::rect::getbottom (c++ function)": [[13, "_CPPv4N2kn4Rect9getBottomEv"]], "kn::rect::getbottomleft (c++ function)": [[13, "_CPPv4N2kn4Rect13getBottomLeftEv"]], "kn::rect::getbottommid (c++ function)": [[13, "_CPPv4N2kn4Rect12getBottomMidEv"]], "kn::rect::getbottomright (c++ function)": [[13, "_CPPv4N2kn4Rect14getBottomRightEv"]], "kn::rect::getcenter (c++ function)": [[13, "_CPPv4N2kn4Rect9getCenterEv"]], "kn::rect::getleft (c++ function)": [[13, "_CPPv4N2kn4Rect7getLeftEv"]], "kn::rect::getleftmid (c++ function)": [[13, "_CPPv4N2kn4Rect10getLeftMidEv"]], "kn::rect::getpos (c++ function)": [[13, "_CPPv4N2kn4Rect6getPosEv"]], "kn::rect::getright (c++ function)": [[13, "_CPPv4N2kn4Rect8getRightEv"]], "kn::rect::getrightmid (c++ function)": [[13, "_CPPv4N2kn4Rect11getRightMidEv"]], "kn::rect::getsize (c++ function)": [[13, "_CPPv4N2kn4Rect7getSizeEv"]], "kn::rect::gettop (c++ function)": [[13, "_CPPv4N2kn4Rect6getTopEv"]], "kn::rect::gettopleft (c++ function)": [[13, "_CPPv4N2kn4Rect10getTopLeftEv"]], "kn::rect::gettopmid (c++ function)": [[13, "_CPPv4N2kn4Rect9getTopMidEv"]], "kn::rect::gettopright (c++ function)": [[13, "_CPPv4N2kn4Rect11getTopRightEv"]], "kn::rect::setbottom (c++ function)": [[13, "_CPPv4N2kn4Rect9setBottomEf"]], "kn::rect::setbottomleft (c++ function)": [[13, "_CPPv4N2kn4Rect13setBottomLeftERKN4math4Vec2E"]], "kn::rect::setbottommid (c++ function)": [[13, "_CPPv4N2kn4Rect12setBottomMidERKN4math4Vec2E"]], "kn::rect::setbottomright (c++ function)": [[13, "_CPPv4N2kn4Rect14setBottomRightERKN4math4Vec2E"]], "kn::rect::setcenter (c++ function)": [[13, "_CPPv4N2kn4Rect9setCenterERKN4math4Vec2E"]], "kn::rect::setleft (c++ function)": [[13, "_CPPv4N2kn4Rect7setLeftEf"]], "kn::rect::setleftmid (c++ function)": [[13, "_CPPv4N2kn4Rect10setLeftMidERKN4math4Vec2E"]], "kn::rect::setright (c++ function)": [[13, "_CPPv4N2kn4Rect8setRightEf"]], "kn::rect::setrightmid (c++ function)": [[13, "_CPPv4N2kn4Rect11setRightMidERKN4math4Vec2E"]], "kn::rect::setsize (c++ function)": [[13, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E"]], "kn::rect::settop (c++ function)": [[13, "_CPPv4N2kn4Rect6setTopEf"]], "kn::rect::settopleft (c++ function)": [[13, "_CPPv4N2kn4Rect10setTopLeftERKN4math4Vec2E"]], "kn::rect::settopmid (c++ function)": [[13, "_CPPv4N2kn4Rect9setTopMidERKN4math4Vec2E"]], "kn::rect::settopright (c++ function)": [[13, "_CPPv4N2kn4Rect11setTopRightERKN4math4Vec2E"]], "kn::renderwindow (c++ class)": [[14, "_CPPv4N2kn12RenderWindowE"]], "kn::renderwindow::blit (c++ function)": [[14, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect"], [14, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E"]], "kn::renderwindow::blitex (c++ function)": [[14, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb"], [14, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb"]], "kn::renderwindow::cls (c++ function)": [[14, "_CPPv4N2kn12RenderWindow3clsE5Color"]], "kn::renderwindow::flip (c++ function)": [[14, "_CPPv4N2kn12RenderWindow4flipEv"]], "kn::renderwindow::getevents (c++ function)": [[14, "_CPPv4N2kn12RenderWindow9getEventsEv"]], "kn::renderwindow::getfullscreen (c++ function)": [[14, "_CPPv4NK2kn12RenderWindow13getFullscreenEv"]], "kn::renderwindow::getinstance (c++ function)": [[14, "_CPPv4N2kn12RenderWindow11getInstanceEv"]], "kn::renderwindow::getrenderer (c++ function)": [[14, "_CPPv4N2kn12RenderWindow11getRendererEv"]], "kn::renderwindow::getscale (c++ function)": [[14, "_CPPv4N2kn12RenderWindow8getScaleEv"]], "kn::renderwindow::setfullscreen (c++ function)": [[14, "_CPPv4N2kn12RenderWindow13setFullscreenEb"]], "kn::renderwindow::setscale (c++ function)": [[14, "_CPPv4N2kn12RenderWindow8setScaleEi"]], "kn::renderwindow::settitle (c++ function)": [[14, "_CPPv4N2kn12RenderWindow8setTitleERKNSt6stringE"]], "kn::texture (c++ class)": [[15, "_CPPv4N2kn7TextureE"]], "kn::texture::texture (c++ function)": [[15, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture"]], "kn::texture::fitheight (c++ function)": [[15, "_CPPv4N2kn7Texture9fitHeightEf"]], "kn::texture::fitwidth (c++ function)": [[15, "_CPPv4N2kn7Texture8fitWidthEf"]], "kn::texture::getrect (c++ function)": [[15, "_CPPv4NK2kn7Texture7getRectEv"]], "kn::texture::getsdltexture (c++ function)": [[15, "_CPPv4NK2kn7Texture13getSDLTextureEv"]], "kn::texture::getsize (c++ function)": [[15, "_CPPv4NK2kn7Texture7getSizeEv"]], "kn::texture::scaleby (c++ function)": [[15, "_CPPv4N2kn7Texture7scaleByEf"]], "kn::texture::setsize (c++ function)": [[15, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E"]], "kn::texturecache (c++ class)": [[16, "_CPPv4N2kn12TextureCacheE"]], "kn::texturecache::texturecache (c++ function)": [[16, "_CPPv4N2kn12TextureCache12TextureCacheEv"]], "kn::texturecache::create (c++ function)": [[16, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E5Color"]], "kn::texturecache::getcache (c++ function)": [[16, "_CPPv4NK2kn12TextureCache8getCacheEv"]], "kn::texturecache::gettexture (c++ function)": [[16, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE"]], "kn::texturecache::load (c++ function)": [[16, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE"]], "kn::texturecache::move (c++ function)": [[16, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE"]], "kn::texturecache::unload (c++ function)": [[16, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE"]], "kn::texturecache::unloadall (c++ function)": [[16, "_CPPv4N2kn12TextureCache9unloadAllEv"]], "kn::tile (c++ struct)": [[17, "_CPPv4N2kn4TileE"]], "kn::tile::crop (c++ member)": [[17, "_CPPv4N2kn4Tile4cropE"]], "kn::tile::rect (c++ member)": [[17, "_CPPv4N2kn4Tile4rectE"]], "kn::tile::texture (c++ member)": [[17, "_CPPv4N2kn4Tile7textureE"]], "kn::tilemap (c++ class)": [[17, "_CPPv4N2kn7TileMapE"]], "kn::tilemap::tilemap (c++ function)": [[17, "_CPPv4N2kn7TileMap7TileMapER12TextureCacheRKNSt6stringE"]], "kn::tilemap::draw (c++ function)": [[17, "_CPPv4N2kn7TileMap4drawEv"]], "kn::time::clock (c++ class)": [[18, "_CPPv4N2kn4time5ClockE"]], "kn::time::clock::tick (c++ function)": [[18, "_CPPv4N2kn4time5Clock4tickEi"]]}}) \ No newline at end of file diff --git a/docs/source/reference/mixer.rst b/docs/source/reference/mixer.rst index fcde1ea..b9844a0 100644 --- a/docs/source/reference/mixer.rst +++ b/docs/source/reference/mixer.rst @@ -3,4 +3,7 @@ mixer ===== .. doxygenclass:: kn::mixer::Sound + :members: + +.. doxygenclass:: kn::mixer::Music :members: \ No newline at end of file diff --git a/docs/source/xml/_mixer_8hpp.xml b/docs/source/xml/_mixer_8hpp.xml index 7a1f741..9065095 100644 --- a/docs/source/xml/_mixer_8hpp.xml +++ b/docs/source/xml/_mixer_8hpp.xml @@ -66,27 +66,45 @@ explicitSound(conststd::string&fileDir); ~Sound() { -if(sound) -Mix_FreeChunk(sound); +if(m_sound) +Mix_FreeChunk(m_sound); } voidplay(intloops=0,intplayTime=-1,intfadeMs=0); -voidsetVolume(floatvolume); +voidsetVolume(floatvolume); voidunload(); private: -Mix_Chunk*sound=nullptr; -floatvolume=MIX_MAX_VOLUME; +Mix_Chunk*m_sound=nullptr; +floatm_volume=MIX_MAX_VOLUME; }; -classMusicfinal -{ -}; - -}//namespacemixer -}//namespacekn +classMusicfinal +{ +public: +explicitMusic(conststd::string&fileDir); +~Music(){unload();} + +voidsetVolume(floatvolume); + +voidplay(intloops=0,intfadeMs=0); + +voidpause(intfadeMs=0); + +voidresume(); + +voidload(conststd::string&fileDir); + +voidunload(); + +private: +Mix_Music*m_music=nullptr; +}; + +}//namespacemixer +}//namespacekn diff --git a/docs/source/xml/classkn_1_1mixer_1_1_music.xml b/docs/source/xml/classkn_1_1mixer_1_1_music.xml index 0ec7d6f..615722b 100644 --- a/docs/source/xml/classkn_1_1mixer_1_1_music.xml +++ b/docs/source/xml/classkn_1_1mixer_1_1_music.xml @@ -3,12 +3,248 @@ kn::mixer::Music Mixer.hpp + + + Mix_Music * + Mix_Music* kn::mixer::Music::m_music + + m_music + kn::mixer::Music::m_music + = nullptr + + + + + + + + + + + + + kn::mixer::Music::Music + (const std::string &fileDir) + Music + kn::mixer::Music::Music + + const std::string & + fileDir + + +Create a music object. + + + + +fileDir + + +The directory of the music file. + + + + + + + + + + + + kn::mixer::Music::~Music + () + ~Music + kn::mixer::Music::~Music + + + + + + + + + + void + void kn::mixer::Music::setVolume + (float volume) + setVolume + kn::mixer::Music::setVolume + + float + volume + + +Set the volume of the music. + + + + +volume + + +The volume to set. + + + + + + + + + + + void + void kn::mixer::Music::play + (int loops=0, int fadeMs=0) + play + kn::mixer::Music::play + + int + loops + 0 + + + int + fadeMs + 0 + + +Play the music. + + + + +loops + + +The number of times to loop the music. + + + + +fadeMs + + +The number of milliseconds to fade in. + + + + + + + + + + + void + void kn::mixer::Music::pause + (int fadeMs=0) + pause + kn::mixer::Music::pause + + int + fadeMs + 0 + + +Pause the music. + + + + +fadeMs + + +The number of milliseconds to fade out. + + + + + + + + + + + void + void kn::mixer::Music::resume + () + resume + kn::mixer::Music::resume + +Resume the music. + + + + + + + + + void + void kn::mixer::Music::load + (const std::string &fileDir) + load + kn::mixer::Music::load + + const std::string & + fileDir + + +Load a music file. + + + + +fileDir + + +The directory of the music file. + + + + + + + + + + + void + void kn::mixer::Music::unload + () + unload + kn::mixer::Music::unload + +Free the music from memory. + + + + + + + + +A music object. +This class is planned to become a singleton. + + - + + kn::mixer::Musicload + kn::mixer::Musicm_music + kn::mixer::MusicMusic + kn::mixer::Musicpause + kn::mixer::Musicplay + kn::mixer::Musicresume + kn::mixer::MusicsetVolume + kn::mixer::Musicunload + kn::mixer::Music~Music diff --git a/docs/source/xml/classkn_1_1mixer_1_1_sound.xml b/docs/source/xml/classkn_1_1mixer_1_1_sound.xml index e3b3844..66df854 100644 --- a/docs/source/xml/classkn_1_1mixer_1_1_sound.xml +++ b/docs/source/xml/classkn_1_1mixer_1_1_sound.xml @@ -4,12 +4,12 @@ kn::mixer::Sound Mixer.hpp - + Mix_Chunk * - Mix_Chunk* kn::mixer::Sound::sound + Mix_Chunk* kn::mixer::Sound::m_sound - sound - kn::mixer::Sound::sound + m_sound + kn::mixer::Sound::m_sound = nullptr @@ -19,12 +19,12 @@ - + float - float kn::mixer::Sound::volume + float kn::mixer::Sound::m_volume - volume - kn::mixer::Sound::volume + m_volume + kn::mixer::Sound::m_volume = MIX_MAX_VOLUME @@ -187,12 +187,12 @@ + kn::mixer::Soundm_sound + kn::mixer::Soundm_volume kn::mixer::Soundplay kn::mixer::SoundsetVolume - kn::mixer::Soundsound kn::mixer::SoundSound kn::mixer::Soundunload - kn::mixer::Soundvolume kn::mixer::Sound~Sound diff --git a/docs/source/xml/index.xml b/docs/source/xml/index.xml index f61219f..8172f56 100644 --- a/docs/source/xml/index.xml +++ b/docs/source/xml/index.xml @@ -45,6 +45,15 @@ render kn::mixer::Music + m_music + Music + ~Music + setVolume + play + pause + resume + load + unload kn::Rect Rect @@ -109,8 +118,8 @@ operator= kn::mixer::Sound - sound - volume + m_sound + m_volume Sound ~Sound play diff --git a/include/Mixer.hpp b/include/Mixer.hpp index 9598726..2a2ecef 100644 --- a/include/Mixer.hpp +++ b/include/Mixer.hpp @@ -24,8 +24,8 @@ class Sound final explicit Sound(const std::string& fileDir); ~Sound() { - if (sound) - Mix_FreeChunk(sound); + if (m_sound) + Mix_FreeChunk(m_sound); } /** @@ -50,12 +50,67 @@ class Sound final void unload(); private: - Mix_Chunk* sound = nullptr; - float volume = MIX_MAX_VOLUME; + Mix_Chunk* m_sound = nullptr; + float m_volume = MIX_MAX_VOLUME; }; +/** + * @brief A music object. + * + * @warning This class is planned to become a singleton. + */ class Music final { + public: + /** + * @brief Create a music object. + * + * @param fileDir The directory of the music file. + */ + explicit Music(const std::string& fileDir); + ~Music() { unload(); } + + /** + * @brief Set the volume of the music. + * + * @param volume The volume to set. + */ + void setVolume(float volume); + + /** + * @brief Play the music. + * + * @param loops The number of times to loop the music. + * @param fadeMs The number of milliseconds to fade in. + */ + void play(int loops = 0, int fadeMs = 0); + + /** + * @brief Pause the music. + * + * @param fadeMs The number of milliseconds to fade out. + */ + void pause(int fadeMs = 0); + + /** + * @brief Resume the music. + */ + void resume(); + + /** + * @brief Load a music file. + * + * @param fileDir The directory of the music file. + */ + void load(const std::string& fileDir); + + /** + * @brief Free the music from memory. + */ + void unload(); + + private: + Mix_Music* m_music = nullptr; }; } // namespace mixer diff --git a/src/mixer.cpp b/src/mixer.cpp index 5b5809a..5d2e06d 100644 --- a/src/mixer.cpp +++ b/src/mixer.cpp @@ -16,8 +16,8 @@ Sound::Sound(const std::string& fileDir) if (extension == ".ogg" || extension == ".mp3" || extension == ".wav") { - sound = Mix_LoadWAV(fileDir.c_str()); - if (!sound) + m_sound = Mix_LoadWAV(fileDir.c_str()); + if (!m_sound) FATAL("Failed to load sound: " + fileDir); } else @@ -31,9 +31,9 @@ void Sound::play(int loops, int playTime, int fadeMs) int channelNum = -1; if (fadeMs > 0) - channelNum = Mix_FadeInChannelTimed(-1, sound, loops, fadeMs, playTime); + channelNum = Mix_FadeInChannelTimed(-1, m_sound, loops, fadeMs, playTime); else - channelNum = Mix_PlayChannelTimed(-1, sound, loops, playTime); + channelNum = Mix_PlayChannelTimed(-1, m_sound, loops, playTime); if (channelNum == -1) { @@ -41,18 +41,84 @@ void Sound::play(int loops, int playTime, int fadeMs) return; } - Mix_Volume(channelNum, (int)volume); + Mix_Volume(channelNum, (int)m_volume); } void Sound::setVolume(float newVolume) { - volume = MIX_MAX_VOLUME * std::clamp(newVolume, 0.0f, 1.0f); + m_volume = MIX_MAX_VOLUME * std::clamp(newVolume, 0.0f, 1.0f); } void Sound::unload() { - if (sound) - Mix_FreeChunk(sound); + if (m_sound) + Mix_FreeChunk(m_sound); +} + +Music::Music(const std::string& fileDir) +{ + load(fileDir); + Mix_VolumeMusic(MIX_MAX_VOLUME); +} + +void Music::setVolume(float newVolume) +{ + Mix_VolumeMusic((int)(MIX_MAX_VOLUME * std::clamp(newVolume, 0.0f, 1.0f))); +} + +void Music::play(int loops, int fadeMs) +{ + if (fadeMs > 0) + { + if (Mix_FadeInMusic(m_music, loops, fadeMs) == -1) + { + FATAL("Failed to play music: " + std::string(Mix_GetError())); + return; + } + } + else + { + if (Mix_PlayMusic(m_music, loops) == -1) + { + FATAL("Failed to play music: " + std::string(Mix_GetError())); + return; + } + } +} + +void Music::pause(int fadeMs) +{ + if (fadeMs > 0) + Mix_FadeOutMusic(fadeMs); + else + Mix_PauseMusic(); +} + +void Music::resume() { Mix_ResumeMusic(); } + +void Music::load(const std::string& fileDir) +{ + unload(); + + std::filesystem::path filePath(fileDir); + std::string extension = filePath.extension().string(); + + if (extension == ".ogg" || extension == ".mp3" || extension == ".wav") + { + m_music = Mix_LoadMUS(fileDir.c_str()); + if (!m_music) + FATAL("Failed to load music: " + fileDir); + } + else + { + FATAL("Unsupported file format: " + fileDir); + } +} + +void Music::unload() +{ + if (m_music) + Mix_FreeMusic(m_music); } } // namespace mixer