[Scummvm-devel] SCI: line drawing functions

Max Horn max at quendi.de
Tue Feb 24 04:39:54 CET 2009


Am 23.02.2009 um 17:14 schrieb Jordi Vilalta:

> Hi,
>
> To add a bit of background, it must be noted that FreeSCI supported
> rendering vectorial graphics to arbitrarily scaled surfaces. That
> means that it could render directly to a 640x400 with higher
> resolution than rendering to 320x200 and later scaling the bitmap.
>
> Additionally SCI has several buffers (visuals, priorities, and
> probably something more I'm missing). The most important buffers here
> are the internal ones, which interact with the game logic. Right now
> all buffers are scaled together, so all draw operations happen at the
> same resolution. While it simplifies the code it introduces
> differences in behaviour when compared to the original SCI
> interpreter. It seems most of these bugs were already fixed in FreeSCI
> but some of them remain open.

To be honest, I never understood why this would introduce differences  
if done correctly: Namely, you can just draw the same graphics  
internally whether you do this engine level scaling or not. I.e.,  
render all priority, gfx and whatever buffers at 320x200; but also  
render the GFX separately at 640x400 (or 640x480). Or is some of the  
graphics data pixel based, and only part of it vector based?

>
>
> If I recall correctly, the current SCI gfx driver for ScummVM has 1x
> scaling hardcoded because it wasn't easy to configure from the user's
> point of view, but it could be reenabled if desired. The point is: the
> engine already supports it, do we want to keep this feature or must we
> strip it? I have no preference on that, but I think some people may
> like it, and whoever doesn't like it just would have to disable it.


I think it's a very nice feature to enhance graphics quality by taking  
advantage of the fact that some of the graphics are vector data. So  
I'd like to keep this feature (and re-implement it for AGI one day).


Bye,
Max




More information about the Scummvm-devel mailing list