Esempio n. 1
0
        /// <summary>
        /// 各種パラメータを指定して DebugText クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="options">デバッグ表示のテキストに用いられるテキストオプション。</param>
        /// <param name="Window">デバッグ表示が行われるウィンドウ。</param>
        public DebugText(TextOptions options, SitrineWindow window)
        {
            if (options == null)
                throw new ArgumentNullException("options");

            if (window == null)
                throw new ArgumentNullException("window");

            this.textOptions = options;

            this.textOptions.SetSolidBrushes(Color.White, Color.FromArgb(128, Color.Black), Color.Green, Color.Yellow, Color.Red);
            this.textOptions.ShadowIndex = 1;
            this.textOptions.DrawShadow = true;

            this.debugTexture = new TextTexture(this.textOptions, new Size(window.TargetSize.Width, (int)options.LineHeight + 1));
            this.debugTextTexture = new TextTexture(this.textOptions, new Size(window.TargetSize.Width, (int)(options.LineHeight + 1) * 4 + 1));
            this.debugTextTexture.Position = new PointF(0f, options.LineHeight + 1);

            this.window = window;
            this.textures = window.Textures;

            this.textQueue = new LinkedList<TextItem>();

            #if DEBUG
            this.IsVisible = true;
            #else
            this.IsVisible = false;
            #endif
        }
Esempio n. 2
0
        /// <summary>
        /// テキストオプションと描画サイズを指定して新しい TextTexture クラスのインスタンスを初期化します。
        /// </summary>
        /// <param name="options">テキストオプション。</param>
        /// <param name="size">描画サイズ。</param>
        public TextTexture(TextOptions options, Size size)
            : base(size)
        {
            if (options == null)
                throw new ArgumentNullException("options");

            this.renderer = new TextRenderer(options, this.BaseBitmap);
        }
Esempio n. 3
0
        /// <summary>
        /// テキストオプションと描画サイズを指定して新しい MessageTexture クラスのインスタンスを初期化します。
        /// </summary>
        /// <param name="options">テキストオプション。</param>
        /// <param name="size">描画サイズ。</param>
        public MessageTexture(TextOptions options, Size size)
            : base(size)
        {
            if (options == null)
                throw new ArgumentNullException("options");

            this.renderer = new TextRenderer(options, this.BaseBitmap);
            this.tokenQueue = new Queue<object>();
        }
Esempio n. 4
0
        /// <summary>
        /// テキストオプションと描画先のビットマップを指定して新しい TextRenderer クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="options">使用されるテキストオプション。</param>
        /// <param name="baseBitmap">描画先のビットマップ。</param>
        public TextRenderer(TextOptions options, Bitmap baseBitmap)
        {
            if (options == null)
                throw new ArgumentNullException("options");

            if (baseBitmap == null)
                throw new ArgumentNullException("baseBitmap");

            this.options = options;
            this.bitmap = baseBitmap;
            this.graphics = Graphics.FromImage(baseBitmap);
        }
Esempio n. 5
0
        /// <summary>
        /// ウィンドウオプションを指定して SitrineWindow クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="options">ウィンドウオプション。</param>
        public SitrineWindow(WindowOptions options)
            : base(options.WindowSize.Width, options.WindowSize.Height, GraphicsMode.Default, options.Title)
        {
            if (options == null)
                throw new ArgumentNullException("options");

            this.music = new MusicPlayer(new MusicOptions());
            this.textures = new TextureList();
            this.TargetSize = options.TargetSize;
            this.textOptions = options.TextOptions;

            this.stories = new List<Storyboard>();
            this.renderStories = new List<RenderStoryboard>();
            this.reservedStories = new List<Storyboard>();
            this.removingStories = new List<Storyboard>();

            this.debugText = new DebugText(options.DebugTextOptions, this);
            Trace.Listeners.Add(new DebugTextListener(this.debugText));
            Trace.WriteLine("Window", "Init");
        }
Esempio n. 6
0
        static void Main()
        {
            using (FontLoader font = new FontLoader("font/VL-Gothic-Regular.ttf"))
            using (FontLoader debugFont = new FontLoader("font/88 Zen.ttf"))
            {
                TextOptions textOptions = new TextOptions(font.Family, 12, 17)
                {
                    ShadowIndex = 1,
                    DrawShadow = true,
                    Antialiasing = true
                };
                textOptions.SetSolidBrushes(Color.White, Color.Black, Color.OrangeRed);

                TextOptions debugTextOptions = new TextOptions(debugFont.Family, 8, 8)
                {
                    ShadowIndex = 1,
                    DrawShadow = true,
                };
                debugTextOptions.SetSolidBrushes(Color.White, Color.Black);

                WindowOptions options = new WindowOptions()
                {
                    Title = "Sample",
                    TargetSize = new Size(320, 240),
                    WindowSize = new Size(640, 480),
                    DebugTextOptions = debugTextOptions,
                    TextOptions = textOptions
                };

                using (SitrineWindow window = new SitrineWindow(options))
                {
                    window.AddStoryboard(new SampleStory(window));
                    window.Run(30.0, 60.0);
                }
            }
        }
Esempio n. 7
0
 internal MessageEvent(Storyboard storyboard, SitrineWindow window, TextOptions options, Size size)
     : base(storyboard, window)
 {
     this.texture = new MessageTexture(options, size);
 }
Esempio n. 8
0
        /// <summary>
        /// メッセージイベントを指定されたパラメータで初期化します。
        /// </summary>
        /// <param name="options">メッセージ表示に用いるテキストオプション。</param>
        /// <param name="size">メッセージ表示の描画サイズ。</param>
        public void InitalizeMessage(TextOptions options, Size size)
        {
            if (options == null)
                throw new ArgumentNullException("options");

            if (this.message != null && this.message is IDisposable)
                ((IDisposable)this.message).Dispose();

            this.message = new MessageEvent(this, this.Window, options, size);
            Trace.WriteLine("message event", "Init");
        }
Esempio n. 9
0
        /// <summary>
        /// テキストオプションと描画先のテクスチャを指定して新しい TextRenderer クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="options">使用されるテキストオプション。</param>
        /// <param name="texture">描画先のテクスチャ。</param>
        public TextRenderer(TextOptions options, Texture.Texture texture)
        {
            if (options == null)
                throw new ArgumentNullException("options");

            if (texture == null)
                throw new ArgumentNullException("texture");

            this.options = options;
            this.bitmap = texture.BaseBitmap;
            this.graphics = Graphics.FromImage(texture.BaseBitmap);
        }