ScissorRenderState* ScissorRenderState::Current() { IRender& render = Render::Instance(); ScissorRenderState* state = new ScissorRenderState(); state->Enable(render.GetBoolean(GraphicsBooleanName::ScissorTest)); Rect2I scissorBox; render.GetIntegerArray(GraphicsIntegerArrayName::ScissorBox, scissorBox.GetBuffer()); state->SetScissorBox(Rect2F(scissorBox.Origin.X, scissorBox.Origin.Y, scissorBox.Size.Width, scissorBox.Size.Height)); return state; }
Rect2F SkeletonSlot::CalculateBoundingBox() { if (mAttachment != nullptr&&mAttachment->Type() == SkeletonAttachmentType::BoundingBox) { SkeletonBoundingBoxAttachmentModel* boundingBox = (SkeletonBoundingBoxAttachmentModel*)mAttachment; const List<Point2F>& vertices = boundingBox->Polygon().Vertices(); RangeF rangeX; RangeF rangeY; for(auto pos: vertices) { pos = TransformToWorld(pos); rangeX.Expand(pos.X); rangeY.Expand(pos.Y); } return Rect2F(rangeX.Min, rangeY.Min, rangeX.Length(), rangeY.Length()); } return Rect2F::Zero; }
NormalLayer* normalLayer = new NormalLayer(); float winWidth = ResolutionAdapter::Instance().WinWidth(); float winHeight = ResolutionAdapter::Instance().WinHeight(); //back ground FOR_EACH_UINT32(i, mChildCount) { Sprite* child = NodeFactory::Instance().CreateSprite(FileIdRef("Background.jpg", i)); child->SetPositionX(winWidth*i); normalLayer->AddChild(child); } //foreground mComponent = ComponentFactory::Instance().Create<ParallaxScrollComponent>(); mComponent->Initialize(Rect2F(Point2F::Zero, Size2F(winWidth*mChildCount, winHeight)), ResolutionAdapter::Instance().WinRect(), ScrollDirection::HorizontalFromLeft, true); Sprite* mainSprite = NodeFactory::Instance().CreateSprite("test2.png"); mainSprite->DockToScreen(DockPoint::MiddleTop); mainSprite->SetAnchorPoint(AnchorPoint::MiddleTop); normalLayer->AddChild(mainSprite); FOR_EACH_SIZE(i, mChildCount) { Sprite* child = NodeFactory::Instance().CreateSprite("test2.png"); child->SetAnchorPoint(AnchorPoint::MiddleTop); child->SetPosition(mainSprite->Position()); child->MoveY(-child->Height()*(i + 1)); normalLayer->AddChild(child); Point3F ratio = Point3F::One; ratio.X = (float)(mChildCount-i) / mChildCount;
void IScrollMathModel::Initialize(const Size2F& containerSize, const Rect2F& window) { Initialize(Rect2F(Point2F::Zero, containerSize), window); }
void ILayoutable::UpdateLayout(const Size2F& availableSize/*=Size2F::Zero*/) { Measure(availableSize); ArrangeRecursively(Rect2F(Point2F::Zero,mMeasuredSize)); }
Rect2F ProgressBarNode::GetBoundingBox() { CCSize size= this->getContentSize(); return Rect2F(0.f,0.f,size.width,size.height); }
void ScrollPanel::OnUpdateScrollBar() { { bool isShowHorizontal = false; switch (mHorizontalScrollBarVisibility) { case ScrollBarVisibility::Disabled: if (mHorizontalScrollBar != nullptr) { DeleteChild(mHorizontalScrollBar); mHorizontalScrollBar = nullptr; } break; case ScrollBarVisibility::VisibleIfNeed: case ScrollBarVisibility::Auto: isShowHorizontal = mScrollModel->NeedHorizontalScrollBar(); if (!isShowHorizontal&&mHorizontalScrollBar != nullptr&&mHorizontalScrollBar->IsVisible()) { mHorizontalScrollBar->StopAllActions(); mHorizontalScrollBar->SetVisible(false); } break; case ScrollBarVisibility::AlwaysVisible: isShowHorizontal = true; break; default: break; } if (isShowHorizontal) { float offset = mScrollModel->HorizontalScrollBarOffset(); float scrollBarWidth = mScrollModel->HorizontalScrollBarWidth(); if (mHorizontalScrollBar == nullptr) { mHorizontalScrollBar = (INode*)NodeFactory::Instance().CreateRect( Rect2F(0, 0, 1, mHorizontalScrollBarHeight), mScrollBarColor); mHorizontalScrollBar->SetName(MEDUSA_PREFIX(HorizontalScrollBar)); mHorizontalScrollBar->SetPosition(Point3F::Zero); mHorizontalScrollBar->EnableManaged(); AddChild(mHorizontalScrollBar); } mHorizontalScrollBar->SetSize(1, mHorizontalScrollBarHeight); mHorizontalScrollBar->SetScaleX(scrollBarWidth); mHorizontalScrollBar->SetPositionX(offset); mHorizontalScrollBar->SetPositionY(0.f); if (mVerticalScrollBarVisibility == ScrollBarVisibility::Auto) { IScrollMathModel::ScrollState state = mScrollModel->State(); switch (state) { case IScrollMathModel::ScrollState::None: mHorizontalScrollBar->SetOpacity(0.f); break; case IScrollMathModel::ScrollState::Begin: break; case IScrollMathModel::ScrollState::StaticScroll: case IScrollMathModel::ScrollState::Scrolling: case IScrollMathModel::ScrollState::Spring: if (Math::IsZero(mHorizontalScrollBar->Opacity())) { mHorizontalScrollBar->StopAllActions(); mHorizontalScrollBar->RunAction(new FadeBySpeedAction(mScrollBarOpacityFadeSpeed)); } break; case IScrollMathModel::ScrollState::End: mHorizontalScrollBar->StopAllActions(); mHorizontalScrollBar->RunAction(new FadeBySpeedAction(-mScrollBarOpacityFadeSpeed)); break; default: break; } } } } { //vertical bool isShowVertical = false; switch (mVerticalScrollBarVisibility) { case ScrollBarVisibility::Disabled: if (mVerticalScrollBar != nullptr) { DeleteChild(mVerticalScrollBar); mVerticalScrollBar = nullptr; } break; case ScrollBarVisibility::VisibleIfNeed: case ScrollBarVisibility::Auto: isShowVertical = mScrollModel->NeedVerticalScrollBar(); if (!isShowVertical&&mVerticalScrollBar != nullptr&&mVerticalScrollBar->IsVisible()) { mVerticalScrollBar->StopAllActions(); mVerticalScrollBar->SetVisible(false); } break; case ScrollBarVisibility::AlwaysVisible: isShowVertical = true; break; default: break; } if (isShowVertical) { float offset = mScrollModel->VerticalScrollBarOffset(); float scrollBarHeight = mScrollModel->VerticalScrollBarHeight(); if (mVerticalScrollBar == nullptr) { mVerticalScrollBar = (INode*)NodeFactory::Instance().CreateRect(Rect2F(0, 0, mVerticalScrollBarWidth, 1), mScrollBarColor); mVerticalScrollBar->SetName(MEDUSA_PREFIX(VerticalScrollBar)); mVerticalScrollBar->SetPosition(Point3F::Zero); mVerticalScrollBar->SetPositionX(mSize.Width - mVerticalScrollBarWidth); mVerticalScrollBar->EnableManaged(); AddChild(mVerticalScrollBar); } mVerticalScrollBar->SetSize(mVerticalScrollBarWidth, 1); mVerticalScrollBar->SetScaleY(scrollBarHeight); mVerticalScrollBar->SetPositionX(mSize.Width - mVerticalScrollBarWidth); mVerticalScrollBar->SetPositionY(offset); if (mVerticalScrollBarVisibility == ScrollBarVisibility::Auto) { IScrollMathModel::ScrollState state = mScrollModel->State(); switch (state) { case IScrollMathModel::ScrollState::None: mVerticalScrollBar->SetOpacity(0.f); break; case IScrollMathModel::ScrollState::Begin: break; case IScrollMathModel::ScrollState::StaticScroll: case IScrollMathModel::ScrollState::Scrolling: case IScrollMathModel::ScrollState::Spring: if (Math::IsZero(mVerticalScrollBar->Opacity())) { mVerticalScrollBar->StopAllActions(); mVerticalScrollBar->RunAction(new FadeBySpeedAction(mScrollBarOpacityFadeSpeed)); } break; case IScrollMathModel::ScrollState::End: mVerticalScrollBar->StopAllActions(); mVerticalScrollBar->RunAction(new FadeBySpeedAction(-mScrollBarOpacityFadeSpeed)); break; default: break; } } } } }