clsCrSurf.h 1.4 KB
/**************************************************************************
* file:              clsCrSurf.h

* Author:            qingxiongf
* Date:              2021-12-12 22:58:23
* Email:             qingxiongf@chinadci.com
* copyright:         广州城市信息研究所有限公司
***************************************************************************/

#ifndef __clsCrSurf_h__
#define __clsCrSurf_h__

#include "dmap_core.h"
#include<cairo/cairo.h>

#define gridsize  2 //网格大小
namespace DmapCore_30
{
	/*
	这个类是为了处理有些地方绘图需要传cairo_t,有些地方需要传 surface_t(比如agg绘线) 而出现的
	绘图过程中一律传递这类对象即可
	*/


	/*
	是否改为这种包装??? 之前的包装不要了???
	*/
	class CORE_EXPORT clsCrSurf
	{
	public:
		clsCrSurf(cairo_surface_t* surface);
		clsCrSurf(cairo_surface_t* surface,int w,int h,bool isImage);

		~clsCrSurf();
		bool Release();
		bool SetSurf(cairo_surface_t* surface);
		bool IsImage(bool b);

		cairo_t* m_pCr;
		cairo_surface_t* m_pSurf;
		int m_iW;
		int m_iH;

		int m_iN;    //引用计数

		/*
		文字避让部分
		*/
		char* m_pFlag;
		int m_iFlagW;
		int m_iFlagH;
		bool  InitFlag();  // 文字避让数组初始化
		unsigned int m_iBGColor;

		bool m_isImage = true;


	private:
		void DestroyCr();
		void DestroySurf();
	};

}

#endif // __clsCrSurf_h__