コード例 #1
0
        public void InternalAdjustHue(double delta)
        {
            if (shape_filter == null)
            {
                shape_filter = new ColorMatrixFilter();
            }

            shape_filter.adjustHue(delta);
            this.loc.filter = shape_filter;
        }
コード例 #2
0
        public MaskScene()
        {
            mContents = new Sprite();
            addChild(mContents);

            var stageWidth  = Starling.current.stage.stageWidth;
            var stageHeight = Starling.current.stage.stageHeight;

            var touchQuad = new Quad(stageWidth, stageHeight);

            touchQuad.alpha = 0; // only used to get touch events
            addChildAt(touchQuad, 0);

            var image = new Image(Game.assets.getTexture("flight_00"));

            image.x = (stageWidth - image.width) / 2;
            image.y = 80;
            mContents.addChild(image);

            // just to prove it works, use a filter on the image.
            var cm = new ColorMatrixFilter();

            cm.adjustHue(-0.5);
            image.filter = cm;

            var scissorText = new TextField(256, 128,
                                            "Move the mouse (or a finger) over the screen to move the clipping rectangle.");

            scissorText.x = (stageWidth - scissorText.width) / 2;
            scissorText.y = 240;
            mContents.addChild(scissorText);

            var maskText = new TextField(256, 128,
                                         "Currently, Starling supports only stage-aligned clipping; more complex masks " +
                                         "will be supported in future versions.");

            maskText.x = scissorText.x;
            maskText.y = 290;
            mContents.addChild(maskText);

            var scissorRect = new Rectangle(0, 0, 150, 150);

            scissorRect.x      = (stageWidth - scissorRect.width) / 2;
            scissorRect.y      = (stageHeight - scissorRect.height) / 2 + 5;
            mContents.clipRect = scissorRect;

            mClipQuad           = new Quad(scissorRect.width, scissorRect.height, 0xff0000);
            mClipQuad.x         = scissorRect.x;
            mClipQuad.y         = scissorRect.y;
            mClipQuad.alpha     = 0.1;
            mClipQuad.touchable = false;
            addChild(mClipQuad);

            touch += onTouch;
        }
コード例 #3
0
        private void initFilters()
        {
            mFilterInfos = new Array(
                new Array("Identity", new ColorMatrixFilter()),
                new Array("Blur", new BlurFilter()),
                new Array("Drop Shadow", BlurFilter.createDropShadow()),
                new Array("Glow", BlurFilter.createGlow())
                );

            var displacementFilter = new DisplacementMapFilter(
                createDisplacementMap(mImage.width, mImage.height), null,
                BitmapDataChannel.RED, BitmapDataChannel.GREEN, 25, 25);

            mFilterInfos.push(new Array("Displacement Map", displacementFilter));

            var invertFilter = new ColorMatrixFilter();

            invertFilter.invert();
            mFilterInfos.push(new Array("Invert", invertFilter));

            var grayscaleFilter = new ColorMatrixFilter();

            grayscaleFilter.adjustSaturation(-1);
            mFilterInfos.push(new Array("Grayscale", grayscaleFilter));

            var saturationFilter = new ColorMatrixFilter();

            saturationFilter.adjustSaturation(1);
            mFilterInfos.push(new Array("Saturation", saturationFilter));

            var contrastFilter = new ColorMatrixFilter();

            contrastFilter.adjustContrast(0.75);
            mFilterInfos.push(new Array("Contrast", contrastFilter));

            var brightnessFilter = new ColorMatrixFilter();

            brightnessFilter.adjustBrightness(-0.25);
            mFilterInfos.push(new Array("Brightness", brightnessFilter));

            var hueFilter = new ColorMatrixFilter();

            hueFilter.adjustHue(1);
            mFilterInfos.push(new Array("Hue", hueFilter));
        }