
/*
 * Copyright 2011 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
#include "SkBitmapProcState.h"

/*  A platform may optionally overwrite any of these with accelerated
    versions. On input, these will already have valid function pointers,
    so a platform need only overwrite the ones it chooses, based on the
    current state (e.g. fBitmap, fInvMatrix, etc.)

    fShaderProc32
    fShaderProc16
    fMatrixProc
    fSampleProc32
    fSampleProc32
 */

// empty implementation just uses default supplied function pointers
void SkBitmapProcState::platformProcs() {}

// empty implementation just uses default supplied function pointers
void SkBitmapProcState::platformConvolutionProcs(SkConvolutionProcs*) {}
