Beispiel #1
0
 //* -----------------------------------------------------------------------*
 /// <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();
 }
Beispiel #2
0
        //* -----------------------------------------------------------------------*
        /// <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);
        }