From nobody Tue Feb 10 18:54:54 2026 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=1693388416; cv=none; d=zohomail.com; s=zohoarc; b=fVNBJLLUUwSt3LoTcn2AKZ5PHWc3ZeaCBrcDqaFX+UX49GPXzwpp0InVw6/8wLp+ZdIGVVBzMPxb1cqClyb1Hv/+vyiUkwflMMMFoyFO/P125ag54ozDk29dCYw1/Rjt3A8mxaJTzIaqdPvcVOqQgVkyP+YVPxTPRQ2xgDcYKfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1693388416; 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=kREA1uDLF535/rflSilnavzXlFr0WslJU8Ryzc8+m3M=; b=j1Xjf52eUoWr0ZP4Ts3H9L+xEsnxDYJcH3Y1qIKS5Js5v17qeelnzaeGrBq4CkLXa+e2k1H6G/prH2XDFvmVBm4qCcXzJU62wPngaAPmXnisCyywDwaqJLcPwZiPVf0/BLhnUhpg2w+e5XRo5F4+m6f7t3qUj7Gu7k+n5qKLrfA= 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 1693388416840742.5576903858446; Wed, 30 Aug 2023 02:40:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qbHfN-0007IK-4t; Wed, 30 Aug 2023 05:39:13 -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 1qbHfM-0007IB-96 for qemu-devel@nongnu.org; Wed, 30 Aug 2023 05:39:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qbHfK-0000rW-2F for qemu-devel@nongnu.org; Wed, 30 Aug 2023 05:39:12 -0400 Received: from mimecast-mx02.redhat.com (66.187.233.73 [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-582-m6_4XNmiNImPtgIbnAYNWQ-1; Wed, 30 Aug 2023 05:39:07 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 76F803811F26 for ; Wed, 30 Aug 2023 09:39:07 +0000 (UTC) Received: from localhost (unknown [10.39.208.9]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7EBEC2026D35; Wed, 30 Aug 2023 09:39:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1693388349; 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=kREA1uDLF535/rflSilnavzXlFr0WslJU8Ryzc8+m3M=; b=DTMPi+ZDc987Wt8Nf/XyduBFSIr41aVA58GfNLvwxPSfuzsrDVdVWw2HdDWS/Om8Zd2G1m 7G1YTv8vWRN8NRQK8gTkaGmY/aupnCM2A/zG1DmYkh7grcYoXnvRIpwHfPsPl5LYkO/jgf Tq+bebHZ2Zu5pHxGsR1uaBJf9eNT12Y= X-MC-Unique: m6_4XNmiNImPtgIbnAYNWQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH 05/67] ui/vc: drop have_text Date: Wed, 30 Aug 2023 13:37:39 +0400 Message-ID: <20230830093843.3531473-6-marcandre.lureau@redhat.com> In-Reply-To: <20230830093843.3531473-1-marcandre.lureau@redhat.com> References: <20230830093843.3531473-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.4 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.133.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: 1693388417095100009 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 --- 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