houxiao
2017-07-24 364c97e3a055201af18e70f951dd0f0de26044af
RtspFace/PL_Paint.h
@@ -2,6 +2,77 @@
#define _PL_PAINT_H_
#include "PipeLine.h"
#include "GraphicHelper.h"
#define ENABLE_WTEXT
/*
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_WTEXT,
   PLPLC__LAST
};
union PLPLType
{
   int val_i;
   float val_f;
   char val_s[20];
   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);
   PLPLType(const wchar_t* _val_s);
};
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;
   void* cvxText;
   PLPLContext() :
      cmds(), params(), color_front(), color_back(), fill(0), pen(0, 0), cvxText(nullptr)
   {}
   ~PLPLContext();
};
struct PL_Paint_Config
{
   bool copyData;
   PLPLContext* plplCtx;
   std::string fontPath;
   PL_Paint_Config() :
      copyData(false), plplCtx(nullptr), fontPath()
   { }
};
class PL_Paint : public PipeLineElem
{
@@ -16,6 +87,9 @@
   virtual bool gain(PipeMaterial& pm);
   
private:
    static bool pay_breaker_MBFT(const PipeMaterial* pm, void* args);
private:
   void* internal;
};