From nobody Thu Nov 28 09:50:56 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1693828693; cv=none; d=zohomail.com; s=zohoarc; b=dxlwcnNp+kRjjlyELsaBW9UhcwxHQiGtU0DBq9HQYrJKmLcqai/XF7rSNUB/L5zKgM9aFl5FvMSyLaSX1KvVw+/kvsszvzTPCbbkGnZEARQLAjUANaFskhZ9wfOZ0AOq88PYjnO5dvgMMyimQBmJiVCDZLU10ZEKvBFZ8xTXf30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1693828693; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TXGp0QMTholmKSO/2mYb8qpO/fURuGBPc+i0AzL2vXE=; b=M4WbfUJ4AJibnvTcFTvLjxsPxTqR7uPM/O7DYfj86BreM4CefkBh1hjp5BObQ3cfAdTFeZIm8SdYordMXMfyCUwnOqykdhvhOPOgvHCKbUuVFUHvp1Etz0C1GGqw4WNiQI8clxNpxTj5mgu8LX4+pHhy503JyK0vZ27M0ZXwVtg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 169382869358873.19645151919508; Mon, 4 Sep 2023 04:58:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qd88v-00026m-CX; Mon, 04 Sep 2023 07:53:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qd88t-00026a-Py for qemu-devel@nongnu.org; Mon, 04 Sep 2023 07:53:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qd88r-0008Is-Gi for qemu-devel@nongnu.org; Mon, 04 Sep 2023 07:53:19 -0400 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-65-xNpIGQXGO2KU5j8YTwlSuQ-1; Mon, 04 Sep 2023 07:53:15 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2E8EA3810D23 for ; Mon, 4 Sep 2023 11:53:15 +0000 (UTC) Received: from localhost (unknown [10.39.208.42]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3A625493114; Mon, 4 Sep 2023 11:53:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1693828396; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TXGp0QMTholmKSO/2mYb8qpO/fURuGBPc+i0AzL2vXE=; b=iin1+SSRMzgeuMqnRUaXgwrb+6g/S9IaQlkWt/wf1rp3K6rc6kHm8K46nX1RlHs497/3UR 94zRrCYR28tyNngGQ26kT15XdDbb9unUzlJr9IDg8kIu/vPqNRMZ6LBmAGljrNCIsVseMW 2MeH3W3Oh/GYO9nquJceTxgV9HvrU78= X-MC-Unique: xNpIGQXGO2KU5j8YTwlSuQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Gerd Hoffmann Subject: [PULL 05/52] ui/vc: drop have_text Date: Mon, 4 Sep 2023 15:52:02 +0400 Message-ID: <20230904115251.4161397-6-marcandre.lureau@redhat.com> In-Reply-To: <20230904115251.4161397-1-marcandre.lureau@redhat.com> References: <20230904115251.4161397-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1693828694020100002 From: Marc-Andr=C3=A9 Lureau If there are no "text" listener, the callback will simply be ignored. The rest of text handling can be done cheaply. This allows to remove some dependency on DisplayState from VC implementation. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20230830093843.3531473-6-marcandre.lureau@redhat.com> --- ui/console.c | 42 +++++++++++++----------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) diff --git a/ui/console.c b/ui/console.c index a448e4d283..bec2d1a40a 100644 --- a/ui/console.c +++ b/ui/console.c @@ -133,7 +133,6 @@ struct DisplayState { uint64_t update_interval; bool refreshing; bool have_gfx; - bool have_text; =20 QLIST_HEAD(, DisplayChangeListener) listeners; }; @@ -185,7 +184,6 @@ static void gui_setup_refresh(DisplayState *ds) DisplayChangeListener *dcl; bool need_timer =3D false; bool have_gfx =3D false; - bool have_text =3D false; =20 QLIST_FOREACH(dcl, &ds->listeners, next) { if (dcl->ops->dpy_refresh !=3D NULL) { @@ -194,9 +192,6 @@ static void gui_setup_refresh(DisplayState *ds) if (dcl->ops->dpy_gfx_update !=3D NULL) { have_gfx =3D true; } - if (dcl->ops->dpy_text_update !=3D NULL) { - have_text =3D true; - } } =20 if (need_timer && ds->gui_timer =3D=3D NULL) { @@ -209,7 +204,6 @@ static void gui_setup_refresh(DisplayState *ds) } =20 ds->have_gfx =3D have_gfx; - ds->have_text =3D have_text; } =20 void graphic_hw_update_done(QemuConsole *con) @@ -456,9 +450,7 @@ static void update_xy(QemuConsole *s, int x, int y) TextCell *c; int y1, y2; =20 - if (s->ds->have_text) { - text_update_xy(s, x, y); - } + text_update_xy(s, x, y); =20 y1 =3D (s->y_base + y) % s->total_height; y2 =3D y1 - s->y_displayed; @@ -482,9 +474,7 @@ static void console_show_cursor(QemuConsole *s, int sho= w) int y, y1; int x =3D s->x; =20 - if (s->ds->have_text) { - s->cursor_invalidate =3D 1; - } + s->cursor_invalidate =3D 1; =20 if (x >=3D s->width) { x =3D s->width - 1; @@ -513,13 +503,11 @@ static void console_refresh(QemuConsole *s) TextCell *c; int x, y, y1; =20 - if (s->ds->have_text) { - s->text_x[0] =3D 0; - s->text_y[0] =3D 0; - s->text_x[1] =3D s->width - 1; - s->text_y[1] =3D s->height - 1; - s->cursor_invalidate =3D 1; - } + s->text_x[0] =3D 0; + s->text_y[0] =3D 0; + s->text_x[1] =3D s->width - 1; + s->text_y[1] =3D s->height - 1; + s->cursor_invalidate =3D 1; =20 vga_fill_rect(s, 0, 0, surface_width(surface), surface_height(surface), color_table_rgb[0][QEMU_COLOR_BLACK]); @@ -594,12 +582,10 @@ static void console_put_lf(QemuConsole *s) c++; } if (s->y_displayed =3D=3D s->y_base) { - if (s->ds->have_text) { - s->text_x[0] =3D 0; - s->text_y[0] =3D 0; - s->text_x[1] =3D s->width - 1; - s->text_y[1] =3D s->height - 1; - } + s->text_x[0] =3D 0; + s->text_y[0] =3D 0; + s->text_x[1] =3D s->width - 1; + s->text_y[1] =3D s->height - 1; =20 vga_bitblt(s, 0, FONT_HEIGHT, 0, 0, s->width * FONT_WIDTH, @@ -1069,9 +1055,7 @@ void console_select(unsigned int index) displaychangelistener_display_console(dcl, s, NULL); } } - if (ds->have_text) { - dpy_text_resize(s, s->width, s->height); - } + dpy_text_resize(s, s->width, s->height); text_console_update_cursor(NULL); } } @@ -1239,7 +1223,7 @@ static void text_console_invalidate(void *opaque) { QemuConsole *s =3D (QemuConsole *) opaque; =20 - if (s->ds->have_text && s->console_type =3D=3D TEXT_CONSOLE) { + if (s->console_type =3D=3D TEXT_CONSOLE) { text_console_resize(s); } console_refresh(s); --=20 2.41.0