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 |