[Lcdproc] render_screen
Eric Pooch
epooch@cox.net
Sun Feb 4 06:57:01 2007
--Apple-Mail-3--1008499995
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
delsp=yes;
format=flowed
Hmm,
I think the problem was I was clearing the backing store in clear
also. I based my driver on MtxOrb, and accidently uncommented a
commented-out line.
Thanks for the help and sorry for the confusion
--Eric
On Feb 2, 2007, at 11:56 AM, Joris Robijn wrote:
> On 2 Feb 2007 at 0:29, Eric Pooch wrote:
>
>> Maybe somebody could explain this to me.
>>
>> As a result, the buffers are cleared immediately before any screen
>> updates are rendered. This makes the framebuffers and backing store
>> useless. I can see that this is happening when I turn full
>> debugging and
>> reporting on. It is clearing the buffers and then needs to redraw the
>> whole screen on EVERY update.
>
> Internally it is redrawn every time. But the drivers can have two
> buffers
> and they do the caching on their own. After all, they know how to
> cache.
> So they know that they don't need to send all this data to the
> display,
> preserving CPU time. The server should not hold the framebuffer,
> because
> it does know how to do special things like icons. The drivers know
> how to
> implement icons, how many it can display before it is out of custom
> characters etc... So the drivers should manage how all "things" are
> placed in the framebuffer and how custom characters definitions are
> stored.
>
> Got the idea ?
>
> Joris
>
> --
> Joris Robijn <joris@robijn.net>
> Mobile: +31 6 288 41 964
--Apple-Mail-3--1008499995
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=ISO-8859-1
<HTML><BODY style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; =
-khtml-line-break: after-white-space; "><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
">Hmm,</DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">I think the problem was I was clearing the backing =
store in clear also.=A0 I based my driver on MtxOrb, and accidently =
uncommented a commented-out line.</DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><BR></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; ">Thanks for the =
help and sorry for the confusion</DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
">--Eric</DIV><BR><DIV><DIV>On Feb 2, 2007, at 11:56 AM, Joris Robijn =
wrote:</DIV><BR class=3D"Apple-interchange-newline"><BLOCKQUOTE =
type=3D"cite"><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT face=3D"Helvetica" =
size=3D"3" style=3D"font: 12.0px Helvetica">On 2 Feb 2007 at 0:29, Eric =
Pooch wrote:</FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal =
12px/normal Helvetica; min-height: 14px; "><BR></DIV> <BLOCKQUOTE =
type=3D"cite"><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 10px; "><FONT face=3D"Helvetica" =
size=3D"3" style=3D"font: 12.0px Helvetica">Maybe somebody could explain =
this to me.</FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 10px; font: normal normal normal =
12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 10px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">As a result, the buffers are cleared immediately =
before any screen <SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 10px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">updates are rendered. This makes the framebuffers and =
backing store<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 10px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">useless. I can see that this is happening when I turn =
full debugging and<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 10px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">reporting on. It is clearing the buffers and then =
needs to redraw the<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 10px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">whole screen on EVERY update.</FONT></DIV> =
</BLOCKQUOTE><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; font: normal normal normal =
12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">Internally it is redrawn every time. But the drivers =
can have two buffers<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">and they do the caching on their own. After all, they =
know how to cache.<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">So they know that they don't need to send all this =
data to the display,<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">preserving CPU time. The server should not hold the =
framebuffer, because<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">it does know how to do special things like icons. The =
drivers know how to<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">implement icons, how many it can display before it is =
out of custom<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">characters etc... So the drivers should manage how all =
"things" are<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">placed in the framebuffer and how custom characters =
definitions are<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">stored.<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; font: normal normal normal 12px/normal Helvetica; =
min-height: 14px; "><BR></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
face=3D"Helvetica" size=3D"3" style=3D"font: 12.0px Helvetica">Got the =
idea ?</FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; font: normal normal normal =
12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">Joris</FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal =
normal normal 12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">--<SPAN =
class=3D"Apple-converted-space">=A0</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">Joris Robijn <<A =
href=3D"mailto:joris@robijn.net">joris@robijn.net</A>></FONT></DIV><DIV=
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT face=3D"Helvetica" size=3D"3" style=3D"font: =
12.0px Helvetica">Mobile: +31 6 288 41 964</FONT></DIV> =
</BLOCKQUOTE></DIV><BR></BODY></HTML>=
--Apple-Mail-3--1008499995--