diff options
Diffstat (limited to 'libs/rs/driver/rsdShader.h')
-rw-r--r-- | libs/rs/driver/rsdShader.h | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/libs/rs/driver/rsdShader.h b/libs/rs/driver/rsdShader.h deleted file mode 100644 index 2680b3e..0000000 --- a/libs/rs/driver/rsdShader.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (C) 2011-2012 The Android Open Source Project - * - * 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. - */ - -#ifndef ANDROID_RSD_SHADER_H -#define ANDROID_RSD_SHADER_H - -#include <utils/String8.h> - -// --------------------------------------------------------------------------- -namespace android { -namespace renderscript { - -class Element; -class Context; -class Program; - -} -} - -class RsdShaderCache; - -#define RS_SHADER_ATTR "ATTRIB_" -#define RS_SHADER_UNI "UNI_" - -class RsdShader { -public: - - RsdShader(const android::renderscript::Program *p, uint32_t type, - const char * shaderText, uint32_t shaderLength, - const char** textureNames, size_t textureNamesCount, - const size_t *textureNamesLength); - virtual ~RsdShader(); - - uint32_t getStateBasedShaderID(const android::renderscript::Context *); - - // Add ability to get all ID's to clean up the cached program objects - uint32_t getStateBasedIDCount() const { return mStateBasedShaders.size(); } - uint32_t getStateBasedID(uint32_t index) const { - return mStateBasedShaders.itemAt(index)->mShaderID; - } - - uint32_t getAttribCount() const {return mAttribCount;} - uint32_t getUniformCount() const {return mUniformCount;} - const android::String8 & getAttribName(uint32_t i) const {return mAttribNames[i];} - const android::String8 & getUniformName(uint32_t i) const {return mUniformNames[i];} - uint32_t getUniformArraySize(uint32_t i) const {return mUniformArraySizes[i];} - - android::String8 getGLSLInputString() const; - - bool isValid() const {return mIsValid;} - void forceDirty() const {mDirty = true;} - - bool loadShader(const android::renderscript::Context *); - void setup(const android::renderscript::Context *, RsdShaderCache *sc); - -protected: - - class StateBasedKey { - public: - StateBasedKey(uint32_t texCount) : mShaderID(0) { - mTextureTargets = new uint32_t[texCount]; - } - ~StateBasedKey() { - delete[] mTextureTargets; - } - uint32_t mShaderID; - uint32_t *mTextureTargets; - }; - - bool createShader(); - StateBasedKey *getExistingState(); - - const android::renderscript::Program *mRSProgram; - bool mIsValid; - - // Applies to vertex and fragment shaders only - void appendUserConstants(); - void setupUserConstants(const android::renderscript::Context *rsc, - RsdShaderCache *sc, bool isFragment); - void initAddUserElement(const android::renderscript::Element *e, - android::String8 *names, uint32_t *arrayLengths, - uint32_t *count, const char *prefix); - void setupTextures(const android::renderscript::Context *rsc, RsdShaderCache *sc); - void setupSampler(const android::renderscript::Context *rsc, - const android::renderscript::Sampler *s, - const android::renderscript::Allocation *tex); - - void appendAttributes(); - void appendTextures(); - - void initAttribAndUniformArray(); - - mutable bool mDirty; - android::String8 mShader; - android::String8 mUserShader; - uint32_t mType; - - uint32_t mTextureCount; - StateBasedKey *mCurrentState; - uint32_t mAttribCount; - uint32_t mUniformCount; - android::String8 *mAttribNames; - android::String8 *mUniformNames; - uint32_t *mUniformArraySizes; - - android::Vector<android::String8> mTextureNames; - - android::Vector<StateBasedKey*> mStateBasedShaders; - - int32_t mTextureUniformIndexStart; - - void logUniform(const android::renderscript::Element *field, - const float *fd, uint32_t arraySize); - void setUniform(const android::renderscript::Context *rsc, - const android::renderscript::Element *field, - const float *fd, int32_t slot, uint32_t arraySize ); - void initMemberVars(); - void init(const char** textureNames, size_t textureNamesCount, - const size_t *textureNamesLength); -}; - -#endif //ANDROID_RSD_SHADER_H - - - - |