コード例 #1
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
        public static WindowHandle CreateWindow(int width, int height, string title, MonitorHandle monitor = default, WindowHandle share = default)
        {
            var handle = glfwCreateWindow(width, height, title, monitor, share);

            CheckError(nameof(CreateWindow));
            return(handle);
        }
コード例 #2
0
        private static void OnMonitorCallback(MonitorHandle monitor, ConnectState state)
        {
            var name = Glfw.GetMonitorName(monitor);

            var primary   = Glfw.GetPrimaryMonitor();
            var isPrimary = primary == monitor;

            // Connected Monitor
            if (state == ConnectState.Connected)
            {
                // We can only insert if unknown
                if (!_monitors.ContainsKey(monitor))
                {
                    _monitors[monitor] = new Monitor(name, monitor);
                }
            }
            // Disconnected Monitor
            else
            {
                // We can only remove if known already
                if (_monitors.ContainsKey(monitor))
                {
                    _monitors.Remove(monitor);
                }
            }

            // Set default monitor
            DefaultMonitor = _monitors[primary];
        }
コード例 #3
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
        public static string GetMonitorName(MonitorHandle monitor)
        {
            var cstr = glfwGetMonitorName(monitor);

            CheckError(nameof(GetMonitorName));
            return(Marshal.PtrToStringAnsi((IntPtr)cstr));
        }
コード例 #4
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
        public static VideoMode GetVideoMode(MonitorHandle monitor)
        {
            var ptr = glfwGetVideoMode(monitor);

            CheckError(nameof(GetVideoMode));
            return(Marshal.PtrToStructure <VideoMode>(ptr));
        }
コード例 #5
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
        public static VideoMode[] GetVideoModes(MonitorHandle monitor)
        {
            var array = glfwGetVideoModes(monitor, out var count);

            CheckError(nameof(GetVideoModes));

            var modes = new VideoMode[count];

            for (var i = 0; i < count; i++)
            {
                modes[i] = array[i];
            }

            return(modes);
        }
コード例 #6
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
        public static MonitorHandle[] GetMonitors()
        {
            var array = glfwGetMonitors(out var count);

            CheckError(nameof(GetMonitors));

            var monitors = new MonitorHandle[count];

            for (var i = 0; i < count; i++)
            {
                monitors[i] = array[i];
            }

            return(monitors);
        }
コード例 #7
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
 public static void GetMonitorContentScale(MonitorHandle monitor, out float xScale, out float yScale)
 {
     glfwGetMonitorContentScale(monitor, out xScale, out yScale);
     CheckError(nameof(GetMonitorContentScale));
 }
コード例 #8
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
 public static void GetMonitorPhysicalSize(MonitorHandle monitor, out int widthMM, out int heightMM)
 {
     glfwGetMonitorPhysicalSize(monitor, out widthMM, out heightMM);
     CheckError(nameof(GetMonitorPhysicalSize));
 }
コード例 #9
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
 public static void GetMonitorWorkarea(MonitorHandle monitor, out int x, out int y, out int width, out int height)
 {
     glfwGetMonitorWorkarea(monitor, out x, out y, out width, out height);
     CheckError(nameof(GetMonitorWorkarea));
 }
コード例 #10
0
 private static extern void glfwGetMonitorWorkarea(MonitorHandle monitor, out int x, out int y, out int width, out int height);
コード例 #11
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
 public static void SetWindowMonitor(WindowHandle window, MonitorHandle monitor, int x, int y, int width, int height, int refresh)
 {
     glfwSetWindowMonitor(window, monitor, x, y, width, height, refresh);
     CheckError(nameof(SetWindowMonitor));
 }
コード例 #12
0
 private static extern void glfwSetGamma(MonitorHandle monitor, float gamma);
コード例 #13
0
 private static extern IntPtr glfwGetVideoMode(MonitorHandle monitor);
コード例 #14
0
 private static extern VideoMode *glfwGetVideoModes(MonitorHandle monitor, out int count);
コード例 #15
0
 private static extern char *glfwGetMonitorName(MonitorHandle monitor);
コード例 #16
0
 private static extern void glfwGetMonitorContentScale(MonitorHandle monitor, out float xScale, out float yScale);
コード例 #17
0
 private static extern void glfwGetMonitorPhysicalSize(MonitorHandle monitor, out int widthMM, out int heightMM);
コード例 #18
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
 public static void SetGamma(MonitorHandle monitor, float gamma)
 {
     glfwSetGamma(monitor, gamma);
     CheckError(nameof(SetGamma));
 }
コード例 #19
0
 private static extern void glfwSetWindowMonitor(WindowHandle window, MonitorHandle monitor, int x, int y, int width, int height, int refresh);
コード例 #20
0
 private static extern void glfwGetMonitorPos(MonitorHandle monitor, out int x, out int y);
コード例 #21
0
ファイル: Glfw.cs プロジェクト: Chamberlain91/Heirloom
 public static void GetMonitorPosition(MonitorHandle monitor, out int x, out int y)
 {
     glfwGetMonitorPos(monitor, out x, out y);
     CheckError(nameof(GetMonitorPosition));
 }
コード例 #22
0
 private static extern WindowHandle glfwCreateWindow(int width, int height, string title, MonitorHandle monitor, WindowHandle share);