image_mipmap - Forcetoggle image mipmap storage
nil
image_mipmap( vid, state )
Mipmapping is the common procedure of generating multiple versions
of the same image (typically at lower resolutions for each
"level") and letting the rendering subsystem determine which
version is the most suitable for the rendering operation at hand. This
usually saves on memory bandwidth at the cost of approximately a third more
memory consumption. This function enforces a certain mipmap state for a
video object. Some filtering methods, FILTER_TRILINEAR in particular,
relies on access to lower mipmap levels.
- 1
- This is a no-operation in memory conservative mode.
- 2
- The default mipmap state for all objects is determined at compile time (
ARCAN_VIDEO_DEFAULT_MIPMAP_STATE ), with hardcoded mipmap disable
defaults for frameservers and for rendertarget storage.
- 3
- The engine does not currently support manually generated mipmaps. These
can be useful in some contexts, particularly when dealing with texture
compression or when optimizing memory use through pre-pass analysis of
visibility with color-coded mipmap levels.
- 4
- This state transformation is costly with non-trivially determined
benefits. In order to reliably switch open GL backend state, a new
GL store needs to be created, thus the raw texture data is copied
and uploaded again.
function image_mipmap0()
icon = load_image("test.png");
props = image_surface_properties(icon);
icon2 = null_surface(props.width, props.height);
icon2 = image_sharestorage(icon, icon2);
show_image({icon, icon2});
resize_image(icon, props.width * 0.5, props.height * 0.5);
resize_image(icon2, props.width * 0.5, props.height * 0.5);
move_image(icon2, props.width, 0);
image_mipmap(icon2, false);
image_mipmap(icon, true);
end
function image_mipmap0()
image_mipmap(WORLDID, "potatoe");
end