| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- #include "graphics.h"
 
- #include "obsconfig.h"
 
- #define MAGICKCORE_QUANTUM_DEPTH 16
 
- #define MAGICKCORE_HDRI_ENABLE 0
 
- #if LIBOBS_IMAGEMAGICK_DIR_STYLE == LIBOBS_IMAGEMAGICK_DIR_STYLE_6L
 
- #include <magick/MagickCore.h>
 
- #elif LIBOBS_IMAGEMAGICK_DIR_STYLE == LIBOBS_IMAGEMAGICK_DIR_STYLE_7GE
 
- #include <MagickCore/MagickCore.h>
 
- #endif
 
- void gs_init_image_deps()
 
- {
 
- 	MagickCoreGenesis(NULL, MagickTrue);
 
- }
 
- void gs_free_image_deps()
 
- {
 
- 	MagickCoreTerminus();
 
- }
 
- uint8_t *gs_create_texture_file_data(const char *file,
 
- 				     enum gs_color_format *format,
 
- 				     uint32_t *cx_out, uint32_t *cy_out)
 
- {
 
- 	uint8_t *data = NULL;
 
- 	ImageInfo *info;
 
- 	ExceptionInfo *exception;
 
- 	Image *image;
 
- 	if (!file || !*file)
 
- 		return NULL;
 
- 	info = CloneImageInfo(NULL);
 
- 	exception = AcquireExceptionInfo();
 
- 	strcpy(info->filename, file);
 
- 	image = ReadImage(info, exception);
 
- 	if (image) {
 
- 		size_t cx = image->magick_columns;
 
- 		size_t cy = image->magick_rows;
 
- 		data = bmalloc(cx * cy * 4);
 
- 		ExportImagePixels(image, 0, 0, cx, cy, "BGRA", CharPixel, data,
 
- 				  exception);
 
- 		if (exception->severity != UndefinedException) {
 
- 			blog(LOG_WARNING,
 
- 			     "magickcore warning/error getting "
 
- 			     "pixels from file '%s': %s",
 
- 			     file, exception->reason);
 
- 			bfree(data);
 
- 			data = NULL;
 
- 		}
 
- 		*format = GS_BGRA;
 
- 		*cx_out = (uint32_t)cx;
 
- 		*cy_out = (uint32_t)cy;
 
- 		DestroyImage(image);
 
- 	} else if (exception->severity != UndefinedException) {
 
- 		blog(LOG_WARNING,
 
- 		     "magickcore warning/error reading file "
 
- 		     "'%s': %s",
 
- 		     file, exception->reason);
 
- 	}
 
- 	DestroyImageInfo(info);
 
- 	DestroyExceptionInfo(exception);
 
- 	return data;
 
- }
 
 
  |