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(); }
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); }