From patchwork Fri Mar 1 09:00:40 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gerd Hoffmann X-Patchwork-Id: 224254 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 388B92C029C for ; Fri, 1 Mar 2013 20:03:06 +1100 (EST) Received: from localhost ([::1]:49247 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UBLrs-0006tI-4R for incoming@patchwork.ozlabs.org; Fri, 01 Mar 2013 04:03:04 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43602) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UBLpl-0003oo-Gw for qemu-devel@nongnu.org; Fri, 01 Mar 2013 04:00:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UBLph-000325-Tx for qemu-devel@nongnu.org; Fri, 01 Mar 2013 04:00:53 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39917) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UBLpg-000318-Hr for qemu-devel@nongnu.org; Fri, 01 Mar 2013 04:00:49 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r2190lea009254 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 1 Mar 2013 04:00:47 -0500 Received: from rincewind.home.kraxel.org (ovpn-116-72.ams2.redhat.com [10.36.116.72]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r2190kP8028860; Fri, 1 Mar 2013 04:00:47 -0500 Received: by rincewind.home.kraxel.org (Postfix, from userid 500) id 1F33740EFE; Fri, 1 Mar 2013 10:00:44 +0100 (CET) From: Gerd Hoffmann To: qemu-devel@nongnu.org Date: Fri, 1 Mar 2013 10:00:40 +0100 Message-Id: <1362128443-15687-10-git-send-email-kraxel@redhat.com> In-Reply-To: <1362128443-15687-1-git-send-email-kraxel@redhat.com> References: <1362128443-15687-1-git-send-email-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: Gerd Hoffmann Subject: [Qemu-devel] [RfC PATCH 09/12] console: add surface_*() getters X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Add convinence wrappers to query DisplaySurface properties. Simliar to ds_get_*, but operating in the DisplaySurface not the DisplayState. With this patch in place ui frontents can stop using DisplayState in the rendering code paths, they can simply operate using the DisplaySurface passed in via dpy_gfx_switch callback. Signed-off-by: Gerd Hoffmann --- include/ui/console.h | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/include/ui/console.h b/include/ui/console.h index f15a541..ab59e15 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -244,36 +244,66 @@ void dpy_mouse_set(struct DisplayState *s, int x, int y, int on); void dpy_cursor_define(struct DisplayState *s, QEMUCursor *cursor); bool dpy_cursor_define_supported(struct DisplayState *s); +static inline int surface_stride(DisplaySurface *s) +{ + return pixman_image_get_stride(s->image); +} + +static inline void *surface_data(DisplaySurface *s) +{ + return pixman_image_get_data(s->image); +} + +static inline int surface_width(DisplaySurface *s) +{ + return pixman_image_get_width(s->image); +} + +static inline int surface_height(DisplaySurface *s) +{ + return pixman_image_get_height(s->image); +} + +static inline int surface_bits_per_pixel(DisplaySurface *s) +{ + int bits = PIXMAN_FORMAT_BPP(s->format); + return bits; +} + +static inline int surface_bytes_per_pixel(DisplaySurface *s) +{ + int bits = PIXMAN_FORMAT_BPP(s->format); + return (bits + 7) / 8; +} + static inline int ds_get_linesize(DisplayState *ds) { - return pixman_image_get_stride(ds->surface->image); + return surface_stride(ds->surface); } static inline uint8_t* ds_get_data(DisplayState *ds) { - return (void *)pixman_image_get_data(ds->surface->image); + return surface_data(ds->surface); } static inline int ds_get_width(DisplayState *ds) { - return pixman_image_get_width(ds->surface->image); + return surface_width(ds->surface); } static inline int ds_get_height(DisplayState *ds) { - return pixman_image_get_height(ds->surface->image); + return surface_height(ds->surface); } static inline int ds_get_bits_per_pixel(DisplayState *ds) { - int bits = PIXMAN_FORMAT_BPP(ds->surface->format); - return bits; + return surface_bits_per_pixel(ds->surface); } static inline int ds_get_bytes_per_pixel(DisplayState *ds) { - int bits = PIXMAN_FORMAT_BPP(ds->surface->format); - return (bits + 7) / 8; + return surface_bytes_per_pixel(ds->surface); } static inline pixman_format_code_t ds_get_format(DisplayState *ds)