32 lines
1.4 KiB
C
32 lines
1.4 KiB
C
// dvxIcon.c — stb_image implementation for DVX GUI
|
|
//
|
|
// This file exists solely to instantiate the stb_image implementation.
|
|
// stb_image is a single-header library: you #define STB_IMAGE_IMPLEMENTATION
|
|
// in exactly one .c file to generate the actual function bodies. Putting
|
|
// this in its own translation unit keeps the stb code isolated so it:
|
|
// 1. Compiles once, not in every file that #includes stb_image.h
|
|
// 2. Can have its own warning suppressions without affecting project code
|
|
// 3. Doesn't slow down incremental rebuilds (only recompiles if stb changes)
|
|
//
|
|
// stb_image was chosen over libpng/libjpeg because:
|
|
// - Single header, no external dependencies — critical for DJGPP cross-compile
|
|
// - Supports BMP, PNG, JPEG, GIF with one include
|
|
// - Public domain license, no linking restrictions
|
|
// - Small code footprint suitable for DOS targets
|
|
//
|
|
// STBI_ONLY_* defines strip out support for unused formats (TGA, PSD, HDR,
|
|
// PIC, PNM) to reduce binary size. STBI_NO_SIMD is required because DJGPP
|
|
// targets 486/Pentium which lack SSE; on the Linux/SDL build it's harmless.
|
|
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wunused-function"
|
|
|
|
#define STBI_ONLY_BMP
|
|
#define STBI_ONLY_PNG
|
|
#define STBI_ONLY_JPEG
|
|
#define STBI_ONLY_GIF
|
|
#define STBI_NO_SIMD
|
|
#define STB_IMAGE_IMPLEMENTATION
|
|
#include "thirdparty/stb_image.h"
|
|
|
|
#pragma GCC diagnostic pop
|