using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;

namespace StarEngine.Core
{
    /// <summary>
    /// 画面を表します。
    /// </summary>
    public interface IScreen
    {
        /// <summary>
        /// 画面の論理サイズの幅を取得します。
        /// </summary>
        int Width { get; }

        /// <summary>
        /// 画面の論理サイズの高さを取得します。
        /// </summary>
        int Height { get; }
        
        /// <summary>
        /// 画面の論理サイズを取得します。
        /// </summary>
        Size Size { get; }

        /// <summary>
        /// オフスクリーンを取得します。
        /// </summary>
        ITexture Offscreen { get; }

        /// <summary>
        /// このメソッドを呼び出した時点のフレームの、
        /// スクリーンショットを保存します。
        /// </summary>
        /// <param name="path">保存するファイルのパス。</param>
        /// <param name="imageFormat">画像の形式。</param>
        void SaveScreenshot(string path, ImageFormat imageFormat);
    }
}
