1221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams/* 269cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams * Copyright (C) 2012 The Android Open Source Project 3221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * 4221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * you may not use this file except in compliance with the License. 6221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * You may obtain a copy of the License at 7221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * 8221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * 10221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * Unless required by applicable law or agreed to in writing, software 11221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * See the License for the specific language governing permissions and 14221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * limitations under the License. 15221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams */ 16221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 17221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#ifndef __ANDROID_BASE_OBJ_H__ 18221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#define __ANDROID_BASE_OBJ_H__ 19221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 20221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 2169cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams#include "utils/RefBase.h" 22221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include <pthread.h> 23221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include <rs.h> 24221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 25221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include "RenderScript.h" 26221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 2769cccdf0659a193d6a75420ec745421fb5c436e6Jason Samsnamespace android { 2869cccdf0659a193d6a75420ec745421fb5c436e6Jason Samsnamespace renderscriptCpp { 2969cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams 3069cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams 3169cccdf0659a193d6a75420ec745421fb5c436e6Jason Samsclass BaseObj : public android::LightRefBase<BaseObj> { 32221a4b17cda03916a0599628fcbb5f48605a0e5aJason Samsprotected: 33221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams friend class Element; 34221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams friend class Type; 35b2e3dc51dcbbe52b5e72d9c6a16de7000de70edfJason Sams friend class Allocation; 36b2e3dc51dcbbe52b5e72d9c6a16de7000de70edfJason Sams friend class Script; 37b2e3dc51dcbbe52b5e72d9c6a16de7000de70edfJason Sams friend class ScriptC; 38221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 39221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams void *mID; 40221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams RenderScript *mRS; 41221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams android::String8 mName; 42221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 43221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams void * getID() const; 44221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 45221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams BaseObj(void *id, RenderScript *rs); 46221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams void checkValid(); 47221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 4869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams static void * getObjID(sp<const BaseObj> o); 49b2e3dc51dcbbe52b5e72d9c6a16de7000de70edfJason Sams 50221a4b17cda03916a0599628fcbb5f48605a0e5aJason Samspublic: 51221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 52221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams virtual ~BaseObj(); 53221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams virtual void updateFromNative(); 54221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams virtual bool equals(const BaseObj *obj); 55221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams}; 56221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 5769cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams} 5869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams} 59221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#endif 60