180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* 280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2012 Google Inc. 380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be 580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file. 680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifndef SkDWriteToPath_DEFINED 980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define SkDWriteToPath_DEFINED 1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkTypes.h" 1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkPath; 1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include <dwrite.h> 1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include <d2d1.h> 1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkDWriteGeometrySink : public IDWriteGeometrySink { 1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru LONG fRefCount; 2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPath* fPath; 2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDWriteGeometrySink(const SkDWriteGeometrySink&); 2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDWriteGeometrySink& operator=(const SkDWriteGeometrySink&); 2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru explicit SkDWriteGeometrySink(SkPath* path); 2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~SkDWriteGeometrySink(); 2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **object) SK_OVERRIDE; 3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ULONG STDMETHODCALLTYPE AddRef(void) SK_OVERRIDE; 3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ULONG STDMETHODCALLTYPE Release(void) SK_OVERRIDE; 3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void STDMETHODCALLTYPE SetFillMode(D2D1_FILL_MODE fillMode) SK_OVERRIDE; 3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void STDMETHODCALLTYPE SetSegmentFlags(D2D1_PATH_SEGMENT vertexFlags) SK_OVERRIDE; 3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void STDMETHODCALLTYPE BeginFigure(D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) SK_OVERRIDE; 3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void STDMETHODCALLTYPE AddLines(const D2D1_POINT_2F *points, UINT pointsCount) SK_OVERRIDE; 3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void STDMETHODCALLTYPE AddBeziers(const D2D1_BEZIER_SEGMENT *beziers, UINT beziersCount) SK_OVERRIDE; 4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void STDMETHODCALLTYPE EndFigure(D2D1_FIGURE_END figureEnd) SK_OVERRIDE; 4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual HRESULT STDMETHODCALLTYPE Close() SK_OVERRIDE; 4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru static HRESULT Create(SkPath* path, IDWriteGeometrySink** geometryToPath); 4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 47