A 3D game engine from scratch.
at main 32 lines 613 B view raw
1// (c) 2020 Vlad-Stefan Harbuz <vlad@vladh.net> 2 3#pragma once 4 5#include <mutex> 6#include "types.hpp" 7#include "queue.hpp" 8 9class tasks { 10public: 11 typedef void (*TaskFn)(void*); 12 struct Task { 13 TaskFn fn; 14 void *argument_1; 15 }; 16 struct State { 17 Queue<Task> task_queue; 18 }; 19 20 static void push(Task task); 21 static void run_loading_loop( 22 std::mutex *mutex, 23 bool *should_stop, 24 u32 idx_thread 25 ); 26 static void init(tasks::State *tasks_state, memory::Pool *pool); 27 28private: 29 static void run_task(Task *task); 30 31 static tasks::State *state; 32};