Subversion Repositories filter_foundry

Rev

Rev 517 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 517 Rev 519
1
/*
1
/*
2
    This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop
2
    This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop
3
    Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au
3
    Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au
4
    Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft
4
    Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft
5
 
5
 
6
    This program is free software; you can redistribute it and/or modify
6
    This program is free software; you can redistribute it and/or modify
7
    it under the terms of the GNU General Public License as published by
7
    it under the terms of the GNU General Public License as published by
8
    the Free Software Foundation; either version 2 of the License, or
8
    the Free Software Foundation; either version 2 of the License, or
9
    (at your option) any later version.
9
    (at your option) any later version.
10
 
10
 
11
    This program is distributed in the hope that it will be useful,
11
    This program is distributed in the hope that it will be useful,
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
    GNU General Public License for more details.
14
    GNU General Public License for more details.
15
 
15
 
16
    You should have received a copy of the GNU General Public License
16
    You should have received a copy of the GNU General Public License
17
    along with this program; if not, write to the Free Software
17
    along with this program; if not, write to the Free Software
18
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
*/
19
*/
20
 
20
 
21
// This RC file is for Windows only.
21
// This RC file is for Windows only.
22
// The PiPL_body contains the properties which are added to PIPL and TPLT (PIPL-Template).
22
// The PiPL_body contains the properties which are added to PIPL and TPLT (PIPL-Template).
23
// PIPL will additionally receive name, catg and hstm
23
// PIPL will additionally receive name, catg and hstm
24
// Attention: This file may only contain 7 properties. If this number changes,
24
// Attention: This file may only contain 8 properties. If this number changes,
25
//            please also change PiPL.rc
25
//            please also change PiPL.rc
26
 
26
 
27
/* Filter module */
27
/* Filter module */
28
VENDORID, LC(k,i,n,d), NULLID, 4L, LC(8,B,F,M),
28
VENDORID, LC(k,i,n,d), NULLID, 4L, LC(8,B,F,M),
29
 
29
 
30
/* Version Number */
30
/* Version Number */
31
VENDORID, LC(v,e,r,s), NULLID, 4L, latestFilterSubVersion, latestFilterVersion,
31
VENDORID, LC(v,e,r,s), NULLID, 4L, latestFilterSubVersion, latestFilterVersion,
32
 
32
 
33
#ifndef doesSupportBitmap
33
/* Priority (0 = default) */
34
#define doesSupportBitmap         flagSupportsBitmap
34
VENDORID, LC(p,r,t,y), NULLID, 4L, NULLID,
35
#define doesSupportGrayScale      flagSupportsGrayScale
-
 
36
#define doesSupportIndexedColor   flagSupportsIndexedColor
-
 
37
#define doesSupportRGBColor       flagSupportsRGBColor
-
 
38
#define doesSupportCMYKColor      flagSupportsCMYKColor
-
 
39
#define doesSupportHSLColor       flagSupportsHSLColor
-
 
40
#define doesSupportHSBColor       flagSupportsHSBColor
-
 
41
#define doesSupportMultichannel   flagSupportsMultichannel
-
 
42
#define doesSupportDuotone        32768 // (flagSupportsDuotone << 8)    RC doesn't know <<8, nor *256 !
-
 
43
#define doesSupportLABColor       16384 // (flagSupportsLABColor << 8)   RC doesn't know <<8, nor *256 !
-
 
44
#endif
-
 
45
 
35
 
46
/* Supported modes */
36
/* Supported modes */
47
/* Second byte:    */
-
 
48
VENDORID, LC(m,o,d,e), NULLID, 4L, /* First byte:     */ /*doesSupportBitmap|*/
37
VENDORID, LC(m,o,d,e), NULLID, 4L, /* First byte:     */ /*doesSupportBitmap|*/
49
                                                         doesSupportGrayScale|
38
                                                         doesSupportGrayScale|
50
                                                         doesSupportIndexedColor|
39
                                                         /*doesSupportIndexedColor|*/
51
                                                         doesSupportRGBColor|
40
                                                         doesSupportRGBColor|
52
                                                         doesSupportCMYKColor|
41
                                                         doesSupportCMYKColor|
53
                                                         doesSupportHSLColor|
42
                                                         doesSupportHSLColor|
54
                                                         doesSupportHSBColor|
43
                                                         doesSupportHSBColor|
55
                                                         doesSupportMultichannel|
44
                                                         doesSupportMultichannel|
56
                                   /* Second byte: */    doesSupportDuotone|
45
                                   /* Second byte: */    doesSupportDuotone|
57
                                                         doesSupportLABColor,
46
                                                         doesSupportLABColor,
58
                                   /* 3rd & 4th byte: */ 0,
47
                                   /* 3rd & 4th byte: */ 0,
59
 
48
 
60
/* We need this to enable the plugin for BigDocuments */
49
/* We need this to enable the plugin for BigDocuments */
61
VENDORID, LC(m,s,3,2), NULLID, 8L, 2000000L, 2000000L,
50
VENDORID, LC(m,s,3,2), NULLID, 8L, 2000000L, 2000000L,
62
 
51
 
63
/* Required host ('    ' = ANY) */
52
/* Required host ('    ' = ANY) */
64
/* Commented out, because there is a risk that a badly programmed host will think that '    '!='8BIM' and doesn't load the plugin then?!*/
53
/* Commented out, because there is a risk that a badly programmed host will think that '    '!='8BIM' and doesn't load the plugin then?!*/
65
//VENDORID, LC(h,o,s,t), NULLID, 4L, ANY,
54
//VENDORID, LC(h,o,s,t), NULLID, 4L, ANY,
66
 
55
 
67
/* "FilterLayerSupport" (Allows smart filters) */
56
/* "FilterLayerSupport" (Allows smart filters) */
68
/* TODO: It seems to work, but are we really fully supporting Smart Filters?! */
57
/* TODO: It seems to work, but are we really fully supporting Smart Filters?! */
69
VENDORID, LC(f,l,l,y), NULLID, 4L, 0x80L,
58
VENDORID, LC(f,l,l,y), NULLID, 4L, 0x80L,
70
 
59
 
71
/* Enable info */
60
/* Enable info */
72
/* Note: Length 136 must be divisible by 4 */
61
/* Note: Length 116 must be divisible by 4 */
73
/* "Plug-in Resource Guide.pdf", pages 61-62 */
62
/* "Plug-in Resource Guide.pdf", pages 61-62 */
74
VENDORID, LC(e,n,b,l), NULLID, 136L, "in (PSHOP_ImageMode, GrayScaleMode, IndexedColorMode, RGBMode, CMYKMode, HSLMode, HSBMode, MultichannelMode, DuotoneMode, LabMode)\0\0\0\0\0\0",
63
VENDORID, LC(e,n,b,l), NULLID, 116L, "in (PSHOP_ImageMode, GrayScaleMode, RGBMode, CMYKMode, HSLMode, HSBMode, MultichannelMode, DuotoneMode, LabMode)\0\0\0\0",
75
 
64
 
76
/* MonitorScalingAware */
65
/* MonitorScalingAware */
77
/* TODO: Do we support it? For now, commented out */
66
/* TODO: Do we support it? For now, commented out */
78
//VENDORID, LC(p,m,s,a), NULLID, 4L, 1L,
67
//VENDORID, LC(p,m,s,a), NULLID, 4L, 1L,
79
 
68
 
80
/* FilterCaseInfo - in all cases:
69
/* FilterCaseInfo - in all cases:
81
	   inStraightData,
70
	   inStraightData,
82
	   outStraightData,
71
	   outStraightData,
83
	   doNotWriteOutsideSelection,
72
	   doNotWriteOutsideSelection,
84
	   doesNotFilterLayerMasks,
73
	   doesNotFilterLayerMasks,
85
	   worksWithBlankData,
74
	   worksWithBlankData,
86
	   doNotCopySourceToDestination */
75
	   doNotCopySourceToDestination */
87
VENDORID, LC(f,i,c,i), NULLID, 28L,
76
VENDORID, LC(f,i,c,i), NULLID, 28L,
88
 
77
 
89
	/* Filter Case 1: filterCaseFlatImageNoSelection [A background layer or a flat image] */
78
	/* Filter Case 1: filterCaseFlatImageNoSelection [A background layer or a flat image] */
90
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)
79
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)
91
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
80
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
92
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
81
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
93
	        //       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
82
	        //       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
94
	        //       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
83
	        //       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
95
	        //       4 PIFilterFiltersLayerMaskBit       = false
84
	        //       4 PIFilterFiltersLayerMaskBit       = false
96
	        //       8 PIFilterWritesOutsideSelectionBit = false
85
	        //       8 PIFilterWritesOutsideSelectionBit = false
97
	"\000", // flags2 [Reserved] = 00h
86
	"\000", // flags2 [Reserved] = 00h
98
 
87
 
99
	/* Filter Case 2: filterCaseFlatImageWithSelection [No transparency data, but a selection may be present] */
88
	/* Filter Case 2: filterCaseFlatImageWithSelection [No transparency data, but a selection may be present] */
100
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)
89
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)
101
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
90
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
102
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
91
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
103
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
92
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
104
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
93
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
105
			//       4 PIFilterFiltersLayerMaskBit       = false
94
			//       4 PIFilterFiltersLayerMaskBit       = false
106
			//       8 PIFilterWritesOutsideSelectionBit = false
95
			//       8 PIFilterWritesOutsideSelectionBit = false
107
	"\000", // flags2 [Reserved] = 00h
96
	"\000", // flags2 [Reserved] = 00h
108
 
97
 
109
	/* Filter Case 3: filterCaseFloatingSelection [Image data with an accompanying mask] */
98
	/* Filter Case 3: filterCaseFloatingSelection [Image data with an accompanying mask] */
110
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
99
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
111
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
100
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
112
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
101
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
113
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
102
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
114
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
103
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
115
			//       4 PIFilterFiltersLayerMaskBit       = false
104
			//       4 PIFilterFiltersLayerMaskBit       = false
116
			//       8 PIFilterWritesOutsideSelectionBit = false
105
			//       8 PIFilterWritesOutsideSelectionBit = false
117
	"\000", // flags2 [Reserved] = 00h
106
	"\000", // flags2 [Reserved] = 00h
118
 
107
 
119
	/* Filter Case 4: filterCaseEditableTransparencyNoSelection [Layer with transparency editing enabled and no selection] */
108
	/* Filter Case 4: filterCaseEditableTransparencyNoSelection [Layer with transparency editing enabled and no selection] */
120
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
109
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
121
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
110
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
122
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h)
111
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h)
123
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
112
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
124
			//       2 PIFilterWorksWithBlankDataBit     = true
113
			//       2 PIFilterWorksWithBlankDataBit     = true
125
			//       4 PIFilterFiltersLayerMaskBit       = false
114
			//       4 PIFilterFiltersLayerMaskBit       = false
126
			//       8 PIFilterWritesOutsideSelectionBit = false
115
			//       8 PIFilterWritesOutsideSelectionBit = false
127
	"\000", // flags2 [Reserved] = 00h
116
	"\000", // flags2 [Reserved] = 00h
128
 
117
 
129
	/* Filter Case 5: filterCaseEditableTransparencyWithSelection [Layer with transparency editing enabled and a selection] */
118
	/* Filter Case 5: filterCaseEditableTransparencyWithSelection [Layer with transparency editing enabled and a selection] */
130
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
119
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
131
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
120
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
132
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h)
121
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h)
133
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
122
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
134
			//       2 PIFilterWorksWithBlankDataBit     = true
123
			//       2 PIFilterWorksWithBlankDataBit     = true
135
			//       4 PIFilterFiltersLayerMaskBit       = false
124
			//       4 PIFilterFiltersLayerMaskBit       = false
136
			//       8 PIFilterWritesOutsideSelectionBit = false
125
			//       8 PIFilterWritesOutsideSelectionBit = false
137
	"\000", // flags2 [Reserved] = 00h
126
	"\000", // flags2 [Reserved] = 00h
138
 
127
 
139
	/* Filter Case 6: filterCaseProtectedTransparencyNoSelection [Layer with transparency editing disabled and no selection] */
128
	/* Filter Case 6: filterCaseProtectedTransparencyNoSelection [Layer with transparency editing disabled and no selection] */
140
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
129
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
141
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
130
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
142
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
131
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
143
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
132
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
144
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
133
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
145
			//       4 PIFilterFiltersLayerMaskBit       = false
134
			//       4 PIFilterFiltersLayerMaskBit       = false
146
			//       8 PIFilterWritesOutsideSelectionBit = false
135
			//       8 PIFilterWritesOutsideSelectionBit = false
147
	"\000", // flags2 [Reserved] = 00h
136
	"\000", // flags2 [Reserved] = 00h
148
 
137
 
149
	/* Filter Case 7: filterCaseProtectedTransparencyWithSelection [Layer with transparency editing disabled and a selection] */
138
	/* Filter Case 7: filterCaseProtectedTransparencyWithSelection [Layer with transparency editing disabled and a selection] */
150
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
139
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
151
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
140
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
152
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
141
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
153
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
142
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
154
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
143
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
155
			//       4 PIFilterFiltersLayerMaskBit       = false
144
			//       4 PIFilterFiltersLayerMaskBit       = false
156
	        //       8 PIFilterWritesOutsideSelectionBit = false
145
	        //       8 PIFilterWritesOutsideSelectionBit = false
157
	"\000", // flags2 [Reserved] = 00h
146
	"\000", // flags2 [Reserved] = 00h