Example #1
0
 /// <summary>
 ///     Writes variable device to the display
 /// </summary>
 /// <param name="vinfo">A populated <see cref="FbVarScreenInfo" /></param>
 public void PutVarScreenInfo(FbVarScreenInfo vinfo)
 {
     if (DisplayIoctl.Ioctl(_handle, IoctlDisplayCommand.PutVariableScreenInfo, ref vinfo) == -1)
     {
         throw new UnixException();
     }
 }
Example #2
0
        internal HardwareDisplayDriver(string devicePath)
        {
            DevicePath = devicePath;

            _handle = UnsafeNativeMethods.Open(DevicePath, 0, UnixFileMode.WriteOnly);

            _vinfo = GetVarScreenInfo();
            _finfo = GetFixedScreenInfo();

            VisibleWidth  = (int)_vinfo.VisibleResolutionX;
            VisibleHeight = (int)_vinfo.VisibleResolutionY;
            VirtualWidth  = (int)_vinfo.VirtualResolutionX;
            VirtualHeight = (int)_vinfo.VirtualResolutionY;
            Framebuffer   = new HardwareFramebuffer(devicePath, VisibleWidth, VisibleHeight, VirtualWidth, VirtualHeight);

            _vinfo.AccelFlags         = 0x01;
            _vinfo.Width              = 0xFFFFFFFF;
            _vinfo.Height             = 0xFFFFFFFF;
            _vinfo.Rotate             = 1;
            _vinfo.PixClock           = 160000000;
            _vinfo.VisibleResolutionX = 1872;
            _vinfo.VisibleResolutionY = 1404;
            _vinfo.LeftMargin         = 32;
            _vinfo.RightMargin        = 326;
            _vinfo.UpperMargin        = 4;
            _vinfo.LowerMargin        = 12;
            _vinfo.HSyncLen           = 44;
            _vinfo.VSyncLen           = 1;
            _vinfo.Sync         = FbSync.None;
            _vinfo.VMode        = FbVMode.NonInterlaced;
            _vinfo.BitsPerPixel = sizeof(short) * 8;
            _vinfo.AccelFlags   = 0;

            PutVarScreenInfo(_vinfo);
        }
Example #3
0
        /// <summary>
        ///     Reads variable device information from the display
        /// </summary>
        /// <returns>A populated <see cref="FbVarScreenInfo" /></returns>
        public FbVarScreenInfo GetVarScreenInfo()
        {
            var vinfo = new FbVarScreenInfo();

            if (DisplayIoctl.Ioctl(_handle, IoctlDisplayCommand.GetVariableScreenInfo, ref vinfo) == -1)
            {
                throw new UnixException();
            }
            return(vinfo);
        }
 public static extern int Ioctl(SafeUnixHandle handle, IoctlDisplayCommand request, ref FbVarScreenInfo data);