| Index: skia/gl/SkGLDevice.h
|
| ===================================================================
|
| --- skia/gl/SkGLDevice.h (revision 16859)
|
| +++ skia/gl/SkGLDevice.h (working copy)
|
| @@ -1,124 +0,0 @@
|
| -#ifndef SkGLDevice_DEFINED
|
| -#define SkGLDevice_DEFINED
|
| -
|
| -#include "SkDevice.h"
|
| -#include "SkGL.h"
|
| -#include "SkRegion.h"
|
| -
|
| -struct SkGLDrawProcs;
|
| -
|
| -class SkGLDevice : public SkDevice {
|
| -public:
|
| - SkGLDevice(const SkBitmap& bitmap, bool offscreen);
|
| - virtual ~SkGLDevice();
|
| -
|
| - // used to identify GLTextCache data in the glyphcache
|
| - static void GlyphCacheAuxProc(void* data);
|
| -
|
| - enum TexOrientation {
|
| - kNo_TexOrientation,
|
| - kTopToBottom_TexOrientation,
|
| - kBottomToTop_TexOrientation
|
| - };
|
| -
|
| - /** Called when this device is no longer a candidate for a render target,
|
| - but will instead be used as a texture to be drawn. Be sure to call
|
| - the base impl if you override, as it will compute size and max.
|
| - */
|
| - virtual TexOrientation bindDeviceAsTexture();
|
| -
|
| - // returns true if complex
|
| - SkGLClipIter* updateMatrixClip();
|
| - // call to set the clip to the specified rect
|
| - void scissor(const SkIRect&);
|
| -
|
| - // overrides from SkDevice
|
| - virtual void gainFocus(SkCanvas*);
|
| - virtual void setMatrixClip(const SkMatrix& matrix, const SkRegion& clip);
|
| -
|
| - virtual void drawPaint(const SkDraw&, const SkPaint& paint);
|
| - virtual void drawPoints(const SkDraw&, SkCanvas::PointMode mode, size_t count,
|
| - const SkPoint[], const SkPaint& paint);
|
| - virtual void drawRect(const SkDraw&, const SkRect& r,
|
| - const SkPaint& paint);
|
| - virtual void drawPath(const SkDraw&, const SkPath& path,
|
| - const SkPaint& paint);
|
| - virtual void drawBitmap(const SkDraw&, const SkBitmap& bitmap,
|
| - const SkMatrix& matrix, const SkPaint& paint);
|
| - virtual void drawSprite(const SkDraw&, const SkBitmap& bitmap,
|
| - int x, int y, const SkPaint& paint);
|
| - virtual void drawText(const SkDraw&, const void* text, size_t len,
|
| - SkScalar x, SkScalar y, const SkPaint& paint);
|
| - virtual void drawPosText(const SkDraw&, const void* text, size_t len,
|
| - const SkScalar pos[], SkScalar constY,
|
| - int scalarsPerPos, const SkPaint& paint);
|
| - virtual void drawTextOnPath(const SkDraw&, const void* text, size_t len,
|
| - const SkPath& path, const SkMatrix* matrix,
|
| - const SkPaint& paint);
|
| - virtual void drawVertices(const SkDraw&, SkCanvas::VertexMode, int vertexCount,
|
| - const SkPoint verts[], const SkPoint texs[],
|
| - const SkColor colors[], SkXfermode* xmode,
|
| - const uint16_t indices[], int indexCount,
|
| - const SkPaint& paint);
|
| - virtual void drawDevice(const SkDraw&, SkDevice*, int x, int y,
|
| - const SkPaint&);
|
| -
|
| -protected:
|
| - /** Return the current glmatrix, from a previous call to setMatrixClip */
|
| - const SkMatrix& matrix() const { return fMatrix; }
|
| - /** Return the current clip, from a previous call to setMatrixClip */
|
| - const SkRegion& clip() const { return fClip; }
|
| -
|
| -private:
|
| - SkGLMatrix fGLMatrix;
|
| - SkMatrix fMatrix;
|
| - SkRegion fClip;
|
| - bool fDirty;
|
| -
|
| - SkGLClipIter fClipIter;
|
| - SkGLDrawProcs* fDrawProcs;
|
| -
|
| - void setupForText(SkDraw* draw, const SkPaint& paint);
|
| -
|
| - // global texture cache methods
|
| - class TexCache;
|
| - static TexCache* LockTexCache(const SkBitmap&, GLuint* name,
|
| - SkPoint* size);
|
| - static void UnlockTexCache(TexCache*);
|
| - class SkAutoLockTexCache {
|
| - public:
|
| - SkAutoLockTexCache(const SkBitmap& bitmap, GLuint* name,
|
| - SkPoint* size) {
|
| - fTex = SkGLDevice::LockTexCache(bitmap, name, size);
|
| - }
|
| - ~SkAutoLockTexCache() {
|
| - if (fTex) {
|
| - SkGLDevice::UnlockTexCache(fTex);
|
| - }
|
| - }
|
| - TexCache* get() const { return fTex; }
|
| - private:
|
| - TexCache* fTex;
|
| - };
|
| - friend class SkAutoTexCache;
|
| -
|
| - // returns cache if the texture is bound for the shader
|
| - TexCache* setupGLPaintShader(const SkPaint& paint);
|
| -
|
| - class AutoPaintShader {
|
| - public:
|
| - AutoPaintShader(SkGLDevice*, const SkPaint& paint);
|
| - ~AutoPaintShader();
|
| -
|
| - bool useTex() const { return fTexCache != 0; }
|
| - private:
|
| - SkGLDevice* fDevice;
|
| - TexCache* fTexCache;
|
| - };
|
| - friend class AutoPaintShader;
|
| -
|
| - typedef SkDevice INHERITED;
|
| -};
|
| -
|
| -#endif
|
| -
|
|
|