1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkSVGClipPath.h" 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkSVGParser.h" 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkSVGUse.h" 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_SVG_NO_INFO(ClipPath) 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkSVGClipPath::isDef() { 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return true; 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkSVGClipPath::isNotDef() { 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comvoid SkSVGClipPath::translate(SkSVGParser& parser, bool defState) { 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com parser._startElement("clip"); 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com INHERITED::translate(parser, defState); 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkASSERT(fChildren.count() == 1); 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkSVGElement* child = *fChildren.begin(); 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkASSERT(child->getType() == SkSVGType_Use); 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkSVGUse* use = (SkSVGUse*) child; 312c2508d2ede7e6a8eb43dba0ef2419905ccbb3d8tomhudson@google.com SkSVGElement* ref = NULL; 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com const char* refStr = &use->f_xlink_href.c_str()[1]; 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkASSERT(parser.getIDs().find(refStr, &ref)); 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkASSERT(ref); 35d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com if (ref->getType() == SkSVGType_Rect) 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com parser._addAttribute("rectangle", refStr); 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com else 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com parser._addAttribute("path", refStr); 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com parser._endElement(); 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 41