Rev 514 | Rev 517 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
259 | daniel-mar | 1 | /* |
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 |
||
472 | daniel-mar | 4 | Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft |
259 | daniel-mar | 5 | |
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 |
||
8 | the Free Software Foundation; either version 2 of the License, or |
||
9 | (at your option) any later version. |
||
10 | |||
11 | This program is distributed in the hope that it will be useful, |
||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
14 | GNU General Public License for more details. |
||
15 | |||
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 |
||
18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
||
19 | */ |
||
20 | |||
21 | // This RC file is for Windows only. |
||
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 |
||
515 | daniel-mar | 24 | // Attention: This file may only contain 8 properties. If this number changes, |
259 | daniel-mar | 25 | // please also change PiPL.rc |
26 | |||
513 | daniel-mar | 27 | /* Filter module */ |
28 | VENDORID, LC(k,i,n,d), NULLID, 4L, LC(8,B,F,M), |
||
259 | daniel-mar | 29 | |
513 | daniel-mar | 30 | /* Version Number */ |
31 | VENDORID, LC(v,e,r,s), NULLID, 4L, latestFilterSubVersion, latestFilterVersion, |
||
259 | daniel-mar | 32 | |
514 | daniel-mar | 33 | #ifndef doesSupportBitmap |
34 | #define doesSupportBitmap flagSupportsBitmap |
||
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 |
||
513 | daniel-mar | 45 | |
46 | /* Supported modes */ |
||
47 | /* Second byte: */ |
||
514 | daniel-mar | 48 | VENDORID, LC(m,o,d,e), NULLID, 4L, /* First byte: */ /*doesSupportBitmap|*/ |
49 | doesSupportGrayScale| |
||
50 | doesSupportIndexedColor| |
||
51 | doesSupportRGBColor| |
||
52 | doesSupportCMYKColor| |
||
53 | doesSupportHSLColor| |
||
54 | doesSupportHSBColor| |
||
55 | doesSupportMultichannel| |
||
56 | /* Second byte: */ doesSupportDuotone| |
||
57 | doesSupportLABColor, |
||
58 | /* 3rd & 4th byte: */ 0, |
||
513 | daniel-mar | 59 | |
259 | daniel-mar | 60 | /* We need this to enable the plugin for BigDocuments */ |
513 | daniel-mar | 61 | VENDORID, LC(m,s,3,2), NULLID, 8L, 2000000L, 2000000L, |
259 | daniel-mar | 62 | |
513 | daniel-mar | 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?!*/ |
||
65 | //VENDORID, LC(h,o,s,t), NULLID, 4L, 0x20202020L, |
||
472 | daniel-mar | 66 | |
513 | daniel-mar | 67 | /* "FilterLayerSupport" (Allows 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, |
||
70 | |||
71 | /* Enable info */ |
||
515 | daniel-mar | 72 | /* Note: Length 136 must be divisible by 4 */ |
73 | /* "Plug-in Resource Guide.pdf", pages 61-62 */ |
||
514 | daniel-mar | 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", |
513 | daniel-mar | 75 | |
515 | daniel-mar | 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... */ |
||
78 | /* TODO: In the future, create individual OIDs for standalone filters, i.e. via hash */ |
||
79 | /* Note: Length 24 must be divisible by 4 */ |
||
80 | LC(V,i,a,T), LC(O,b,I,d), NULLID, 24L, "1.3.6.1.4.1.37476.2.72\0\0", |
||
513 | daniel-mar | 81 | |
82 | /* MonitorScalingAware */ |
||
83 | /* TODO: Do we support it? For now, commented out */ |
||
84 | //VENDORID, LC(p,m,s,a), NULLID, 4L, 1L, |
||
85 | |||
259 | daniel-mar | 86 | /* FilterCaseInfo - in all cases: |
87 | inStraightData, |
||
88 | outStraightData, |
||
89 | doNotWriteOutsideSelection, |
||
90 | doesNotFilterLayerMasks, |
||
91 | worksWithBlankData, |
||
92 | doNotCopySourceToDestination */ |
||
93 | VENDORID, LC(f,i,c,i), NULLID, 28L, |
||
94 | |||
95 | /* Filter Case 1: filterCaseFlatImageNoSelection [A background layer or a flat image] */ |
||
472 | daniel-mar | 96 | "\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone) |
97 | "\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone) |
||
98 | "\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h) |
||
99 | // 1 PIFilterDontCopyToDestinationBit = true (in Filter Factory: false) |
||
100 | // 2 PIFilterWorksWithBlankDataBit = true (in Filter Factory: false) |
||
101 | // 4 PIFilterFiltersLayerMaskBit = false |
||
102 | // 8 PIFilterWritesOutsideSelectionBit = false |
||
103 | "\000", // flags2 [Reserved] = 00h |
||
259 | daniel-mar | 104 | |
105 | /* Filter Case 2: filterCaseFlatImageWithSelection [No transparency data, but a selection may be present] */ |
||
472 | daniel-mar | 106 | "\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone) |
107 | "\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone) |
||
108 | "\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h) |
||
109 | // 1 PIFilterDontCopyToDestinationBit = true (in Filter Factory: false) |
||
110 | // 2 PIFilterWorksWithBlankDataBit = true (in Filter Factory: false) |
||
111 | // 4 PIFilterFiltersLayerMaskBit = false |
||
112 | // 8 PIFilterWritesOutsideSelectionBit = false |
||
113 | "\000", // flags2 [Reserved] = 00h |
||
259 | daniel-mar | 114 | |
115 | /* Filter Case 3: filterCaseFloatingSelection [Image data with an accompanying mask] */ |
||
472 | daniel-mar | 116 | "\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap) |
117 | "\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone) |
||
118 | "\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h) |
||
119 | // 1 PIFilterDontCopyToDestinationBit = true (in Filter Factory: false) |
||
120 | // 2 PIFilterWorksWithBlankDataBit = true (in Filter Factory: false) |
||
121 | // 4 PIFilterFiltersLayerMaskBit = false |
||
122 | // 8 PIFilterWritesOutsideSelectionBit = false |
||
123 | "\000", // flags2 [Reserved] = 00h |
||
259 | daniel-mar | 124 | |
125 | /* Filter Case 4: filterCaseEditableTransparencyNoSelection [Layer with transparency editing enabled and no selection] */ |
||
472 | daniel-mar | 126 | "\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap) |
127 | "\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone) |
||
128 | "\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h) |
||
129 | // 1 PIFilterDontCopyToDestinationBit = true (in Filter Factory: false) |
||
130 | // 2 PIFilterWorksWithBlankDataBit = true |
||
131 | // 4 PIFilterFiltersLayerMaskBit = false |
||
132 | // 8 PIFilterWritesOutsideSelectionBit = false |
||
133 | "\000", // flags2 [Reserved] = 00h |
||
259 | daniel-mar | 134 | |
135 | /* Filter Case 5: filterCaseEditableTransparencyWithSelection [Layer with transparency editing enabled and a selection] */ |
||
472 | daniel-mar | 136 | "\001", // inputHandling [Preprocessing actions on the image data] = 01h (filterDataHandlingNone, in Filter Factory: 0Ah filterDataHandlingBackgroundZap) |
137 | "\001", // outputHandling [Postprocessing actions on the image data] = 01h (filterDataHandlingNone) |
||
138 | "\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 02h) |
||
139 | // 1 PIFilterDontCopyToDestinationBit = true (in Filter Factory: false) |
||
140 | // 2 PIFilterWorksWithBlankDataBit = true |
||
141 | // 4 PIFilterFiltersLayerMaskBit = false |
||
142 | // 8 PIFilterWritesOutsideSelectionBit = false |
||
143 | "\000", // flags2 [Reserved] = 00h |
||
259 | daniel-mar | 144 | |
145 | /* Filter Case 6: filterCaseProtectedTransparencyNoSelection [Layer with transparency editing disabled and no selection] */ |
||
472 | daniel-mar | 146 | "\001", // inputHandling [Preprocessing 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) |
||
148 | "\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h) |
||
149 | // 1 PIFilterDontCopyToDestinationBit = true (in Filter Factory: false) |
||
150 | // 2 PIFilterWorksWithBlankDataBit = true (in Filter Factory: false) |
||
151 | // 4 PIFilterFiltersLayerMaskBit = false |
||
152 | // 8 PIFilterWritesOutsideSelectionBit = false |
||
153 | "\000", // flags2 [Reserved] = 00h |
||
259 | daniel-mar | 154 | |
155 | /* Filter Case 7: filterCaseProtectedTransparencyWithSelection [Layer with transparency editing disabled and a selection] */ |
||
472 | daniel-mar | 156 | "\001", // inputHandling [Preprocessing 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) |
||
158 | "\003", // flags1 [Flags for how the filter case information should be treated] = 03h (in Filter Factory: 00h) |
||
159 | // 1 PIFilterDontCopyToDestinationBit = true (in Filter Factory: false) |
||
160 | // 2 PIFilterWorksWithBlankDataBit = true (in Filter Factory: false) |
||
161 | // 4 PIFilterFiltersLayerMaskBit = false |
||
162 | // 8 PIFilterWritesOutsideSelectionBit = false |
||
163 | "\000", // flags2 [Reserved] = 00h |