/*******************************************************************************
* Copyright 2012-present Pixate, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
/**
* Copyright (c) 2012-2013 Pixate, Inc. All rights reserved.
*/
package com.pixate.freestyle.cg.strokes;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
/**
* The PXStrokeRenderer protocol specifies a method that a class must implement
* if it is to be used to render a stroke on a contour.
*/
public interface PXStrokeRenderer {
/**
* This method takes in a contour defined by a {@link Path} and applies
* whatever stroke effect it implements within the specified context
*
* @param path The path contour onto which the stroke is to be applied
* will be anti-aliased (e.g. new Paint(Paint.ANTI_ALIAS_FLAG)).
* @param context The context into which this stroke is to be rendered
*/
void applyStrokeToPath(Path path, Paint paint, Canvas context);
/**
* Returns if this strokes requires rendering with alpha
*/
boolean isOpaque();
}