コード例 #1
0
ファイル: Bitmap.cpp プロジェクト: Adrien81/XCSoar
bool
Bitmap::Load(const UncompressedImage &uncompressed, Type type)
{
  assert(IsScreenInitialized());
  assert(uncompressed.IsVisible());

  Reset();

  ImportSurface(buffer, uncompressed);
  return true;
}
コード例 #2
0
Bitmap::Bitmap(ConstBuffer<void> _buffer)
  :
#ifdef ENABLE_OPENGL
#ifdef ANDROID
  id(0),
#endif
  texture(nullptr), interpolation(false)
#else
  buffer(WritableImageBuffer<BitmapPixelTraits>::Empty())
#endif
{
  Load(_buffer);
}

bool
Bitmap::Load(ConstBuffer<void> buffer, Type type)
{
  const UncompressedImage uncompressed = LoadPNG(buffer.data, buffer.size);
  return (uncompressed.IsVisible() && Load(uncompressed, type));
}

#ifdef USE_LIBJPEG
bool
Bitmap::LoadFile(const TCHAR *path)
{
  const UncompressedImage uncompressed = LoadJPEGFile(path);
  return (uncompressed.IsVisible() && Load(uncompressed));
}
#endif

bool
Bitmap::LoadPNGFile(const TCHAR *path)
{
  const UncompressedImage uncompressed = ::LoadPNGFile(path);
  return (uncompressed.IsVisible() && Load(uncompressed));
}
コード例 #3
0
ファイル: Bitmap.cpp プロジェクト: kwtskran/XCSoar
Bitmap::Bitmap(ConstBuffer<void> _buffer)
  :
#ifdef ENABLE_OPENGL
#ifdef ANDROID
  id(0),
#endif
  texture(nullptr), interpolation(false)
#else
  buffer(WritableImageBuffer<BitmapPixelTraits>::Empty())
#endif
{
  Load(_buffer);
}

bool
Bitmap::Load(ConstBuffer<void> buffer, Type type)
{
  const UncompressedImage uncompressed = LoadPNG(buffer.data, buffer.size);
  return Load(uncompressed, type);
}

static UncompressedImage
DecompressImageFile(Path path)
{
#ifdef USE_LIBTIFF
  if (path.MatchesExtension(_T(".tif")) || path.MatchesExtension(_T(".tiff")))
    return LoadTiff(path);
#endif

  if (path.MatchesExtension(_T(".png")))
    return LoadPNG(path);

  return LoadJPEGFile(path);
}

bool
Bitmap::LoadFile(Path path)
{
  const UncompressedImage uncompressed = DecompressImageFile(path);
  return uncompressed.IsVisible() && Load(uncompressed);
}