コード例 #1
0
ファイル: MainGame.cs プロジェクト: babelshift/SharpDL
        /// <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);
        }
コード例 #2
0
        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;
            }
        }