From: James S. <jsi...@su...> - 2000-12-12 19:37:04
|
> I can't actually build ruby at the moment. I get errors in fbcon: eg I haven't worked on the fbcon layer yet :-( I have been working on the higher level stuff instead. In the hopes those changes will make fbcon much leaner and cleaner. > also the Makefile in drivers/video is a bit broken (tries to link .c files). Fixed. Dumb error :-( > Haven't had a chance to look at the code yet, will do later. Okay. Time to explain some things on what I plan to do and what problems I have been having. As you know when the console system was written it was based on vga text modes since that was all linux supported at the time. Because of this the console system was designed around the way the video memory was layed out for VGA text mode. What I mean is the screen buffers that store what is on each VC is in the same format as VGA text video mode. Every other driver has to translate their data in video memory to vga text mode data format and then place it in the screen buffer for the VC. For a extra performance boost for the active VC the screen buffer points directly to the VGA video memory region. What I have been doing recently is added code such that each VC can have its own font set and video resolution. Unfortunely I have been having problems with the active screen buffer for vgacon. I have been dancing around this issue since this requires alot of code rewrite for scrolling in the higher level console code. Today I see I have to face this code rewrite. Also with this code rewrite will use to get ride of that awful scrollback hack for fbcon which has been causing alot of problems. That is why I have been not working on the fbcon layer yet. So you will see changes in the next few days for a new scrolling method. First I have remove the vgacon memory = visible VC screenbuf hack. The independence of the screen buffer from the vga text mode lay out also will allow for much greater flexiablity in supporting more things like 16 bit font glyphs. What is this new scrolling method? The idea I have is to a screen buffer laided out as follows: ------------ | | | | |----------| | Visible | ---> translate ---> Video memory layout | | |----------| | | | | |----------| We expand the screenbuf such that it is larger than the screen resolution in rows by columns. Scrolling is still a two part process. First we move the pointer that describes the we the visiable screen is. Then we still have the hardware hook in struct consw to pan the video mode. Then we draw the new data in the screen buffer to video memory. The part that is tricky is when we reach the bottom. Most people tell me they still want to be able to scroll back, even when they VC switch away and come back. To still retain some scroll back I have this idea: |---------| |---------| | | |*********| | | | | <- Non visible moved as well to allow scroll | | |---------| back |`````````| --> | Visible | | | |---------| |---------| | | | Visible | | | |---------| |---------| Any suggestions ? BTW it is synced with test12. Vojtech joydev.c is broken. I have been working on the video stuff so I haven't had time to fix it. Also sparc is really really broken :-( Lots of work to do. |