From: Thomas Winischhofer <thomas@winischhofer.net>
To: Antonino Daplas <adaplas@pol.net>
Cc: James Simmons <jsimmons@infradead.org>,
Sven Luther <luther@dpt-info.u-strasbg.fr>,
Linux Fbdev development list
<linux-fbdev-devel@lists.sourceforge.net>
Subject: Re: Some questions
Date: Fri, 07 Mar 2003 21:51:41 +0100 [thread overview]
Message-ID: <3E69065D.3090706@winischhofer.net> (raw)
In-Reply-To: 1047067923.1226.26.camel@localhost.localdomain
Antonino Daplas wrote:
> On Fri, 2003-03-07 at 23:19, Thomas Winischhofer wrote:
>
>>This works - perfectly, I must say.
>>
>>However, the scrolling problem is still here, but I think I know the
>>reason for this:
>>
>>Imagine a console of 120x40 (using the std 8x16 font), on a screen of
>>1024x768, using ypanning.
>>
>>This uses only 40*16=640 pixels vertically instead of the 768 available.
>>
>>The problem is the y panning, and is kind of both console's as well as
>>the driver's fault:
>>
>>When the y panning area reaches its end, it's supposed to copy the
>>screen to the beginning of this area and pan to position 0.
>>
>>However, fbcon calculates p->vrows by info->var.yres_virtual / fontheight.
>>
>>This disregards the fact that the visible screen area is actually larger
>>than the area console is supposed to use.
>
>
> I've tested where the virtual window size is much smaller than the
> physical dimensions, and I do see the glitch you mentioned. But it's
> mainly due to clear_margins(). clear_margins always erases a constant
> amount (physical_height - actual height). So if you happen to pan just
> enough that there's not enough screen estate left, it will attempt to
> clear past yres_virtual. Bad for drivers that do not implement
> clipping. Perhaps, block moves are involved here also, I'm not sure.
1) Sisfb does no clipping, but there is plenty of video RAM past the
virtual area.
2) I don't think we are talking about the same thing. Clear_margins()
(which I haven't looked at, I confess) assumingly ... erm.. clears the
margins. But why is it involved in scrolling any panning?
> So your patch has the correct idea, but here's a simpler one. It just
> reserves enough screen estate equal to difference of physical height and
> virtual height. I've tested this even using stty cols 2, and it works
> okay.
I don't see why this is simpler, but I do see it wastes a lot of screen
space :)
BTW:
p->vrows = info->var.yres_virtual / vc->vc_font.height;
+ p->vrows -= info->var.yres - vc->vc_rows;
Look:
rows = 40
yres = 768
yres_v = 2048
font height = 16
vrows = 2048 / 16 = 128 (character unit)
128 - (768 - 40)
is negative...
Personally, I'd go with my first patch from earlier today. I tested this
intensively in the meantime, and it Simpy Works(tm).
> NOTE: Since we need var->yres, this time, we need to refer to info->var
> instead of the adjusted var.
>
> BTW: I've tested moving clear_margins before panning, it still doesn't
> remove the onrushing text past the virtual window height. This would
> seem to need clipping to remove that eyesore.
Honestly, I don't consider this important... But I thought you'd simply
exchange the order of calling pan_var and drawing the characters...
(which IMHO would be the correct order, logically speaking)
Thomas
--
Thomas Winischhofer
Vienna/Austria
mailto:thomas@winischhofer.net *** http://www.winischhofer.net
-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger
for complex code. Debugging C/C++ programs can leave you feeling lost and
disoriented. TotalView can help you find your way. Available on major UNIX
and Linux platforms. Try it free. www.etnus.com
next prev parent reply other threads:[~2003-03-07 20:51 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-05 12:18 Some questions Thomas Winischhofer
2003-03-05 13:26 ` Antonino Daplas
2003-03-05 14:06 ` Thomas Winischhofer
2003-03-05 15:25 ` Antonino Daplas
2003-03-05 15:37 ` Thomas Winischhofer
2003-03-05 15:44 ` Geert Uytterhoeven
2003-03-05 15:59 ` Thomas Winischhofer
2003-03-05 16:06 ` Geert Uytterhoeven
2003-03-05 16:34 ` Antonino Daplas
2003-03-05 16:06 ` Antonino Daplas
2003-03-05 16:17 ` Thomas Winischhofer
2003-03-05 16:44 ` Antonino Daplas
2003-03-05 17:01 ` Geert Uytterhoeven
2003-03-05 19:25 ` James Simmons
2003-03-05 19:27 ` James Simmons
2003-03-05 15:40 ` Geert Uytterhoeven
2003-03-05 15:54 ` Antonino Daplas
2003-03-05 19:31 ` James Simmons
2003-03-05 15:48 ` Antonino Daplas
2003-03-05 19:43 ` James Simmons
2003-03-05 22:21 ` Thomas Winischhofer
2003-03-06 0:18 ` James Simmons
2003-03-06 9:03 ` Thomas Winischhofer
2003-03-06 1:18 ` Antonino Daplas
2003-03-06 1:18 ` Antonino Daplas
2003-03-06 8:49 ` Thomas Winischhofer
2003-03-06 9:12 ` Geert Uytterhoeven
2003-03-06 9:58 ` Antonino Daplas
2003-03-06 10:14 ` Geert Uytterhoeven
2003-03-06 10:30 ` Antonino Daplas
2003-03-06 9:26 ` Antonino Daplas
2003-03-06 9:43 ` Thomas Winischhofer
2003-03-06 10:05 ` Antonino Daplas
2003-03-06 10:31 ` Sven Luther
2003-03-06 10:48 ` Antonino Daplas
2003-03-06 10:51 ` Antonino Daplas
2003-03-06 11:40 ` Sven Luther
2003-03-06 13:25 ` Antonino Daplas
2003-03-06 15:25 ` James Simmons
2003-03-06 15:27 ` James Simmons
2003-03-07 12:08 ` Thomas Winischhofer
2003-03-07 12:21 ` Geert Uytterhoeven
2003-03-07 18:19 ` James Simmons
2003-03-07 14:01 ` Antonino Daplas
2003-03-07 15:19 ` Thomas Winischhofer
2003-03-07 16:19 ` Antonino Daplas
2003-03-07 17:00 ` Thomas Winischhofer
2003-03-07 17:42 ` Antonino Daplas
2003-03-07 18:31 ` James Simmons
2003-03-07 17:49 ` Thomas Winischhofer
2003-03-11 16:23 ` James Simmons
2003-03-07 20:12 ` Antonino Daplas
2003-03-07 20:51 ` Thomas Winischhofer [this message]
2003-03-08 0:58 ` Antonino Daplas
2003-03-08 5:40 ` Antonino Daplas
2003-03-08 14:11 ` Thomas Winischhofer
2003-03-08 14:20 ` Thomas Winischhofer
2003-03-08 22:03 ` Antonino Daplas
2003-03-09 3:47 ` Thomas Winischhofer
2003-03-09 6:18 ` Antonino Daplas
2003-03-07 18:30 ` James Simmons
2003-03-11 16:07 ` James Simmons
2003-03-11 21:03 ` Thomas Winischhofer
2003-03-05 19:16 ` James Simmons
2003-03-05 19:30 ` Geert Uytterhoeven
2003-03-05 19:34 ` James Simmons
2003-03-05 22:13 ` Thomas Winischhofer
2003-03-05 23:53 ` James Simmons
2003-03-06 8:33 ` Geert Uytterhoeven
2003-03-06 9:00 ` Sven Luther
2003-03-06 9:03 ` Antonino Daplas
2003-03-11 16:29 ` James Simmons
2003-03-11 20:07 ` Antonino Daplas
2003-03-11 20:56 ` Thomas Winischhofer
2003-03-11 21:45 ` Antonino Daplas
2003-03-11 22:23 ` Thomas Winischhofer
2003-03-11 22:51 ` Antonino Daplas
2003-03-12 0:07 ` Michel Dänzer
2003-03-12 1:02 ` Antonino Daplas
2003-03-12 1:29 ` Michel Dänzer
2003-03-12 8:24 ` Geert Uytterhoeven
2003-03-12 15:56 ` Michel Dänzer
2003-03-11 22:27 ` Thomas Winischhofer
2003-03-11 22:51 ` Antonino Daplas
2003-03-11 23:12 ` Thomas Winischhofer
2003-03-05 14:12 ` Geert Uytterhoeven
2003-03-05 14:18 ` Thomas Winischhofer
2003-03-05 14:16 ` Thomas Winischhofer
2003-03-05 15:25 ` Antonino Daplas
2003-03-05 14:22 ` Thomas Winischhofer
2003-03-05 19:02 ` James Simmons
2003-03-06 1:18 ` Antonino Daplas
2003-03-05 18:57 ` James Simmons
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3E69065D.3090706@winischhofer.net \
--to=thomas@winischhofer.net \
--cc=adaplas@pol.net \
--cc=jsimmons@infradead.org \
--cc=linux-fbdev-devel@lists.sourceforge.net \
--cc=luther@dpt-info.u-strasbg.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).