public class ScissorStack extends Object
Rectangle
objects to be used for clipping via GL20.glScissor(int, int, int, int)
. When a new
Rectangle is pushed onto the stack, it will be merged with the current top of stack. The minimum area of overlap is then set as
the real top of the stack.Constructor and Description |
---|
ScissorStack() |
Modifier and Type | Method and Description |
---|---|
static void |
calculateScissors(Camera camera,
float viewportX,
float viewportY,
float viewportWidth,
float viewportHeight,
Matrix4 batchTransform,
Rectangle area,
Rectangle scissor)
|
static void |
calculateScissors(Camera camera,
Matrix4 batchTransform,
Rectangle area,
Rectangle scissor)
Calculates a scissor rectangle using 0,0,Gdx.graphics.getWidth(),Gdx.graphics.getHeight() as the viewport.
|
static Rectangle |
getViewport() |
static Rectangle |
peekScissors() |
static Rectangle |
popScissors()
Pops the current scissor rectangle from the stack and sets the new scissor area to the new top of stack rectangle.
|
static boolean |
pushScissors(Rectangle scissor)
Pushes a new scissor
Rectangle onto the stack, merging it with the current top of the stack. |
public static boolean pushScissors(Rectangle scissor)
Rectangle
onto the stack, merging it with the current top of the stack. The minimal area of
overlap between the top of stack rectangle and the provided rectangle is pushed onto the stack. This will invoke
GL20.glScissor(int, int, int, int)
with the final top of stack rectangle. In case no scissor is yet on the stack
this will also enable GL20.GL_SCISSOR_TEST
automatically.
Any drawing should be flushed before pushing scissors.
public static Rectangle popScissors()
GL20.GL_SCISSOR_TEST
is disabled.
Any drawing should be flushed before popping scissors.
public static Rectangle peekScissors()
public static void calculateScissors(Camera camera, Matrix4 batchTransform, Rectangle area, Rectangle scissor)
public static void calculateScissors(Camera camera, float viewportX, float viewportY, float viewportWidth, float viewportHeight, Matrix4 batchTransform, Rectangle area, Rectangle scissor)
Camera
, a transformation Matrix4
and
an axis aligned Rectangle
. The rectangle will get transformed by the camera and transform matrices and is then
projected to screen coordinates. Note that only axis aligned rectangles will work with this method. If either the Camera or
the Matrix4 have rotational components, the output of this method will not be suitable for
GL20.glScissor(int, int, int, int)
.public static Rectangle getViewport()
Copyright © 2015. All rights reserved.