12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- namespace CommonUI_Unity3D.Impl
- {
- public class UnityTextLayer : CommonUI.Display.TextLayer
- {
- internal Texture2D mTexture;
- private UnityImage mBuffer;
- public UnityTextLayer(string text, CommonUI.Display.FontStyle style, float size)
- : base(text, (int)size, style)
- {
- isDirty = true;
- }
- internal void Refresh()
- {
- if (this.isDirty)
- {
- this.isDirty = false;
- if (mBuffer != null)
- {
- mBuffer.Dispose();
- mBuffer = null;
- mTexture = null;
- }
- if (string.IsNullOrEmpty(mText))
- {
- return;
- }
- int boundW = 0;
- int boundH = 0;
- mTexture = UnityDriver.Platform.SysFontTexture(
- mText,
- false,
- mFontStyle,
- Math.Max(1, mFontSize),
- isEnable ? mFontColorRGBA : DefaultDisableTextColorRGBA,
- mBorderTime,
- mBorderColorRGBA,
- mExpectSize,
- out boundW,
- out boundH);
- if (mTexture != null)
- {
- mBounds.width = boundW;
- mBounds.height = boundH;
- mBuffer = new UnityImage(mTexture, boundW, boundH, mText);
- }
- }
- }
- protected override void Disposing()
- {
- if (mBuffer != null)
- {
- mBuffer.Dispose();
- }
- mTexture = null;
- }
- public override CommonUI.Display.Image GetBuffer()
- {
- Refresh();
- return mBuffer;
- }
- }
- }
|