Ejemplo n.º 1
0
        private void BuildFX()
        {
            Effects.InitAll(Device);
            _fx = Effects.ColorFX;

            _tech = _fx.ColorTech;
        }
Ejemplo n.º 2
0
 public ColorMatrixFilter(ColorMatrix matrix = null)
 {
     if (matrix != null)
     {
         ColorEffect.Matrix = matrix;
         ColorEffect.UpdateShaderMatrix();
     }
 }
Ejemplo n.º 3
0
        internal void UpdateImage()
        {
            if (Table == null)
            {
                return;
            }

            Bitmap bm      = new Bitmap(1, Scanlines);
            int    counter = 0;

            foreach (HDMATableEntry entry in Table)
            {
                if (entry.ValueType == TableValueType.End)
                {
                    break;
                }
                if (entry.ValueType == TableValueType.Single)
                {
                    for (int y = counter; y < counter + entry.Scanlines - 0x80 && y < Scanlines; y++)
                    {
                        for (int x = 0; x < bm.Width; x++)
                        {
                            bm.SetPixel(x, y, Color.FromArgb(
                                            ColorEffect.HasFlag(ColorHDMAValues.Red) ? (entry.Values[y] & 0x1F) * 8 : 0,
                                            ColorEffect.HasFlag(ColorHDMAValues.Green) ? (entry.Values[y] & 0x1F) * 8 : 0,
                                            ColorEffect.HasFlag(ColorHDMAValues.Blue) ? (entry.Values[y] & 0x1F) * 8 : 0));
                        }
                    }
                    counter += entry.Scanlines - 0x80;
                }
                else if (entry.ValueType == TableValueType.db)
                {
                    for (int y = counter; y < counter + entry.Scanlines && y < Scanlines; y++)
                    {
                        for (int x = 0; x < bm.Width; x++)
                        {
                            bm.SetPixel(x, y, Color.FromArgb(
                                            ColorEffect.HasFlag(ColorHDMAValues.Red) ? (entry.Values[0] & 0x1F) * 8 : 0,
                                            ColorEffect.HasFlag(ColorHDMAValues.Green) ? (entry.Values[0] & 0x1F) * 8 : 0,
                                            ColorEffect.HasFlag(ColorHDMAValues.Blue) ? (entry.Values[0] & 0x1F) * 8 : 0));
                        }
                    }
                    counter += entry.Scanlines;
                }
                else
                {
                    //fixme exception
                    throw new HDMAException();
                }
            }

            Bitmap retImg = new Bitmap(256, Scanlines);

            using (TextureBrush brush = new TextureBrush(bm, WrapMode.Tile))
                using (Graphics gr = Graphics.FromImage(retImg))
                    gr.FillRectangle(brush, 0, 0, retImg.Width, retImg.Height);
            EffectImage = retImg;
        }
Ejemplo n.º 4
0
 public BoundarySystem(GraphicsDevice device, EffectFactory effectFactory, IComponentContainer <DebugInfo> components, IComponentContainer <Bounds> bounds)
 {
     this.Device     = device;
     this.Components = components;
     this.Bounds     = bounds;
     this.Effect     = effectFactory.Construct <ColorEffect>();
     this.Bound      = new BoundsDrawer3D(device);
     this.Quad       = new BoundsDrawer2D(device);
 }
Ejemplo n.º 5
0
        public BoundarySystem(GraphicsDevice device, EffectFactory effectFactory, IComponentContainer <DebugInfo> debugInfos, IList <IComponentContainer> containers)
            : base(debugInfos, containers)
        {
            this.Device = device;
            this.Effect = effectFactory.Construct <ColorEffect>();

            this.Bounds = new BoundsDrawer3D(device);
            this.Quad   = new BoundsDrawer2D(device);
        }
Ejemplo n.º 6
0
        public LineSystem(GraphicsDevice device, EffectFactory effectFactory, IComponentContainer <DebugLine> components)
        {
            this.Device     = device;
            this.Components = components;

            this.Effect = effectFactory.Construct <ColorEffect>();

            this.vertices = new VertexPosition[0];
            this.indices  = new short[0];
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Update the control
        /// </summary>
        /// <param name="gameTime">Time since last update</param>
        public virtual void Update(GameTime gameTime)
        {
            if (this.FadeEffect != null)
            {
                FadeEffect.Apply(gameTime);
            }

            if (this.ColorEffect != null)
            {
                ColorEffect.Apply(gameTime);
            }
        }
Ejemplo n.º 8
0
        public static ColorMatrix GetColorMatrixBlend(this ColorEffect effect, ColorEffect blendEffect, float ratio)
        {
            var a = GetColorMatrixElements(effect, 1.0f);
            var b = GetColorMatrixElements(blendEffect, 1.0f);

            for (var x = 0; x < 5; x++)
            {
                for (var y = 0; y < 5; y++)
                {
                    a[x][y] = a[x][y] * (1.0f - ratio) + b[x][y] * ratio;
                }
            }
            return(new ColorMatrix(a));
        }
Ejemplo n.º 9
0
        public static float[][] GetColorMatrixElements(this ColorEffect effect, float alpha)
        {
            switch (effect)
            {
            case ColorEffect.Grayscale:
                return(new float[][]
                {
                    new float[] { .3f, .3f, .3f, 0, 0 },
                    new float[] { .59f, .59f, .59f, 0, 0 },
                    new float[] { .11f, .11f, .11f, 0, 0 },
                    new float[] { 0, 0, 0, alpha, 0 },
                    new float[] { 0, 0, 0, 0, 1 }
                });

            case ColorEffect.Sepia:
                return(new float[][]
                {
                    new float[] { 0.393f, 0.349f, 0.272f, 0, 0 },
                    new float[] { 0.769f, 0.686f, 0.534f, 0, 0 },
                    new float[] { 0.189f, 0.168f, 0.131f, 0, 0 },
                    new float[] { 0, 0, 0, alpha, 0 },
                    new float[] { 0, 0, 0, 0, 1 }
                });

            case ColorEffect.IntenseColor:
                return(new float[][]
                {
                    new float[] { 2.0f, -.5f, -.5f, 0.0f, 0.0f },
                    new float[] { -.5f, 2.0f, -.5f, 0.0f, 0.0f },
                    new float[] { -.5f, -.5f, 2.0f, 0.0f, 0.0f },
                    new float[] { 0.0f, 0.0f, 0.0f, alpha, 0.0f },
                    new float[] { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }
                });

            default:
                return(new float[][]
                {
                    new float[] { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f },
                    new float[] { 0.0f, 1.0f, 0.0f, 0.0f, 0.0f },
                    new float[] { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f },
                    new float[] { 0.0f, 0.0f, 0.0f, alpha, 0.0f },
                    new float[] { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }
                });
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="channel"></param>
        /// <param name="table"></param>
        /// <returns></returns>
        public override string Code(int Channel, HDMATable Table, bool SA1)
        {
            string tablename = "";

            if (ColorEffect.HasFlag(ColorHDMAValues.Red))
            {
                tablename += "Red";
            }
            if (ColorEffect.HasFlag(ColorHDMAValues.Green))
            {
                tablename += "Green";
            }
            if (ColorEffect.HasFlag(ColorHDMAValues.Blue))
            {
                tablename += "Blue";
            }

            return(ColorHDMA.Code(Channel, Table, SA1, "." + tablename + "Table"));
        }
Ejemplo n.º 11
0
        public SkullDemo(IntPtr hInstance) : base(hInstance)
        {
            _vb   = null;
            _ib   = null;
            _fx   = null;
            _tech = null;
            //_fxWVP = null;
            _inputLayout     = null;
            _wireframeRS     = null;
            _skullIndexCount = 0;
            _theta           = 1.5f * MathF.PI;
            _phi             = 0.1f * MathF.PI;
            _radius          = 20.0f;

            MainWindowCaption = "Skull Demo";

            _lastMousePos = new Point(0, 0);

            _view       = Matrix.Identity;
            _proj       = Matrix.Identity;
            _skullWorld = Matrix.Translation(0.0f, -2.0f, 0.0f);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// config the snapshot
        /// </summary>
        /// <param name="wb">WhiteBalance</param>
        /// <param name="ev">explosure value</param>
        /// <param name="contrast">Contrast</param>
        /// <param name="ce">ColorEffect</param>
        /// <param name="sharp">Sharpness</param>
        /// <returns>True if succeed</returns>
        public bool ConfigSnapshot(WhiteBalance wb, EV ev, Contrast contrast, ColorEffect ce, Sharpness sharp)
        {
            byte[] writeBuffer = new byte[5];

            writeBuffer[0] = (byte)wb;
            writeBuffer[1] = (byte)ev;
            writeBuffer[2] = (byte)contrast;
            writeBuffer[3] = (byte)ce;
            writeBuffer[4] = (byte)sharp;

            CreatCommand(5, CMD_SNAPSHOT_CONFIG);
            CreatCommand(writeBuffer);

            SendCommand(id_cmd);
            SendCommand(para_cmd);

            if (!ReceiveACK(CMD_SNAPSHOT_CONFIG, 100))
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 13
0
 /// <summary>
 /// Changes the hue of the image. Typical values are in the range(-1, 1).
 /// </summary>
 public void AdjustHue(float hue)
 {
     ColorEffect.Matrix.AdjustHue(hue);
     ColorEffect.UpdateShaderMatrix();
     SetRequiresRedraw();
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Changes the brightness. Typical values are in the range(-1, 1). Values above zero will make the
 /// image brighter, values below zero will make it darker.
 /// </summary>
 public void AdjustBrightness(float brightness)
 {
     ColorEffect.Matrix.AdjustBrightness(brightness);
     ColorEffect.UpdateShaderMatrix();
     SetRequiresRedraw();
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Changes the contrast. Typical values are in the range(-1, 1). Values above zero will raise,
 /// values below zero will reduce the contrast.
 /// </summary>
 public void AdjustContrast(float contrast)
 {
     ColorEffect.Matrix.AdjustContrast(contrast);
     ColorEffect.UpdateShaderMatrix();
     SetRequiresRedraw();
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Changes the saturation. Typical values are in the range(-1, 1). Values above zero will raise,
 /// values below zero will reduce the saturation. '-1' will produce a grayscale image.
 /// </summary>
 public void AdjustSaturation(float saturation)
 {
     ColorEffect.Matrix.AdjustSaturation(saturation);
     ColorEffect.UpdateShaderMatrix();
     SetRequiresRedraw();
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Inverts the colors of the filtered objects.
 /// </summary>
 public void Invert()
 {
     ColorEffect.Matrix.Invert();
     ColorEffect.UpdateShaderMatrix();
     SetRequiresRedraw();
 }
Ejemplo n.º 18
0
        /// <summary>
        ///
        /// </summary>
        internal void UseCollection()
        {
            //http://www.codeproject.com/Articles/20018/Gradients-made-easy
            List <ColorPosition> _list = new List <ColorPosition>(ColorsPositions);

            if (_list.Count < 2)
            {
                return;
            }

            _list.Sort();

            if (_list[0].Position != 0)
            {
                _list.Insert(0, new ColorPosition(0, 0));
            }
            if (_list[_list.Count - 1].Position < Scanlines)
            {
                _list.Add(new ColorPosition(Scanlines, 0));
            }

            List <float> positions = new List <float>();
            //positions.Add(0.0f);

            int maxpos = _list.Max(cp => cp.Position);

            foreach (ColorPosition cp in _list)
            {
                positions.Add((float)cp.Position / (float)maxpos);
            }
            //positions.Add(1.0f);

            List <float> factors = new List <float>();

            //factors.Add(0.0f);
            foreach (ColorPosition cp in _list)
            {
                factors.Add((float)cp.Value8Bit / 248.0f);
            }
            //factors.Add(1.0f);

            Bitmap bm = new Bitmap(1, maxpos);

            using (Graphics g = Graphics.FromImage(bm))
            {
                Rectangle r = new Rectangle(0, 0, bm.Width, maxpos);
                using (LinearGradientBrush lgb = new LinearGradientBrush(r, Color.FromArgb(_list.Min(cp => cp.Orignal8Bit), 0, 0), Color.FromArgb(_list.Max(cp => cp.Orignal8Bit), 0, 0), 90.0f))
                {
                    Blend blend = new Blend();
                    blend.Factors   = factors.ToArray();
                    blend.Positions = positions.ToArray();
                    lgb.Blend       = blend;
                    g.FillRectangle(lgb, r);
                }
            }

            byte Compare = (byte)(bm.GetPixel(0, 0).R / 8);

            Table = new HDMATable();

            for (int y = 0, scan = 1; y < maxpos; y++, scan++)
            {
                byte fivebit = (byte)(bm.GetPixel(0, y).R / 8);
                if (Compare != fivebit || scan >= 0x80 || y == maxpos - 1)
                {
                    Table.Add(new HDMATableEntry(TableValueType.db, (byte)scan, (byte)((byte)ColorEffect | Compare)));
                    Compare = fivebit;
                    scan    = 0;
                }

                //fixme
                for (int x = 0; x < bm.Width; x++)
                {
                    bm.SetPixel(x, y, Color.FromArgb(
                                    ColorEffect.HasFlag(ColorHDMAValues.Red) ? fivebit * 8 : 0,
                                    ColorEffect.HasFlag(ColorHDMAValues.Green) ? fivebit * 8 : 0,
                                    ColorEffect.HasFlag(ColorHDMAValues.Blue) ? fivebit * 8 : 0));
                }
            }

            Table.Add(HDMATableEntry.End);

            Bitmap retImg = new Bitmap(256, maxpos);

            using (TextureBrush brush = new TextureBrush(bm, WrapMode.Tile))
                using (Graphics gr = Graphics.FromImage(retImg))
                    gr.FillRectangle(brush, 0, 0, retImg.Width, retImg.Height);

            bm.Dispose();
            EffectImage = retImg;
        }
Ejemplo n.º 19
0
        public bool IsTouchDelay() => default;        // 0x00B0A4A0-0x00B0A5A0

        public void SetColorEffect(ColorEffect eColorEffect)
        {
        }                                                               // 0x00B0A5A0-0x00B0A5B0
Ejemplo n.º 20
0
        public void HandleTouch(TouchStatus status, UserInteractionState?userInteractionState = null)
        {
            if (IsCanceled || _effect == null)
            {
                return;
            }

            if (_effect?.IsDisabled ?? true)
            {
                return;
            }

            _effect.HandleTouch(status);
            if (userInteractionState.HasValue)
            {
                _effect.HandleUserInteraction(userInteractionState.Value);
            }

            if (!_effect.NativeAnimation)
            {
                return;
            }

            if (_longTapStarted && !_tapCompleted)
            {
                return;
            }

            var control    = _effect.Control;
            var nativeView = Platform.GetOrCreateRenderer(control)?.NativeView as Widget;

            if (nativeView == null)
            {
                return;
            }

            if (status == TouchStatus.Started)
            {
                var startColor = nativeView.BackgroundColor;
                if (startColor.IsDefault)
                {
                    return;
                }

                var endColor = _effect.NativeAnimationColor.ToNative();;
                if (endColor.IsDefault)
                {
                    startColor = EColor.FromRgba(startColor.R, startColor.G, startColor.B, startColor.A / 2);
                    endColor   = startColor;
                }

                Transit transit = new Transit
                {
                    Repeat   = 1,
                    Duration = .2
                };
                var colorEffect = new ColorEffect(startColor, endColor);
                colorEffect.EffectEnded += (s, e) => { transit?.Dispose(); };
                transit.Objects.Add(nativeView);
                transit.AddEffect(colorEffect);
                transit.Go(.2);
            }
        }
Ejemplo n.º 21
0
        private void DrawServerEntry(ServerInfo currentEntry)
        {
            ColorEffect.StartPaintingServer(currentEntry);
            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[0]));
            if (GUILayout.Button("▶"))
            {
                if (currentEntry.Password)
                {
                    _selectedServerId = currentEntry.Id;
                }
                else
                {
                    NetworkServerList.IntroduceToServer(currentEntry.Id);
                    Display = false;
                }
            }

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[1]));
            if (currentEntry.Password)
            {
                GUILayout.Label(KeyIcon, GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[1]));
            }
            else
            {
                GUILayout.Label("", GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[1]));
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[2]));
            GUILayout.Label(new GUIContent($"{currentEntry.Country}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[2]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[3]));
            GUILayout.Label(new GUIContent($"{currentEntry.DedicatedServer}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[3]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[4]));
            GUILayout.Label(new GUIContent($"{currentEntry.DisplayedPing}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[4]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[5]));
            GUILayout.Label(new GUIContent($"{currentEntry.PlayerCount}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[5]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[6]));
            GUILayout.Label(new GUIContent($"{currentEntry.MaxPlayers}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[6]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[7]));
            GUILayout.Label(new GUIContent($"{(GameMode)currentEntry.GameMode}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[7]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[8]));
            GUILayout.Label(new GUIContent($"{(WarpMode)currentEntry.WarpMode}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[8]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[9]));
            GUILayout.Label(new GUIContent($"{(TerrainQuality)currentEntry.TerrainQuality}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[9]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[10]));
            GUILayout.Label(new GUIContent($"{currentEntry.Cheats}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[10]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[11]));
            GUILayout.Label(new GUIContent($"{currentEntry.ServerName}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[11]));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[12]));
            if (!string.IsNullOrEmpty(currentEntry.Website))
            {
                if (GUILayout.Button(new GUIContent(currentEntry.WebsiteText), GetCorrectHyperlinkLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[12])))
                {
                    Application.OpenURL(currentEntry.Website);
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUILayout.MinWidth(HeaderGridSize[13]));
            GUILayout.Label(new GUIContent($"{currentEntry.Description}"), GetCorrectLabelStyle(currentEntry), GUILayout.MinWidth(HeaderGridSize[13]));
            GUILayout.EndHorizontal();

            ColorEffect.StopPaintingServer();
        }
Ejemplo n.º 22
0
 public static ColorMatrix GetColorMatrix(this ColorEffect effect, float alpha = 1.0f)
 {
     return(new ColorMatrix(effect.GetColorMatrixElements(alpha)));
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Concatenates the current matrix with another one.
 /// </summary>
 public void ConcatColorMatrix(ColorMatrix colorMatrix)
 {
     ColorEffect.Matrix.ConcatColorMatrix(colorMatrix);
     ColorEffect.UpdateShaderMatrix();
     SetRequiresRedraw();
 }
Ejemplo n.º 24
0
 private void Start()
 {
     dM = this.gameObject.GetComponent <DialogueManager>();
     cE = this.gameObject.GetComponent <ColorEffect>();
     wE = this.gameObject.GetComponent <WaveEffect>();
 }
Ejemplo n.º 25
0
        public void HandleTouch(TouchStatus status, TouchInteractionStatus?touchInteractionStatus = null)
        {
            if (IsCanceled || effect == null)
            {
                return;
            }

            if (effect?.IsDisabled ?? true)
            {
                return;
            }

            if (touchInteractionStatus == TouchInteractionStatus.Started)
            {
                effect?.HandleUserInteraction(TouchInteractionStatus.Started);
                touchInteractionStatus = null;
            }

            effect.HandleTouch(status);
            if (touchInteractionStatus.HasValue)
            {
                effect.HandleUserInteraction(touchInteractionStatus.Value);
            }

            if (!effect.NativeAnimation)
            {
                return;
            }

            if (longTapStarted && !tapCompleted)
            {
                return;
            }

            var control = effect.Element;

            if (!(Platform.GetOrCreateRenderer(control)?.NativeView is Widget nativeView))
            {
                return;
            }

            if (status == TouchStatus.Started)
            {
                var startColor = nativeView.BackgroundColor;
                if (startColor.IsDefault)
                {
                    return;
                }

                var endColor = effect.NativeAnimationColor.ToNative();
                if (endColor.IsDefault)
                {
                    startColor = EColor.FromRgba(startColor.R, startColor.G, startColor.B, startColor.A / 2);
                    endColor   = startColor;
                }

                var transit = new Transit
                {
                    Repeat   = 1,
                    Duration = .2
                };
                var colorEffect = new ColorEffect(startColor, endColor);
                colorEffect.EffectEnded += (s, e) => { transit?.Dispose(); };
                transit.Objects.Add(nativeView);
                transit.AddEffect(colorEffect);
                transit.Go(.2);
            }
        }
Ejemplo n.º 26
0
 public static extern bool MagGetColorEffect(IntPtr hwnd, ref ColorEffect pEffect);