Subversion Repositories filter_foundry

Rev

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