texture
a Texture.
Sets all the pixels for a given mipmap level
by copying the pixel data pointed to by the data
argument into
the given texture
.
data
should point to the first pixel to copy corresponding to the top left of the mipmap level
being set.
If rowstride
equals 0 then it will be automatically calculated from the width of the mipmap level and the bytes-per-pixel
for the given format
.
A mipmap level
of 0 corresponds to the largest, base image of a texture and level
1 is half the width and
height of level 0. If dividing any dimension of the previous level by two results in a fraction then round the number down (
floor), but clamp to 1 something like this:
next_width = MAX (1, floor (prev_width));
You can determine the number of mipmap levels for a given texture like this:
n_levels = 1 + floor (log2 (max_dimension));
Where max_dimension is the larger of get_width and get_height.
It is an error to pass a level
number >= the number of levels that texture
can have according to the above
calculation.
<note>Since the storage for a Texture is allocated lazily then if the given
texture
has not previously been allocated then this api can return false and
throw an exceptional throws if there is not enough memory to allocate storage for texture
.
</note>
format |
the PixelFormat used in the source |
rowstride |
rowstride of the source |
data |
the source data, pointing to the first top-left pixel to set |
level |
The mipmap level to update (Normally 0 for the largest, base texture) |
true if the data upload was successful, and false otherwise |