CubeMap gen_cube_map(const GLsizei size, spherical_function fn, GLint internalFormat, GLenum format, GLenum type) { float ** data = new float*[6]; for (int i = 0; i < 6; i++) data[i] = new float[size*size]; fill_cube_map(data, size, fn); CubeMap map; map.build(); map.load_cube(data, size, internalFormat, format, type); for (int i = 0; i < 6; i++) delete [] data[i]; delete [] data; return map; }