Hi Marcus,

Thank you for your reply.

>> How do you make your apps scroll (vertically)?
>> Are there any other methods of doing this?
>
>First try setting a larger virtual y size than the visible size.

I run the vesafb at 800x600 (on an old Thinkpad), so when I use

ggiSetSimpleMode(vis,GGI_AUTO,GGI_AUTO,GGI_AUTO,GGI_AUTO,GT_AUTO);

I get a mode string (from ggiGetMode() followed by ggiSPrintMode()) which reads:

800x600.V800x600.F1.D1x1[C16/16]

But when I tried to set a "longer" (virtual y > physical y) mode by calling, e.g.,

ggiSetGraphMode(vis, 800, 600, 800, 2*600, GT_AUTO);

GGI seems to ignore my request, since mode_string still contains exactly the same 
measurements:

800x600.V800x600.F1.D1x1[C16/16]

Am I doing this wrong? Or is it a hardware limitation (my video card is getting old, 
and it only has 1MB VRAM, if I recall
correctly; I am also using univbe.exe under MS-DOS so that my card seems VESA 2.0 
compliant to the linux vesafb, although
it is only VESA 1.2 compliant)? I am using the fbdev target. And the call

ggiCheckGraphMode(vis,800,600,800,1200,GT_AUTO,&mode);   

returns -1, showing that the call of ggiSetGraphMode() with this parameters would 
really fail...

>Then you can scroll around with ggiSetOrigin(). 
>But for obvious
>reasons this won't work on all targets and mode, so then you'll
>have to resort to using ggiCopyBox(). 

>You should copy the whole
>screen at a time though, why would you want to copy a few rows
>at a time?

I wished to make reading text easy while scrolling, and I've always felt that having 
the ability to scroll line after line
is easier for the user who is reading; though this requires updating the screen in a 
more "painful" way, I guess... 

But I guess that, if I manage to get a "longer" virtual visual, I might just as well 
obtain this effect of "gradual" scrolling
by making the origin descend along the y-axis in a gradual way, right? This way I 
might avoid using ggiCopyBox() and achieve
the same effect; do you consider this to be a "good" solution to achieve the desired 
"graduality" when scrolling? 
[Was this what you meant? Or were you only referring to using ggiSetOrigin() when 
updating the whole screen?]

But if I really don't manage to get a longer virtual visual, what can I do about it? 
Must I "draw" things on bitmaps using
"normal" dynamically allocated memory and then use ggiCopyBox() to copy them onto the 
visual i.e, put them on screen? Or
is there an easier way out?

Sorry for the long email :-), and thank you for any further explanation on this issue 
which is very new to me,

Manuel

Reply via email to