Пример #1
0
/**\brief Load image from buffer
 */
bool Image::Load( char *buf, int bufSize ) {
	SDL_RWops *rw;
	SDL_Surface *s = NULL;

	rw = SDL_RWFromMem( buf, bufSize );
	if( !rw ) {
		LogMsg(WARN, "Image loading failed. Could not create RWops" );
		return( false );
	}

	s = IMG_Load_RW( rw, 0 );
	SDL_FreeRW(rw);

	if( !s ) {
		LogMsg(WARN, "Image loading failed. Could not load image from RWops" );
		return( false );
	}

	w = s->w;
	h = s->h;

	if( ConvertToTexture( s ) == false ) {
		LogMsg(WARN, "Failed to load image from buffer" );
		SDL_FreeSurface( s );
		return( false );
	}


	return( true );
}
Пример #2
0
ImageCache::ImageCache(char const * filename, SDL_Renderer* renderer)
{
   SDL_Surface* s = nullptr;

   theTexture = LookupTexture(filename);
   if (theTexture)
   {
      // Texture was already cached
      LOG_DEBUG() << "Found texture for " << filename << " in cache!";
      theTextureData[theTexture].theUserCount++;
      return;
   }

   s = IMG_Load(filename);
   if (s == nullptr)
   {
      LOG_FATAL() << "Error loading image named" << filename << ", error=" << IMG_GetError();
      return;
   }

   ConvertToTexture(filename, s, renderer);

   LOG_DEBUG() << "Loaded texture from disk:" << filename;
}