* 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-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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.