More hardware based. I don't actually filter the textures or anything like that myself (GL does ).
And I need the pixel data to generate mip-maps etc? Unless I'm missing something.
My general idea is:
Code:
texture_load(texture, path)
Which calls,
texture_load_from_disk(texture, path)
texture_generate(texture) <- mip maps, texture filtering etc
texture_unload_pixel_data(texture)
Where "texture" is a structure that stores the info about the texture (GL id), pixel data, resolution, bpp, overloaded filters, etc
And the manager also tracks all the textures, so when it comes to rebinding all the loaded textures are reloaded from disk and texture_generate() called on each again. Or should I leave the pixel data in the struct? ie don't call texture_unload_pixel_data()?