Exemple #1
0
        /// <summary>
        /// 尝试恢复
        /// </summary>
        public static void AttemptRecovery()
        {
            try
            {
                //将设备还原为调用 Begin 前的状态。
                //备注
                //此方法不能用于替代 Device 的 EndScene。

                Sprite.End();
                TextSprite.End();
            }
            catch
            {
            }

            try
            {
                //结束通过调用 BeginScene 方法开始的场景。
                //备注
                //每个对 BeginScene 的调用后面最终都应有一个对 EndScene 的调用,然后才能用 Present 更新显示。
                //当 EndScene 成功时,该场景将进入由驱动程序进行呈现的队列中。该方法不是同步的,因此不能保证该方法返回时,场景已完成呈现。

                Device.EndScene();
            }
            catch
            {
            }

            try
            {
                ////获取指定的后台缓冲区
                MainSurface    = Device.GetBackBuffer(0, 0, BackBufferType.Mono);
                CurrentSurface = MainSurface;
                ////为设备设置新的颜色缓冲区。
                Device.SetRenderTarget(0, MainSurface);
            }
            catch
            {
            }
        }
 /// <summary>
 ///     Dibujar un texto en la posición indicada, con el color indicado.
 ///     Utilizar la fuente default del Framework.
 /// </summary>
 /// <param name="text">Texto a dibujar</param>
 /// <param name="x">Posición X de la pantalla</param>
 /// <param name="y">Posición Y de la pantalla</param>
 /// <param name="color">Color del texto</param>
 public void drawText(string text, int x, int y, Color color)
 {
     TextSprite.Begin(SpriteFlags.AlphaBlend);
     D3dFont.DrawText(TextSprite, text, x, y, color);
     TextSprite.End();
 }
 public void render()
 {
     TextSprite.Begin(SpriteFlags.AlphaBlend);
     D3dFont.DrawText(TextSprite, Text, rectangle, Format, Color);
     TextSprite.End();
 }