public static int OutputRichText( int nFontId, //## 使用的字体对象id。 IntPtr pParam, // IntPtr psText, //## 要输出的字符串。 int nCount = GLB.KRF_ZERO_END, //## 要输出的字符串的长度(BYTE)。\当nCount大于等于0时,字符串可以不包括特殊的结束符号来表示输出字符的结束。\当nCount小于0时,表示此字符串是以'\0'结尾,且中间不存在'\0'的字符。\默认值为-1。 int nLineWidth = 0 //##Documentation\自动换行的行宽限制,如果其值小于一个全角字符宽度则不做自动换行处理。默认值为0,既不做自动换行处理。 ) { // todo: txt address + xy to uuid long uuid = (long)psText; string sText2 = Marshal.PtrToStringAnsi(psText); byte[] txtbuff = new byte[nCount + 1]; Marshal.Copy(psText, txtbuff, 0, nCount); string sText = GLB.GBK.GetString(txtbuff); //Debug.Log(sText); KOutputTextParam param = (KOutputTextParam)Marshal.PtrToStructure(pParam, typeof(KOutputTextParam)); int nX = param.nX; int nY = param.nY; float x = (float)nX / 100; float y = 8.0f - (float)nY / 100; float z = zbuff; zbuff -= 0.1f; //Debug.Log(string.Format("OutputRichText: {0} : {1} @ [{2}, {3}]", sText, nCount, nX, nY)); SprMgr.DrawText(uuid, sText, x, y, z); return(1); }
public static void OutputText( int nFontId, //## 使用的字体对象id。 IntPtr psText, //## 要输出的字符串。 int nCount = GLB.KRF_ZERO_END, //## 要输出的字符串的长度(BYTE)。\当nCount大于等于0时,字符串可以不包括特殊的结束符号来表示输出字符的结束。\当nCount小于0时,表示此字符串是以'\0'结尾,将根据结束字符来确定输出字符串的长度。\默认值为-1。 int nX = GLB.KRF_FOLLOW, //## 字符串显示起点坐标X,如果传入值为KF_FOLLOW,\则此字符串紧接在上次字符串的输出位置之后。\默认值为KRF_FOLLOW。 int nY = GLB.KRF_FOLLOW, //## 字符串显示起点坐标Y, 如果传入值为KF_FOLLOW,\此字符串与前一次输出字符串在同一行的位置。\默认值为KRF_FOLLOW。 uint Color = 0xFF000000, //## 字符串显示颜色,默认为黑色,用32bit数以ARGB的格\式表示颜色,每个分量8bit。 int nLineWidth = 0, //## 自动换行的行宽限制,如果其值小于一个全角字符宽度则不做自动换行处理。默认值为0,既不做自动换行处理。 int nZ = GLB.TEXT_IN_SINGLE_PLANE_COORD, // uint BorderColor = 0 //字的边缘颜色 ) { long uuid = (long)psText; string sText = Marshal.PtrToStringAnsi(psText); //Debug.Log(string.Format("OutputText: {0} : {1} @ [{2}, {3}]", sText, nCount, nX, nY)); float x = (float)nX / 100; float y = 8.0f - (float)nY / 100; float z = zbuff; zbuff -= 0.1f; SprMgr.DrawText(uuid, sText, x, y, z); //g_pRepresent->OutputText(12, szDebugRef, KRF_ZERO_END, nX, nY, 0xffffffff, 0, 0); }