Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef TBASEFX_INCLUDED
Toshihiro Shimizu 890ddd
#define TBASEFX_INCLUDED
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// TnzBase includes
Toshihiro Shimizu 890ddd
#include "trasterfx.h"
Toshihiro Shimizu 890ddd
#include "tzeraryfx.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#undef DVAPI
Toshihiro Shimizu 890ddd
#undef DVVAR
Toshihiro Shimizu 890ddd
#ifdef TFX_EXPORTS
Toshihiro Shimizu 890ddd
#define DVAPI DV_EXPORT_API
Toshihiro Shimizu 890ddd
#define DVVAR DV_EXPORT_VAR
Toshihiro Shimizu 890ddd
#else
Toshihiro Shimizu 890ddd
#define DVAPI DV_IMPORT_API
Toshihiro Shimizu 890ddd
#define DVVAR DV_IMPORT_VAR
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//************************************************************************
Toshihiro Shimizu 890ddd
//    TBaseRasterFx  definition
Toshihiro Shimizu 890ddd
//************************************************************************
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//! Defines built-in Toonz fxs.
Shinya Kitaoka 120a6e
class DVAPI TBaseRasterFx : public TRasterFx {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 473e70
  std::string getPluginId() const override { return "Base"; }
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//************************************************************************
Toshihiro Shimizu 890ddd
//    TBaseZeraryFx  definition
Toshihiro Shimizu 890ddd
//************************************************************************
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//! Defines built-in Toonz zerary fxs.
Shinya Kitaoka 120a6e
class DVAPI TBaseZeraryFx : public TZeraryFx {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 473e70
  std::string getPluginId() const override { return "Base"; }
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
shun_iwasawa 2c0f50
//******************************************************************************
shun_iwasawa 2c0f50
//    ColumnColorFilterFx  declaration
shun_iwasawa 2c0f50
//******************************************************************************
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
class ColumnColorFilterFx final : public TBaseRasterFx {
shun_iwasawa 2c0f50
  FX_DECLARATION(ColumnColorFilterFx)
shun_iwasawa 2c0f50
  TPixel32 m_colorFilter;
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
protected:
shun_iwasawa 2c0f50
  TRasterFxPort m_port;
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
public:
shun_iwasawa 2c0f50
  ColumnColorFilterFx();
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
  ~ColumnColorFilterFx(){};
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
  bool canHandle(const TRenderSettings &info, double frame) override {
shun_iwasawa 2c0f50
    return true;
shun_iwasawa 2c0f50
  }
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
  bool doGetBBox(double frame, TRectD &bBox,
shun_iwasawa 2c0f50
                 const TRenderSettings &info) override;
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
  void doCompute(TTile &tile, double frame, const TRenderSettings &ri) override;
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
  void setColorFilter(TPixel32 color) { m_colorFilter = color; }
shun_iwasawa 2c0f50
shun_iwasawa 2c0f50
  std::string getAlias(double frame,
shun_iwasawa 2c0f50
                       const TRenderSettings &info) const override;
shun_iwasawa 2c0f50
};
shun_iwasawa 2c0f50
Shinya Kitaoka 120a6e
#endif  // TBASEFX_INCLUDED