- glTexImage2D(target, level, ifmt, w, h, 0, get_upload_format(fmt), type, data);
+
+ if(!allocated)
+ {
+ glTexParameteri(target, GL_TEXTURE_MAX_LEVEL, levels-1);
+ apply_swizzle();
+ }
+
+ PixelComponents comp = get_components(storage_fmt);
+ DataType type = get_component_type(storage_fmt);
+ glTexImage2D(target, level, storage_fmt, w, h, 0, comp, type, data);