/trunk/CHANGELOG.md |
---|
1,7 → 1,7 |
# Changelog |
## 1.7.0.18 [15-May-2022] |
- Fixed issue with 32-bit resource strings (English and German language was broken) introduced in version 1.7.0.17. |
- 32bit/Windows filter: Fixed issue with resource strings (English and German language was broken) introduced in version 1.7.0.17. |
## 1.7.0.17 [14-May-2022] |
- Fixed theoretical bug that can crash a Photoshop application if PLUGIN.DLL exists but is not loaded. |
11,12 → 11,12 |
- Windows: Standalone filters containing ampersand characters ("&") in Name or Category now have the correct "Visual Themes", as the Manifest XML is not broken anymore. |
- Windows: Handling of ampersand characters ("&") in Title, Category, Author, Copyright, and Controller/Map labels fixed. |
- Introduced obfuscation version 7, which is more secure. |
- Support for "Filter layers" added (not fully tested; PiPL attribute `'flly'`) (*) |
- FilterFoundry can now work correctly with Duotone and Lab color spaces (PiPL `'mode'` entry was wrong) |
- Support for "Filter layers" added (not fully tested; PiPL attribute `'8BIM':'flly'`) (*) |
- FilterFoundry can now work correctly with Duotone and Lab color spaces (PiPL property `'8BIM':'mode'` was wrong) |
- "Indexed Color" mode removed, since it seems to have never worked. |
- Internal change: PiPL resource now contains `'8BIM':'cmpt'` (Component) (*) |
- Internal change: PiPL resource now contains `'ViaT':'ObId'` (Object Identifier) (*) |
- Internal change: PiPL resource now contains `prty` (Priority) |
- Internal change: PiPL resource now contains `'8BIM':'prty'` (Priority) |
(*) This bug/solution was tested on Windows but needs to be verified and/or implemented on Mac. |
/trunk/PiPL.rc |
---|
54,14 → 54,14 |
VENDORID, LC(c,a,t,g), NULLID, 16L, "\014Telegraphics\0\0\0", /* PString */ |
VENDORID, LC(n,a,m,e), NULLID, 20L, "\021Filter Foundry...\0\0", /* PString */ |
/* "Component". Values taken from Clouds.8BF */ |
/* Component { MainComponentVersion, "Filter Foundry" }, */ |
/* Note: Length 20 must be divisible by 4 */ |
VENDORID, LC(c,m,p,t), NULLID, 20L, MainComponentVersion, "Filter Foundry\0\0", |
VENDORID, LC(c,m,p,t), NULLID, 20L, MainComponentVersion, "Filter Foundry\0\0", /* CString */ |
/* HasTerminology { plugInClassID, plugInEventID, AETE_ID, vendorName " " plugInName }, */ |
/* HasTerminology { plugInClassID, plugInEventID, AETE_ID, "" }, */ |
VENDORID, LC(h,s,t,m), NULLID, 16L, /* = 3*4 + 2 + sizeof(c string) + padding */ |
0L, /* version */ |
LC(F,l,t,r), /* Class ID, always required. Must be eventFilter='Fltr' to show up in "Actions" tab. */ |
LC(F,l,t,r), /* Class ID, always required. Must be eventFilter='Fltr' to show up in "Actions" tab. (PITerminology.h:eventFilter) */ |
LC(f,i,F,o), /* Event ID, or typeNULL if not Filter/Color Picker/Selection. */ |
AETE_ID, /* Dictionary ('AETE') resource ID. (only 2 bytes long!) */ |
/*"Telegraphics FilterFoundry\0\0\0\0"*/ |
79,7 → 79,7 |
#include "PiPL_body.rc" |
/* Object Identifier attribute */ |
/* Note that 'ViaT' is not a official creator code for ViaThinkSoft and it is unclear where a creator code can be aquired from... */ |
/* Note that 'ViaT' is not an official creator code for ViaThinkSoft and it is unclear where a creator code can be aquired from... */ |
/* Note: Length 24 must be divisible by 4 */ |
LC(V,i,a,T), LC(O,b,I,d), NULLID, 24L, "1.3.6.1.4.1.37476.2.72\0\0", |
END |
/trunk/ff.h |
---|
39,8 → 39,8 |
#define HOSTSIG_GIMP 'PMIG' // sic: NOT 'GIMP' |
#define HOSTSIG_IRFANVIEW 'UP20' |
#define HOSTSIG_PHOTOSHOP '8BIM' |
//#define HOSTSIG_PLUGINCOMMANDER '8BIM' // meh. |
//#define HOSTSIG_SERIF_PHOTOPLUS '8BIM' // meh. |
//#define HOSTSIG_PLUGINCOMMANDER '8BIM' // illegal usage of signature |
//#define HOSTSIG_SERIF_PHOTOPLUS '8BIM' // illegal usage of signature |
#define HOSTSIG_JASC_PAINTSHOP_PRO_X 'PSP9' |
#define HOSTSIG_PAINT_NET 'NDP.' |
#define HOSTSIG_ADOBE_PREMIERE '8B)M'/*sic*/ |
/trunk/language.h |
---|
20,6 → 20,9 |
// Attention: Please save this file as UTF-8 without BOM! |
#ifndef LANGUAGE_H_ |
#define LANGUAGE_H_ |
#define MSG_PREMIERE_COMPAT_ID 1 |
#define MSG_PREMIERE_COMPAT_ENUS "This version of Filter Foundry is not compatible with Adobe Premiere!"; |
#define MSG_PREMIERE_COMPAT_DEDE "Diese Version von Filter Foundry ist mit Adobe Premiere nicht kompatibel!" |
253,3 → 256,6 |
int FF_GetMsg(TCHAR* ret, int MsgId); |
TCHAR* FF_GetMsg_Cpy(int MsgId); |
void FF_GetMsg_Free(TCHAR* str); |
#endif |
/trunk/make.c |
---|
179,7 → 179,7 |
p = (char*)pipl + origsize; |
prop = (PIProperty*)p; |
/* Important not about proptyLength: |
/* Important note about propertyLength: |
In regards propertyLength, Adobe writes in SPPiPL.h: |
"Number of characters in the data array. Rounded to a multiple of 4." |
/trunk/obfusc.c |
---|
80,8 → 80,9 |
} |
#endif |
#else |
// Unfortunately, with this compiler, we the value needs to be in the .data segment... |
// Due to "const volatile", this value will only exist a single time in the binary file. |
// Unfortunately, with this compiler, we don't know how to force the seed into the .code segment. |
// So, we put it in the .data segment. |
// Note: Due to "const volatile", this value will only exist a single time in the binary file. |
const volatile uint64_t obfusc_seed = 0x7416972a52830517ull; |
uint64_t GetObfuscSeed() { |
return obfusc_seed; |
349,7 → 350,7 |
// Version 5 obfuscation (Filter Foundry 1.7.0.8) |
// Version 6 obfuscation (Filter Foundry 1.7.0.10) |
// Version 7 obfuscation (Filter Foundry 1.7.0.17) |
// Future: Version 8, ... 255 |
// Future: Version 8, 9, ..., 255 |
return obfusc_info; |
} |
else { |
/trunk/os_types.md |
---|
15,7 → 15,7 |
|--------|------------|------------|---------------------------------------------------------|-----------------| |
| `tELE` | 1950698565 | 0x74454c45 | Plugin Suite ID | Telegraphics | |
| `Fltr` | 1181512818 | 0x466c7472 | Class ID "Filter" (PITerminology.h:eventFilter) | Adobe | |
| `fiFo` | 1718175343 | 0x6669466f | Event ID (for non-standalone filter) | Telegraphics | |
| `fiFo` | 1718175343 | 0x6669466f | Event ID (for non-standalone filters) | Telegraphics | |
| `xprR` | 2020635218 | 0x78707252 | Expression "red" channel (for non-standalone filter) | Telegraphics | |
| `xprG` | 2020635207 | 0x78707247 | Expression "green" channel (for non-standalone filter) | Telegraphics | |
| `xprB` | 2020635202 | 0x78707242 | Expression "blue" channel (for non-standalone filter) | Telegraphics | |
28,6 → 28,10 |
| `cTl5` | 1666477109 | 0x63546c35 | Slider 5 (for non-standalone filter) | Telegraphics | |
| `cTl6` | 1666477110 | 0x63546c36 | Slider 6 (for non-standalone filter) | Telegraphics | |
| `cTl7` | 1666477111 | 0x63546c37 | Slider 7 (for non-standalone filter) | Telegraphics | |
| `long` | 1819242087 | 0x6c6f6e67 | Data type integer | Apple | |
| `TEXT` | 1413830740 | 0x54455854 | Data type string | Apple | |
| `null` | 1853189228 | 0x6e756c6c | noReply | Apple | |
| `#ImR` | 592014674 | 0x23496d52 | typeImageReference | Adobe | |
Note: For standalone plugins, all FourCC codes above will be replaced by different hashes based on the parameter data of the filter (except `tELE` and `Fltr`). |
/trunk/os_types.php |
---|
45,7 → 45,7 |
ostype_header("AppleScript related"); |
ostype_info('tELE', 'Plugin Suite ID', 'Telegraphics'); |
ostype_info('Fltr', 'Class ID "Filter" (PITerminology.h:eventFilter)', 'Adobe'); |
ostype_info('fiFo', 'Event ID (for non-standalone filter)', 'Telegraphics'); |
ostype_info('fiFo', 'Event ID (for non-standalone filters)', 'Telegraphics'); |
ostype_info('xprR', 'Expression "red" channel (for non-standalone filter)', 'Telegraphics'); |
ostype_info('xprG', 'Expression "green" channel (for non-standalone filter)', 'Telegraphics'); |
ostype_info('xprB', 'Expression "blue" channel (for non-standalone filter)', 'Telegraphics'); |
58,6 → 58,10 |
ostype_info('cTl5', 'Slider 5 (for non-standalone filter)', 'Telegraphics'); |
ostype_info('cTl6', 'Slider 6 (for non-standalone filter)', 'Telegraphics'); |
ostype_info('cTl7', 'Slider 7 (for non-standalone filter)', 'Telegraphics'); |
ostype_info('long', 'Data type integer', 'Apple'); |
ostype_info('TEXT', 'Data type string', 'Apple'); |
ostype_info('null', 'noReply', 'Apple'); |
ostype_info('#ImR', 'typeImageReference', 'Adobe'); |
ostype_footer(); |
echo "Note: For standalone plugins, all FourCC codes above will be replaced "; |
/trunk/preview.c |
---|
1,5 → 1,5 |
/* |
This file is part of Filter Foundry, a filter plugin for Adobe Photoshop |
This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au |
Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft |
/trunk/preview_mac.c |
---|
1,5 → 1,5 |
/* |
This file is part of Filter Foundry, a filter plugin for Adobe Photoshop |
This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au |
Copyright (C) 2018-2021 Daniel Marschall, ViaThinkSoft |
/trunk/wpj/README.md |
---|
14,7 → 14,8 |
2) Adobe Photoshop SDK |
Available on some Photoshop CDs, or can be downloaded at |
https://www.adobe.com/devnet/photoshop/sdk.html |
https://developer.adobe.com/photoshop/ |
(see more details at the ../photoshop_sdk/DOWNLOAD.txt) |
3) Watcom 1.6beta RC1 or later |
Available here: |