1 /* Copyright 2007-2012 Fredrik Wikstrom. All rights reserved.
3 ** Redistribution and use in source and binary forms, with or without
4 ** modification, are permitted provided that the following conditions
7 ** 1. Redistributions of source code must retain the above copyright
8 ** notice, this list of conditions and the following disclaimer.
10 ** 2. Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
14 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
15 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 ** POSSIBILITY OF SUCH DAMAGE.
31 #include <exec/exec.h>
36 #ifndef INTUITION_CLASSES_H
37 #include <intuition/classes.h>
39 #ifndef INTUITION_IMAGECLASS_H
40 #include <intuition/imageclass.h>
42 #ifndef IMAGES_BITMAP_H
43 #include <images/bitmap.h>
48 #ifndef SDI_COMPILER_H
49 #include <SDI_compiler.h>
53 struct Library libNode
;
59 #define PNG_Screen BITMAP_Screen
60 #define PNG_SourceFile BITMAP_SourceFile
61 #define PNG_SelectSourceFile BITMAP_SelectSourceFile
62 #define PNG_DisabledSourceFile (BITMAP_Dummy + 19)
71 struct Screen
*screen
;
81 #define HAS_IMAGE(d,x) ((d)->truecolor ? (IPTR)(d)->image[x] : \
82 (IPTR)((d)->bm[x] && (d)->mask[x]))
89 struct BackFillMessage
{
91 struct Rectangle Bounds
;
97 IPTR
ClassDispatch (REG(a0
, Class
*cl
), REG(a2
, Object
*o
), REG(a1
, Msg msg
));
100 BOOL
LoadPNG (struct ClassData
*data
, const char *filename
, LONG index
);
103 void PenMap_ReleasePens (ULONG
*pen_map
, struct Screen
*screen
);
104 BOOL
RemapRGBAImage (struct Screen
*screen
, BOOL rtg
, UBYTE
*rgba
, WORD w
, WORD h
,
105 ULONG
*pen_map
, struct BitMap
**bm_p
, PLANEPTR
*mask_p
);
107 /* writergbapixels_p96.c */
108 BOOL
IsSupportedRGBFormat_P96 (ULONG rgbformat
);
109 IPTR
WriteRGBAPixels_P96 (REG(a0
, struct Hook
*hook
), REG(a2
, struct RastPort
*rp
),
110 REG(a1
, struct BackFillMessage
*msg
));
112 /* writergbapixels_cgx.c */
113 BOOL
IsSupportedRGBFormat_CGX (ULONG rgbformat
);
114 IPTR
WriteRGBAPixels_CGX (REG(a0
, struct Hook
*hook
), REG(a2
, struct RastPort
*rp
),
115 REG(a1
, struct BackFillMessage
*msg
));