Skip to content

Commit

Permalink
fix bug in viewport dimension check
Browse files Browse the repository at this point in the history
actually, two bugs:
- upper limit was checked with bad math.
- the rectangle wasn't properly stored to self.viewport
  • Loading branch information
hwhw committed Nov 25, 2014
1 parent 078fd21 commit 2b2f704
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions ffi/framebuffer.lua
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,17 @@ end
set a rectangle that represents the area of the screen we are working on
--]]
function fb:setViewport(viewport)
if viewport.x < 0 or viewport.x >= self.screen_size.w
or viewport.y < 0 or viewport.y >= self.screen_size.h
or viewport.w < 0 or viewport.x+viewport.w >= self.screen_size.w
or viewport.h < 0 or viewport.y+viewport.h >= self.screen_size.h
if viewport.x < 0 or viewport.x > self.screen_size.w
or viewport.y < 0 or viewport.y > self.screen_size.h
or viewport.w < 0 or viewport.x+viewport.w > self.screen_size.w
or viewport.h < 0 or viewport.y+viewport.h > self.screen_size.h
then
error("bad viewport")
end
self.bb = self.bb:viewport(
self.viewport.x, self.viewport.y,
self.viewport.w, self.viewport.h)
viewport.x, viewport.y,
viewport.w, viewport.h)
self.viewport = viewport
end

function fb:calculateRealCoordinates(x, y)
Expand Down

0 comments on commit 2b2f704

Please sign in to comment.