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; }
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; } }