Ticket #10852 (new enhancement)

Opened 4 years ago

Last modified 21 months ago

Automatic integer-factor scaling under full-screen mode

Reported by: twipley Owned by:
Priority: major Component: other
Version: VirtualBox 4.1.20 Keywords:
Cc: Guest type: other
Host type: other


Replying to DrD:

When running games such as starcraft (and very likely any game set to a lower resolution then the screen's potential), virtualbox fails to scale the image up to fullscreen in full screen mode. Game (or application at hand) remains in a smaller window (at it's running resolution) without scaling up to full screen as it should in these situations. The remaining space is occupied by black borders surrounding said application.

It is to be remembered, though, that the best scaling method is integer-factor scaling -- in other words, through the mapping of individual pixels to larger (2x2, 3x3, 4x4, and so forth) blocks of like-value pixels.

Such an automatic "zoom-in magnifying," if it may be put that way, while under full-screen mode would continue to feature black bordering, although a much-larger area of the screen would be put to good use.

It has to be noted, though, that this is already achievable through reducing host resolution, for example from 1920x1080 to 960x540, although it could be argued such a method is not that suited for long-term purposes.

Underlying mechanisms (although mileages may vary) of the implementation would be for a check, triggered by definite conditions, to be performed in order to determine whether native width and height in pixels is great enough for integer-factor scaling to take place, then for the largest suitable scaling to be performed.

Such an implementation would be adapted both to text-mode cases (for example, full-screen Windows-XP command consoles, and various DOS guests), and to classic-video-game cases (StarCraft is to be restated) -- such code would indeed operate great for lots of past games, in which output resolution is of 640x480, and for which double-scaling would be a viable solution, that is, in relation to current-generation modern monitors.

Change History

comment:1 Changed 3 years ago by twipley

In fact, multiple options might be implemented:

  • no scaling (default; output remains at its original resolution; the remaining area is black);
  • stretching the output to fill the monitor display area (with regard to maintaining aspect ratio);
  • stretching the output to fill the monitor display area (without regard to maintaining aspect ratio);
  • integer-factor scaling (which may, or may not, be heavy on the processor or on the graphics card).
Last edited 3 years ago by twipley (previous) (diff)

comment:2 Changed 21 months ago by twipley23

Arrangement of scaling options could be:

1) checkbox to enable automatic scaling in fullscreen;

2) checkbox to restrict scaling factors to integer values.

When 1) is selected but not 2), the largest possible scaling is performed, although preserving aspect ratio.

Last edited 21 months ago by twipley23 (previous) (diff)

comment:3 Changed 21 months ago by twipley23

If I could, I'd rewrite the ticket to simplify things a little bit.

Scaling methods are to be distinguished. This ticket proposes nearest-neighbor scaling, which is known to produce best results in integer-factor scaling scenarios. This is the reason nearest-neighbor should be selectable as a scaling method, together with integer scale factors such as 200.0%.

Automatic scaling as an option, according to the guest-side resolution of the moment, is something more but nobody has ever given input on this matter here besides me in the last few years, as far as I am aware of. Personally, I could well do without. But, it remains that nearest-neighbor and integer-factor scaling should, in the long term, be selectable as options in any respectable scaling module.

Some forum threads, for reference:

Note: See TracTickets for help on using tickets.
ContactPrivacy policyTerms of Use