Subversion Repositories filter_foundry

Compare Revisions

Regard whitespace Rev 531 → Rev 532

/trunk/3264_mixer/README.MD
2,4 → 2,4
 
This is an internal tool used in the post-build process of Filter Foundry 1.7.
 
Besides a some cosmetics, its main purpose is to add the 32-bit DLL to the 64-bit 8BF (as resource) and vice-versa. This is required so that Filter Foundry can create 32 and 64 bit standalone filters at the same time.
Besides some cosmetics, its main purpose is to add the 32-bit DLL to the 64-bit 8BF (as resource) and vice-versa. This is required so that Filter Foundry can create 32-bit and 64-bit standalone filters at the same time.
/trunk/BUILDING.md
90,7 → 90,7
* Download: https://visualstudio.microsoft.com/de/vs/community/
* To build in Windows with Visual Studio (IDE or command line), see the visual_studio
subdirectory and notes (README.md).
* Most recently tested with Visual C++ 2019 and Adobe Photoshop SDK CC 2017.
* Most recently tested with Visual C++ 2022 and Adobe Photoshop SDK 2023.
 
BUILDING WITH OPEN WATCOM
* OpenWatcom can be used, but only for 32 Bit, and it is officially not
98,7 → 98,7
* Download: https://sourceforge.net/projects/openwatcom/files/
* To build in Windows with the OpenWatcom IDE, see the wpj
subdirectory and notes (README.md), kindly provided by Peter Heckert and Daniel Marschall.
* Most recently tested with Open Watcom 1.9 and Adobe Photoshop SDK CC 2017.
* Most recently tested with Open Watcom 1.9 and Adobe Photoshop SDK 2023.
 
BUILDING WITH MINGW32/64
* IMPORTANT: Building with MINGW32/64 is currently NOT possible
/trunk/README.md
29,7 → 29,7
 
Filter Foundry works with nearly all programs that can handle ".8bf" Photoshop filters. Following hosts have been tested with Filter Foundry 1.7:
 
- Photoshop 3.0.0 (32 bit) through Photoshop CC 2022 (64 bit)
- Photoshop 3.0.0 (32 bit) through Photoshop 2023 (64 bit)
- IrfanView 4.53 (32/64 bit)
- JASC PSP 9, Corel's Paint Shop Pro XI
- The Gimp 2.2 with [PSPI.exe](https://www.chip.de/downloads/PSPI-fuer-GIMP_37803068.html) extension to run Photoshop .8bf files
/trunk/ff.h
134,7 → 134,7
OSErr DoContinue(FilterRecordPtr epb);
void DoFinish(FilterRecordPtr epb);
void RequestNext(FilterRecordPtr epb);
InternalState saveInternalState();
InternalState saveInternalState(void);
void restoreInternalState(InternalState state);
 
// from read.c
169,11 → 169,11
#ifdef _MSC_VER
__declspec(noinline)
#endif
uint64_t GetObfuscSeed();
uint64_t GetObfuscSeed(void);
#ifdef _MSC_VER
__declspec(noinline)
#endif
uint64_t GetObfuscSeed2();
uint64_t GetObfuscSeed2(void);
#ifdef WIN_ENV
Boolean obfusc_seed_replace(FSSpec* dst, uint64_t search1, uint64_t search2, uint64_t replace1, uint64_t replace2, int maxamount1, int maxamount2);
#endif
186,16 → 186,13
Boolean readPARMresource(HMODULE hm, TCHAR**reason);
 
// from main.c
int64_t maxspace();
Boolean maxspace_available();
Boolean host_preserves_parameters();
int64_t maxspace(void);
Boolean maxspace_available(void);
Boolean host_preserves_parameters(void);
 
// from parser.y
struct node *parseexpr(char *s);
 
// from funcs.c
void factory_initialize_rnd_variables();
 
// Useful macros
 
// Note: "bigDocumentData->PluginUsing32BitCoordinates" will be set by filterSelectorStart, if HAS_BIG_DOC(pb) is true
/trunk/funcs.c
259,7 → 259,7
 
// -------------------------------------------------------------------------------------------
 
void init_trigtab() {
void init_trigtab(void) {
#ifdef PARSERTEST
return;
#else
812,7 → 812,7
 
// -------------------------------------------------------------------------------------------
 
void factory_initialize_rnd_variables() {
void factory_initialize_rnd_variables(void) {
#ifdef PARSERTEST
return;
#else
821,7 → 821,7
#endif
}
 
void foundry_initialize_rnd_variables() {
void foundry_initialize_rnd_variables(void) {
#ifdef PARSERTEST
return;
#else
829,7 → 829,7
#endif
}
 
void initialize_rnd_variables() {
void initialize_rnd_variables(void) {
#ifdef use_filterfactory_implementation_rnd
factory_initialize_rnd_variables();
#else
1210,7 → 1210,7
/* Direction(angle) of the current pixel from the center of the image,
where d is an integer between -512 and 512 inclusive */
 
value_type factory_d() {
value_type factory_d(void) {
#ifdef PARSERTEST
return 0;
#else
1271,7 → 1271,7
#endif
}
 
value_type foundry_d() {
value_type foundry_d(void) {
#ifdef PARSERTEST
return 0;
#else
1284,7 → 1284,7
#endif
}
 
value_type ff_d() {
value_type ff_d(void) {
#ifdef use_filterfactory_implementation_d
// Output range: -512 ... 512
return factory_d();
1298,7 → 1298,7
 
/* Range of magnitudes with the image, where M is one half the diagonal size of the image */
 
value_type factory_M() {
value_type factory_M(void) {
#ifdef PARSERTEST
return 0;
#else
1328,7 → 1328,7
#endif
}
 
value_type foundry_M() {
value_type foundry_M(void) {
#ifdef PARSERTEST
return 0;
#else
1336,7 → 1336,7
#endif
}
 
value_type ff_M() {
value_type ff_M(void) {
#ifdef use_filterfactory_implementation_M
return factory_M();
#else
1348,7 → 1348,7
 
/* Distance (magnitude) from the center of the image to the current pixel */
 
value_type factory_m() {
value_type factory_m(void) {
#ifdef PARSERTEST
return 0;
#else
1379,7 → 1379,7
#endif
}
 
value_type foundry_m() {
value_type foundry_m(void) {
#ifdef PARSERTEST
return 0;
#else
1387,7 → 1387,7
#endif
}
 
value_type ff_m() {
value_type ff_m(void) {
#ifdef use_filterfactory_implementation_m
return factory_m();
#else
1399,7 → 1399,7
 
/* "Y" value of the YUV color-space */
 
value_type factory_i() {
value_type factory_i(void) {
#ifdef PARSERTEST
return 0;
#else
1407,7 → 1407,7
#endif
}
 
value_type foundry_i() {
value_type foundry_i(void) {
#ifdef PARSERTEST
return 0;
#else
1416,7 → 1416,7
#endif
}
 
value_type ff_i() {
value_type ff_i(void) {
#ifdef use_filterfactory_implementation_i
return factory_i();
#else
1428,7 → 1428,7
 
/* "U" value of the YUV color-space */
 
value_type factory_u() {
value_type factory_u(void) {
#ifdef PARSERTEST
return 0;
#else
1436,7 → 1436,7
#endif
}
 
value_type foundry_u() {
value_type foundry_u(void) {
#ifdef PARSERTEST
return 0;
#else
1445,7 → 1445,7
#endif
}
 
value_type ff_u() {
value_type ff_u(void) {
#ifdef use_filterfactory_implementation_u
return factory_u();
#else
1457,7 → 1457,7
 
/* "V" value of the YUV color-space */
 
value_type factory_v() {
value_type factory_v(void) {
#ifdef PARSERTEST
return 0;
#else
1465,7 → 1465,7
#endif
}
 
value_type foundry_v() {
value_type foundry_v(void) {
#ifdef PARSERTEST
return 0;
#else
1474,7 → 1474,7
#endif
}
 
value_type ff_v() {
value_type ff_v(void) {
#ifdef use_filterfactory_implementation_v
return factory_v();
#else
/trunk/funcs.h
71,7 → 71,7
#define TANTABSIZE 512
#define COSTABSIZE 1024
 
void init_trigtab();
void init_trigtab(void);
 
#define DEG2RAD(x) ((x)*M_PI/180.)
#define RAD2DEG(x) ((x)*180./M_PI)
86,7 → 86,7
#define FFANGLE(v) ((v)*M_PI/512.)
#define TO_FFANGLE(v) ((v)*512./M_PI)
 
void initialize_rnd_variables();
void initialize_rnd_variables(void);
 
// Functions
value_type ff_src(value_type x,value_type y,value_type z);
121,13 → 121,13
value_type ff_rst(value_type seed);
 
// Variables
value_type ff_i();
value_type ff_u();
value_type ff_v();
value_type ff_D();
value_type ff_d();
value_type ff_M();
value_type ff_m();
value_type ff_i(void);
value_type ff_u(void);
value_type ff_v(void);
value_type ff_D(void);
value_type ff_d(void);
value_type ff_M(void);
value_type ff_m(void);
 
extern value_type min_val_i;
extern value_type max_val_i;
/trunk/main.c
567,7 → 567,7
return showdialog;
}
 
Boolean host_preserves_parameters() {
Boolean host_preserves_parameters(void) {
#ifdef DEBUG_SIMULATE_GIMP
return false;
#endif
579,7 → 579,7
return true;
}
 
int64_t maxspace(){
int64_t maxspace(void){
// Please see "Hosts.md" for details about the MaxSpace implementations of tested plugins
 
// Plugins that don't support MaxSpace64 shall set the field to zero; then we will use MaxSpace instead.
600,7 → 600,7
}
}
 
Boolean maxspace_available() {
Boolean maxspace_available(void) {
// Please see "Hosts.md" for details about the MaxSpace implementations of tested plugins
 
// GIMP PSPI sets MaxSpace to hardcoded 100 MB
820,7 → 820,7
}
}
 
InternalState saveInternalState() {
InternalState saveInternalState(void) {
InternalState ret;
int i;
 
/trunk/node.c
74,7 → 74,7
#endif
}
}
void freeallnodes(){
void freeallnodes(void){
freenodes(node_list);
node_list = 0;
}
/trunk/node.h
43,7 → 43,7
 
struct node *newnode(int kind);
//void freenodes(struct node *p);
void freeallnodes();
void freeallnodes(void);
 
void dumptree(struct node *root,int level);
value_type eval(struct node *root);
/trunk/obfusc.c
33,7 → 33,7
// The 8BF file *MUST* only contain the seed A SINGLE TIME
// (In the Non-Standalone filter actually 3 times, because we have 2 resourced containing the 32/64 template DLLs)
#if defined(__WATCOMC__)
uint64_t GetObfuscSeed() {
uint64_t GetObfuscSeed(void) {
// Due to "volatile", this value will only exist a single time in the binary file.
// This char array will result in contiguous chars in OpenWatcom.
// In MSVC++, the array will be built using several "mov ..." OP codes.
45,7 → 45,7
#ifdef _WIN64
// Note: For MSVCC 64-bit, neither making the method volatile, nor including a volatile variable did avoid inlining.
// so we use __declspec(noinline)
__declspec(noinline) uint64_t GetObfuscSeed() {
__declspec(noinline) uint64_t GetObfuscSeed(void) {
// TODO: Not 4-byte aligned! (both variants)
//volatile uint64_t seed = 0x7416972a52830517ull;
//return seed;
52,7 → 52,7
return 0x7416972a52830517ull;
}
#else
__declspec(noinline) uint64_t GetObfuscSeed() {
__declspec(noinline) uint64_t GetObfuscSeed(void) {
//volatile int test = 0;
uint64_t* addr = NULL;
__asm {
85,7 → 85,7
// 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() {
uint64_t GetObfuscSeed(void) {
return obfusc_seed;
}
#endif
96,7 → 96,7
#ifdef _MSC_VER
__declspec(noinline)
#endif
uint64_t GetObfuscSeed2() {
uint64_t GetObfuscSeed2(void) {
// Additional seed for Obfusc V7. It is always in the data segment,
// while obfusc seed 1 is in the code segment (if the compiler allows it)
return obfusc_seed2;
/trunk/photoshop_sdk/DOWNLOAD.txt
1,19 → 1,18
 
How to download the latest version of the SDK:
 
1. Go to https://www.adobe.com/devnet/photoshop/sdk.html
1. Go to https://developer.adobe.com/photoshop/
 
2. At the section "C++ SDK", click "Download the SDK"
 
3. You need to create a Adobe developer account now,
2. You need to create a Adobe developer account now,
or log in if you already have an account.
 
4. At the top, click the tab "Downloads", then scroll down and and search for "Photoshop"
(NOT "Adobe Photoshop API (Trial)") and then click "View downloads".
3. At the section "C++ SDK", click "Plug-in and Connection SDK"
which will lead to the following URL:
https://developer.adobe.com/console/servicesandapis/ps
 
5. Download "Photoshop Plug-In and Connection SDK" for Windows.
4. Download "Photoshop Plug-In and Connection SDK" for Windows.
 
6. Once you have obtained the SDK, extract the SDK contents in the "photoshop_sdk" directory:
5. Once you have obtained the SDK, extract the SDK contents in the "photoshop_sdk" directory:
- connectionsdk/
- images/
- pluginsdk/
43,7 → 42,7
 
 
Compatibility:
The source code has been built with SDK 6.0, CS2, CS3 beta, CC 2017, and 2021
The source code has been built with SDK 6.0, CS2, CS3 beta, CC 2017, 2021, and 2023
but older versions should work, too.
(If building with SDK v4, edit 68k.r, carbon.r, classic.r, and PiMI_68k.r
to remove references to "PIResDefines.h", "PiPL.r" and "PiMI.r" and replace
/trunk/preview.c
116,7 → 116,7
// preview_pmap.colorManagementOptions;
}
 
void dispose_preview(){
void dispose_preview(void){
disposeBuffer(&preview_handle);
}
 
/trunk/preview.h
44,11 → 44,11
VRect filterRect, VRect outRect,
void* outData, long outRowBytes, double zoom);
extern Boolean alertuser(TCHAR *err,TCHAR *more);
extern void evalinit();
extern void evalinit(void);
 
Boolean setup_preview(FilterRecordPtr pb,int nplanes);
void recalc_preview(FilterRecordPtr pb,DIALOGREF dp);
void dispose_preview();
void dispose_preview(void);
OSErr drawpreview(DIALOGREF dp,void *hdc,Ptr imageptr);
 
#endif
/trunk/process.c
43,7 → 43,7
 
// minimum setup required when formulae have not changed,
// and a new preview is to be generated. (Called by recalc_preview())
void evalinit(){
void evalinit(void){
int i;
 
initialize_rnd_variables();
/trunk/slider_win.c
239,7 → 239,7
 
}
 
void Slider_Uninit_PluginDll() {
void Slider_Uninit_PluginDll(void) {
#ifndef use_plugin_dll_sliders
return;
#else
300,7 → 300,7
}
}
 
void Slider_Uninit_MsTrackbar() {
void Slider_Uninit_MsTrackbar(void) {
if (!gdata->comctlSliderInfo.initialized) return;
 
gdata->comctlSliderInfo.initialized = false;
325,7 → 325,7
}
}
 
void Slider_Uninit_None() {
void Slider_Uninit_None(void) {
if (!gdata->noneSliderInfo.initialized) return;
 
// Nothing here
/trunk/slider_win.h
45,10 → 45,10
 
// Init and uninit
Boolean Slider_Init_PluginDll(LPCTSTR targetClass);
void Slider_Uninit_PluginDll();
void Slider_Uninit_PluginDll(void);
Boolean Slider_Init_MsTrackbar(LPCTSTR targetClass);
void Slider_Uninit_MsTrackbar();
void Slider_Uninit_MsTrackbar(void);
Boolean Slider_Init_None(LPCTSTR targetClass);
void Slider_Uninit_None();
void Slider_Uninit_None(void);
 
#endif
/trunk/symtab.c
59,7 → 59,7
}
}
 
void dump_symbols(){
void dump_symbols(void){
struct sym_rec *p;
int i,occ,maxchain,chain;
 
/trunk/symtab.h
47,6 → 47,6
struct sym_rec *lookup(const char *s);
void init_symtab(struct sym_rec *);
void insert(struct sym_rec *p);
void dump_symbols();
void dump_symbols(void);
 
#endif
/trunk/telegraphics_common/tt/compat_win.c
24,7 → 24,7
#include "compat_win_resource.h"
 
typedef BOOL(__stdcall* f_GetVersionEx)(LPOSVERSIONINFOA lpVersionInformation);
Boolean Implements3264ResourceAPI() {
Boolean Implements3264ResourceAPI(void) {
#ifdef _WIN64
// 64 bit OS is never Win9x, so it must be WinNT
return true;
57,7 → 57,7
// ---------------------------------
 
typedef ULONGLONG(__stdcall* f_GetTickCount64)();
ULONGLONG _GetTickCount64() {
ULONGLONG _GetTickCount64(void) {
HMODULE hLib;
f_GetTickCount64 fGetTickCount64;
ULONGLONG res;
/trunk/telegraphics_common/tt/compat_win.h
78,8 → 78,10
 
enum{ ok = 1,cancel = 2 };
 
ULONGLONG _GetTickCount64();
Boolean Implements3264ResourceAPI(void);
 
ULONGLONG _GetTickCount64(void);
 
HANDLE _BeginUpdateResource(
LPCTSTR pFileName,
BOOL bDeleteExistingResources
/trunk/visual_studio/README.md
3,7 → 3,7
Building FilterFoundry with Visual Studio
=========================================
 
Most recently tested with Visual Studio 2019 and Adobe Photoshop SDK CC 2017.
Most recently tested with Visual Studio 2022 and Adobe Photoshop SDK 2023.
 
 
Prerequisites
/trunk/wpj/README.md
2,7 → 2,7
Building FilterFoundry with OpenWatcom
======================================
 
Tested with OpenWatcom 1.9 and OpenWatcom 2.0 together with Adobe Photoshop SDK 2021.
Tested with OpenWatcom 1.9 and OpenWatcom 2.0 together with Adobe Photoshop SDK 2023.
 
 
Prerequisites