Skip to main content

The "draw_surface_scaled_ext" Function


draw_surface_scaled_ext(surf, x, y, ratio, min, max, rot, col, alpha);
surfsurfaceThe surface to draw scaled
xrealThe horizontal room coordinate at which to draw the surface
yrealThe vertical room coordinate at which to draw the surface
ratiorealPercentage of the view to occupy, as a value ranging from 0-1
minrealMinimum allowable ratio, or percentage of the view
maxrealMaximum allowable ratio, or percentage of the view
rotrealThe surface rotation angle, in degrees
colcolorThe surface blending color to draw, where c_white is default
alpharealThe surface transparency, ranging from 0-1


Draws a surface scaled relative to the size of the active view camera. Ratio is calculated as a percentage of view width OR height (whichever is greater), with a value of 1 fully covering the view at any aspect (e.g. for backgrounds).

Because this ratio alone may result in surfaces smaller or larger than desirable on one axis, a min and max ratio can also be supplied to limit size on the other axis than is calculated for the base ratio (e.g. for HUD elements). If max is set to 0, clamping will be disabled.

Also returns the scale multiplier, which can be used to position or scale other elements relative to the drawn surface.


Because surface data is volatile, surfaces are likely to be destroyed if the window is resized. Always check if a surface exists before drawing, and include regeneration code if it does not.


draw_surface_scaled_ext(my_surf, x, y, 0.25, 0.15, 0.5, 0, c_white, 1);