Subversion Repositories filter_foundry

Rev

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

Rev 514 Rev 515
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
#ifndef doesSupportBitmap
34
#define doesSupportBitmap         flagSupportsBitmap
34
#define doesSupportBitmap         flagSupportsBitmap
35
#define doesSupportGrayScale      flagSupportsGrayScale
35
#define doesSupportGrayScale      flagSupportsGrayScale
36
#define doesSupportIndexedColor   flagSupportsIndexedColor
36
#define doesSupportIndexedColor   flagSupportsIndexedColor
37
#define doesSupportRGBColor       flagSupportsRGBColor
37
#define doesSupportRGBColor       flagSupportsRGBColor
38
#define doesSupportCMYKColor      flagSupportsCMYKColor
38
#define doesSupportCMYKColor      flagSupportsCMYKColor
39
#define doesSupportHSLColor       flagSupportsHSLColor
39
#define doesSupportHSLColor       flagSupportsHSLColor
40
#define doesSupportHSBColor       flagSupportsHSBColor
40
#define doesSupportHSBColor       flagSupportsHSBColor
41
#define doesSupportMultichannel   flagSupportsMultichannel
41
#define doesSupportMultichannel   flagSupportsMultichannel
42
#define doesSupportDuotone        32768 // (flagSupportsDuotone << 8)    RC doesn't know <<8, nor *256 !
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 !
43
#define doesSupportLABColor       16384 // (flagSupportsLABColor << 8)   RC doesn't know <<8, nor *256 !
44
#endif
44
#endif
45
 
45
 
46
/* Supported modes */
46
/* Supported modes */
47
/* Second byte:    */
47
/* Second byte:    */
48
VENDORID, LC(m,o,d,e), NULLID, 4L, /* First byte:     */ /*doesSupportBitmap|*/
48
VENDORID, LC(m,o,d,e), NULLID, 4L, /* First byte:     */ /*doesSupportBitmap|*/
49
                                                         doesSupportGrayScale|
49
                                                         doesSupportGrayScale|
50
                                                         doesSupportIndexedColor|
50
                                                         doesSupportIndexedColor|
51
                                                         doesSupportRGBColor|
51
                                                         doesSupportRGBColor|
52
                                                         doesSupportCMYKColor|
52
                                                         doesSupportCMYKColor|
53
                                                         doesSupportHSLColor|
53
                                                         doesSupportHSLColor|
54
                                                         doesSupportHSBColor|
54
                                                         doesSupportHSBColor|
55
                                                         doesSupportMultichannel|
55
                                                         doesSupportMultichannel|
56
                                   /* Second byte: */    doesSupportDuotone|
56
                                   /* Second byte: */    doesSupportDuotone|
57
                                                         doesSupportLABColor,
57
                                                         doesSupportLABColor,
58
                                   /* 3rd & 4th byte: */ 0,
58
                                   /* 3rd & 4th byte: */ 0,
59
 
59
 
60
/* We need this to enable the plugin for BigDocuments */
60
/* We need this to enable the plugin for BigDocuments */
61
VENDORID, LC(m,s,3,2), NULLID, 8L, 2000000L, 2000000L,
61
VENDORID, LC(m,s,3,2), NULLID, 8L, 2000000L, 2000000L,
62
 
62
 
63
/* Required host ('    ' = any) */
63
/* 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?!*/
64
/* 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, 0x20202020L,
65
//VENDORID, LC(h,o,s,t), NULLID, 4L, 0x20202020L,
66
 
66
 
67
/* "FilterLayerSupport" (Allows smart filters) */
67
/* "FilterLayerSupport" (Allows smart filters) */
68
/* TODO: It seems to work, but are we really fully supporting Smart Filters?! */
68
/* TODO: It seems to work, but are we really fully supporting Smart Filters?! */
69
VENDORID, LC(f,l,l,y), NULLID, 4L, 0x80L,
69
VENDORID, LC(f,l,l,y), NULLID, 4L, 0x80L,
70
 
70
 
71
/* Enable info */
71
/* Enable info */
72
/* Note: 136 must divisible by 4 */
72
/* Note: Length 136 must be divisible by 4 */
-
 
73
/* "Plug-in Resource Guide.pdf", pages 61-62 */
73
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",
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",
74
 
75
 
75
/* "Component". Values taken from Clouds.8BF */
76
/* Object Identifier attribute */
-
 
77
/* Note that 'ViaT' is not a official creator code for ViaThinkSoft and it is unclear where a creator code can be aquired from... */
76
/* TODO: What is this? Commented out to be sure */
78
/* TODO: In the future, create individual OIDs for standalone filters, i.e. via hash */
77
/* Note: 20 must divisible by 4 */
79
/* Note: Length 24 must be divisible by 4 */
78
//VENDORID, LC(c,m,p,t), NULLID, 20L, 0x00170301L, "FilterFoundry\0\0\0",
80
LC(V,i,a,T), LC(O,b,I,d), NULLID, 24L, "1.3.6.1.4.1.37476.2.72\0\0",
79
 
81
 
80
/* MonitorScalingAware */
82
/* MonitorScalingAware */
81
/* TODO: Do we support it? For now, commented out */
83
/* TODO: Do we support it? For now, commented out */
82
//VENDORID, LC(p,m,s,a), NULLID, 4L, 1L,
84
//VENDORID, LC(p,m,s,a), NULLID, 4L, 1L,
83
 
85
 
84
/* FilterCaseInfo - in all cases:
86
/* FilterCaseInfo - in all cases:
85
	   inStraightData,
87
	   inStraightData,
86
	   outStraightData,
88
	   outStraightData,
87
	   doNotWriteOutsideSelection,
89
	   doNotWriteOutsideSelection,
88
	   doesNotFilterLayerMasks,
90
	   doesNotFilterLayerMasks,
89
	   worksWithBlankData,
91
	   worksWithBlankData,
90
	   doNotCopySourceToDestination */
92
	   doNotCopySourceToDestination */
91
VENDORID, LC(f,i,c,i), NULLID, 28L,
93
VENDORID, LC(f,i,c,i), NULLID, 28L,
92
 
94
 
93
	/* Filter Case 1: filterCaseFlatImageNoSelection [A background layer or a flat image] */
95
	/* Filter Case 1: filterCaseFlatImageNoSelection [A background layer or a flat image] */
94
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)
96
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)
95
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
97
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
96
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
98
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
97
	        //       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
99
	        //       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
98
	        //       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
100
	        //       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
99
	        //       4 PIFilterFiltersLayerMaskBit       = false
101
	        //       4 PIFilterFiltersLayerMaskBit       = false
100
	        //       8 PIFilterWritesOutsideSelectionBit = false
102
	        //       8 PIFilterWritesOutsideSelectionBit = false
101
	"\000", // flags2 [Reserved] = 00h
103
	"\000", // flags2 [Reserved] = 00h
102
 
104
 
103
	/* Filter Case 2: filterCaseFlatImageWithSelection [No transparency data, but a selection may be present] */
105
	/* Filter Case 2: filterCaseFlatImageWithSelection [No transparency data, but a selection may be present] */
104
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)
106
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone)
105
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
107
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
106
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
108
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
107
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
109
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
108
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
110
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
109
			//       4 PIFilterFiltersLayerMaskBit       = false
111
			//       4 PIFilterFiltersLayerMaskBit       = false
110
			//       8 PIFilterWritesOutsideSelectionBit = false
112
			//       8 PIFilterWritesOutsideSelectionBit = false
111
	"\000", // flags2 [Reserved] = 00h
113
	"\000", // flags2 [Reserved] = 00h
112
 
114
 
113
	/* Filter Case 3: filterCaseFloatingSelection [Image data with an accompanying mask] */
115
	/* Filter Case 3: filterCaseFloatingSelection [Image data with an accompanying mask] */
114
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
116
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
115
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
117
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
116
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
118
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
117
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
119
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
118
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
120
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
119
			//       4 PIFilterFiltersLayerMaskBit       = false
121
			//       4 PIFilterFiltersLayerMaskBit       = false
120
			//       8 PIFilterWritesOutsideSelectionBit = false
122
			//       8 PIFilterWritesOutsideSelectionBit = false
121
	"\000", // flags2 [Reserved] = 00h
123
	"\000", // flags2 [Reserved] = 00h
122
 
124
 
123
	/* Filter Case 4: filterCaseEditableTransparencyNoSelection [Layer with transparency editing enabled and no selection] */
125
	/* Filter Case 4: filterCaseEditableTransparencyNoSelection [Layer with transparency editing enabled and no selection] */
124
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
126
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
125
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
127
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
126
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h)
128
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h)
127
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
129
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
128
			//       2 PIFilterWorksWithBlankDataBit     = true
130
			//       2 PIFilterWorksWithBlankDataBit     = true
129
			//       4 PIFilterFiltersLayerMaskBit       = false
131
			//       4 PIFilterFiltersLayerMaskBit       = false
130
			//       8 PIFilterWritesOutsideSelectionBit = false
132
			//       8 PIFilterWritesOutsideSelectionBit = false
131
	"\000", // flags2 [Reserved] = 00h
133
	"\000", // flags2 [Reserved] = 00h
132
 
134
 
133
	/* Filter Case 5: filterCaseEditableTransparencyWithSelection [Layer with transparency editing enabled and a selection] */
135
	/* Filter Case 5: filterCaseEditableTransparencyWithSelection [Layer with transparency editing enabled and a selection] */
134
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
136
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap)
135
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
137
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone)
136
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h)
138
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h)
137
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
139
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
138
			//       2 PIFilterWorksWithBlankDataBit     = true
140
			//       2 PIFilterWorksWithBlankDataBit     = true
139
			//       4 PIFilterFiltersLayerMaskBit       = false
141
			//       4 PIFilterFiltersLayerMaskBit       = false
140
			//       8 PIFilterWritesOutsideSelectionBit = false
142
			//       8 PIFilterWritesOutsideSelectionBit = false
141
	"\000", // flags2 [Reserved] = 00h
143
	"\000", // flags2 [Reserved] = 00h
142
 
144
 
143
	/* Filter Case 6: filterCaseProtectedTransparencyNoSelection [Layer with transparency editing disabled and no selection] */
145
	/* Filter Case 6: filterCaseProtectedTransparencyNoSelection [Layer with transparency editing disabled and no selection] */
144
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
146
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
145
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
147
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
146
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
148
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
147
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
149
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
148
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
150
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
149
			//       4 PIFilterFiltersLayerMaskBit       = false
151
			//       4 PIFilterFiltersLayerMaskBit       = false
150
			//       8 PIFilterWritesOutsideSelectionBit = false
152
			//       8 PIFilterWritesOutsideSelectionBit = false
151
	"\000", // flags2 [Reserved] = 00h
153
	"\000", // flags2 [Reserved] = 00h
152
 
154
 
153
	/* Filter Case 7: filterCaseProtectedTransparencyWithSelection [Layer with transparency editing disabled and a selection] */
155
	/* Filter Case 7: filterCaseProtectedTransparencyWithSelection [Layer with transparency editing disabled and a selection] */
154
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
156
	"\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
155
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
157
	"\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 00h filterDataHandlingCantFilter)
156
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
158
	"\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h)
157
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
159
			//       1 PIFilterDontCopyToDestinationBit  = true (in Filter Factory: false)
158
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
160
			//       2 PIFilterWorksWithBlankDataBit     = true (in Filter Factory: false)
159
			//       4 PIFilterFiltersLayerMaskBit       = false
161
			//       4 PIFilterFiltersLayerMaskBit       = false
160
	        //       8 PIFilterWritesOutsideSelectionBit = false
162
	        //       8 PIFilterWritesOutsideSelectionBit = false
161
	"\000", // flags2 [Reserved] = 00h
163
	"\000", // flags2 [Reserved] = 00h