Bugfix #18519
[blender.git] / source / blender / imbuf / intern / imbuf_patch.h
1 /**
2  * imbuf_patch.h
3  *
4  * These are some definitions to make imbuf more independent from the
5  * rest of the blender code. Most of these are dirty and should not
6  * really exist.
7  *
8  * $Id$ *
9  *
10  * ***** BEGIN GPL LICENSE BLOCK *****
11  *
12  * This program is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU General Public License
14  * as published by the Free Software Foundation; either version 2
15  * of the License, or (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software Foundation,
24  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25  *
26  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
27  * All rights reserved.
28  *
29  * The Original Code is: all of this file.
30  *
31  * Contributor(s): none yet.
32  *
33  * ***** END GPL LICENSE BLOCK *****
34  */
35 #ifndef IMBUF_PATCH_H
36 #define IMBUF_PATCH_H
37
38 /* most of imbuf uses this aloc, and it will disappear soon
39  * (hopefully) (25-10-2001 nzc) */
40 #include "MEM_guardedalloc.h"
41
42 struct ImBuf;
43
44 /* originally, these were defines ... */
45 typedef unsigned char  uchar;
46
47 /* should not be used at all */
48 #define TRUE 1
49 #define FALSE 0
50
51 /* Endianness: flip the byte order. It's strange that this is needed..
52  * After all, there is an internal endian.{c,h}... */
53 #if defined(__sgi) || defined (__sparc) || defined(__sparc__) || defined (__PPC__) || defined (__ppc__) || defined (__hppa__) || defined (__BIG_ENDIAN__)
54 #define MAKE_ID(a,b,c,d) ( (int)(a)<<24 | (int)(b)<<16 | (c)<<8 | (d) )
55 #else
56 #define MAKE_ID(a,b,c,d) ( (int)(d)<<24 | (int)(c)<<16 | (b)<<8 | (a) )
57 #endif
58
59 /* These defines loop back to the internal Blender memory management
60  * system, implemented in blenlib. */
61 #define NEW(x) (x*)MEM_mallocN(sizeof(x),# x) 
62 #define mallocstruct(x,y) (x*)malloc((y)* sizeof(x))
63 #define callocstruct(x,y) (x*)calloc((y), sizeof(x))
64
65 /* These vars are used thoughout the image buffer for conversions. */
66 extern float rgbyuv[4][4];
67 extern float yuvrgb[4][4];
68 extern float rgbbeta[4][4];
69
70 /* This one helps debugging. */
71 extern int IB_verbose;
72
73 /* These ID's are used for checking memory blocks. See blenlib for
74  * more details. This set is only used in the imbuf internally. */
75
76 #define CAT  MAKE_ID('C','A','T',' ')
77 #define FORM MAKE_ID('F','O','R','M')
78 #define ILBM MAKE_ID('I','L','B','M')
79 #define BMHD MAKE_ID('B','M','H','D')
80 #define CMAP MAKE_ID('C','M','A','P')
81 #define CAMG MAKE_ID('C','A','M','G')
82 #define BODY MAKE_ID('B','O','D','Y')
83
84 #define ANIM MAKE_ID('A','N','I','M')
85 #define ADAT MAKE_ID('A','D','A','T')
86 #define CODE MAKE_ID('C','O','D','E')
87 #define ANHD MAKE_ID('A','N','H','D')
88 #define DLTA MAKE_ID('D','L','T','A')
89 #define BLCK MAKE_ID('B','L','C','K')
90
91 #define MAXRUN 126
92 #define MAXDAT 126
93 #define IFFNOP 128
94
95 #define camg ftype
96
97 #define LI_rect         IB_rect
98 #define LI_planes       IB_planes
99 #define LI_kcmap        IB_cmap
100 #define LI_cmap         IB_cmap
101 #define LI_freem        IB_freem
102 #define LI_test         IB_test
103
104 #define SI_rect         IB_rect
105 #define SI_planes       IB_planes
106 #define SI_kcmap        IB_cmap
107 #define SI_cmap         IB_cmap
108 #define SI_vert         IB_vert
109
110 #endif
111