Oxsomi Core3 is a combination of standalone C libraries useful for building applications, such as types, platform, graphics abstraction and file formats
Added ability to swap out SIMD for other archs such as none (no sse available) or SSE as well as future possibility to add arm neon support. The non arch dependent operations such as swizzles are in a common file, while more specifics (such as how the swizzles reorder a vector, add/mul/etc.) are in an arch dependent file. Renamed Vec to f32x4 to be more inline with the rest. Added int vector (i32x4). Added a simple random util. Renamed vec.h to vecf.h because veci.h is also a thing. Added float max/min (f32_MAX, f32_MIN). Small vectors can be useful for 2D and is nice because otherwise you gotta unpack from N32x4 each time. At some point we might want to add more advanced vectors such as 8-bit and 16-bit; allowing us to do more at the time (up to 16 ops instead of 4).
Fixed issue with SIMD for dependencies. Added EnableSIMD to disable/enable SIMD. Refactored simd and none architectures to have more ordered files. Added f32x2 and i32x2. Added proper alignment rules for emulated vector types. Added pow function.
Added helper for u32/u64 bit manipulation
Fixed issue with normalization. Reformatted/cleaned up vector a bit. Added a few minor optimizations for vector.
Added constructors and swizzles from and to 2-channel vectors with 4-channel vectors. Renamed default 2-channel swizzles to xx4 to indicate it has 4 components (all other 2 are 0 though).