Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
/**
 * @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;
}
Ejemplo n.º 3
0
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);
}