Skip to content

Commit c698762

Browse files
committed
Implement SpriteModel::fastBoundingRect()
1 parent 1601a0c commit c698762

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/spritemodel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ libscratchcpp::Rect SpriteModel::boundingRect() const
147147

148148
libscratchcpp::Rect SpriteModel::fastBoundingRect() const
149149
{
150-
return libscratchcpp::Rect(m_sprite->x(), m_sprite->y(), m_sprite->x(), m_sprite->y());
150+
return m_renderedTarget->getFastBounds();
151151
}
152152

153153
libscratchcpp::Sprite *SpriteModel::sprite() const

test/target_models/spritemodel_test.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,22 @@ TEST(SpriteModelTest, BoundingRect)
302302
ASSERT_EQ(bounds.bottom(), rect.bottom());
303303
}
304304

305+
TEST(SpriteModelTest, FastBoundingRect)
306+
{
307+
SpriteModel model;
308+
309+
RenderedTargetMock renderedTarget;
310+
model.setRenderedTarget(&renderedTarget);
311+
312+
Rect rect(-1, 1, 1, -1);
313+
EXPECT_CALL(renderedTarget, getFastBounds()).WillOnce(Return(rect));
314+
Rect bounds = model.fastBoundingRect();
315+
ASSERT_EQ(bounds.left(), rect.left());
316+
ASSERT_EQ(bounds.top(), rect.top());
317+
ASSERT_EQ(bounds.right(), rect.right());
318+
ASSERT_EQ(bounds.bottom(), rect.bottom());
319+
}
320+
305321
TEST(SpriteModelTest, RenderedTarget)
306322
{
307323
SpriteModel model;

0 commit comments

Comments
 (0)