* help about the display iterator.
@ 2009-01-15 18:21 A. Soare
2009-01-16 15:21 ` Chong Yidong
0 siblings, 1 reply; 4+ messages in thread
From: A. Soare @ 2009-01-15 18:21 UTC (permalink / raw)
To: Emacs Help [help-gnu-emacs]; +Cc: Emacs Dev [emacs-devel]
Hello,
Please, can somebody make me a brief resume ( in a few words ) about how the `display iterator' works?
I saw that the low-level functions of the display of emacs there are called from `redisplay internal', which is called mainly from `redisplay' and from `redisplay_preserve_echo_area'.
I did understand that every line is filled with glyphs in `display_line' using an interator structure.
However, I do not understand the mechanism from `redisplay_ineternal' (I have the impression that it's this function that creates the desired_matrix of glyphs) and refresh the display.
Thanks in advance.
____________________________________________________Avec Voila, réalisez en toute simplicité votre videoblog ! http://video.voila.fr/mktg/?op=videoblog
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: help about the display iterator.
2009-01-15 18:21 help about the display iterator A. Soare
@ 2009-01-16 15:21 ` Chong Yidong
0 siblings, 0 replies; 4+ messages in thread
From: Chong Yidong @ 2009-01-16 15:21 UTC (permalink / raw)
To: alinsoar; +Cc: Emacs Help [help-gnu-emacs], Emacs Dev [emacs-devel]
"A. Soare" <alinsoar@voila.fr> writes:
> However, I do not understand the mechanism from `redisplay_ineternal'
> (I have the impression that it's this function that creates the
> desired_matrix of glyphs) and refresh the display.
You'll have to be more specific in asking these sorts of questions, I'm
afraid. Have you looked at the commentary at the beginning of xdisp.c?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: help about the display iterator.
@ 2009-01-16 17:24 A. Soare
2009-01-16 17:38 ` joakim
0 siblings, 1 reply; 4+ messages in thread
From: A. Soare @ 2009-01-16 17:24 UTC (permalink / raw)
To: Chong Yidong; +Cc: Emacs Dev [emacs-devel]
Thanks.
Yes, I have read the beginning of xdisp.c.
I have also saw the trace of redisplay_internal. I did saw that redisplay_internal is the function that created the desired_matrix, i.e. the new image of the next refresh of screen. And also from redisplay_internal are called the low-level graphical functions that send the image to the video card.
What confuses me very hard is the number of variables that appear inside redisplay_internal. I do not understand where to start reading this function. For example, when I see
/* The flag redisplay_performed_directly_p is set by
direct_output_for_insert when it already did the whole screen
update necessary. */
if (redisplay_performed_directly_p)
{
redisplay_performed_directly_p = 0;
if (!hscroll_windows (selected_window))
return;
}
I understand that when redisplay_internal is called after direct_output_for_insert, redisplay_internal stops here. But direct_output_for_insert is never called on my emacs. I use GTK+ now.
So it is almost impossible to understand what happens just looking at the code.
To be more specific, let us consider this simple case: suppose that I use the console, not graphics, and that I press the key 'x'; could you make me a brief description of the trace of the code, starting from the moment when the function read_char forces redisplay, until the character is send to the phisical display?
Thanks in advance for any help.
Alin.
>
> "A. Soare" <alinsoar@voila.fr> writes:
>
> > However, I do not understand the mechanism from `redisplay_ineternal'
> > (I have the impression that it's this function that creates the
> > desired_matrix of glyphs) and refresh the display.
>
> You'll have to be more specific in asking these sorts of questions, I'm
> afraid. Have you looked at the commentary at the beginning of xdisp.c?
>
>
____________________________________________________Avec Voila, réalisez en toute simplicité votre videoblog ! http://video.voila.fr/mktg/?op=videoblog
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: help about the display iterator.
2009-01-16 17:24 A. Soare
@ 2009-01-16 17:38 ` joakim
0 siblings, 0 replies; 4+ messages in thread
From: joakim @ 2009-01-16 17:38 UTC (permalink / raw)
To: alinsoar; +Cc: Emacs Dev [emacs-devel]
"A. Soare" <alinsoar@voila.fr> writes:
> I understand that when redisplay_internal is called after direct_output_for_insert, redisplay_internal stops here. But direct_output_for_insert is never called on my emacs. I use GTK+ now.
>
> So it is almost impossible to understand what happens just looking at the code.
>
> To be more specific, let us consider this simple case: suppose that I use the console, not graphics, and that I press the key 'x'; could you make me a brief description of the trace of the code, starting from the moment when the function read_char forces redisplay, until the character is send to the phisical display?
>
> Thanks in advance for any help.
I dont claim to understand how redisplay actually works, but I did
manage to make a patch that modifies redisplay so its possible to insert
GTK widgets inside the text of an emacs buffer.
I did this by sprinkling trace code inside emacs to see what happens
during redisplay. To have a clear view of what modifications I have
done, I have a local bzr branch.
I agree that its not possible to just read the code and understand what
it does.
This doesnt answer your question, but maybe you can get some ideas.
>
> Alin.
>
>
>
>
>
>>
>> "A. Soare" <alinsoar@voila.fr> writes:
>>
>> > However, I do not understand the mechanism from `redisplay_ineternal'
>> > (I have the impression that it's this function that creates the
>> > desired_matrix of glyphs) and refresh the display.
>>
>> You'll have to be more specific in asking these sorts of questions, I'm
>> afraid. Have you looked at the commentary at the beginning of xdisp.c?
>>
>>
>
>
> ____________________________________________________Avec Voila, réalisez en toute simplicité votre videoblog ! http://video.voila.fr/mktg/?op=videoblog
>
>
>
>
--
Joakim Verona
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-01-16 17:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-15 18:21 help about the display iterator A. Soare
2009-01-16 15:21 ` Chong Yidong
-- strict thread matches above, loose matches on Subject: below --
2009-01-16 17:24 A. Soare
2009-01-16 17:38 ` joakim
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).