Color Management, Stage 2: Switch color pipeline to use OpenColorIO
[blender.git] / source / blender / imbuf / intern / targa.c
index 2f7452772ef1ea4bcaaea9c47cd2519cce84a10d..253680e4bea0819cbc2534a08e3c7458b5b4de41 100644 (file)
@@ -46,6 +46,8 @@
 #include "IMB_allocimbuf.h"
 #include "IMB_filetype.h"
 
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
 
 /* this one is only def-ed once, strangely... related to GS? */
 #define GSS(x) (((uchar *)(x))[1] << 8 | ((uchar *)(x))[0])
@@ -546,22 +548,23 @@ partial_load:
 }
 
 
-ImBuf *imb_loadtarga(unsigned char *mem, size_t mem_size, int flags)
+ImBuf *imb_loadtarga(unsigned char *mem, size_t mem_size, int flags, char colorspace[IM_MAX_SPACE])
 {
        TARGA tga;
        struct ImBuf *ibuf;
        int col, count, size;
        unsigned int *rect, *cmap = NULL /*, mincol = 0*/, maxcol = 0;
        uchar *cp = (uchar *) &col;
-       
+
        if (checktarga(&tga, mem) == 0) return(NULL);
 
+       colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+
        if (flags & IB_test) ibuf = IMB_allocImBuf(tga.xsize, tga.ysize, tga.pixsize, 0);
        else ibuf = IMB_allocImBuf(tga.xsize, tga.ysize, (tga.pixsize + 0x7) & ~0x7, IB_rect);
 
        if (ibuf == NULL) return(NULL);
        ibuf->ftype = TGA;
-       ibuf->profile = IB_PROFILE_SRGB;
        mem = mem + 18 + tga.numid;
        
        cp[0] = 0xff;