18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch * Copyright (C) 2011 Google Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 9e14391e94c850b8bd03680c23b38978db68687a8John Reck * notice, this list of conditions and the following disclaimer. 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 12e14391e94c850b8bd03680c23b38978db68687a8John Reck * documentation and/or other materials provided with the distribution. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#ifndef PlatformImage_h 2781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define PlatformImage_h 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "ImageSource.h" 3081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "IntSize.h" 3181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include <stdint.h> 3281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include <wtf/Noncopyable.h> 3381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include <wtf/OwnArrayPtr.h> 34a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 35e14391e94c850b8bd03680c23b38978db68687a8John Recknamespace WebCore { 36e14391e94c850b8bd03680c23b38978db68687a8John Reck 3781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochclass PlatformImage { 3881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch WTF_MAKE_NONCOPYABLE(PlatformImage); 3981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochpublic: 4081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch PlatformImage(); 4181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 4281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void updateFromImage(NativeImagePtr); 4381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const uint8_t* pixels() const { return m_pixelData ? &m_pixelData[0] : 0; } 4481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch IntSize size() const { return m_size; } 45e14391e94c850b8bd03680c23b38978db68687a8John Reck 4681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochprivate: 4781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch OwnArrayPtr<uint8_t> m_pixelData; 4881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch IntSize m_size; 4981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch}; 50e14391e94c850b8bd03680c23b38978db68687a8John Reck 51e14391e94c850b8bd03680c23b38978db68687a8John Reck} // namespace WebCore 52e14391e94c850b8bd03680c23b38978db68687a8John Reck 5381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 54