rsScript.cpp revision fa51719e6c1bd17b3f347477b4827face9ab647e
1/* 2 * Copyright (C) 2009 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#include "rsContext.h" 18 19using namespace android; 20using namespace android::renderscript; 21 22Script::Script() 23{ 24 memset(&mEnviroment, 0, sizeof(mEnviroment)); 25 mEnviroment.mClearColor[0] = 0; 26 mEnviroment.mClearColor[1] = 0; 27 mEnviroment.mClearColor[2] = 0; 28 mEnviroment.mClearColor[3] = 1; 29 mEnviroment.mClearDepth = 1; 30} 31 32Script::~Script() 33{ 34} 35 36namespace android { 37namespace renderscript { 38 39 40void rsi_ScriptDestroy(Context * rsc, RsScript vs) 41{ 42 Script *s = static_cast<Script *>(vs); 43 s->decRef(); 44} 45 46void rsi_ScriptBindAllocation(Context * rsc, RsScript vs, RsAllocation va, uint32_t slot) 47{ 48 Script *s = static_cast<Script *>(vs); 49 s->mSlots[slot].set(static_cast<Allocation *>(va)); 50} 51 52void rsi_ScriptSetClearColor(Context * rsc, RsScript vs, float r, float g, float b, float a) 53{ 54 Script *s = static_cast<Script *>(vs); 55 s->mEnviroment.mClearColor[0] = r; 56 s->mEnviroment.mClearColor[1] = g; 57 s->mEnviroment.mClearColor[2] = b; 58 s->mEnviroment.mClearColor[3] = a; 59} 60 61void rsi_ScriptSetTimeZone(Context * rsc, RsScript vs, const char * timeZone, uint32_t length) 62{ 63 Script *s = static_cast<Script *>(vs); 64 s->mEnviroment.mTimeZone = timeZone; 65} 66 67void rsi_ScriptSetClearDepth(Context * rsc, RsScript vs, float v) 68{ 69 Script *s = static_cast<Script *>(vs); 70 s->mEnviroment.mClearDepth = v; 71} 72 73void rsi_ScriptSetClearStencil(Context * rsc, RsScript vs, uint32_t v) 74{ 75 Script *s = static_cast<Script *>(vs); 76 s->mEnviroment.mClearStencil = v; 77} 78 79void rsi_ScriptSetType(Context * rsc, RsType vt, uint32_t slot, const char *name) 80{ 81 ScriptCState *ss = &rsc->mScriptC; 82 const Type *t = static_cast<const Type *>(vt); 83 ss->mConstantBufferTypes[slot].set(t); 84 if (name) { 85 ss->mSlotNames[slot].setTo(name); 86 } else { 87 ss->mSlotNames[slot].setTo(""); 88 } 89} 90 91void rsi_ScriptSetRoot(Context * rsc, bool isRoot) 92{ 93 ScriptCState *ss = &rsc->mScriptC; 94 ss->mEnviroment.mIsRoot = isRoot; 95} 96 97 98} 99} 100 101