Skip to content

Commit

Permalink
Widgets|libappfw: Ensure painter clipping rectangle is valid
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed May 1, 2017
1 parent f223711 commit 3f8a495
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions doomsday/sdk/libappfw/src/painter.cpp
Expand Up @@ -107,19 +107,19 @@ void Painter::setModelViewProjection(Matrix4f const &mvp)

void Painter::setNormalizedScissor(Rectanglef const &normScissorRect)
{
DENG2_ASSERT(normScissorRect.left() >= 0);
DENG2_ASSERT(normScissorRect.right() <= 1);
DENG2_ASSERT(normScissorRect.top() >= 0);
DENG2_ASSERT(normScissorRect.bottom() <= 1);
d->normScissorRect = normScissorRect & Rectanglef(0, 0, 1, 1);

d->normScissorRect = normScissorRect;
DENG2_ASSERT(d->normScissorRect.left() >= 0);
DENG2_ASSERT(d->normScissorRect.right() <= 1);
DENG2_ASSERT(d->normScissorRect.top() >= 0);
DENG2_ASSERT(d->normScissorRect.bottom() <= 1);

Rectangleui const vp = GLState::current().viewport();

Rectangleui scis = Rectangleui(Vector2ui(normScissorRect.left() * vp.width(),
normScissorRect.top() * vp.height()),
Vector2ui(std::ceil(normScissorRect.right() * vp.width()),
std::ceil(normScissorRect.bottom() * vp.height())))
Rectangleui scis = Rectangleui(Vector2ui(d->normScissorRect.left() * vp.width(),
d->normScissorRect.top() * vp.height()),
Vector2ui(std::ceil(d->normScissorRect.right() * vp.width()),
std::ceil(d->normScissorRect.bottom() * vp.height())))
.moved(vp.topLeft);

scis = GLState::current().target().scaleToActiveRect(scis);
Expand Down

0 comments on commit 3f8a495

Please sign in to comment.