| | |
| | | #define _PL_PAINT_H_
|
| | |
|
| | | #include "PipeLine.h"
|
| | | #include "GraphicHelper.h"
|
| | |
|
| | | /*
|
| | | PLPaint Language:
|
| | | COLOR F/B,R,G,B,A
|
| | | FILL 0/1
|
| | | PEN TYPE,WIDTH
|
| | | RECT LTX,LTY,RBX,RBY
|
| | | TEXT LTX,LTY,"STRING"
|
| | | */
|
| | |
|
| | | enum PLPLCmd
|
| | | {
|
| | | PLPLC__FIRST,
|
| | | |
| | | PLPLC_COLOR,
|
| | | PLPLC_FILL,
|
| | | PLPLC_PEN,
|
| | | PLPLC_RECT,
|
| | | PLPLC_TEXT,
|
| | | |
| | | PLPLC__LAST
|
| | | };
|
| | |
|
| | | union PLPLType
|
| | | {
|
| | | int val_i;
|
| | | float val_f;
|
| | | char val_s[sizeof(int)];
|
| | |
|
| | | PLPLType() : val_i(0) {}
|
| | | PLPLType(int _val_i) : val_i(_val_i) {}
|
| | | PLPLType(float _val_f) : val_f(_val_f) {}
|
| | | PLPLType(const char* _val_s)
|
| | | {
|
| | | for (int i = 0; i < sizeof(val_s); i++)
|
| | | val_s[i] = _val_s[i];
|
| | | }
|
| | | };
|
| | |
|
| | | typedef std::vector<PLPLCmd> plplc_vec_t;
|
| | | typedef std::vector<PLPLType> plplt_vec_t;
|
| | |
|
| | | struct PLPLContext
|
| | | {
|
| | | plplc_vec_t cmds;
|
| | | plplt_vec_t params;
|
| | |
|
| | | PLGH_Color_RGBA color_front;
|
| | | PLGH_Color_RGBA color_back;
|
| | | int fill;
|
| | | PLGH_Pen pen;
|
| | |
|
| | | PLPLContext() :
|
| | | cmds(), params(), color_front(), color_back(), fill(0), pen(0, 0)
|
| | | {}
|
| | | };
|
| | |
|
| | | struct PL_Paint_Config
|
| | | {
|
| | | bool copyData;
|
| | | PLPLContext* plplCtx;
|
| | | |
| | | PL_Paint_Config() : |
| | | copyData(false), plplCtx(nullptr)
|
| | | { }
|
| | | };
|
| | |
|
| | | class PL_Paint : public PipeLineElem
|
| | | {
|
| | |
| | | virtual bool gain(PipeMaterial& pm);
|
| | |
|
| | | private:
|
| | | static bool pay_breaker_MBFT_YUV(const PipeMaterial* pm, void* args);
|
| | | |
| | | private:
|
| | | void* internal;
|
| | | };
|
| | |
|