gecko/gfx/2d/SourceSurfaceSkia.h
Wes Kocher c62360f0a2 Backed out 6 changesets (bug 900133, bug 881634, bug 893302) for build bustage
Backed out changeset 49632bc14e27 (bug 900133)
Backed out changeset 036780fccc89 (bug 900133)
Backed out changeset b8db58f5e209 (bug 893302)
Backed out changeset 67c3e4204e44 (bug 893302)
Backed out changeset a857a4246dd9 (bug 900133)
Backed out changeset e0e2e27af6c1 (bug 881634)
2013-08-02 20:35:39 -07:00

62 lines
1.4 KiB
C++

/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef MOZILLA_GFX_SOURCESURFACESKIA_H_
#define MOZILLA_GFX_SOURCESURFACESKIA_H_
#include "2D.h"
#include <vector>
#include "skia/SkCanvas.h"
#include "skia/SkBitmap.h"
namespace mozilla {
namespace gfx {
class DrawTargetSkia;
class SourceSurfaceSkia : public DataSourceSurface
{
public:
SourceSurfaceSkia();
~SourceSurfaceSkia();
virtual SurfaceType GetType() const { return SURFACE_SKIA; }
virtual IntSize GetSize() const;
virtual SurfaceFormat GetFormat() const;
SkBitmap& GetBitmap() { return mBitmap; }
bool InitFromData(unsigned char* aData,
const IntSize &aSize,
int32_t aStride,
SurfaceFormat aFormat);
bool InitFromCanvas(SkCanvas* aCanvas,
SurfaceFormat aFormat,
DrawTargetSkia* aOwner);
virtual unsigned char *GetData();
virtual int32_t Stride() { return mStride; }
private:
friend class DrawTargetSkia;
void DrawTargetWillChange();
void MaybeUnlock();
SkBitmap mBitmap;
SurfaceFormat mFormat;
IntSize mSize;
int32_t mStride;
RefPtr<DrawTargetSkia> mDrawTarget;
bool mLocked;
};
}
}
#endif /* MOZILLA_GFX_SOURCESURFACESKIA_H_ */