Split `Texture` into multiple structs