//* -----------------------------------------------------------------------* /// <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="tex">テクスチャ</param> /// <param name="dstRect">描画先矩形</param> /// <param name="srcRect">描画元矩形</param> /// <param name="color">色</param> /// <param name="fRotate">回転(ラジアン)</param> /// <param name="origin">原点座標</param> /// <param name="effects">反転効果</param> /// <param name="fLayer">レイヤ番号</param> /// <param name="blend">合成モード</param> public void add( Texture2D tex, Rectangle dstRect, Rectangle srcRect, Color color, float fRotate, Vector2 origin, SpriteEffects effects, float fLayer, SpriteBlendMode blend ) { CDrawInfo info = GRAVE_DRAW.Count > 0 ? GRAVE_DRAW.Dequeue() : new CDrawInfo(); info.texture = tex; info.destinationRectangle = resolution == null ? dstRect : resolution.resizeFromVGA(dstRect); info.sourceRectangle = srcRect; info.color = color; info.fRotation = fRotate; info.origin = origin; info.effects = effects; info.fLayerDepth = fLayer; info.blendMode = blend; LIST_DRAW.Add(info); }