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