rsScript.h revision 1030893d9b99b72468034da13df025bda479bb97
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#ifndef ANDROID_RS_SCRIPT_H 18#define ANDROID_RS_SCRIPT_H 19 20#include "rsAllocation.h" 21 22// --------------------------------------------------------------------------- 23namespace android { 24namespace renderscript { 25 26 27 28class Script : public ObjectBase 29{ 30public: 31 32 Script(); 33 virtual ~Script(); 34 35 36 struct Enviroment_t { 37 bool mIsRoot; 38 bool mIsOrtho; 39 float mClearColor[4]; 40 float mClearDepth; 41 uint32_t mClearStencil; 42 43 enum StateVertex { 44 VTX_ORTHO_WINDOW, 45 VTX_ORTHO_NORMALIZED, 46 VTX_PROJECTION, 47 VTX_PARENT 48 }; 49 StateVertex mStateVertex; 50 51 enum StateRaster { 52 RASTER_FLAT, 53 RASTER_SMOOTH, 54 RASTER_PARENT 55 }; 56 StateRaster mStateRaster; 57 58 enum StateFragment { 59 FRAGMENT_COLOR, 60 FRAGMENT_TEX_REPLACE, 61 FRAGMENT_TEX_MODULATE, 62 FRAGMENT_PARENT 63 }; 64 StateFragment mStateFragment; 65 66 enum StateFragmentStore { 67 FRAGMENT_STORE_ALWAYS_REPLACE, 68 FRAGMENT_STORE_ALWAYS_BLEND, 69 FRAGMENT_STORE_DEPTH_LESS_REPLACE, 70 FRAGMENT_STORE_DEPTH_LESS_BLEND, 71 FRAGMENT_STORE_PARENT 72 }; 73 StateFragmentStore mStateFragmentStore; 74 75 }; 76 Enviroment_t mEnviroment; 77 78 const Type * mConstantBufferTypes; 79 uint32_t mCounstantBufferCount; 80 81 ObjectBaseRef<Allocation> mSlots[16]; 82 83 virtual bool run(Context *, uint32_t launchID) = 0; 84}; 85 86 87 88} 89} 90#endif 91 92