public void NeedsLayout()
        {
            OnSprite.Position    = new CCPoint(OnSprite.ContentSize.Width / 2 + sliderXPosition, OnSprite.ContentSize.Height / 2);
            OffSprite.Position   = new CCPoint(OnSprite.ContentSize.Width + OffSprite.ContentSize.Width / 2 + sliderXPosition, OffSprite.ContentSize.Height / 2);
            ThumbSprite.Position = new CCPoint(OnSprite.ContentSize.Width + sliderXPosition, MaskSprite.ContentSize.Height / 2);

            if (OnLabel != null)
            {
                OnLabel.Position = new CCPoint(OnSprite.Position.X - ThumbSprite.ContentSize.Width / 6, OnSprite.ContentSize.Height / 2);
            }
            if (OffLabel != null)
            {
                OffLabel.Position = new CCPoint(OffSprite.Position.X + ThumbSprite.ContentSize.Width / 6, OffSprite.ContentSize.Height / 2);
            }

            var rt = new CCRenderTexture(
                MaskSprite.TextureRectInPixels.Size,
                MaskSprite.TextureRectInPixels.Size,
                CCSurfaceFormat.Color, CCDepthFormat.None, CCRenderTargetUsage.DiscardContents
                );

            rt.BeginWithClear(0, 0, 0, 0);

            OnSprite.Visit();
            OffSprite.Visit();

            if (OnLabel != null)
            {
                OnLabel.Visit();
            }
            if (OffLabel != null)
            {
                OffLabel.Visit();
            }

            MaskSprite.AnchorPoint = new CCPoint(0, 0);
            MaskSprite.BlendFunc   = new CCBlendFunc(CCOGLES.GL_ZERO, CCOGLES.GL_SRC_ALPHA);

            MaskSprite.Visit();

            rt.End();

            Texture = rt.Sprite.Texture;

            ContentSize = MaskSprite.ContentSize;
        }
Ejemplo n.º 2
0
        private void ProcessTag()
        {
            var tag = ReadByte();

            switch (tag)
            {
            case 0:
                _dateTime = ReadDateTime();
                _dataType = Read55AA();
                OnDateTime?.Invoke(_dateTime, _dataType);
                break;

            case 1:
                var data = ReadShort();
                ProcessValue(data);
                break;

            case 2:
                var length = ReadByte();
                var label  = ReadString(length);
                OnLabel?.Invoke(label);
                break;
            }
        }