summaryrefslogtreecommitdiff
path: root/src/enhancer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/enhancer.h')
-rw-r--r--src/enhancer.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/enhancer.h b/src/enhancer.h
index fce3fe7..f466d21 100644
--- a/src/enhancer.h
+++ b/src/enhancer.h
@@ -1,6 +1,9 @@
#ifndef GGAZE_ENHANCER_H
#define GGAZE_ENHANCER_H
+#include "ggaze-config.h"
+
+#include <gdk/gdk.h>
#include <gio/gio.h>
#include <glib.h>
#include <gegl.h>
@@ -25,12 +28,25 @@ const GPtrArray *enhancer_get_presets(Enhancer *p_e);
GeglBuffer *enhancer_apply(Enhancer *p_e, GeglBuffer *p_in,
const EnhancerPreset *p_preset, GError **p_err);
-/* Export the enhanced buffer to a file (JPEG quality 95, EXIF Orientation=1).
- * Returns TRUE on success. */
+/* Export the enhanced buffer to a file. The saver is chosen from p_out's
+ * extension: .jpg/.jpeg -> gegl:jpg-save (quality 95), .png -> gegl:png-save,
+ * .webp -> gegl:webp-save (if available). Other extensions fail with
+ * G_IO_ERROR_NOT_SUPPORTED. Success is verified by a real stat of the output
+ * (not pre-existence). Returns TRUE on success. */
gboolean enhancer_export(Enhancer *p_e, GeglBuffer *p_in,
const EnhancerPreset *p_preset, GFile *p_out,
GError **p_err);
+#if GGAZE_HAVE_GEGL
+/* Load a file into a GeglBuffer via the gegl:load op. Returns a new buffer
+ * (caller unrefs) or NULL with p_err set. */
+GeglBuffer *enhancer_load(GFile *p_file, GError **p_err);
+
+/* Convert a GeglBuffer to a GdkTexture for preview (RGBA8 bytes). Returns a
+ * new GdkTexture (caller unrefs) or NULL with p_err set. Needs no display. */
+GdkTexture *enhancer_buffer_to_texture(GeglBuffer *p_buf, GError **p_err);
+#endif /* GGAZE_HAVE_GEGL */
+
G_END_DECLS
#endif \ No newline at end of file