tahoma2d/toonz/sources/include/tstencilcontrol.h

53 lines
888 B
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#ifndef TSTENCILCONTROL_H
#define TSTENCILCONTROL_H
2016-04-14 22:15:09 +12:00
#include <memory>
2016-03-19 06:57:51 +13:00
#include "tcommon.h"
#undef DVAPI
#undef DVVAR
#ifdef TGL_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
//------------------------------------------------------
2016-06-15 18:43:10 +12:00
// singleton
class DVAPI TStencilControl {
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
enum MaskType { SHOW_INSIDE = 0, SHOW_OUTSIDE };
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
enum DrawMode {
DRAW_ONLY_MASK = 0,
DRAW_ALSO_ON_SCREEN,
DRAW_ON_SCREEN_ONLY_ONCE
};
2016-03-19 06:57:51 +13:00
private:
2016-06-15 18:43:10 +12:00
class Imp;
std::unique_ptr<Imp> m_imp;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
static TStencilControl *instance();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
TStencilControl();
~TStencilControl();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void beginMask(DrawMode drawMode = DRAW_ONLY_MASK);
void endMask();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void enableMask(MaskType maskType);
void disableMask();
2016-03-19 06:57:51 +13:00
};
//------------------------------------------------------
#endif