Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef STDFX_INCLUDED
Toshihiro Shimizu 890ddd
#define STDFX_INCLUDED
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// TnzBase includes
Toshihiro Shimizu 890ddd
#include "trasterfx.h"
Toshihiro Shimizu 890ddd
#include "tzeraryfx.h"
Toshihiro Shimizu 890ddd
#include "tdoubleparam.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//==================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class PaletteFilterFxRenderData;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 3bfa54
static const std::string PLUGIN_PREFIX("STD");
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#define FX_PLUGIN_DECLARATION(T)                                               \
shun-iwasawa 5b7b9f
  \
Shinya Kitaoka 120a6e
public:                                                                        \
MichaƂ Janiszewski d37dbb
  const TPersistDeclaration *getDeclaration() const override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 9f5a1b
#ifdef _WIN32
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifdef TNZSTDFX_EXPORTS
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#define FX_PLUGIN_IDENTIFIER(T, I)                                             \
Shinya Kitaoka 120a6e
  template class DV_EXPORT_API TFxDeclarationT<t>;                             \</t>
Shinya Kitaoka 120a6e
  namespace {                                                                  \
Shinya Kitaoka 120a6e
  TFxDeclarationT<t> info##T(TFxInfo(PLUGIN_PREFIX + "_" + I, false));         \</t>
Shinya Kitaoka 120a6e
  }                                                                            \
Shinya Kitaoka 120a6e
  const TPersistDeclaration *T::getDeclaration() const { return &info##T; }
Toshihiro Shimizu 890ddd
#else
Shinya Kitaoka 120a6e
#define FX_PLUGIN_IDENTIFIER(T, I)                                             \
Shinya Kitaoka 120a6e
  template class DV_IMPORT_API TFxDeclarationT<t>;                             \</t>
Shinya Kitaoka 120a6e
  namespace {                                                                  \
Shinya Kitaoka 120a6e
  TFxDeclarationT<t> info##T(TFxInfo(PLUGIN_PREFIX + "_" + I, false));         \</t>
Shinya Kitaoka 120a6e
  }                                                                            \
Shinya Kitaoka 120a6e
  const TPersistDeclaration *T::getDeclaration() const { return &info##T; }
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
#else
Shinya Kitaoka 120a6e
#define FX_PLUGIN_IDENTIFIER(T, I)                                             \
Shinya Kitaoka 120a6e
  namespace {                                                                  \
Shinya Kitaoka 120a6e
  TFxDeclarationT<t> info##T(TFxInfo(PLUGIN_PREFIX + "_" + I, false));         \</t>
Shinya Kitaoka 120a6e
  }                                                                            \
Shinya Kitaoka 120a6e
  const TPersistDeclaration *T::getDeclaration() const { return &info##T; }
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
class TStandardRasterFx : public TRasterFx {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 473e70
  std::string getPluginId() const override { return PLUGIN_PREFIX; }
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
class TStandardZeraryFx : public TZeraryFx {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 473e70
  std::string getPluginId() const override { return PLUGIN_PREFIX; }
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
bool isAlmostIsotropic(const TAffine &aff);
Toshihiro Shimizu 890ddd
Campbell Barton 8c6c57
DV_EXPORT_API void initStdFx();
Campbell Barton 8c6c57
Toshihiro Shimizu 890ddd
#endif