![]() |
![]() |
![]() |
COGL Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
void cogl_clip_push_rectangle (float x0
,float y0
,float x1
,float y1
); void cogl_clip_push_window_rectangle (int x_offset
,int y_offset
,int width
,int height
); void cogl_clip_push_from_path (void
); void cogl_clip_push_from_path_preserve (void
); void cogl_clip_pop (void
); void cogl_clip_push (float x_offset
,float y_offset
,float width
,float height
); void cogl_clip_push_window_rect (float x_offset
,float y_offset
,float width
,float height
); void cogl_clip_ensure (void
); void cogl_clip_stack_save (void
); void cogl_clip_stack_restore (void
);
To support clipping your geometry to rectangles or paths Cogl exposes a stack based API whereby each clip region you push onto the stack is intersected with the previous region.
void cogl_clip_push_rectangle (float x0
,float y0
,float x1
,float y1
);
Specifies a rectangular clipping area for all subsequent drawing operations. Any drawing commands that extend outside the rectangle will be clipped so that only the portion inside the rectangle will be displayed. The rectangle dimensions are transformed by the current model-view matrix.
The rectangle is intersected with the current clip region. To undo
the effect of this function, call cogl_clip_pop()
.
|
x coordinate for top left corner of the clip rectangle |
|
y coordinate for top left corner of the clip rectangle |
|
x coordinate for bottom right corner of the clip rectangle |
|
y coordinate for bottom right corner of the clip rectangle |
Since 1.2
void cogl_clip_push_window_rectangle (int x_offset
,int y_offset
,int width
,int height
);
Specifies a rectangular clipping area for all subsequent drawing operations. Any drawing commands that extend outside the rectangle will be clipped so that only the portion inside the rectangle will be displayed. The rectangle dimensions are not transformed by the current model-view matrix.
The rectangle is intersected with the current clip region. To undo
the effect of this function, call cogl_clip_pop()
.
|
left edge of the clip rectangle in window coordinates |
|
top edge of the clip rectangle in window coordinates |
|
width of the clip rectangle |
|
height of the clip rectangle |
Since 1.2
void cogl_clip_push_from_path (void
);
Sets a new clipping area using the current path. The current path
is then cleared. The clipping area is intersected with the previous
clipping area. To restore the previous clipping area, call
cogl_clip_pop()
.
Since 1.0
void cogl_clip_push_from_path_preserve (void
);
Sets a new clipping area using the current path. The current path
is then cleared. The clipping area is intersected with the previous
clipping area. To restore the previous clipping area, call
cogl_clip_pop()
.
Since 1.0
void cogl_clip_pop (void
);
Reverts the clipping region to the state before the last call to
cogl_clip_push()
.
void cogl_clip_push (float x_offset
,float y_offset
,float width
,float height
);
cogl_clip_push
has been deprecated since version 1.2 and should not be used in newly-written code. The x, y, width, height arguments are inconsistent
with other API that specify rectangles in model space, and when used
with a coordinate space that puts the origin at the center and y+
extending up, it's awkward to use. Please use cogl_clip_push_rectangle()
instead
Specifies a rectangular clipping area for all subsequent drawing operations. Any drawing commands that extend outside the rectangle will be clipped so that only the portion inside the rectangle will be displayed. The rectangle dimensions are transformed by the current model-view matrix.
The rectangle is intersected with the current clip region. To undo
the effect of this function, call cogl_clip_pop()
.
|
left edge of the clip rectangle |
|
top edge of the clip rectangle |
|
width of the clip rectangle |
|
height of the clip rectangle |
void cogl_clip_push_window_rect (float x_offset
,float y_offset
,float width
,float height
);
cogl_clip_push_window_rect
has been deprecated since version 1.2 and should not be used in newly-written code. Use cogl_clip_push_window_rectangle()
instead
Specifies a rectangular clipping area for all subsequent drawing operations. Any drawing commands that extend outside the rectangle will be clipped so that only the portion inside the rectangle will be displayed. The rectangle dimensions are not transformed by the current model-view matrix.
The rectangle is intersected with the current clip region. To undo
the effect of this function, call cogl_clip_pop()
.
|
left edge of the clip rectangle in window coordinates |
|
top edge of the clip rectangle in window coordinates |
|
width of the clip rectangle |
|
height of the clip rectangle |
void cogl_clip_ensure (void
);
cogl_clip_ensure
has been deprecated since version 1.2 and should not be used in newly-written code. Calling this function has no effect
Ensures that the current clipping region has been set in GL. This will automatically be called before any Cogl primitives but it maybe be neccessary to call if you are using raw GL calls with clipping.
Since 1.0
void cogl_clip_stack_save (void
);
cogl_clip_stack_save
has been deprecated since version 1.2 and should not be used in newly-written code. This was originally added to allow us to save the
clip stack when switching to an offscreen framebuffer, but it's
not necessary anymore given that framebuffers now own separate
clip stacks which will be automatically switched between when a
new buffer is set. Calling this function has no effect
Save the entire state of the clipping stack and then clear all
clipping. The previous state can be returned to with
cogl_clip_stack_restore()
. Each call to cogl_clip_push()
after this
must be matched by a call to cogl_clip_pop()
before calling
cogl_clip_stack_restore()
.
Since 0.8.2
void cogl_clip_stack_restore (void
);
cogl_clip_stack_restore
has been deprecated since version 1.2 and should not be used in newly-written code. This was originally added to allow us to restore
the clip stack when switching back from an offscreen framebuffer,
but it's not necessary anymore given that framebuffers now own
separate clip stacks which will be automatically switched between
when a new buffer is set. Calling this function has no effect
Restore the state of the clipping stack that was previously saved
by cogl_clip_stack_save()
.
Since 0.8.2