コード例 #1
0
        /// <inheritdoc />
        public void Refresh(Rectangle rectangle, WaveformMode mode, DisplayTemp displayTemp, UpdateMode updateMode)
        {
            Framebuffer.ConstrainRectangle(ref rectangle);
            var data = new FbUpdateData
            {
                UpdateRegion = new FbRect
                {
                    X      = (uint)rectangle.X,
                    Y      = (uint)rectangle.Y,
                    Width  = (uint)rectangle.Width,
                    Height = (uint)rectangle.Height
                },
                WaveformMode = mode,
                DisplayTemp  = displayTemp,
                UpdateMode   = updateMode,
                UpdateMarker = _updateMarker,
                DitherMode   = 0,
                QuantBit     = 0,
                Flags        = 0
            };

            var retCode = DisplayIoctl.Ioctl(_handle, IoctlDisplayCommand.SendUpdate, ref data);

            if (retCode == -1)
            {
                throw new UnixException();
            }

            _updateMarker = (uint)retCode;
        }
コード例 #2
0
        public RefreshTask(Rectangle region, WaveformMode mode)
        {
            EmulatedDevices.Display.Framebuffer.ConstrainRectangle(ref region);

            Region = region;
            Mode   = mode;
        }
コード例 #3
0
        public RefreshTask(Rectangle region, WaveformMode mode, DisplayTemp displayTemp, UpdateMode updateMode)
        {
            EmulatedDevices.Display.Framebuffer.ConstrainRectangle(ref region);

            Region      = region;
            Mode        = mode;
            DisplayTemp = displayTemp;
            UpdateMode  = updateMode;
        }
コード例 #4
0
        public void Draw(Image <Rgb24> image, Rectangle srcArea, Point destPoint, Rectangle refreshArea = default,
                         WaveformMode waveformMode = WaveformMode.Auto, DisplayTemp displayTemp = DisplayTemp.Papyrus, UpdateMode updateMode = UpdateMode.Partial)
        {
            Framebuffer.Write(image, srcArea, destPoint);

            if (refreshArea == default)
            {
                refreshArea.Location = destPoint;
                refreshArea.Size     = srcArea.Size;
            }

            Refresh(refreshArea, waveformMode, displayTemp, updateMode);
        }
コード例 #5
0
        public void Draw(Image <Rgb24> image, Rectangle srcArea, Point destPoint, Rectangle refreshArea = default,
                         WaveformMode mode = WaveformMode.Auto)
        {
            Framebuffer.Write(image, srcArea, destPoint);

            if (refreshArea == default)
            {
                refreshArea.Location = destPoint;
                refreshArea.Size     = srcArea.Size;
            }

            Refresh(refreshArea, mode);
        }
コード例 #6
0
 public void Refresh(Rectangle rectangle, WaveformMode mode, DisplayTemp displayTemp, UpdateMode updateMode)
 {
     _emulatorWindow.RefreshRegion(rectangle, mode, displayTemp, updateMode);
 }
コード例 #7
0
 public void RefreshRegion(Rectangle region, WaveformMode mode)
 {
     _refreshQueue.Enqueue(new RefreshTask(region, mode));
 }
コード例 #8
0
 public void RefreshRegion(Rectangle region, WaveformMode mode, DisplayTemp displayTemp, UpdateMode updateMode)
 {
     _refreshQueue.Enqueue(new RefreshTask(region, mode, displayTemp, updateMode));
 }
コード例 #9
0
 public void Refresh(Rectangle rectangle, WaveformMode mode)
 {
     _emulatorWindow.RefreshRegion(rectangle, mode);
 }