本文整理汇总了C#中DisplayDevice类的典型用法代码示例。如果您正苦于以下问题:C# DisplayDevice类的具体用法?C# DisplayDevice怎么用?C# DisplayDevice使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
DisplayDevice类属于命名空间,在下文中一共展示了DisplayDevice类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Load
public override void Load()
{
_screens = new List<Screen>(Screen.AllScreens);
IList<String> options = new List<String>();
options.Add("[Settings.Appearance.System.StartupScreen.DoNotUseSelection]");
foreach (Screen screen in Screen.AllScreens)
{
const int dwf = 0;
DisplayDevice info = new DisplayDevice();
string monitorname = null;
info.cb = Marshal.SizeOf(info);
if (EnumDisplayDevices(screen.DeviceName, 0, info, dwf))
monitorname = info.DeviceString;
options.Add(string.Format("{0} ({1}x{2})", monitorname, screen.Bounds.Width, screen.Bounds.Height));
}
int startupScreenNum = SettingsManager.Load<StartupSettings>().StartupScreenNum;
if (startupScreenNum < Screen.AllScreens.Length)
Selected = SettingsManager.Load<StartupSettings>().StartupScreenNum + 1;
else
Selected = 0;
_items = options.Select(LocalizationHelper.CreateResourceString).ToList();
}
示例2: SDL2GLNative
public SDL2GLNative(int x, int y, int width, int height, string title,
GraphicsMode mode,GameWindowFlags options, DisplayDevice device)
: this()
{
if (width <= 0)
throw new ArgumentOutOfRangeException("width", "Must be higher than zero.");
if (height <= 0)
throw new ArgumentOutOfRangeException("height", "Must be higher than zero.");
Debug.Indent();
IntPtr windowId;
desiredSizeX = width;
desiredSizeY = height;
isFullscreen = options.HasFlag(GameWindowFlags.Fullscreen);
if (isFullscreen)
{
FixupFullscreenRes(width,height,out width, out height);
}
lock (API.sdl_api_lock) {
API.Init (API.INIT_VIDEO);
API.VideoInit("",0);
// NOTE: Seriously, letting the user set x and y coords is a _bad_ idea. We'll let the WM take care of it.
windowId = API.CreateWindow(title, 0x1FFF0000, 0x1FFF0000, width, height, API.WindowFlags.OpenGL | ((isFullscreen)?API.WindowFlags.Fullscreen:0));
}
window = new SDL2WindowInfo(windowId);
inputDriver = new SDL2Input(window);
Debug.Unindent();
}
示例3: X11DisplayDevice
static X11DisplayDevice()
{
List<DisplayDevice> devices = new List<DisplayDevice>();
try {
xinerama_supported = QueryXinerama(devices);
} catch {
Debug.Print("Xinerama query failed.");
}
if (!xinerama_supported) {
// We assume that devices are equivalent to the number of available screens.
// Note: this won't work correctly in the case of distinct X servers.
for (int i = 0; i < API.ScreenCount; i++) {
DisplayDevice dev = new DisplayDevice();
dev.IsPrimary = i == API.XDefaultScreen(API.DefaultDisplay);
devices.Add(dev);
deviceToScreen.Add(dev, i);
}
}
try {
xrandr_supported = QueryXRandR(devices);
} catch { }
if (!xrandr_supported) {
Debug.Print("XRandR query failed, falling back to XF86.");
try {
xf86_supported = QueryXF86(devices);
} catch { }
if (!xf86_supported) {
Debug.Print("XF86 query failed, no DisplayDevice support available.");
}
}
}
示例4: LinuxNativeWindow
public LinuxNativeWindow(IntPtr display, IntPtr gbm, int fd,
int x, int y, int width, int height, string title,
GraphicsMode mode, GameWindowFlags options,
DisplayDevice display_device)
{
Debug.Print("[KMS] Creating window on display {0:x}", display);
Title = title;
display_device = display_device ?? DisplayDevice.Default;
if (display_device == null)
{
throw new NotSupportedException("[KMS] Driver does not currently support headless systems");
}
window = new LinuxWindowInfo(display, fd, gbm, display_device.Id as LinuxDisplay);
// Note: we only support fullscreen windows on KMS.
// We implicitly override the requested width and height
// by the width and height of the DisplayDevice, if any.
width = display_device.Width;
height = display_device.Height;
bounds = new Rectangle(0, 0, width, height);
client_size = bounds.Size;
if (!mode.Index.HasValue)
{
mode = new EglGraphicsMode().SelectGraphicsMode(window, mode, 0);
}
Debug.Print("[KMS] Selected EGL mode {0}", mode);
SurfaceFormat format = GetSurfaceFormat(display, mode);
SurfaceFlags usage = SurfaceFlags.Rendering | SurfaceFlags.Scanout;
if (!Gbm.IsFormatSupported(gbm, format, usage))
{
Debug.Print("[KMS] Failed to find suitable surface format, using XRGB8888");
format = SurfaceFormat.XRGB8888;
}
Debug.Print("[KMS] Creating GBM surface on {0:x} with {1}x{2} {3} [{4}]",
gbm, width, height, format, usage);
IntPtr gbm_surface = Gbm.CreateSurface(gbm,
width, height, format, usage);
if (gbm_surface == IntPtr.Zero)
{
throw new NotSupportedException("[KMS] Failed to create GBM surface for rendering");
}
window.Handle = gbm_surface;
Debug.Print("[KMS] Created GBM surface {0:x}", window.Handle);
window.CreateWindowSurface(mode.Index.Value);
Debug.Print("[KMS] Created EGL surface {0:x}", window.Surface);
cursor_default = CreateCursor(gbm, Cursors.Default);
cursor_empty = CreateCursor(gbm, Cursors.Empty);
Cursor = MouseCursor.Default;
exists = true;
}
示例5: WinDisplayDeviceDriver
new Dictionary<DisplayDevice, string>(); // Needed for ChangeDisplaySettingsEx
#region --- Constructors ---
/// <summary>Queries available display devices and display resolutions.</summary>
static WinDisplayDeviceDriver()
{
lock (display_lock)
{
// To minimize the need to add static methods to OpenTK.Graphics.DisplayDevice
// we only allow settings to be set through its constructor.
// Thus, we save all necessary parameters in temporary variables
// and construct the device when every needed detail is available.
// The main DisplayDevice constructor adds the newly constructed device
// to the list of available devices.
DisplayDevice opentk_dev;
DisplayResolution opentk_dev_current_res = null;
List<DisplayResolution> opentk_dev_available_res = new List<DisplayResolution>();
bool opentk_dev_primary = false;
int device_count = 0, mode_count = 0;
// Get available video adapters and enumerate all monitors
WindowsDisplayDevice dev1 = new WindowsDisplayDevice(), dev2 = new WindowsDisplayDevice();
while (Functions.EnumDisplayDevices(null, device_count++, dev1, 0))
{
if ((dev1.StateFlags & DisplayDeviceStateFlags.AttachedToDesktop) == DisplayDeviceStateFlags.None)
continue;
DeviceMode monitor_mode = new DeviceMode();
// The second function should only be executed when the first one fails
// (e.g. when the monitor is disabled)
if (Functions.EnumDisplaySettingsEx(dev1.DeviceName.ToString(), DisplayModeSettingsEnum.CurrentSettings, monitor_mode, 0) ||
Functions.EnumDisplaySettingsEx(dev1.DeviceName.ToString(), DisplayModeSettingsEnum.RegistrySettings, monitor_mode, 0))
{
opentk_dev_current_res = new DisplayResolution(
monitor_mode.Position.X, monitor_mode.Position.Y,
monitor_mode.PelsWidth, monitor_mode.PelsHeight,
monitor_mode.BitsPerPel, monitor_mode.DisplayFrequency);
opentk_dev_primary =
(dev1.StateFlags & DisplayDeviceStateFlags.PrimaryDevice) != DisplayDeviceStateFlags.None;
}
opentk_dev_available_res.Clear();
mode_count = 0;
while (Functions.EnumDisplaySettings(dev1.DeviceName.ToString(), mode_count++, monitor_mode))
{
DisplayResolution res = new DisplayResolution(
monitor_mode.Position.X, monitor_mode.Position.Y,
monitor_mode.PelsWidth, monitor_mode.PelsHeight,
monitor_mode.BitsPerPel, monitor_mode.DisplayFrequency);
opentk_dev_available_res.Add(res);
}
// Construct the OpenTK DisplayDevice through the accumulated parameters.
// The constructor will automatically add the DisplayDevice to the list
// of available devices.
opentk_dev = new DisplayDevice(
opentk_dev_current_res,
opentk_dev_primary,
opentk_dev_available_res,
opentk_dev_current_res.Bounds);
available_device_names.Add(opentk_dev, dev1.DeviceName);
}
}
}
示例6: WinGLNative
public WinGLNative(int x, int y, int width, int height, string title, GameWindowFlags options, DisplayDevice device)
{
WindowProcedureDelegate = WindowProcedure;
// To avoid issues with Ati drivers on Windows 6+ with compositing enabled, the context will not be
// bound to the top-level window, but rather to a child window docked in the parent.
window = new WinWindowInfo(
CreateWindow(x, y, width, height, title, options, device, IntPtr.Zero), null);
child_window = new WinWindowInfo(
CreateWindow(0, 0, ClientSize.Width, ClientSize.Height, title, options, device, window.WindowHandle), window);
exists = true;
}
示例7: TryChangeResolution
public sealed override bool TryChangeResolution(DisplayDevice device, DisplayResolution resolution)
{
DeviceMode mode = null;
if (resolution != null)
{
mode = new DeviceMode();
mode.PelsWidth = resolution.Width;
mode.PelsHeight = resolution.Height;
mode.BitsPerPel = resolution.BitsPerPixel;
mode.DisplayFrequency = (int)resolution.RefreshRate;
mode.Fields = Constants.DM_BITSPERPEL
| Constants.DM_PELSWIDTH
| Constants.DM_PELSHEIGHT
| Constants.DM_DISPLAYFREQUENCY;
}
return Constants.DISP_CHANGE_SUCCESSFUL ==
Functions.ChangeDisplaySettingsEx((string)device.Id, mode, IntPtr.Zero,
ChangeDisplaySettingsEnum.Fullscreen, IntPtr.Zero);
}
示例8: Sdl2DisplayDeviceDriver
public Sdl2DisplayDeviceDriver()
{
int displays = SDL.GetNumVideoDisplays();
for (int d = 0; d < displays; d++)
{
Rect bounds;
SDL.GetDisplayBounds(d, out bounds);
DisplayMode current_mode;
SDL.GetCurrentDisplayMode(d, out current_mode);
var mode_list = new List<DisplayResolution>();
int num_modes = SDL.GetNumDisplayModes(d);
for (int m = 0; m < num_modes; m++)
{
DisplayMode sdl_mode;
SDL.GetDisplayMode(d, m, out sdl_mode);
mode_list.Add(new DisplayResolution(
bounds.X, bounds.Y,
sdl_mode.Width, sdl_mode.Height,
TranslateFormat(sdl_mode.Format),
sdl_mode.RefreshRate));
}
var current_resolution = new DisplayResolution(
bounds.X, bounds.Y,
current_mode.Width, current_mode.Height,
TranslateFormat(current_mode.Format),
current_mode.RefreshRate);
var device = new DisplayDevice(
current_resolution, d == 0, mode_list, TranslateBounds(bounds), d);
AvailableDevices.Add(device);
if (d == 0)
Primary = device;
}
}
示例9: RefreshDisplayDevices
void RefreshDisplayDevices ()
{
List<DisplayDevice> devices = new List<DisplayDevice> ();
int numVideoDevices = 0;
lock (API.sdl_api_lock) {
numVideoDevices = API.GetNumVideoDisplays ();
}
for (int i = 0; i < numVideoDevices; ++i)
{
DisplayDevice dev = new DisplayDevice();
List<DisplayResolution> resolutions = new List<DisplayResolution>();
if (i == 0) dev.IsPrimary = true;
int numResolutions = 0;
lock (API.sdl_api_lock) {
numResolutions = API.GetNumDisplayModes(i);
}
for (int res = 0; res < numResolutions; ++res)
{
lock (API.sdl_api_lock)
{
API.DisplayMode modeRect;
API.GetDisplayMode(i, res, out modeRect);
resolutions.Add (new DisplayResolution(0, 0, modeRect.w, modeRect.h, 32, modeRect.refresh_rate));
}
}
dev.AvailableResolutions = resolutions;
devices.Add(dev);
}
AvailableDevices.Clear();
AvailableDevices.AddRange(devices);
Primary = FindDefaultDevice(devices);
}
示例10: WinGLNative
public WinGLNative(int x, int y, int width, int height, string title, GameWindowFlags options, DisplayDevice device)
{
lock (SyncRoot)
{
// This is the main window procedure callback. We need the callback in order to create the window, so
// don't move it below the CreateWindow calls.
WindowProcedureDelegate = WindowProcedure;
//// This timer callback is called periodically when the window enters a sizing / moving modal loop.
//ModalLoopCallback = delegate(IntPtr handle, WindowMessage msg, UIntPtr eventId, int time)
//{
// // Todo: find a way to notify the frontend that it should process queued up UpdateFrame/RenderFrame events.
// if (Move != null)
// Move(this, EventArgs.Empty);
//};
// To avoid issues with Ati drivers on Windows 6+ with compositing enabled, the context will not be
// bound to the top-level window, but rather to a child window docked in the parent.
window = new WinWindowInfo(
CreateWindow(x, y, width, height, title, options, device, IntPtr.Zero), null);
child_window = new WinWindowInfo(
CreateWindow(0, 0, ClientSize.Width, ClientSize.Height, title, options, device, window.WindowHandle), window);
exists = true;
keyboard.Description = "Standard Windows keyboard";
keyboard.NumberOfFunctionKeys = 12;
keyboard.NumberOfKeys = 101;
keyboard.NumberOfLeds = 3;
mouse.Description = "Standard Windows mouse";
mouse.NumberOfButtons = 3;
mouse.NumberOfWheels = 1;
keyboards.Add(keyboard);
mice.Add(mouse);
}
}
示例11: CreateNativeWindow
public INativeWindow CreateNativeWindow(int x, int y, int width, int height, string title,
GraphicsMode mode, GameWindowFlags options, DisplayDevice device)
{
return default_implementation.CreateNativeWindow(x, y, width, height, title, mode, options, device);
}
示例12: DisplayConfig
private string displayConfigFriendlyName; // provided by DisplayConfig (if supported)
/// <summary>Initializes a new <see cref="DisplayMonitor"/> instance.</summary>
/// <param name="displayDevice">A valid <see cref="DisplayDevice"/> structure.</param>
/// <param name="monitorHandle">A handle (HMONITOR) to the monitor.</param>
internal DisplayMonitor( DisplayDevice displayDevice, IntPtr monitorHandle )
: base( displayDevice )
{
info = GetMonitorInfo( handle = monitorHandle );
}
示例13: HandleTo
static internal IntPtr HandleTo(DisplayDevice displayDevice)
{
return (IntPtr)displayDevice.Id;
}
示例14: TryRestoreResolution
public bool TryRestoreResolution(DisplayDevice device)
{
return TryChangeResolution(device, null);
}
示例15: TryRestoreResolution
public override bool TryRestoreResolution(DisplayDevice device)
{
Sdl2Factory.UseFullscreenDesktop = true;
return true;
}