mirror of
https://github.com/BoredDevNL/BoredOS.git
synced 2026-05-15 10:48:38 +00:00
29 lines
865 B
C
29 lines
865 B
C
// stb_image.c wrapper for Kernel Mode
|
|
#include "memory_manager.h"
|
|
|
|
// Define custom memory allocators for stb_image in freestanding environment
|
|
#define STBI_MALLOC kmalloc
|
|
#define STBI_REALLOC krealloc
|
|
#define STBI_FREE kfree
|
|
|
|
// Kernel doesn't have standard I/O headers or functions
|
|
#define STBI_NO_STDIO
|
|
#define STBI_ASSERT(x) ((void)(x))
|
|
|
|
// Kernel doesn't have math.h, so disable float/hdr functions
|
|
#define STBI_NO_LINEAR
|
|
#define STBI_NO_HDR
|
|
|
|
// Limit maximum dimensions to prevent memory exhaustion and large stack frames
|
|
#define STBI_MAX_DIMENSIONS 4096
|
|
|
|
// Kernel doesn't have standard stdlib, disable SIMD and provide abs
|
|
#define STBI_NO_SIMD
|
|
#define STBI_NO_PSD
|
|
#define STBI_NO_PIC
|
|
#define STBI_NO_PNM
|
|
static inline int abs(int x) { return x < 0 ? -x : x; }
|
|
|
|
// Include the implementation
|
|
#define STB_IMAGE_IMPLEMENTATION
|
|
#include "userland/stb_image.h"
|