1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/other-licenses/skia-npapi/SkANP.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,79 @@ 1.4 +/* 1.5 + * Copyright 2008, The Android Open Source Project 1.6 + * 1.7 + * Redistribution and use in source and binary forms, with or without 1.8 + * modification, are permitted provided that the following conditions 1.9 + * are met: 1.10 + * * Redistributions of source code must retain the above copyright 1.11 + * notice, this list of conditions and the following disclaimer. 1.12 + * * Redistributions in binary form must reproduce the above copyright 1.13 + * notice, this list of conditions and the following disclaimer in the 1.14 + * documentation and/or other materials provided with the distribution. 1.15 + * 1.16 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 1.17 + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1.18 + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1.19 + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 1.20 + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 1.21 + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 1.22 + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 1.23 + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 1.24 + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1.25 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1.26 + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.27 + */ 1.28 + 1.29 +#ifndef SkANP_DEFINED 1.30 +#define SkANP_DEFINED 1.31 + 1.32 +#include "android_npapi.h" 1.33 +#include "SkCanvas.h" 1.34 +#include "SkMatrix.h" 1.35 +#include "SkPaint.h" 1.36 +#include "SkPath.h" 1.37 +#include "SkTypeface.h" 1.38 + 1.39 +struct ANPMatrix : SkMatrix { 1.40 +}; 1.41 + 1.42 +struct ANPPath : SkPath { 1.43 +}; 1.44 + 1.45 +struct ANPPaint : SkPaint { 1.46 +}; 1.47 + 1.48 +struct ANPTypeface : SkTypeface { 1.49 +}; 1.50 + 1.51 +struct ANPCanvas { 1.52 + SkCanvas* skcanvas; 1.53 + 1.54 + // draw into the specified bitmap 1.55 + explicit ANPCanvas(const SkBitmap& bm) { 1.56 + skcanvas = new SkCanvas(bm); 1.57 + } 1.58 + 1.59 + // redirect all drawing to the specific SkCanvas 1.60 + explicit ANPCanvas(SkCanvas* other) { 1.61 + skcanvas = other; 1.62 + skcanvas->ref(); 1.63 + } 1.64 + 1.65 + ~ANPCanvas() { 1.66 + skcanvas->unref(); 1.67 + } 1.68 +}; 1.69 + 1.70 +class SkANP { 1.71 +public: 1.72 + static SkRect* SetRect(SkRect* dst, const ANPRectF& src); 1.73 + static SkIRect* SetRect(SkIRect* dst, const ANPRectI& src); 1.74 + static ANPRectI* SetRect(ANPRectI* dst, const SkIRect& src); 1.75 + static ANPRectF* SetRect(ANPRectF* dst, const SkRect& src); 1.76 + static SkBitmap* SetBitmap(SkBitmap* dst, const ANPBitmap& src); 1.77 + static bool SetBitmap(ANPBitmap* dst, const SkBitmap& src); 1.78 + 1.79 + static void InitEvent(ANPEvent* event, ANPEventType et); 1.80 +}; 1.81 + 1.82 +#endif