summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTazyFoundSoup <gardendistrict0x0@outlook.com>2026-02-04 16:06:22 +1100
committerTazyFoundSoup <gardendistrict0x0@outlook.com>2026-02-04 16:06:22 +1100
commitfd05629fb093dab6ae44db4f201a48f65c717288 (patch)
treef4be0520958c8e02b54500e3bef5021ba09eb77e
parent7c56468903540fefc8029f67395665436f5d26b3 (diff)
feat(png): Add ff_png_normalize function and generic image header
-rw-r--r--.vscode/c_cpp_properties.json16
-rw-r--r--include/tinyff/image/generic.h30
-rw-r--r--include/tinyff/image/png.h3
3 files changed, 49 insertions, 0 deletions
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
new file mode 100644
index 0000000..109c8c0
--- /dev/null
+++ b/.vscode/c_cpp_properties.json
@@ -0,0 +1,16 @@
+{
+ "configurations": [
+ {
+ "name": "Linux",
+ "includePath": [
+ "${workspaceFolder}/**"
+ ],
+ "defines": [],
+ "compilerPath": "/usr/bin/gcc",
+ "cStandard": "c99",
+ "cppStandard": "gnu++17",
+ "intelliSenseMode": "linux-gcc-x64"
+ }
+ ],
+ "version": 4
+} \ No newline at end of file
diff --git a/include/tinyff/image/generic.h b/include/tinyff/image/generic.h
new file mode 100644
index 0000000..e136027
--- /dev/null
+++ b/include/tinyff/image/generic.h
@@ -0,0 +1,30 @@
+// This is the generics image header file for tinyff
+// It contains generic image structures and definitions
+
+#include "common.h"
+#include "result.h"
+
+#ifndef GENERIC_IMAGE_H
+#define GENERIC_IMAGE_H
+
+
+// The image origin is **not** the origin point of the image
+// But rather from what the image was loaded
+
+typedef enum {
+ FF_IMAGE_ORIGIN_PNG,
+} ff_image_origin;
+
+// Only the basic information about an image
+// Warning: Data is RGBA8888 using scanlines going from top to bottom
+typedef struct {
+ uint32_t width;
+ uint32_t height;
+ ff_image_origin origin;
+
+ uint8_t* data;
+
+} ff_image_ctx;
+
+
+#endif \ No newline at end of file
diff --git a/include/tinyff/image/png.h b/include/tinyff/image/png.h
index fd8d29d..0b0bb3b 100644
--- a/include/tinyff/image/png.h
+++ b/include/tinyff/image/png.h
@@ -10,6 +10,7 @@
#include "tinyff/result.h"
#include "tinyff/common.h"
#include "tinyff/stream.h"
+#include "tinyff/image/generic.h"
// External
#include "ext/tinf.h"
@@ -100,4 +101,6 @@ const ff_png_chunk_handler ff_png_chunk_handlers[] = {
ff_result ff_png_isvalid(ff_stream *stream);
ff_result ff_open_png(ff_stream *stream, ff_png_ctx **out_ctx);
+ff_result ff_png_normalize(ff_png_ctx *ctx, ff_image_ctx **out_data);
+
#endif