glTexStorage2D(object_target(),
init_mip_levels,
util::gl_internal_format(in_desc._format),
in_desc._size.x, in_desc._size.y);
// no error reported
for (unsigned i = 0; i < init_mip_levels; ++i) {
math::vec2ui lev_size = util::mip_level_dimensions(in_desc._size, i);
const void* init_lev_data = in_initial_mip_level_data[i];
glTexSubImage2D(object_target(),
i,
0, 0,
lev_size.x, lev_size.y,
gl_base_format,
gl_base_type,
init_lev_data);
// WORKAROUND /////////////////////////////////////
if (i == 0) glGenerateMipmap(object_target());
}
// still no errors reported