Subversion Repositories filter_foundry

Rev

Rev 102 | Rev 110 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /*
  2.     This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop
  3.     Copyright (C) 2003-9 Toby Thain, toby@telegraphics.com.au
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 2 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program; if not, write to the Free Software
  17.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18. */
  19.  
  20. /*
  21. 22-Feb-2003: started 0.1b1
  22. 23-Feb-2003: released 0.1b1,0.2b1
  23. 24-Feb-2003: 0.3b1,b2
  24. 25-Feb-2003: 0.3b3,b4
  25. 27-Feb-2003: 0.4b1 - with preview
  26. 01-Mar-2003: 0.4b4,5,6 - finally! live sliders
  27. 02-Mar-2003: 0.4b7,8,9,10
  28. 04-Mar-2003: 0.5b1 - first Windows beta released
  29. 08-Mar-2003: 0.5b4 - first Mac 68K build (CW1)
  30. 13-Mar-2003: 0.5b6 - finally caught divide-by-zero in Win version
  31. 15-Mar-2003: 0.5b7 - Mac version uses edit controls, theme, is movable
  32. 16-Mar-2003: 0.6b1,2 - zoomable preview
  33. 16-Mar-2003: 0.6b3 - Windows preview pannable
  34. 16-Mar-2003: 0.6b4 - fix map()
  35. 16-Mar-2003: 0.7b1 - read Mac PARM resources
  36. 18-Mar-2003: 0.7b2 - check for direct host callbacks before using them (preview)
  37. 23-Mar-2003: 0.8b1 - can now make standalone filters (Mac only)
  38. 26-Mar-2003: 0.8b3 - switch to "universal" PowerPC build in one file (inspired by Harald Heim)
  39. 28-Mar-2003: 0.8b4 - Windows version can load PARM resource
  40. 31-Mar-2003: 0.8b5 - Windows version can create standalone (?) NT platform only
  41. 16-May-2003: 0.9b1 - added cnv() function, dmin, mmin
  42. 17-May-2003: 0.9b2 - fix dmin/mmin crash
  43. 17-May-2003: 0.9b3 - add Harry's suggestions: skip comments; other bugfixes
  44. 19-May-2003: 0.9b4 - fix Make... suggested file name bug
  45. 21-Jul-2003: 0.9b5 - fix crash on About box (!!)
  46. 28-Jan-2004: 0.9b6 - fix problems with making standalone on Mac (thanks Chris Greene)
  47. 31-Jan-2004: 1.0b1 - finally fix Win32 standalone filters - building and running
  48. 06-Feb-2004: 1.0b2 - fix bufferSpace computation (Prepare call)
  49. 21-Feb-2004: 1.0f1 - GPL source release
  50. 20-Mar-2004: 1.0f2 - fix code to blank margins of preview... hunting David Owen's crash
  51. 21-Mar-2004: 1.0f3 - alert when pb->inData is NULL - temporary workaround for crash bug
  52. 23-May-2004: 1.0f4 - include missing license(!)
  53. 25-Sep-2004: 1.0f5 - remove debug calls in Win build (!!) - thanks Shiro Akaishi;
  54.                                          fix RC EDITTEXT syntax
  55. 20-Dec-2004: 1.0f6 - fix bug in rad(d,m,z) -- wasn't relative to centre of image!
  56.                                          also ff_c2d, needed to negate x and y arguments to atan2()
  57. 02-Feb-2005: add Win VERSIONINFO
  58. 06-Feb-2005: 1.1a1 - scripting support
  59. 09-Feb-2005: 1.1b1 - incl aete for Windows
  60.                          1.1b2 - oops, forgot scripting.r (aete resource) in 68K build
  61. 10-Feb-2005: 1.1b3 - various mostly cosmetic cleanups; switch to GNU flex and bison in Makefile
  62.                                    - use monospaced font in Win expr text controls
  63.                          1.1b4 - fix crash blooper in make.c (fixpipl)
  64. 11-Feb-2005: 1.1b5 - cosmetic fixes in Mac dialog (right justify slider text, etc)
  65.                          1.1b6 - fix aete key (hash) calculation for standalones to obey Adobe's stated rules
  66.                          1.1b7 - aaaargh fix stupid hex handling bug in lexer
  67.                          1.1b8 - remove dbg call in lexer (it's late :( )
  68. 24-Jun-2005: 1.1b9 - Mach-O build for CS2/Mac
  69. 25-Jun-2005: 1.1b10 - can make 'standalone' Mach-O bundles
  70. 22-Jul-2005: 1.1b11 - merge changes to fix parameter bug reported by Demitrios Vassaras
  71. 03-Oct-2005: 1.1f1 - fix dialog behaviour on repeated filter application
  72. 18-Jan-2006: 1.1f2 - fix CS2/Mac build (missing fields in PiPL);
  73.                      scripting parameters were being ignored (!!)
  74. 26-Feb-2006: 1.1f3 - fix plugin DLL extension; fix many source code warnings
  75. 16-Mar-2006: 1.1f4,5 - add default extension AFS, 8BF for file saving (thanks Daniel Denk)
  76. 17-Mar-2006: 1.1f6 - fix loading of Filter Factory saved PARM data on Windows
  77. 18-Mar-2006: 1.1f7,8 - safer handling of previewing very large images, and clarify out-of-memory message
  78. 21-Mar-2006: 1.1f9,10 - improve file filtering on OS X (parse Windows-style extension filter)
  79. 22-Mar-2006: 1.2b1 - read parameters from Windows .8BF Filter Factory standalones, in Mac version
  80. 23-Mar-2006: 1.2b2 - new release
  81. 25-Mar-2006: 1.2b3 - include R,G,B,A,C,I,U,V undocumented(?) constants (per Harald Heim)
  82. 06-May-2006: 1.2b4 - fix minor AFS saving bug
  83. 05-Jun-2006: 1.3b1 - fix x,y,X,Y,M variables to use selection extent instead of image size (per Eiji Nishidai)
  84. 01-Sep-2006: 1.3b2 - fix standalone UI bugs (thanks Craig Bickford)
  85. 04-Jan-2007: 1.4b1 - Universal Binary on OS X (PPC+Intel)
  86. 31-Jan-2007: 1.4b2 - fix selection bug reported by Daniel Denk
  87. 01-Feb-2007: 1.4b3 - in cnv(), repeat pixels at edge of image, instead of using zero (reported by Daniel Denk)
  88.              1.4b4 - cnv() no longer requests entire filtered image in one piece; can now work in chunks
  89.                      improve the handling of edge pixels when filtering selection
  90. 02-Feb-2007: 1.4b5 - minor changes to image sampling logic (ff_src(), rawsrc())
  91. 16-Feb-2007: 1.4b6 - lowercase default file extensions (wishlist #1)
  92. 18-Feb-2007: 1.4b7 - swap +/- zoom controls to match Photoshop builtins
  93.              1.4b8,9,10 - simple parameter obfuscation in standalone plugins (wishlist #7)
  94. 19-Feb-2007: 1.5b1,2 - support remaining 8-bit image modes (wishlist proposal)
  95. 13-Jul-2007: 1.5b3 - add instrumentation to try to find CS3/Intel Mac 'Make standalone' problem
  96. 02-Aug-2007: 1.5b4 - fix debug message spotted by Daniel Denk
  97. 26-Aug-2007: 1.5b6 - associativity of ?: operator (Harald Heim)
  98. 07-Jun-2009: 1.6b1 - clean up for 64-bit Windows build
  99. 19-Dec-2018: 1.6b2 - Fixed crash at filter startup when computer had too much RAM.
  100.                      Fixed crash where built obfuscated filters could not be opened.
  101.                      Added function rst(i) which is an undocumented function in Filter Factory for setting a random seed.
  102.                      Size PARM_SIZE in PARM ressource corrected.
  103.                      Extended NMake file to support flex and bison compilation.
  104.                      Dialogs (build dialog, open and save dialogs) are now modal, i.e. the main window is locked when they are open. (*)
  105.                      The preview dialog has now a hand cursor. (Open hand on hover. Grabbing hand on panning) (*)
  106.                      Dialog boxes now have an [X] button to close the window.
  107.                      (Changes by Daniel Marschall)
  108.  
  109. (*) This bug/solution was tested on Windows but needs to be verified and/or implemented on Mac.
  110.  
  111. */
  112.  
  113. #define plugInName "FilterFoundry"
  114. #define VERSION_STR "1.6b2"
  115. #define VERSION_NUM 1,0x60,beta,2
  116. #define VERS_RSRC VERSION_NUM,verAustralia,VERSION_STR,"Filter Foundry " VERSION_STR
  117.  
  118. /* formatted for Win32 VERSIONINFO resource */
  119. #define VI_VERS_NUM 1,6,0,2
  120. #define VI_FLAGS        VS_FF_PRERELEASE /* 0 for final, or any of VS_FF_DEBUG,VS_FF_PATCHED,VS_FF_PRERELEASE,VS_FF_PRIVATEBUILD,VS_FF_SPECIALBUILD */
  121. #define VI_COMMENTS     "Beta.\r\n\r\nPlease contact support@telegraphics.com.au with any bug reports, suggestions or comments.\0"      /* null terminated Comments field */
  122.  
  123. /* wildcard signature in resources */
  124. #define ANY '    '
  125.