tahoma2d/toonz/sources/include/tfxdef.h

100 lines
2 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#ifndef TFXDEF_INCLUDED
#define TFXDEF_INCLUDED
#include "traster.h"
#undef DVAPI
#undef DVVAR
#ifdef TNZCORE_DLL
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
//----------------------------------------------------------
class TRasterFx;
class TRasterFxPort;
class ITFxNode;
class TParam;
//----------------------------------------------------------
//
// Fx Arguments
//
2016-06-15 18:43:10 +12:00
class DVAPI ITFxArguments {
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
ITFxArguments(){};
virtual ~ITFxArguments(){};
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
virtual void add(TParam *) = 0;
virtual void add(TRasterFxPort *) = 0;
2016-03-19 06:57:51 +13:00
};
//----------------------------------------------------------
//
// RasterPort
//
2016-06-15 18:43:10 +12:00
class DVAPI TRasterFxPort {
TRasterFx *m_fx;
string m_name;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
TRasterFxPort(ITFxArguments *args, string name) : m_name(name), m_fx(0) {
args->add(this);
};
~TRasterFxPort(){};
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
string getName() const { return m_name; };
TRasterFx *operator->() const {
assert(m_fx != 0);
return m_fx;
};
bool isConnected() const { return m_fx != 0; };
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void setRasterFx(TRasterFx *fx) { m_fx = fx; };
2016-03-19 06:57:51 +13:00
private:
2016-06-15 18:43:10 +12:00
// not implemented
TRasterFxPort(const TRasterFxPort &);
TRasterFxPort &operator=(const TRasterFxPort &);
2016-03-19 06:57:51 +13:00
};
//----------------------------------------------------------
//
// RasterFx
//
2016-06-15 18:43:10 +12:00
class DVAPI TRasterFx {
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
TRasterFx(){};
virtual ~TRasterFx(){};
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
virtual bool getBBox(double frame,
TRectD &bBox, // n.b Input/Output
TPixel32 &bgColor) = 0;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
virtual string getName() const = 0;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
virtual TRect getInvalidRect(const TRect &max) = 0;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
virtual void compute(double frame, const TTile &tile) = 0;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
virtual void allocateAndCompute(double frame, const TDimension size,
const TPointD &pos, TTile &tile);
2016-03-19 06:57:51 +13:00
private:
2016-06-15 18:43:10 +12:00
TRasterFx(const TRasterFx &);
TRasterFx &operator=(const TRasterFx &);
2016-03-19 06:57:51 +13:00
};
//----------------------------------------------------------
#endif