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:
Where "texture" is a structure that stores the info about the texture (GL id), pixel data, resolution, bpp, overloaded filters, etc
texture_generate(texture) <- mip maps, texture filtering 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()?