Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Aug 2014 14:18:11 -0700
From:      Nathan Whitehorn <nwhitehorn@freebsd.org>
To:        freebsd-current@freebsd.org
Subject:   Re: r269471 make unusable VT console
Message-ID:  <53F3BF13.7040208@freebsd.org>
In-Reply-To: <53F39F3D.9010104@FreeBSD.org>
References:  <20140812232807.0f3aa02570becec15e056af2@fbsd.es>	<20140816011444.301a98d6187aca27e3a2481b@ddteam.net> <CAJ-Vmon3OS3fY1VoHu1n_T=N9NN64U7ZsxdbCkWsXAGbdMhp0g@mail.gmail.com> <53EE9CFF.4080607@freebsd.org> <53F30DF3.1090301@dumbbell.fr> <53F37B2D.3070807@FreeBSD.org> <53F38D8E.8090605@freebsd.org> <53F39F3D.9010104@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On 08/19/14 12:02, Jean-Sébastien Pédron wrote:
> On 19.08.2014 19:46, Nathan Whitehorn wrote:
>> On 08/19/14 09:28, Jean-Sébastien Pédron wrote:
>>>       o  vt_vga introduces a new callback, vd_bitblt_text_t, which takes
>>>          as argument the text buffer, the dirty area, the font and the
>>>          cursor (position, map, colors).
>> Why is this necessary? I'd really prefer to avoid complicating this API.
>> One of the great things about writing newcons drivers is that there is
>> basically only one function you need to implement. If the current API
>> does not provide enough information to do this efficiently, I'd much
>> rather change it than add new callbacks.
> I don't want to have two callbacks for the same feature either, and I'd
> like to transition other drivers to this new one.
>
> The current bitbltchr callback only knows about one character. In the
> case of vt_vga, if this character (or the cursor) isn't aligned on
> 8-pixels boundaries, it needs to redraw several "blocks" of pixels. With
> this character-centric approach, if a block needs a redraw, it'll be
> refreshed for the character on its left side, then refreshed again for
> the character on its right side.
>
> The advantage of giving the callback the whole text/area is that it
> allows the driver to manipulate the pixels block by block, instead of
> character by character.
>
> The patch isn't finished yet. Meanwhile, I'll commit the bug fixes I
> made (especially the cursor handling in vt_flush()). But eventually, the
> plan is to convert all drivers to this new callback, if you find the new
> API sensible.
>

That sounds great. There are only a few (3?) discrete implementations of 
bitbltchr in the tree right now, so the conversion should be easy.
-Nathan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53F3BF13.7040208>