Example #1
0
        public void TestRenderText()
        {
            var game = new DX11Game();

            game.InitDirectX();

            var txt = new TextTexture(game, 100, 100);

            txt.DrawText("The Wizards", new Vector2(0, 0), new Color4(0.3f, 0.3f, 0.3f));

            txt.UpdateTexture();

            game.GameLoopEvent += delegate
            {
                txt.Clear();
                txt.DrawText("The Wizards", new Vector2(0, 0), new Color4(0.3f, 0.3f, 0.3f));

                txt.UpdateTexture();

                game.Device.ImmediateContext.OutputMerger.BlendState =
                    game.HelperStates.AlphaBlend;

                game.TextureRenderer.Draw(txt.GPUTexture.View, new Vector2(0, 0),
                                          new Vector2(100, 100));
            };

            game.Run();
        }
Example #2
0
        private void update()
        {
            cameraLight.LightPosition = camera != null?camera.GetCameraPosition() : game.SpectaterCamera.CameraPosition;

            seedDisplay.Clear();
            seedDisplay.DrawText("Current seed: " + rnd.GetCurrentSeed().ToString() + ".", new Vector2(0, 0), Color.White);
            seedDisplay.UpdateTexture();
            batchDisplay.Clear();
            batchDisplay.DrawText(batchText, new Vector2(0, 0), Color.White);
            batchDisplay.UpdateTexture();
            infoDisplay.Clear();
            infoDisplay.DrawText(infoText, new Vector2(0, 0), Color.White);
            infoDisplay.UpdateTexture();
            game.Device.ImmediateContext.ClearState();
            game.SetBackbuffer();
            game.Device.ImmediateContext.OutputMerger.BlendState =
                game.HelperStates.AlphaBlend;
            //game.Device.ImmediateContext.Rasterizer.State = game.HelperStates.RasterizerShowAll;

            game.TextureRenderer.Draw(seedDisplay.GPUTexture.View, new Vector2(0, 0),
                                      new Vector2(500, 50));
            game.TextureRenderer.Draw(batchDisplay.GPUTexture.View, new Vector2(0, 40),
                                      new Vector2(500, 50));
            game.TextureRenderer.Draw(infoDisplay.GPUTexture.View, new Vector2(0, 20),
                                      new Vector2(500, 50));

            game.Device.ImmediateContext.ClearState();
            game.SetBackbuffer();
        }
        public static ITexture CreateTextureAssetFromText(string text, DX11Game game)
        {
            var texSize = 1024;

            TWDir.Cache.CreateSubdirectory("BoxText");

            var fontSize = 100; // not really used??

            var name = "BoxText\\" + GetInt64HashCode(text) + "Auto8.dds";
            var file = TWDir.Cache + "\\" + name;

            if (!File.Exists(file))
            {
                var tex = new TextTexture(game, texSize, texSize);

                tex.SetFont("Arial", fontSize);

                var size  = tex.MeasureString(text);
                var scale = Math.Min(texSize / size.X, texSize / size.Y);

                tex.SetFont("Arial", fontSize * scale);
                size = tex.MeasureString(text);

                tex.Clear(new Color4(1, 1, 1, 1));

                tex.DrawText(text, new Vector2(texSize / 2 - size.X / 2, texSize / 2 - size.Y / 2), new Color4(0, 0, 0));
                tex.UpdateTexture();


                Resource.SaveTextureToFile(game.Device.ImmediateContext, tex.GPUTexture.Resource, ImageFileFormat.Dds, file);
            }


            //TODO: remove TW dependency
            var texture = TW.Assets.LoadTextureFromCache(name);

            return(texture);
        }