diff options
author | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-27 00:09:42 +0000 |
---|---|---|
committer | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-27 00:09:42 +0000 |
commit | ae2c20f398933a9e86c387dcc465ec0f71065ffc (patch) | |
tree | de668b1411e2ee0b4e49b6d8f8b68183134ac990 /skia/gl/SkGLDevice_SWLayer.cpp | |
parent | 09911bf300f1a419907a9412154760efd0b7abc3 (diff) | |
download | chromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.zip chromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.tar.gz chromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.tar.bz2 |
Add skia to the repository.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/gl/SkGLDevice_SWLayer.cpp')
-rw-r--r-- | skia/gl/SkGLDevice_SWLayer.cpp | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/skia/gl/SkGLDevice_SWLayer.cpp b/skia/gl/SkGLDevice_SWLayer.cpp new file mode 100644 index 0000000..4b75d4c --- /dev/null +++ b/skia/gl/SkGLDevice_SWLayer.cpp @@ -0,0 +1,91 @@ +#include "SkGLDevice_SWLayer.h" +#include "SkRegion.h" + +SkGLDevice_SWLayer::SkGLDevice_SWLayer(const SkBitmap& bitmap) + : SkGLDevice(bitmap, true) { + fTextureID = 0; + + SkASSERT(bitmap.getPixels()); +} + +SkGLDevice_SWLayer::~SkGLDevice_SWLayer() { + if (fTextureID) { + glDeleteTextures(1, &fTextureID); + } +} + +SkGLDevice::TexOrientation SkGLDevice_SWLayer::bindDeviceAsTexture() { + const SkBitmap& bitmap = this->accessBitmap(false); + + if (0 == fTextureID) { + fTextureID = SkGL::BindNewTexture(bitmap, NULL); + } + return kTopToBottom_TexOrientation; +} + +/////////////////////////////////////////////////////////////////////////////// + +#include "SkDraw.h" + +void SkGLDevice_SWLayer::drawPaint(const SkDraw& draw, const SkPaint& paint) { + draw.drawPaint(paint); +} + +void SkGLDevice_SWLayer::drawPoints(const SkDraw& draw, SkCanvas::PointMode mode, size_t count, + const SkPoint pts[], const SkPaint& paint) { + draw.drawPoints(mode, count, pts, paint); +} + +void SkGLDevice_SWLayer::drawRect(const SkDraw& draw, const SkRect& r, + const SkPaint& paint) { + draw.drawRect(r, paint); +} + +void SkGLDevice_SWLayer::drawPath(const SkDraw& draw, const SkPath& path, + const SkPaint& paint) { + draw.drawPath(path, paint); +} + +void SkGLDevice_SWLayer::drawBitmap(const SkDraw& draw, const SkBitmap& bitmap, + const SkMatrix& matrix, const SkPaint& paint) { + draw.drawBitmap(bitmap, matrix, paint); +} + +void SkGLDevice_SWLayer::drawSprite(const SkDraw& draw, const SkBitmap& bitmap, + int x, int y, const SkPaint& paint) { + draw.drawSprite(bitmap, x, y, paint); +} + +void SkGLDevice_SWLayer::drawText(const SkDraw& draw, const void* text, size_t len, + SkScalar x, SkScalar y, const SkPaint& paint) { + draw.drawText((const char*)text, len, x, y, paint); +} + +void SkGLDevice_SWLayer::drawPosText(const SkDraw& draw, const void* text, size_t len, + const SkScalar xpos[], SkScalar y, + int scalarsPerPos, const SkPaint& paint) { + draw.drawPosText((const char*)text, len, xpos, y, scalarsPerPos, paint); +} + +void SkGLDevice_SWLayer::drawTextOnPath(const SkDraw& draw, const void* text, + size_t len, const SkPath& path, + const SkMatrix* matrix, + const SkPaint& paint) { + draw.drawTextOnPath((const char*)text, len, path, matrix, paint); +} + +void SkGLDevice_SWLayer::drawVertices(const SkDraw& draw, SkCanvas::VertexMode vmode, + int vertexCount, + const SkPoint verts[], const SkPoint textures[], + const SkColor colors[], SkXfermode* xmode, + const uint16_t indices[], int indexCount, + const SkPaint& paint) { + draw.drawVertices(vmode, vertexCount, verts, textures, colors, xmode, + indices, indexCount, paint); +} + +void SkGLDevice_SWLayer::drawDevice(const SkDraw& draw, SkDevice* dev, + int x, int y, const SkPaint& paint) { + this->SkDevice::drawDevice(draw, dev, x, y, paint); +} + |