mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
basic-tutorial-5: expose_cb() is now draw_cb() and gets a cairo_t directly
This commit is contained in:
parent
fce81a19a8
commit
bc810ef40f
1 changed files with 1 additions and 4 deletions
|
@ -676,16 +676,13 @@ we call it when the main window is closed, after stopping the pipeline
|
||||||
/* This function is called everytime the video window needs to be redrawn (due to damage/exposure,
|
/* This function is called everytime the video window needs to be redrawn (due to damage/exposure,
|
||||||
* rescaling, etc). GStreamer takes care of this in the PAUSED and PLAYING states, otherwise,
|
* rescaling, etc). GStreamer takes care of this in the PAUSED and PLAYING states, otherwise,
|
||||||
* we simply draw a black rectangle to avoid garbage showing up. */
|
* we simply draw a black rectangle to avoid garbage showing up. */
|
||||||
static gboolean expose_cb (GtkWidget *widget, GdkEventExpose *event, CustomData *data) {
|
static gboolean draw_cb (GtkWidget *widget, cairo_t *cr, CustomData *data) {
|
||||||
if (data->state < GST_STATE_PAUSED) {
|
if (data->state < GST_STATE_PAUSED) {
|
||||||
GtkAllocation allocation;
|
GtkAllocation allocation;
|
||||||
GdkWindow *window = gtk_widget_get_window (widget);
|
|
||||||
cairo_t *cr;
|
|
||||||
|
|
||||||
/* Cairo is a 2D graphics library which we use here to clean the video window.
|
/* Cairo is a 2D graphics library which we use here to clean the video window.
|
||||||
* It is used by GStreamer for other reasons, so it will always be available to us. */
|
* It is used by GStreamer for other reasons, so it will always be available to us. */
|
||||||
gtk_widget_get_allocation (widget, &allocation);
|
gtk_widget_get_allocation (widget, &allocation);
|
||||||
cr = gdk_cairo_create (window);
|
|
||||||
cairo_set_source_rgb (cr, 0, 0, 0);
|
cairo_set_source_rgb (cr, 0, 0, 0);
|
||||||
cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
|
cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
|
||||||
cairo_fill (cr);
|
cairo_fill (cr);
|
||||||
|
|
Loading…
Reference in a new issue