code: private void render(SVG.Path obj)
     {
        debug("Path render");
  
        if (obj.d == null)
           return;
  
        updateStyleForElement(state, obj);
  
        if (!display())
           return;
        if (!visible())
           return;
        if (!state.hasStroke && !state.hasFill)
           return;
  
        if (obj.transform != null)
           canvas.concat(obj.transform);
  
        Path  path = (new PathConverter(obj.d)).getPath();
  
        if (obj.boundingBox == null) {
           obj.boundingBox = calculatePathBounds(path);
        }
        updateParentBoundingBox(obj);
  
        checkForGradientsAndPatterns(obj);
        checkForClipPath(obj);
        
        boolean  compositing = pushLayer();
  
        if (state.hasFill) {
           path.setFillType(getFillTypeFromState());
           doFilledPath(obj, path);
        }
        if (state.hasStroke)
           doStroke(path);
  
        renderMarkers(obj);
  
        if (compositing)
           popLayer(obj);
     }
docs: ==============================================================================