#ifndef CX_H #define CX_H // Include standard headers #include #include #include #include #include #include #include #include // Include GLEW #include // Include GLFW #define GLFW_INCLUDE_VULKAN #include // Include project headers #include #include #include #include #include // Declare common data structures. typedef struct _cx_thrd { pthread_t thread; void *ctx; // Arbitrary thread context } CX_Thread; typedef struct _cx_thrgr { CX_Thread *group_manager; CX_Thread **workers; size_t worker_count; size_t worker_size; } CX_ThreadGroup; typedef struct _cx_ctx { GLFWwindow *window; Neural_Network *nn; CX_ThreadGroup **threads; GLuint *VertexArrayIDs; size_t VertexArray_count; size_t VertexArray_size; GLuint *programIDs; size_t ProgramID_count; size_t ProgramID_size; } CX_Context; // Declare functions CX_Context *cx_context_new(void); int cx_glinit(GLFWwindow **); int cx_nninit(Neural_Network **); int cx_init(CX_Context **); int cx_run(CX_Context *); #endif