Subversion Repositories filter_foundry

Rev

Rev 536 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /*
  2.     This file is part of a common library for Adobe(R) plugins
  3.     Copyright (C) 2002-2006 Toby Thain, toby@telegraphics.net
  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. /* Build environment for cross-platform plugin */
  21.  
  22. #ifndef WORLD_H_
  23. #define WORLD_H_
  24.  
  25. #include <string.h>
  26. #include <stdlib.h>
  27. //#include <stddef.h>
  28. #include <stdio.h>
  29.  
  30. #if defined(__GNUC__)
  31.         // probably OS X or MinGW gcc
  32.         #include <stdint.h> // for intptr_t req'd by CS4 SDK
  33. #elif defined(powerc) || defined(__SC__)
  34.         // Mac PPC and 68K have 32 bit pointers
  35.         typedef long intptr_t;
  36. #endif
  37.  
  38. #ifndef WIN_ENV
  39. #ifdef UNICODE
  40. typedef wchar_t TCHAR;
  41. #else
  42. typedef char TCHAR;
  43. #endif
  44. #endif
  45.  
  46. #ifndef WIN_ENV
  47. // ???
  48. #define MAX_PATH 255
  49. #endif
  50.  
  51. #include "dbg.h"
  52. #include "str.h"
  53.  
  54. #ifdef macintosh
  55.         #include "carbonstuff.h"
  56.  
  57.         #include <quickdraw.h>
  58.         #include <events.h>
  59.  
  60.         #define TICKCOUNT TickCount
  61.         #define TICKS_SEC 60
  62.  
  63.         #if defined(powerc) || defined(__GNUC__)
  64.                 #define EnterCodeResource()
  65.                 #define ExitCodeResource()
  66.                 #define ENTERCALLBACK()
  67.                 #define EXITCALLBACK()
  68.         #else
  69.                 #ifdef __SC__
  70.                         // Symantec C (MPW compiler) - does not support A4 globals
  71.  
  72.                         #define EnterCodeResource()
  73.                         #define ExitCodeResource()
  74.                         #define ENTERCALLBACK()
  75.                         #define EXITCALLBACK()
  76.  
  77.                         // avoid some standard library routines (can't have global data)
  78.                         #include "sprintf_tiny.h"
  79.                         #define sprintf sprintf_tiny
  80.  
  81.                         #define memset my_memset
  82.  
  83.                         #include <macmemory.h>
  84.                         #define malloc (void*)NewPtr
  85.                         #define free(p) DisposePtr((void*)(p))
  86.                 #else
  87.                         // CodeWarrior supports A4-based globals
  88.  
  89.                         #include <a4stuff.h>
  90.  
  91.                         #define ENTERCALLBACK() long old_a4 = SetCurrentA4()
  92.                         #define EXITCALLBACK() SetA4(old_a4)
  93.                 #endif
  94.         #endif
  95.  
  96.         #define DIRSEP ':'
  97.  
  98.         typedef Handle HMODULE;
  99. #else
  100.         // Win32 target
  101.         #include <windows.h>
  102.  
  103.         #include "compat_win.h"
  104.  
  105.         #define TICKCOUNT _GetTickCount64
  106.         #define TICKS_SEC 1000
  107.  
  108.         #define EnterCodeResource()
  109.         #define ExitCodeResource()
  110.  
  111.         #define DIRSEP '\\'
  112.  
  113.         extern HINSTANCE hDllInstance;
  114. #endif
  115.  
  116. #define SETRECT(rect,l,t,r,b) \
  117.         ((rect).left=(l),(rect).top=(t),(rect).right=(r),(rect).bottom=(b))
  118. #define OFFSETRECT(rect,h,v) \
  119.         ( (rect).left+=(h),(rect).right+=(h),(rect).top+=(v),(rect).bottom+=(v) )
  120.  
  121. #ifdef __GNUC__
  122.         #define ATTRIBUTE_PACKED __attribute__ (( packed ))
  123. #else
  124.         #define ATTRIBUTE_PACKED
  125. #endif /* __GNUC__ */
  126.  
  127. #ifdef __WATCOMC__
  128.         #define strcasecmp _stricmp
  129. #endif /* __WATCOMC__  */
  130.  
  131. #ifdef _MSC_VER
  132.         #define strcasecmp _stricmp
  133.         #define snprintf _snprintf
  134. #endif /* _MSC_VER */
  135.  
  136. #endif
  137.