void FileImage::load_file() { FSFile fp(filename.c_str(), "r"); if (!fp.is_open()) { printf("Could not open image \"%s\"\n", filename.c_str()); return; } int w, h, channels; image = load_image(fp, fp.get_size(), &w, &h, &channels); width = w; height = h; fp.close(); if (image == NULL) { printf("Could not load image \"%s\": %s\n", filename.c_str(), stbi_failure_reason()); return; } if (!transparent.is_enabled()) return; #ifndef CHOWDREN_FORCE_TRANSPARENT if (channels != 1 && channels != 3) return; #endif set_transparent_color(transparent); }
/** * @param w šířka surface * @param h výška surface * @param transparent pokud TRUE, bude nastavena poloprůhlednost surface * @return Vrací vytvořené SDL_Surface. */ SDL_Surface* create_transparent_surface(Uint16 w, Uint16 h, bool transparent){ // vytvorim surface SDL_Surface *sur=create_surface(w, h, Color::transparent); // nastavim transparentni barvu set_transparent_color(sur, Color::transparent); //nastavim pruhlednost if(transparent) SDL_SetAlpha(sur, SDL_SRCALPHA | SDL_RLEACCEL, 128); return sur; }
void FileImage::load_data(unsigned char * data, int size) { int w, h, channels; image = load_image(data, size, &w, &h, &channels); width = w; height = h; if (image == NULL) { printf("Could not load image \"%s\": %s\n", filename.c_str(), stbi_failure_reason()); return; } if (!transparent.is_enabled()) return; #ifndef CHOWDREN_FORCE_TRANSPARENT if (channels != 1 && channels != 3) return; #endif set_transparent_color(transparent); }