GLuint SkyBox::addTexture(std::string path, SkyBoxFace face) { /* load image from file */ bitmap_image image = bitmap_image(path); image.rgb_to_bgr(); /* bind and create texture */ glBindTexture(GL_TEXTURE_2D, textures_[face]); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, image.width(), image.height(), 0, GL_RGB, GL_UNSIGNED_BYTE, image.data()); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); /* clean up */ glBindTexture(GL_TEXTURE_2D, 0); return textures_[face]; }
int main(int argc, char** argv) { char* begin = argv[1]; int width = bitmap_image(begin).width(); bitmap_image result(width, width); int gh = 0; for(int i = 1; i < argc; ++i) { bitmap_image img(argv[i]); int height = img.height(); for(int k = 0; k < height; ++k) { for(int j = 0; j < width; ++j) { unsigned char c[3]; img.get_pixel(j, k, c[0], c[1], c[2]); result.set_pixel(j, gh, c[0], c[1], c[2]); } gh++; } } result.save_image("result.bmp"); return 0; }