Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: webkit/api/src/WebImageSkia.cpp

Issue 155010: Port WebImage to CG and rework the Skia version so that WebImage just has a... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/api/src/WebImageCG.cpp ('k') | webkit/glue/image_decoder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/api/src/WebImageSkia.cpp
===================================================================
--- webkit/api/src/WebImageSkia.cpp (revision 19827)
+++ webkit/api/src/WebImageSkia.cpp (working copy)
@@ -1,10 +1,10 @@
/*
* Copyright (C) 2009 Google Inc. All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
- *
+ *
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
@@ -14,7 +14,7 @@
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -31,65 +31,51 @@
#include "config.h"
#include "WebImage.h"
-#include <SkBitmap.h>
+#include "WebData.h"
+#include "WebSize.h"
-namespace WebKit {
+#include "ImageSourceSkia.h"
+#include "NativeImageSkia.h"
+#include "SharedBuffer.h"
+#include <wtf/OwnPtr.h>
+#include <wtf/PassRefPtr.h>
-class WebImagePrivate : public SkBitmap {
-public:
- WebImagePrivate(const SkBitmap& bitmap) : SkBitmap(bitmap) { }
-};
+using namespace WebCore;
-void WebImage::reset()
-{
- delete m_private;
- m_private = 0;
-}
+namespace WebKit {
-WebSize WebImage::size() const
+WebImage WebImage::fromData(const WebData& data, const WebSize& desiredSize)
{
- if (!m_private)
- return WebSize();
+ ImageSourceSkia source;
+ source.setData(PassRefPtr<SharedBuffer>(data).get(), true, desiredSize);
+ if (!source.isSizeAvailable())
+ return WebImage();
- return WebSize(m_private->width(), m_private->height());
-}
+ OwnPtr<NativeImageSkia> frame0(source.createFrameAtIndex(0));
+ if (!frame0.get())
+ return WebImage();
-void WebImage::assign(const WebImage& image)
-{
- if (m_private)
- delete m_private;
-
- if (image.m_private)
- m_private = new WebImagePrivate(*image.m_private);
- else
- m_private = 0;
+ return WebImage(*frame0);
}
-WebImage::operator SkBitmap() const
+void WebImage::reset()
{
- if (!m_private)
- return SkBitmap();
-
- return *m_private;
+ m_bitmap.reset();
}
-void WebImage::assign(const SkBitmap& bitmap)
+void WebImage::assign(const WebImage& image)
{
- if (m_private)
- delete m_private;
-
- m_private = new WebImagePrivate(bitmap);
+ m_bitmap = image.m_bitmap;
}
-const void* WebImage::lockPixels()
+bool WebImage::isNull() const
{
- m_private->lockPixels();
- return static_cast<void*>(m_private->getPixels());
+ return m_bitmap.isNull();
}
-void WebImage::unlockPixels()
+WebSize WebImage::size() const
{
- m_private->unlockPixels();
+ return WebSize(m_bitmap.width(), m_bitmap.height());
}
} // namespace WebKit
« no previous file with comments | « webkit/api/src/WebImageCG.cpp ('k') | webkit/glue/image_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698