2015-07-07 13:06 GMT+03:00 Tomohito Esaki <[email protected]>: > The screenshooter encoder wrote the output from either top-to-bottom or > bottom-to-top, depending on the Y-flip setting, but wcap-decode only > decodes from bottom-to-top. Make the encoder always output from > bottom-to-top, to match the decoder, and flip the input (source) > according to the Y-flip setting.
I tried removing the WESTON_CAP_CAPTURE_YFLIP cap in the gl-renderer and manually flipping the image after the glReadPixels and indeed the output of wcap-decode was inverted. This patch fixes the issue and looks good to me. Reviewed-by: Giulio Camuffo <[email protected]> > > Signed-off-by: Tomohito Esaki <[email protected]> > --- > src/screenshooter.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/src/screenshooter.c b/src/screenshooter.c > index b7b8dce..6dae12f 100644 > --- a/src/screenshooter.c > +++ b/src/screenshooter.c > @@ -417,14 +417,14 @@ weston_recorder_frame_notify(struct wl_listener > *listener, void *data) > compositor->read_format, recorder->rect, > r[i].x1, y_orig, width, height); > > - s = recorder->rect; > p = outbuf; > run = prev = 0; /* quiet gcc */ > for (j = 0; j < height; j++) { > if (do_yflip) > - y_orig = r[i].y2 - j - 1; > + s = recorder->rect + width * j; > else > - y_orig = r[i].y1 + j; > + s = recorder->rect + width * (height - j - 1); > + y_orig = r[i].y2 - j - 1; > d = recorder->frame + stride * y_orig + r[i].x1; > > for (k = 0; k < width; k++) { > -- > 1.8.0 > > _______________________________________________ > wayland-devel mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
