/// <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 }
/// <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); }
/// <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>(); }
/// <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); }
/// <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"); }
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); } } }
internal MessageEvent(Storyboard storyboard, SitrineWindow window, TextOptions options, Size size) : base(storyboard, window) { this.texture = new MessageTexture(options, size); }
/// <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"); }
/// <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); }