1/* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 18#include "rsdCore.h" 19#include "rsdIntrinsics.h" 20#include "rsdAllocation.h" 21 22using namespace android; 23using namespace android::renderscript; 24 25void * rsdIntrinsic_InitBlur(const Context *, Script *, RsdIntriniscFuncs_t *); 26void * rsdIntrinsic_InitConvolve3x3(const Context *, Script *, RsdIntriniscFuncs_t *); 27void * rsdIntrinsic_InitConvolve5x5(const Context *, Script *, RsdIntriniscFuncs_t *); 28void * rsdIntrinsic_InitColorMatrix(const Context *, Script *, RsdIntriniscFuncs_t *); 29void * rsdIntrinsic_InitLUT(const Context *, Script *, RsdIntriniscFuncs_t *); 30void * rsdIntrinsic_InitYuvToRGB(const Context *, Script *, RsdIntriniscFuncs_t *); 31void * rsdIntrinsic_InitBlend(const Context *, Script *, RsdIntriniscFuncs_t *); 32 33static void SetVarObj(const Context *, const Script *, void *, uint32_t, Allocation *) { 34 rsAssert(!"Intrinsic_SetVarObj unexpectedly called"); 35} 36 37static void SetVar(const Context *, const Script *, void *, uint32_t, void *, size_t) { 38 rsAssert(!"Intrinsic_Bind unexpectedly called"); 39} 40 41static void Destroy(const Context *dc, const Script *script, void * intrinsicData) { 42 free(intrinsicData); 43} 44 45void * rsdIntrinsic_Init(const android::renderscript::Context *dc, 46 android::renderscript::Script *script, 47 RsScriptIntrinsicID iid, 48 RsdIntriniscFuncs_t *funcs) { 49 50 funcs->setVarObj = SetVarObj; 51 funcs->setVar = SetVar; 52 funcs->destroy = Destroy; 53 54 switch(iid) { 55 case RS_SCRIPT_INTRINSIC_ID_CONVOLVE_3x3: 56 return rsdIntrinsic_InitConvolve3x3(dc, script, funcs); 57 case RS_SCRIPT_INTRINSIC_ID_CONVOLVE_5x5: 58 return rsdIntrinsic_InitConvolve5x5(dc, script, funcs); 59 case RS_SCRIPT_INTRINSIC_ID_COLOR_MATRIX: 60 return rsdIntrinsic_InitColorMatrix(dc, script, funcs); 61 case RS_SCRIPT_INTRINSIC_ID_LUT: 62 return rsdIntrinsic_InitLUT(dc, script, funcs); 63 case RS_SCRIPT_INTRINSIC_ID_BLUR: 64 return rsdIntrinsic_InitBlur(dc, script, funcs); 65 case RS_SCRIPT_INTRINSIC_ID_YUV_TO_RGB: 66 return rsdIntrinsic_InitYuvToRGB(dc, script, funcs); 67 case RS_SCRIPT_INTRINSIC_ID_BLEND: 68 return rsdIntrinsic_InitBlend(dc, script, funcs); 69 70 default: 71 return NULL; 72 } 73 return NULL; 74} 75 76 77 78