/// <summary>Load any game assets such as textures and audio. /// </summary> private void LoadContent() { // Creates an in memory SDL Surface from the PNG at the passed path ISurface surfaceGitLogo = engine.SurfaceFactory.CreateSurface("Content/logo_git.png", SurfaceType.PNG); ISurface surfaceVisualStudioLogo = engine.SurfaceFactory.CreateSurface("Content/logo_vs_2019.png", SurfaceType.PNG); ISurface surfaceYboc = engine.SurfaceFactory.CreateSurface("Content/logo_yboc.png", SurfaceType.PNG); // Creates a GPU-driven SDL texture using the initialized renderer and created surface textureGitLogo = engine.TextureFactory.CreateTexture(renderer, surfaceGitLogo); textureVisualStudioLogo = engine.TextureFactory.CreateTexture(renderer, surfaceVisualStudioLogo); textureYboc = engine.TextureFactory.CreateTexture(renderer, surfaceYboc); ttf = engine.TrueTypeTextFactory.CreateTrueTypeText(renderer, "Content/Adumu.ttf", "Hello world!", 24, Color.White); }
public ITrueTypeText CreateTrueTypeText(IRenderer renderer, string fontPath, string text, int fontSize, Color color, int wrapLength) { Font font = null; ISurface surface = null; ITrueTypeText trueTypeText = null; if (renderer == null) { throw new ArgumentNullException(nameof(renderer)); } if (String.IsNullOrWhiteSpace(fontPath)) { throw new ArgumentNullException(nameof(fontPath)); } if (fontSize <= 0) { throw new ArgumentOutOfRangeException(nameof(fontSize), "Font size must be greater than 0."); } if (text == null) { throw new ArgumentNullException(nameof(text)); } try { font = new Font(fontPath, fontSize); surface = new Surface(font, text, color, wrapLength); trueTypeText = new TrueTypeText(renderer, surface, text, font, color, wrapLength); logger?.LogTrace($"TrueTypeText created. Width = {trueTypeText.Texture.Width}, Height = {trueTypeText.Texture.Height}, Font = {trueTypeText.Font.FilePath}, WrapLength = {trueTypeText.WrapLength}."); return(trueTypeText); } catch (Exception ex) { logger.LogError(ex, "Error occurred while creating a TrueTypeText objecte."); font.Dispose(); surface.Dispose(); trueTypeText.Dispose(); throw; } }