//* -----------------------------------------------------------------------* /// <summary>予約された描画処理を実行します。</summary> public void update() { LIST_DRAW.Sort(); foreach (CDrawInfoBase __info in LIST_DRAW) { changeMode(__info); if (__info.GetType() == typeof(CDrawInfo)) { CDrawInfo info = ( CDrawInfo )__info; spriteBatch.Draw(info.texture, info.destinationRectangle, info.sourceRectangle, info.color, info.fRotation, info.origin, info.effects, info.fLayerDepth); GRAVE_DRAW.Enqueue(info); } else { CDrawStringInfo info = ( CDrawStringInfo )__info; spriteBatch.DrawString(info.spriteFont, info.text, info.position, info.color, info.fRotation, info.origin, info.scale, info.effects, info.fLayerDepth); GRAVE_STRING.Enqueue(info); } } changeMode(null); LIST_DRAW.Clear(); }
//* -----------------------------------------------------------------------* /// <summary>描画処理を予約します。</summary> /// /// <param name="spriteFont">スプライトフォント テクスチャ</param> /// <param name="text">描画したいテキスト</param> /// <param name="pos">座標</param> /// <param name="color">色</param> /// <param name="fRotate">回転(ラジアン)</param> /// <param name="origin">原点座標</param> /// <param name="scale">拡大率</param> /// <param name="effects">反転効果</param> /// <param name="fLayer">レイヤ番号</param> public void add( SpriteFont spriteFont, string text, Vector2 pos, Color color, float fRotate, Vector2 origin, Vector2 scale, SpriteEffects effects, float fLayer ) { CDrawStringInfo info = GRAVE_STRING.Count > 0 ? GRAVE_STRING.Dequeue() : new CDrawStringInfo(); info.spriteFont = spriteFont; info.text = text; info.position = resolution == null ? pos : pos * resolution.scaleGapFromVGA; info.color = color; info.fRotation = fRotate; info.origin = origin; info.scale = resolution == null ? scale : scale * resolution.scaleGapFromVGA; info.effects = effects; info.fLayerDepth = fLayer; LIST_DRAW.Add(info); }