From 6c1a1fbb5382ce49fae7cba648f202f6ccfc6d0e Mon Sep 17 00:00:00 2001 From: Sara Date: Sat, 2 Dec 2023 16:54:15 +0100 Subject: [PATCH] portfolio prep --- .gitignore | 14 ++ CMakeLists.txt | 44 +++++ Inter-Regular.otf | Bin 0 -> 258992 bytes blur.png | Bin 0 -> 53088 bytes boid.png | Bin 0 -> 2585 bytes include/ecs.h | 124 +++++++++++++++ src/engine/adb.c | 313 ++++++++++++++++++++++++++++++++++++ src/engine/adb.h | 28 ++++ src/engine/engine.c | 206 ++++++++++++++++++++++++ src/engine/engine.h | 34 ++++ src/engine/ui.c | 380 ++++++++++++++++++++++++++++++++++++++++++++ src/engine/ui.h | 31 ++++ src/engine/vec.h | 149 +++++++++++++++++ src/sim/boid_c.c | 300 ++++++++++++++++++++++++++++++++++ src/sim/boid_c.h | 46 ++++++ src/sim/sim.c | 154 ++++++++++++++++++ 16 files changed, 1823 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 Inter-Regular.otf create mode 100644 blur.png create mode 100644 boid.png create mode 100644 include/ecs.h create mode 100644 src/engine/adb.c create mode 100644 src/engine/adb.h create mode 100644 src/engine/engine.c create mode 100644 src/engine/engine.h create mode 100644 src/engine/ui.c create mode 100644 src/engine/ui.h create mode 100644 src/engine/vec.h create mode 100644 src/sim/boid_c.c create mode 100644 src/sim/boid_c.h create mode 100644 src/sim/sim.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fa2cd35 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# build dirs +xcode/ +kdev/ +[Dd]ebug/ +[Rr]elease/ +[Bb]uild/ +[Bb]in/ + +# build files +*.exe +*.out +*.o +*.a + diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..6610bff --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,44 @@ +cmake_minimum_required(VERSION 3.17) + +project(engine) +project(sim) + +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin") + +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules") +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG") + +find_package(SDL2 REQUIRED) +find_package(SDL2_image REQUIRED) +find_package(SDL2_ttf REQUIRED) + +include_directories(SDL2 PRIVATE "${CMAKE_SOURCE_DIR}/src/engine" "${CMAKE_SOURCE_DIR}/include") + +if(APPLE) + include_directories("/opt/homebrew/include/") + link_directories("/opt/homebrew/lib/" "./lib/") +else() + link_directories("./lib/") +endif() + +file( + GLOB_RECURSE + SIM_SRC + "${CMAKE_SOURCE_DIR}/src/sim/*.c" +) + +add_library(sim STATIC ${SIM_SRC}) +set_target_properties(sim PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib) + +target_link_libraries(sim SDL2 SDL2_image SDL2_ttf ecs c m) + +file( + GLOB_RECURSE + ENGINE_SRC + "${CMAKE_SOURCE_DIR}/src/engine/*.c" +) + +add_executable(engine ${ENGINE_SRC}) +target_link_libraries(engine sim SDL2 SDL2_image SDL2_ttf ecs c m) diff --git a/Inter-Regular.otf b/Inter-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..84e6a61c3c0f11fc8c88c9e7a8f6ed7f7bbc43b3 GIT binary patch literal 258992 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

    5`2Q=c5)2lslK*e8O8tMrD*gWot1JTx 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 T%KXc~z`)??>gTe~DWM4fzR{Fs literal 0 HcmV?d00001 diff --git a/boid.png b/boid.png new file mode 100644 index 0000000000000000000000000000000000000000..3a999ea214f14a497faab6b350cd843e961b3dce GIT binary patch literal 2585 zcmeAS@N?(olHy`uVBq!ia0y~yV8~@)V5sF_V_;ysuX#6`fq{Xuz$3Dlfr04=2s1`c zoXgF?zjg*-_O$T&)%-wUwqCW;?$406Q*kuS7}8G-E3y(w^QBxw5G2~q2l0j z!*buG!!zA%cn)v9nQe10*7w(i)0+ZM+0Qh0KT@!5VM%_2N6O)cA9@OFrk9nM+n>4T z%lPb$Vr$jje;LO_;hk|LtL)sr6Ly2WcvMg-&%lmnK}ZL*Y~X#QCgw)(9@>(P!|YM*?i+jofm;^|BddEy+J=p^?d z-FHpEmsuU6Rayl$a<2u<&d)AB_wCy^yTs}xI!cmfxDOY+{q*$o{a2gvg!1q2`)gYI zp!>zCsoJqV)>F3z{I`l&8M12ff2W3xIhzKbSLlBxNNn3*Si6G&el$sN zidit5np4}QH`8vXSjDSniYuJ5OnWLi*ZkeBt=aokB*m0}+0`FAsg`$n(w0?AQn!7v zIsbf4Kg0F)1?P@Gsd{11CwM$QVuC*FgV^AsWh)oFc|6z8J#7Z3;MVedC&nrLOPY#! zRT3{{ZH)_-5L14Xe%~TtZG*`pEBWkWQ%^r##dkQ#<GVRpf?YeqVo zz6eWQfB(IAZED1iee>sO`ABu#zI|KX*I!7hrHUDEtonO(reUxKAURxV&ul9GX@U7iRmnJRBW=|KoWqU1a>%U1q zd!*FV_$M-~o!k-De|JyiXVz!dLNDgbWNU8x@Kf)X-|U>+p43UMn>b~7GGBLX&%gh# z@sX5C$sOH;(MLNys(#;(>=)%~eQvd`^}y6sEZ?<-niMLM7x{{vur-tGKd8C)W5t=8 z`|4k%RvvFsc#-^R%D(rD@0$uV6{%TSSxuVD^ITwSX@29f6BU7C%O;i{4O)4nw9%bs z(#d9{UU$*e6D!t4t^MbBuziyF)e`@`r?mb5o|3yfF-ZC0N~_;<=FC~)*H+w7aclNF z>E2`CpM<$~RNS8VF8|JskCTh0UpyjhTRG##%D|bwF3Rn${{C+MjcsZvD}25$+m;y+ zY=0{GR&ct=CIe%?sHk448z!Xn*cGIz@H4Vk7{4VOxcjC;JIdZjjH?mELAqoXp} z^KxpL>!~RcqA4X_b8TYQ^_}jz8f5D>Gi*)<#f@i%Ek3s9U9eoYpM%j_Va~S04?`5ct~_pLZqENHOC-5RwEO7F%O3u` znz@SSlvqZc*2Eocwj1*E^WO*0 zOSX8;wO~rxnQ+^X^78WU%*kiA=W?H_yUmrb;$lWaeU34wp#1A^4kvdp1uU|Y)9p8$ zQ_89kqBS+HE6GsDZLy&KR4@J9+iZ%jxlRP_jjLbsy0-mbfh|{b1oec1ii#CA|MqfjTIaB;h^7Bqz!OE04eK1F zwnnY3H#CnEofz}_Tla}wOiDt3Ic93k__5JgCo){2^U}6RpMy`|%Dm<}GwF<3x8{yr zbCY8mJ)3ei&uHqtZFxoLzspWXhhMe8Q@gw|zk=jXR&+LO%0 zsFfk_Ug}jA%kGWyuW*^JHPP54^3yY`lBrKF8YQ1Oe>;E8>to-(eRF>m@PH}xO!@P3 zbHn@P?e}?{G=5+4>B-5XPoF*w@7cKi#EhWI`(-C*zh0noQaN$b^IWmu1$WK`rWMF- zi}Y#CvUXqjvGP`$A#2xLnW=(h@3uwyIF?$oZ#6BB+YVvA+45t`_P>AsruH0QwM(wA zua~U#k}Ju0w)V-{(gd$h3tmU)dEbj+-=gCG>yWF?GX4t^eq}AXNrq<|jugxk*GV!g zp3wVHY~zgN37rpH`v1&(E*c&lF1~R_;+EUF+ji}`_0?v*#vYF+XFtb%dS)hJfzc-b{in$kG>{!2kz5QcPzu%L*@5LO? z@sxY~r}*UUM;GtqmRQZbJjq6%=kV64Q>We+>;Lv{@$I*pE@pf=`@iDpjDwq +#include +#include + + +#if __cplusplus +extern "C" { +#endif + +typedef unsigned long long ecsEntityId; +typedef unsigned long long ecsComponentMask; + +typedef void (*ecsSystemFn)(ecsEntityId*, ecsComponentMask*, size_t, float); + +#define noentity ((ecsEntityId)0x0) +#define nocomponent ((ecsComponentMask)0x0) +#define anycomponent ((ecsComponentMask)~0x0) + +typedef enum ECSqueryComparison { + ECS_NOQUERY = 0x0, + ECS_QUERY_ANY, + ECS_QUERY_ALL, +} ecsQueryComparison; + +typedef struct ecsComponentQuery { + ecsQueryComparison comparison; + ecsComponentMask mask; +} ecsComponentQuery; + +void ecsInit(void); + +/** + * \brief Allocates a component list for a component type of stride bytes. + * \param stride The number of bytes to allocate for each component. + */ +ecsComponentMask ecsMakeComponentType(size_t stride); +#define ecsRegisterComponent(__type) ecsMakeComponentType(sizeof(__type)) + +/** + * \brief Get a pointer to a component attached to entity. + * \param entity The entity to find a component of. + * \param component The component type to find. + * \returns A pointer to a component if found. + * \returns NULL if entity does not contain the given component. + */ +void* ecsGetComponentPtr(ecsEntityId entity, ecsComponentMask component); + +/** + * \brief Assigns a new entity id. + * \param components A component query referencing the components to add to the new object. + * \returns The id used to reference the newly created entity. + * \returns NULL if allocation failed + */ +ecsEntityId ecsCreateEntity(ecsComponentMask components); + +/** + * \brief Gets the component mask for an entity. + * \param entity the entity to get the mask for. + * \returns the ecsComponentMask for entity. + */ +ecsEntityId ecsGetComponentMask(ecsEntityId entity); + +/** + * \brief Destroys an entity and all associated components + * \param entity The id of the entity to destroy. + */ +void ecsDestroyEntity(ecsEntityId entity); + +/** + * \brief Attaches one or more components. + * \param entity The entity to attach the new components to. + * \param components Bitmask of the componentId's to attach. + */ +void ecsAttachComponents(ecsEntityId entity, ecsComponentMask components); + +/** + * \brief Detaches one or more components. + * \param entity The entity to detach components from. + * \param components Bitmask of the components to detach. + */ +void ecsDetachComponents(ecsEntityId entity, ecsComponentMask components); + +/** + * \brief Enables a function to act as a system for entities matching the given query. + * \param func The function to call when query is met. + * \param components The required components to run this system. + * \param comparison The type of requirement components represent. one of { ECS_QUERY_ANY ; ECS_QUERY_ALL }. + * \note + * When comparison=ECS_QUERY_ALL the system will run only when all of the masked components are present on an entity. + * \note + * When comparison=ECS_QUERY_ANY the system will run for all entities where any of the masked components are present. + */ +void ecsEnableSystem(ecsSystemFn func, ecsComponentMask components, ecsQueryComparison comparison, int maxThreads, int executionOrder); + +/** + * \brief Disables a function acting as a system. + * \param func Pointer to the function to disable. + */ +void ecsDisableSystem(ecsSystemFn func); + +/** + * \brief Run currently enabled systems. + * \note Implicitly calls ecsRunTasks after completion. + */ +void ecsRunSystems(float deltaTime); + +/** + * \brief Run queued tasks. + */ +void ecsRunTasks(void); + +/** + * \brief Terminate the ECS and clean up allocated resources. + */ +void ecsTerminate(void); + +#if __cplusplus +} +#endif + +#endif /* ecs_h */ diff --git a/src/engine/adb.c b/src/engine/adb.c new file mode 100644 index 0000000..c525ef1 --- /dev/null +++ b/src/engine/adb.c @@ -0,0 +1,313 @@ +#include "adb.h" +#include +#include +#include +#include +#include +#include + +typedef struct asset_t { + char* filename; + size_t extention_offset; + void* instance; + asset_handle_t handle; +} asset_t; + +typedef struct file_handler_t { + uint64_t ext_hash; + char* extention; + asset_load_fn load; + asset_free_fn free; +} file_handler_t; + +int adb_init = 0; + +asset_t* adb_assets_first; +size_t adb_assets_last; +size_t adb_assets_size; + +file_handler_t* adb_handlers_first; +size_t adb_handlers_last; +size_t adb_handlers_size; + +static inline uint64_t str_hash(const char* str); +static inline void unload_asset(asset_t* asset); +static inline size_t file_extention_offset(const char* filename); +static inline void free_asset_t(asset_t*); + + +// +// MODULE LIFETIME +// + +int init_asset_database(size_t max_asset_bytes) +{ + assert(adb_init == 0); + adb_assets_size = max_asset_bytes; + adb_handlers_size = 5; + + adb_assets_last = 0; + adb_assets_first = malloc(adb_assets_size * sizeof(asset_t)); + + adb_handlers_last = 0; + adb_handlers_first = malloc(adb_handlers_size * sizeof(file_handler_t)); + + adb_init = 1; + + return 0; +} + +int close_asset_database() +{ + for(size_t i = 0; i < adb_assets_last; ++i) + { + free_asset_t(&adb_assets_first[i]); + } + for(size_t i = 0; i < adb_handlers_last; ++i) + { + free(adb_handlers_first[i].extention); + } + free(adb_assets_first); + free(adb_handlers_first); + + return 0; +} + + +// +// FILE HANDLERS +// + +void sort_file_handlers() +{ + size_t swaps = 0; + file_handler_t tmp; + do + { + swaps = 0; + for(size_t i = 1; i < adb_handlers_last; ++i) + { + if(adb_handlers_first[i-1].ext_hash > adb_handlers_first[i].ext_hash) + { + memcpy(&tmp, &adb_handlers_first[i-1], sizeof(file_handler_t)); + memcpy(&adb_handlers_first[i-1], &adb_handlers_first[i], sizeof(file_handler_t)); + memcpy(&adb_handlers_first[i], &tmp, sizeof(file_handler_t)); + ++swaps; + } + } + } while(swaps > 0); +} + +void destroy_file_handler(file_handler_t* handler) +{ + free(handler->extention); + free(handler); +} + +file_handler_t* get_file_handler(const char* extention) +{ + if(adb_handlers_last == 0) + return NULL; + + uint64_t hash = str_hash(extention); + long int l = 0, r = adb_handlers_last-1, m; + file_handler_t* current; + while(l <= r) + { + m = floorf((float)(l+r)/2.f); + current = &adb_handlers_first[m]; + if(current->ext_hash < hash) + l = m + 1; + else if(current->ext_hash > hash) + r = m - 1; + else if(current->ext_hash == hash) + return current; + } + return NULL; +} + +int register_file_handler(const char* file_extention, asset_load_fn loadfn, asset_free_fn freefn) +{ + file_handler_t* existing = get_file_handler(file_extention); + if(existing == NULL) + { + if(adb_handlers_last + 1 >= adb_handlers_size) + { + adb_handlers_first = realloc(adb_handlers_first, adb_handlers_size * 2); + } + file_handler_t* new = (adb_handlers_first+adb_handlers_last); + new->load = loadfn; + new->free = freefn; + new->extention = malloc(strlen(file_extention)); + strcpy(new->extention, file_extention); + new->ext_hash = str_hash(file_extention); + ++adb_handlers_last; + } + else + { + if(loadfn != NULL) + existing->load = loadfn; + if(loadfn != NULL) + existing->free = freefn; + } + + sort_file_handlers(); + + return 0; +} + + +// +// ASSETS +// + +void sort_assets() +{ + size_t swaps = 0; + asset_t tmp; + do + { + swaps = 0; + for(size_t i = 0; i < adb_assets_last; ++i) + { + if(adb_assets_first[i-1].handle > adb_assets_first[i].handle) + { + memcpy(&tmp, &adb_assets_first[i-1], sizeof(asset_t)); + memcpy(&adb_assets_first[i-1], &adb_assets_first[i], sizeof(asset_t)); + memcpy(&adb_assets_first[i], &tmp, sizeof(asset_t)); + ++swaps; + } + } + } while(swaps > 0); +} + +asset_t* get_asset_t(asset_handle_t handle) +{ + if(adb_assets_last == 0) + return NULL; + + asset_t* current; + long int l = 0, r = adb_assets_last-1, m; + while(l <= r) + { + m = floorf((float)(l+r)/2.f); + current = &adb_assets_first[m]; + + if(current->handle < handle) + l = m + 1; + else if(current->handle > handle) + r = m - 1; + else if(current->handle == handle) + return current; + } + return NULL; +} + +void* get_asset(asset_handle_t handle) +{ + asset_t* asset = get_asset_t(handle); + if(asset == NULL) + return NULL; + else + return asset->instance; +} + +int try_get_asset(asset_handle_t handle, void** o_ptr) +{ + void* asset = get_asset(handle); + if(o_ptr != NULL) + memcpy(o_ptr, &asset, sizeof(void*)); + return asset != NULL; +} + +asset_handle_t load_asset(const char* file) +{ + char* filename = realpath(file, NULL); + if(filename == NULL) + return 0; + + asset_handle_t handle = str_hash(filename); + + if(try_get_asset(handle, NULL)) + return handle; + + size_t ext_offset = file_extention_offset(filename); + file_handler_t* handler = get_file_handler(filename + ext_offset); + + adb_assets_first[adb_assets_last] = (asset_t){ + .filename = filename, + .extention_offset = ext_offset, + .instance = handler->load(filename), + .handle = handle + }; + + ++adb_assets_last; + + sort_assets(); + return handle; +} + +void free_asset_t(asset_t* asset) +{ + file_handler_t* handler = get_file_handler(asset->filename + asset->extention_offset); + assert(handler != NULL); + + handler->free(asset->instance); + free(asset->filename); +} + +void free_asset(asset_handle_t handle) +{ + asset_t* asset = get_asset_t(handle); + + if(asset == NULL) + return; + + free_asset_t(asset); +} + + +// +// FILES +// + +asset_handle_t get_file_handle(const char* filename) +{ + char* real_path = realpath(filename, NULL); + asset_handle_t handle = str_hash(real_path); + free(real_path); + return try_get_asset(handle, NULL) ? handle : 0; +} + +size_t file_extention_offset(const char* filename) +{ + const char* cptr = filename + strlen(filename); + while(cptr != filename) + { + if(*cptr == '.') + return cptr - filename; + --cptr; + } + + return 0; +} + +uint64_t str_hash(const char* str) +{ + static const int shift = (8 * sizeof(uint64_t) - 4); + static const uint64_t upper4mask = (uint64_t)0xF << shift; + uint64_t hash = 0; + uint64_t upperfour; + size_t len = 0; + + for(const char* c = str; *c != '\0'; ++c) + { + upperfour = hash & upper4mask; + hash = ((hash << 4) ^ (*c)); + if(upperfour != 0) + hash ^= (upperfour >> shift); + ++len; + } + + return hash ^ len; +} diff --git a/src/engine/adb.h b/src/engine/adb.h new file mode 100644 index 0000000..1938cd4 --- /dev/null +++ b/src/engine/adb.h @@ -0,0 +1,28 @@ +#ifndef adb_h +#define adb_h + +#include +#include + +typedef uint64_t asset_handle_t; + +typedef void* (*asset_load_fn)(const char*); +typedef void (*asset_free_fn)(void*); + +typedef struct asset_t asset_t; +typedef struct file_handler_t file_handler_t; + +extern int init_asset_database(size_t max_asset); +extern asset_handle_t get_file_handle(const char* filename); +extern int asset_is_loaded(asset_handle_t handle); +extern void* get_asset(asset_handle_t handle); +#define get_asset_as(__TYPE, handle) ((__TYPE*)get_asset(handle)) +extern int try_get_asset(asset_handle_t handle, void** o_ptr); +extern asset_handle_t load_asset(const char* file); +extern void free_asset(asset_handle_t handle); +extern size_t set_asset_memory(size_t max_bytes); +extern int close_asset_database(); +extern int register_file_handler(const char* file_extention, asset_load_fn loadfn, asset_free_fn freefn); + + +#endif /* adb_h */ diff --git a/src/engine/engine.c b/src/engine/engine.c new file mode 100644 index 0000000..c3c870d --- /dev/null +++ b/src/engine/engine.c @@ -0,0 +1,206 @@ +#include "engine.h" + +#include +#include +#include +#include +#include +#include +#include "adb.h" +#include "ui.h" + +SDL_Window* window; +SDL_Renderer* renderer; +int engine_wants_to_quit; +float frame_start_time; +float last_frame_time; +short is_render_frame; +float target_frame_time; +float render_frame_time; + +void system_window_clear(ecsEntityId* entities, ecsComponentMask* components, size_t size, float delta_time); +void system_window_display(ecsEntityId* entities, ecsComponentMask* components, size_t size, float delta_time); + +void engine_init(); +void engine_run(); +void engine_handle_event(SDL_Event* event); +void engine_clean(); + +void* asset_load_sdl_image(const char* filename) +{ + SDL_Surface* surf = IMG_Load(filename); + SDL_Texture* tex = SDL_CreateTextureFromSurface(renderer, surf); + SDL_FreeSurface(surf); + return tex; +} + +void asset_free_sdl_image(void* instance) +{ + SDL_Texture* tex = instance; + if(tex != NULL) + { + SDL_DestroyTexture(tex); + } +} + +void* asset_load_ttf_font(const char* filename) +{ + TTF_Font* font = TTF_OpenFont(filename, 50); + return font; +} + +void asset_free_ttf_font(void* instance) +{ + TTF_Font* font = instance; + if(instance != NULL) + { + TTF_CloseFont(font); + } +} + +int main(int argc, char* argv[]) +{ + engine_init(); + engine_run(); + engine_clean(); +} + +void engine_init() +{ + // set the frame start time here to ensure there will be time passed when engine_run is called + frame_start_time = (float)clock() / CLOCKS_PER_SEC; + engine_wants_to_quit = 0; + // init asset database for 100 assets + init_asset_database(100); + + // register default image file handlers + register_file_handler(".png", &asset_load_sdl_image, &asset_free_sdl_image); + register_file_handler(".jpg", &asset_load_sdl_image, &asset_free_sdl_image); + // default font file handlers + register_file_handler(".ttf", &asset_load_ttf_font, &asset_free_ttf_font); + register_file_handler(".otf", &asset_load_ttf_font, &asset_free_ttf_font); + + // load default init settings + engine_init_t init_settings; + default_engine_init_settings(&init_settings); + // allow sim to adjust init settings as needed + sim_config(&init_settings); + target_frame_time = 1.f/(float)init_settings.target_framerate; + + // init sdl, create window and create renderer from window + SDL_Init(init_settings.sdl_init_flags); + TTF_Init(); + IMG_Init(IMG_INIT_JPG | IMG_INIT_PNG); + window = SDL_CreateWindow("BOIDS!!", + SDL_WINDOWPOS_CENTERED, + SDL_WINDOWPOS_CENTERED, + init_settings.window_width, + init_settings.window_height, + init_settings.window_init_flags); + if(window == NULL) + { + exit(1); + } + + renderer = SDL_CreateRenderer(window, init_settings.renderer_index, + init_settings.renderer_init_flags); + + if(renderer == NULL) + { + exit(2); + } + + // initialize runtime object database + ecsInit(); + + // initialize imgui renderer + uiInit(renderer); + + // enable screen refresh system + ecsEnableSystem(&system_window_clear, nocomponent, ECS_NOQUERY, 0, -100); + + // initialize sim + sim_init(); + + ecsEnableSystem(&system_window_display, nocomponent, ECS_NOQUERY, 0, 10000); + // run created tasks + ecsRunTasks(); +} + +void engine_run() +{ + SDL_Event evt; + float actual_time; + + while(!engine_wants_to_quit) + { + last_frame_time = frame_start_time; + frame_start_time = (float)clock() / CLOCKS_PER_SEC; + + ecsRunSystems(frame_start_time - last_frame_time); + + while(SDL_PollEvent(&evt)) + { + engine_handle_event(&evt); + } + } +} + +void engine_handle_event(SDL_Event* event) +{ + switch(event->type) + { + default: break; + case SDL_QUIT: + engine_wants_to_quit = 1; + break; + } +} + +void engine_clean() +{ + // quit sim, ui asset database, ecs + sim_quit(); + uiTerminate(); + close_asset_database(); + ecsTerminate(); + // delete renderer and window, quit sdl + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_Quit(); +} + +void system_window_clear(ecsEntityId* entities, ecsComponentMask* components, size_t size, float delta_time) +{ + render_frame_time += delta_time; + is_render_frame = render_frame_time >= target_frame_time; + + if(is_render_frame) + { + render_frame_time = 0; + // clear screen all black + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); + } +} +void system_window_display(ecsEntityId* entities, ecsComponentMask* components, size_t size, float delta_time) +{ + if(is_render_frame) + { + // swap buffer + SDL_RenderPresent(renderer); + } +} + +void default_engine_init_settings(engine_init_t* init_settings) +{ + (*init_settings) = (engine_init_t){ + .window_width = 640, .window_height = 420, + .window_init_flags = SDL_WINDOW_SHOWN, + .sdl_init_flags = SDL_INIT_VIDEO, + .renderer_init_flags = SDL_RENDERER_ACCELERATED, + .renderer_index = -1, + .target_framerate = 60 + }; +} + diff --git a/src/engine/engine.h b/src/engine/engine.h new file mode 100644 index 0000000..998ec6b --- /dev/null +++ b/src/engine/engine.h @@ -0,0 +1,34 @@ +#ifndef _engine_h +#define _engine_h + +#include + +typedef struct engine_init_t { + int window_width, window_height; + uint32_t window_init_flags; + uint32_t sdl_init_flags; + uint32_t renderer_init_flags; + int renderer_index; + int target_framerate; +} engine_init_t; + +extern short is_render_frame; + +extern void default_engine_init_settings(engine_init_t*); + +extern void sim_config(engine_init_t*); +extern void sim_init(); +extern void sim_quit(); + +extern struct SDL_Renderer* renderer; + +#if defined(DEBUG) +#define E_LOG(...)\ +fprintf(stdout, "%s:%d: ", __FILE__, __LINE__);\ +fprintf(stdout, __VA_ARGS__);\ +fprintf(stdout, "\n") +#elif defined(NDEBUG) +#define E_LOG(...) +#endif + +#endif /* !_engine_h */ diff --git a/src/engine/ui.c b/src/engine/ui.c new file mode 100644 index 0000000..88df0aa --- /dev/null +++ b/src/engine/ui.c @@ -0,0 +1,380 @@ +#include "ui.h" +#include +#include + +SDL_Renderer* uiTarget; +typedef struct ui_selection_t { + uintptr_t item; + short keepSelected; + enum { + UI_SELECT_DEFAULT, + UI_SELECT_TEXT + } selectKind; + union { + struct { + long start, end; + } text_select; + }; +} ui_selection_t; + +ui_selection_t uiSelection; + +uint32_t uiCurrentMouseState; +uint32_t uiLastMouseState; +int uiMouseX, uiMouseY; + +SDL_Rect uiCurrentWindow; +int uiIndentLevel; +int uiSingleLineHeight = 30; +int uiLineSpacing = 5; +int uiWindowPadding = 10; +int uiTotalHeight; +int uiRenderSameLine; + +SDL_Rect uiNextLineRect; + +struct ui_style_t { + TTF_Font* font; + int indentPixels; +} uiStyle; + +void uiAddPixels(int n); + +void uiUpdateMouseState() +{ + uiLastMouseState = uiCurrentMouseState; + uiCurrentMouseState = SDL_GetMouseState(&uiMouseX, &uiMouseY); +} + +int uiCanSelect(void* ptr) +{ + intptr_t item = (intptr_t)ptr; + + return uiSelection.item == item || uiSelection.item == 0; +} + +void uiSelect(void* ptr, short keepActive) +{ + uiSelection.item = (intptr_t)ptr; + uiSelection.keepSelected = keepActive; +} + +short uiIsSelected(void* ptr) +{ + return uiSelection.item == (intptr_t)ptr; +} + +void uiInit(SDL_Renderer* target) +{ + uiTarget = target; + uiSelection.item = 0; + memset(&uiStyle, 0, sizeof(struct ui_style_t)); + uiUpdateMouseState(); + uiStyle.indentPixels = 10; +} + +void uiTerminate() +{ + +} + +void uiSetFont(TTF_Font* font) +{ + uiStyle.font = font; +} + +// check if a mouse button was pressed on this ui frame +static inline +short uiMouseButtonPressed(uint32_t buttonMask) +{ + return + (buttonMask & uiCurrentMouseState) != 0 && // button is down + (buttonMask & uiLastMouseState) == 0; // button was down +} + +// check if a mouse button was released on this ui frame +static inline +short uiMouseButtonReleased(uint32_t buttonMask) +{ + return + (buttonMask & uiLastMouseState) != 0 && // button was down + (buttonMask & uiCurrentMouseState) == 0; // button is up +} + +// check if a mouse button is currently pressed +static inline +short uiMouseButtonDown(uint32_t buttonMask) +{ + return uiCurrentMouseState & buttonMask; +} + +// change the SDL render target +void uiSetTarget(SDL_Renderer* renderer) +{ + uiTarget = renderer; +} + +// begin a new frame +void uiBeginFrame() +{ + if(uiSelection.keepSelected == 0) + uiSelection.item = 0; + uiUpdateMouseState(); +} + +// push any number of lines +void uiSkipLines(int n) +{ + while(n-- >= 0) + { + uiNextLine(); + } +} + +// push a new line +void uiNextLine() +{ + if(uiRenderSameLine > 0) + { + uiRenderSameLine--; + uiNextLineRect.x += uiNextLineRect.w; + } + else + { + uiAddPixels(uiSingleLineHeight + uiLineSpacing); + } +} + +// push the next line down by a number of pixels +void uiAddPixels(int px) +{ + uiTotalHeight += px; + uiNextLineRect = uiCurrentWindow; + uiNextLineRect.h = uiSingleLineHeight; + uiNextLineRect.y += uiTotalHeight; + uiNextLineRect.w -= uiIndentLevel * uiStyle.indentPixels * 2; + uiNextLineRect.x += uiIndentLevel * uiStyle.indentPixels; +} + +// draw the next n elements on the same line +void uiSameLine(int n) +{ + if(n > 1) + { + uiRenderSameLine += n-1; + + uiNextLineRect.w /= n; + } +} + +// start a window fitting within the given rectangle +int uiBeginWindow(SDL_Rect* rect, int* isActive) +{ + uiTotalHeight = 0; + uiIndentLevel = 0; + memcpy(&uiCurrentWindow, rect, sizeof(SDL_Rect)); + + if(*isActive) + { + SDL_SetRenderDrawColor(uiTarget, 20, 20, 20, 255); + SDL_RenderFillRect(uiTarget, rect); + } + + uiNextLineRect = uiCurrentWindow; + uiNextLineRect.h = uiSingleLineHeight; + int toggled = uiButton(); + + uiCurrentWindow.x += uiWindowPadding; + uiCurrentWindow.y += uiWindowPadding; + uiCurrentWindow.w -= uiWindowPadding*2; + uiCurrentWindow.h -= uiWindowPadding*2; + + uiNextLineRect.x = uiCurrentWindow.x; + uiNextLineRect.w = uiCurrentWindow.w; + uiNextLineRect.y = uiCurrentWindow.y + uiTotalHeight; + uiNextLineRect.h = uiSingleLineHeight; + + if(toggled) + { + int last = *isActive; + *isActive = !(*isActive); + return last; + } + + return (*isActive); +} + +// check if point (x,y) is in r +int uiInArea(SDL_Rect* r, int x, int y) +{ + int x_min = r->x, x_max = r->x + r->w; + int y_min = r->y, y_max = r->y + r->h; + return (x >= x_min && x < x_max && y >= y_min && y < y_max); +} + +void uiDrawText(const char* text, SDL_Rect dstrect, SDL_Color colour) +{ + int height = TTF_FontHeight(uiStyle.font); + double fontToLineHeight = (double)height/(double)uiSingleLineHeight; + + SDL_Rect srcrect = { 0, 0, dstrect.w * fontToLineHeight, dstrect.h * fontToLineHeight }; + SDL_Surface* surface = TTF_RenderText_Solid_Wrapped(uiStyle.font, text, colour, srcrect.w); + + dstrect.w = surface->w / fontToLineHeight; + + if(surface == NULL) + { + SDL_Log("Failed to render text to surface:\n%s", SDL_GetError()); + return; + } + + SDL_Texture* tex = SDL_CreateTextureFromSurface(uiTarget, surface); + SDL_FreeSurface(surface); + + if(tex == NULL) + return; + + SDL_RenderCopy(uiTarget, tex, &srcrect, &dstrect); + + SDL_DestroyTexture(tex); +} + +// draw an interactive slider with a min, max and step +int uiSlider(float* value, float min, float max, float step) +{ + const int SLIDER_WIDTH = 10; + const int LINE_THICKNESS = 5; + + float startValue = *value; + int valueChanged = 0; + float valuePercentage = ((*value)-min) / (max - min); + + SDL_Rect position = uiNextLineRect; + position.x += SLIDER_WIDTH/2; + position.w -= SLIDER_WIDTH; + + SDL_Rect lineRect = { + position.x, position.y + uiSingleLineHeight/2, + position.w, LINE_THICKNESS + }; + + SDL_Color sliderColor = {230, 230, 230, 255}; + + if(uiMouseButtonPressed(SDL_BUTTON_LEFT)) + { + if(uiCanSelect(value) && uiInArea(&position, uiMouseX, uiMouseY)) + { + uiSelect(value, 1); + } + } + else if(uiIsSelected(value) && !uiMouseButtonDown(SDL_BUTTON_LEFT)) + { + uiSelection.keepSelected = 0; + } + + if(uiIsSelected(value)) + { + valuePercentage = (float)(uiMouseX - position.x) / (float)(position.w); + + if(valuePercentage < 0) + valuePercentage = 0; + else if(valuePercentage > 1) + valuePercentage = 1; + + (*value) = valuePercentage * (max - min); + (*value) = roundf((*value) * (1.f/step)) * step + min; + valuePercentage = ((*value) - min) / (max-min); + + + if(*value != startValue) + { + valueChanged = 1; + } + } + + SDL_Rect sliderRect = { + position.x + valuePercentage * position.w - SLIDER_WIDTH/2, position.y, + SLIDER_WIDTH, uiSingleLineHeight + }; + + SDL_SetRenderDrawColor(uiTarget, 100, 100, 100, 255); + SDL_RenderFillRect(uiTarget, &lineRect); + + if(valuePercentage >= 0 && valuePercentage <= 1) + { + SDL_SetRenderDrawColor(uiTarget, sliderColor.r, sliderColor.g, sliderColor.b, sliderColor.a); + SDL_RenderFillRect(uiTarget, &sliderRect); + } + + uiNextLine(); + + return valueChanged; +} + +// draw a clickable button +int uiButton() +{ + SDL_Rect position = uiNextLineRect; + short clicked = 0; + + if(uiMouseButtonPressed(SDL_BUTTON_LEFT)) + { + if(uiCanSelect(0) && uiInArea(&position, uiMouseX, uiMouseY)) + { + uiSelect(0, 0); + clicked = 1; + } + } + + SDL_SetRenderDrawColor(uiTarget, 100, 100, 100, 255); + SDL_RenderFillRect(uiTarget, &position); + + uiNextLine(); + + return clicked; +} + +void uiLabel(const char* label) +{ + SDL_Colour white = {255, 255, 255, 255}; + uiDrawText(label, uiNextLineRect, white); + uiNextLine(); +} + +void uiLabelNext(const char* label, float ratio) +{ + int y = uiNextLineRect.y; + uiNextLineRect.w = uiCurrentWindow.w * ratio; + uiLabel(label); + uiTotalHeight -= uiSingleLineHeight + uiLineSpacing; + uiNextLineRect.y = y; + uiNextLineRect.x += uiCurrentWindow.w * ratio; + uiNextLineRect.w = uiCurrentWindow.w * (1-ratio); + uiNextLineRect.h = uiSingleLineHeight; +} + +void uiHeader(const char* label) +{ + uiSubIndent(); + uiAddPixels(uiSingleLineHeight/2); + uiLabel(label); + uiAddIndent(); +} + +void uiSetIndent(int n) +{ + uiIndentLevel = n; + uiIndentLevel = uiIndentLevel >= 0 ? uiIndentLevel : 0; + // force update of next line rect + uiAddPixels(0); +} + +void uiAddIndent() +{ + uiSetIndent(uiIndentLevel + 1); +} + +void uiSubIndent() +{ + uiSetIndent(uiIndentLevel - 1); +} diff --git a/src/engine/ui.h b/src/engine/ui.h new file mode 100644 index 0000000..ec665d8 --- /dev/null +++ b/src/engine/ui.h @@ -0,0 +1,31 @@ +#ifndef ui_h +#define ui_h + +#include +#include + +extern void uiInit(SDL_Renderer* target); +extern void uiTerminate(); + +extern void uiSetTarget(SDL_Renderer* renderer); + +extern void uiSetFont(TTF_Font* font); + +extern void uiBeginFrame(); + +extern int uiBeginWindow(SDL_Rect* rect, int* isActive); + +extern void uiSkipLines(int n); +extern void uiNextLine(); +extern void uiSameLine(int n); + +extern int uiSlider(float* value, float min, float max, float step); +extern int uiButton(); +extern void uiLabel(const char* label); +extern void uiLabelNext(const char* label, float ratio); +extern void uiHeader(const char* label); +extern void uiAddIndent(); +extern void uiSubIndent(); +extern void uiSetIndent(int n); + +#endif /* ui_h */ diff --git a/src/engine/vec.h b/src/engine/vec.h new file mode 100644 index 0000000..600b155 --- /dev/null +++ b/src/engine/vec.h @@ -0,0 +1,149 @@ +#ifndef vec_h +#define vec_h + +#include +#include + +typedef struct fvec { + float x, y; +} fvec; + +static inline void vadd(fvec* r, fvec* a, fvec* b) +{ r->x = a->x + b->x; r->y = a->y + b->y; } + +static inline void vsub(fvec* r, fvec* a, fvec* b) +{ r->x = a->x - b->x; r->y = a->y - b->y; } + +static inline void vmul(fvec* r, fvec* a, fvec* b) +{ r->x = a->x * b->x; r->y = a->y * b->y; } + +static inline void vmulf(fvec* r, fvec* a, float b) +{ r->x = a->x * b; r->y = a->y * b; } + +static inline void vdiv(fvec* r, fvec* a, fvec* b) +{ r->x = a->x / b->x; r->y = a->y / b->y; } + +static inline float vmag(fvec* a) +{ return sqrt(fabsf(a->x*a->x) + fabsf(a->y*a->y)); } + +static inline void vnor(fvec* r, fvec* a) +{ + float m = vmag(a); + if(m == 0) + { + *r = (fvec){0.f, 0.f}; + } + else + { + r->x = a->x / m; + r->y = a->y / m; + } +} + +static inline void vabs(fvec* r, fvec* a) +{ + r->x = fabsf(a->x); + r->y = fabsf(a->y); +} + +static inline float vdist(fvec* a, fvec* b) +{ + fvec diff; + vsub(&diff, a, b); + vabs(&diff, &diff); + float m = vmag(&diff); + return isnan(m) ? 0 : m; +} + +static inline void vmovetowards(fvec* r, fvec* from, fvec* to, float max_delta) +{ + fvec diff, dir; + + if(max_delta == 0 || isnan(max_delta)) + { + memmove(r, from, sizeof(fvec)); + return; + } + + vsub(&diff, to, from); + + float diffm = vmag(&diff); + + if(diffm == 0 || isnan(diffm)) + { + memmove(r, from, sizeof(fvec)); + return; + } + + vmulf(&dir, &diff, 1.f/diffm * max_delta); + + float dirm = vmag(&dir); + + if(dirm >= diffm) + { + memmove(r, from, sizeof(fvec)); + } + else + { + vadd(r, from, &dir); + } +} + +static inline void vlerp(fvec* r, fvec* from, fvec* to, float t) +{ + fvec dir; + vsub(&dir, to, from); + vnor(&dir, &dir); + vmulf(&dir, &dir, t); + vadd(r, from, &dir); +} + +static inline void vmin(fvec* r, fvec* a, float min) +{ + float m = vmag(a); + if(m < min) + { + vmulf(r, a, (1.f/m)*min); + } + else + { + *r = *a; + } +} + +static inline void vmax(fvec* r, fvec* a, float max) +{ + float m = vmag(a); + if(m > max) + vmulf(r, a, (1.f/m)*max); + else + *r = *a; +} + +static inline void vclamp(fvec* r, fvec* a, float min, float max) +{ + float m = vmag(a); + if(m > max) + vmulf(r, a, (1.f/m)*max); + else if(m < min) + vmulf(r, a, (1.f/m)*min); + else + *r = *a; +} + +static inline float vdot(fvec* a, fvec* b) +{ + return(a->x * b->x + a->y * b->y); +} + +static inline float vang(fvec* a, fvec* b) +{ + return atan2f(a->y, a->x) - atan2f(b->y, b->x); +} + +#define VUP ((fvec){0.f, 1.f}) +#define VDOWN ((fvec){0.f, -1.f}) +#define VLEFT ((fvec){-1.f, 0.f}) +#define VRIGHT ((fvec){1.f, 0.f}) + +#endif /* vec_h */ diff --git a/src/sim/boid_c.c b/src/sim/boid_c.c new file mode 100644 index 0000000..081c1d6 --- /dev/null +++ b/src/sim/boid_c.c @@ -0,0 +1,300 @@ +#include "boid_c.h" +#include +#include +#include + +ecsComponentMask boid_component; + +float boid_acceleration = 75.f; +float boid_max_velocity = 50.f; + +SDL_Texture* boid_texture; + +behaviour_t alignment = { + .range = 10.f, + .force = .8f +}; +behaviour_t separation = { + .range = 4.f, + .force = 50.0f +}; +behaviour_t cohesion = { + .range = 100.f, + .force = 0.5f +}; +behaviour_t wall_avoid = { + .range = 50.f, + .force = 100.f +}; +behaviour_t mouse_interact = { + .range = 70.f, + .force = -1000.f +}; + +SDL_Rect boid_available_area = {0,0,800, 800}; + +void system_boid_update_position(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + boid_c* boid; + fvec force, velocity; + float acceleration = boid_acceleration * delta_time; + int w, h; + + for(size_t i = 0; i < count; i++) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + + force = boid->force; + vmulf(&force, &force, boid_max_velocity); + vmax(&force, &force, boid_max_velocity); + vmovetowards(&boid->velocity, &boid->velocity, &force, acceleration); + + assert(!isnan(boid->position.x) && !isnan(boid->position.y)); + assert(!isnan(boid->velocity.x) && !isnan(boid->velocity.y)); + + boid->force = (fvec){ 0.f, 0.f }; + + vmulf(&velocity, &boid->velocity, delta_time); + vadd(&boid->position, &boid->position, &velocity); + + } +} + +void system_boid_update_near(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + float dist; + boid_c* boid, *other; + + float max_range = alignment.range; + max_range = separation.range > max_range ? separation.range : max_range; + max_range = cohesion.range > max_range ? cohesion.range : max_range; + + size_t hits = 0; + + for(size_t i = 0; i < count; ++i) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + hits = 0; + + memset(boid->near, noentity, sizeof(boid->near)); + for(size_t j = 0; j < count && hits < BOID_NEAR_COUNT; ++j) + { + other = ecsGetComponentPtr(entities[j], boid_component); + dist = vdist(&boid->position, &other->position); + + assert(!isnan(dist)); + if(dist < max_range) + { + boid->near[hits++] = entities[j]; + } + } + } +} + +void system_draw_boids(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + if(!is_render_frame) return; + + boid_c* boid; + + int tw, th; + SDL_QueryTexture(boid_texture, NULL, NULL, &tw, &th); + SDL_Rect srcrect = { + .x = 0, .y = 0, + .w = tw, .h = th + }; + SDL_FRect dstrect = { + .w = 5, .h = 5 + }; + int hw = dstrect.w / 2; + int hh = dstrect.h / 2; + + for(size_t i = 0; i < count; ++i) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + + dstrect.x = boid->position.x - hw; + dstrect.y = boid->position.y - hh; + SDL_RenderCopyExF(renderer, boid_texture, + &srcrect, &dstrect, + (double)vang(&boid->velocity, &VDOWN) * 57.2957795, + &(SDL_FPoint){hw,hh}, SDL_FLIP_NONE); + } +} + +void system_boids_cohesion(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + boid_c* boid, *other; + fvec avrg, force, diff; + float dist; + size_t hit_count; + + for(size_t i = 0; i < count; ++i) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + avrg = (fvec){ 0.f, 0.f }; + hit_count = 0; + + for(size_t j = 0; j < BOID_NEAR_COUNT && boid->near[j] != noentity; ++j) + { + other = ecsGetComponentPtr(boid->near[j], boid_component); + dist = vdist(&other->position, &boid->position); + if(dist < cohesion.range) + { + ++hit_count; + vsub(&diff, &other->position, &avrg); + vmulf(&diff, &diff, 1.f/(hit_count)); + vadd(&avrg, &avrg, &diff); + } + assert(!isnan(avrg.x) && !isnan(avrg.y)); + } + + vsub(&force, &avrg, &boid->position); + vmulf(&force, &force, cohesion.force); + vadd(&boid->force, &boid->force, &force); + + assert(!isnan(boid->force.x) && !isnan(boid->force.y)); + } +} + +void system_boids_separation(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + boid_c* boid, *other; + fvec avrg, force, diff; + float dist; + size_t hit_count; + + for(size_t i = 0; i < count; ++i) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + avrg = (fvec){ 0.f, 0.f }; + hit_count = 0; + + for(size_t j = 0; j < BOID_NEAR_COUNT && boid->near[j] != noentity; ++j) + { + other = ecsGetComponentPtr(boid->near[j], boid_component); + dist = vdist(&other->position, &boid->position); + if(dist < separation.range) + { + ++hit_count; + vsub(&diff, &other->position, &avrg); + vmulf(&diff, &diff, 1.f/(hit_count)); + vadd(&avrg, &avrg, &diff); + } + assert(!isnan(avrg.x) && !isnan(avrg.y)); + } + + vsub(&force, &avrg, &boid->position); + vmulf(&force, &force, separation.force); + vsub(&boid->force, &boid->force, &force); + assert(!isnan(boid->force.x) && !isnan(boid->force.y)); + } +} + +void system_boids_alignment(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + boid_c* boid, *other; + fvec avrg, diff; + float dist; + size_t hit_count; + + for(size_t i = 0; i < count; ++i) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + avrg = (fvec){ 0.f, 0.f }; + hit_count = 0; + + for(size_t j = 0; j < BOID_NEAR_COUNT && boid->near[j] != noentity; ++j) + { + other = ecsGetComponentPtr(boid->near[j], boid_component); + dist = vdist(&other->position, &boid->position); + + if(dist < alignment.range) + { + ++hit_count; + vsub(&diff, &other->velocity, &avrg); + vmulf(&diff, &diff, 1.f/(hit_count)); + vadd(&avrg, &avrg, &diff); + } + assert(!isnan(avrg.x) && !isnan(avrg.y)); + } + + vmulf(&avrg, &avrg, alignment.force); + vadd(&boid->force, &boid->force, &avrg); + assert(!isnan(boid->force.x) && !isnan(boid->force.y)); + } +} + +void system_boid_mouse(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + boid_c* boid; + fvec mouse, diff; + float m; + int imx, imy; + uint32_t mstate = SDL_GetMouseState(&imx, &imy); + mouse = (fvec){ (float)imx, (float)imy }; + if((mstate & SDL_BUTTON_LEFT) == 0) return; + + for(size_t i = 0; i < count; ++i) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + vsub(&diff, &mouse, &boid->position); + m = vmag(&diff); + if(m < mouse_interact.range) + { + vmulf(&diff, &diff, (1.f/m)*mouse_interact.force); + vadd(&boid->force, &boid->force, &diff); + } + } +} + +void system_boids_wrap(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + boid_c* boid; + int iw, ih; + float w, h; + SDL_GetRendererOutputSize(renderer, &iw, &ih); + w = (float)iw; h = (float)ih; + + for(size_t i = 0; i < count; ++i) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + if(boid->position.x >= w) boid->position.x -= w; + if(boid->position.x < 0) boid->position.x += w; + if(boid->position.y >= h) boid->position.y -= h; + if(boid->position.y < 0) boid->position.y += w; + } +} + +void system_boids_wall_avoid(ecsEntityId* entities, ecsComponentMask* components, size_t count, float delta_time) +{ + if(wall_avoid.force == 0.f) return; + + boid_c* boid; + fvec force; + + SDL_Rect limits = boid_available_area; + limits.x += wall_avoid.range; + limits.w -= wall_avoid.range*2; + limits.y += wall_avoid.range; + limits.h -= wall_avoid.range*2; + + for(size_t i = 0; i < count; ++i) + { + boid = ecsGetComponentPtr(entities[i], boid_component); + force = (fvec){ 0.f, 0.f }; + + if(boid->position.x >= limits.x + limits.w) + force.x = -1.f; + if(boid->position.x <= limits.x) + force.x = 1.f; + if(boid->position.y >= limits.y + limits.h) + force.y = -1.f; + if(boid->position.y <= limits.y) + force.y = 1.f; + + vnor(&force, &force); + vmulf(&force, &force, wall_avoid.force); + vadd(&boid->force, &boid->force, &force); + } +} diff --git a/src/sim/boid_c.h b/src/sim/boid_c.h new file mode 100644 index 0000000..89aad1e --- /dev/null +++ b/src/sim/boid_c.h @@ -0,0 +1,46 @@ +#ifndef boid_c_h +#define boid_c_h + +#include +#include +#include + +#ifndef BOID_NEAR_COUNT +#define BOID_NEAR_COUNT (100) +#endif + +extern ecsComponentMask boid_component; +typedef struct boid_c { + fvec position; + fvec velocity; + fvec force; + ecsEntityId near[BOID_NEAR_COUNT]; +} boid_c; + +typedef struct behaviour_t { + float force; + float range; +} behaviour_t; + +extern struct SDL_Texture* boid_texture; +extern float boid_acceleration; +extern float boid_max_velocity; + +extern behaviour_t alignment; +extern behaviour_t separation; +extern behaviour_t cohesion; +extern behaviour_t wall_avoid; +extern behaviour_t mouse_interact; +extern struct SDL_Rect boid_available_area; + +extern void system_boid_update_position(ecsEntityId*, ecsComponentMask*, size_t, float); +extern void system_boids_cohesion(ecsEntityId*, ecsComponentMask*, size_t, float); +extern void system_boids_separation(ecsEntityId*, ecsComponentMask*, size_t, float); +extern void system_boids_alignment(ecsEntityId*, ecsComponentMask*, size_t, float); +extern void system_boids_wall_avoid(ecsEntityId*, ecsComponentMask*, size_t, float); +extern void system_boids_wrap(ecsEntityId*, ecsComponentMask*, size_t, float); +extern void system_draw_boids(ecsEntityId*, ecsComponentMask*, size_t, float); +extern void system_boid_mouse(ecsEntityId*, ecsComponentMask*, size_t, float); +extern void system_boid_update_near(ecsEntityId*, ecsComponentMask*, size_t, float); + +#endif /* boid_c_h */ diff --git a/src/sim/sim.c b/src/sim/sim.c new file mode 100644 index 0000000..1f352f7 --- /dev/null +++ b/src/sim/sim.c @@ -0,0 +1,154 @@ +#include +#include +#include +#include +#include + +#define BOID_NEAR_COUNT (200) +#include "boid_c.h" + +int boid_spawn_num; + +void system_draw_gui(ecsEntityId* entities, ecsComponentMask* mask, size_t count, float delta_time) +{ + static int show_sliders = 1; + + int ww, wh; + SDL_GetRendererOutputSize(renderer, &ww, &wh); + + boid_available_area.w = ww; + boid_available_area.h = wh; + boid_available_area.x = 0; + + SDL_Rect rect = { + 0, 0, 500, wh + }; + + uiBeginFrame(); + + if(uiBeginWindow(&rect, &show_sliders)) + { + // set the area boids will stay in to exclude the area of the ui + boid_available_area.x = rect.w; + boid_available_area.w = ww - rect.w; + + // render velocity and acceleration sliders + uiLabelNext("speed", 0.25f); + uiSlider(&boid_max_velocity, 10.f, 100.f, 5.f); + uiLabelNext("acceleration", 0.25f); + uiSlider(&boid_acceleration, 10.f, 100.f, 5.f); + + // alignment parameters + uiHeader("alignment"); + + uiLabelNext("range", 0.25f); + uiSlider(&(alignment.range), 0.1f, 100.f, 1.f); + uiLabelNext("force", 0.25f); + uiSlider(&(alignment.force), 0.0f, 2.f, 0.01f); + + // cohesion parameters + uiHeader("cohesion"); + + uiLabelNext("range", 0.25f); + uiSlider(&(cohesion.range), 0.1f, 100.f, 1.f); + uiLabelNext("force", 0.25f); + uiSlider(&(cohesion.force), 0.0f, 2.f, .01f); + + // mouse interaction parameters + uiHeader("mouse"); + + uiLabelNext("range", 0.25f); + uiSlider(&(mouse_interact.range), 0.1f, 100.f, 1.f); + uiLabelNext("force", 0.25f); + uiSlider(&(mouse_interact.force), -200.f, 200.f, 10.f); + + + // separation range + uiHeader("separation"); + + uiSlider(&(separation.range), 0.1f, 100.f, 1.f); + } +} + +void sim_config(engine_init_t* config) +{ + config->window_width = 1700; + config->window_height = 1000; + config->window_init_flags |= SDL_WINDOW_RESIZABLE; + boid_spawn_num = 500; + config->target_framerate = 24; +} + +void spawn_boids() +{ + int w, h; + SDL_GetRendererOutputSize(renderer, &w, &h); + + fvec position = {9, 0}; + ecsEntityId entity; + boid_c* boid; + + for(int i = 0; i < boid_spawn_num; i++) + { + position = (fvec){rand() % w, rand() % h}; + if((entity = ecsCreateEntity(boid_component)) != noentity) + { + boid = ecsGetComponentPtr(entity, boid_component); + (*boid) = (boid_c){ + .position = position, + .velocity = {0,0}, + .force = {0,0} + }; + } + else + { + exit(2); + } + } +} + +void sim_init() +{ + // register boid_c as a component type + boid_component = ecsRegisterComponent(boid_c); + + // enable the functions that make boids boid + ecsEnableSystem(&system_boid_update_position, boid_component, ECS_QUERY_ALL, 8, 50); + ecsEnableSystem(&system_boid_update_near, boid_component, ECS_QUERY_ALL, 0, 100); + ecsEnableSystem(&system_draw_boids, boid_component, ECS_QUERY_ALL, 0, 200); + ecsEnableSystem(&system_boids_wall_avoid, boid_component, ECS_QUERY_ALL, 8, 300); + ecsEnableSystem(&system_boids_cohesion, boid_component, ECS_QUERY_ALL, 8, 400); + ecsEnableSystem(&system_boids_alignment, boid_component, ECS_QUERY_ALL, 8, 410); + ecsEnableSystem(&system_boids_separation, boid_component, ECS_QUERY_ALL, 8, 420); + ecsEnableSystem(&system_boid_mouse, boid_component, ECS_QUERY_ALL, 8, 430); + + // enable the gui system + ecsEnableSystem(&system_draw_gui, nocomponent, ECS_NOQUERY, 0, 500); + + int w, h; + SDL_GetRendererOutputSize(renderer, &w, &h); + + // load boid image + //asset_handle_t blur_asset = load_asset("blur.png"); + asset_handle_t arrow_asset = load_asset("boid.png"); + // set boid texture + boid_texture = get_asset(arrow_asset); + + // load and set font + asset_handle_t font_asset = load_asset("Inter-Regular.otf"); + uiSetFont(get_asset(font_asset)); + + // set the initially available area + boid_available_area = (SDL_Rect){ + .x = 0, .y = 0, + .w = w, .h = h + }; + + // spawn a bunch of boids + spawn_boids(); +} + +void sim_quit() +{ +} +