BaseObj.cpp revision 221a4b17cda03916a0599628fcbb5f48605a0e5a
1221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams/*
2221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams * Copyright (C) 2008-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
18221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include <rs.h>
19221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
20221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include "RenderScript.h"
21221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include "BaseObj.h"
22221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
23221a4b17cda03916a0599628fcbb5f48605a0e5aJason Samsvoid * BaseObj::getID() const {
24221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    if (mID == NULL) {
25221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams        ALOGE("Internal error: Object id 0.");
26221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    }
27221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    return mID;
28221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams}
29221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
30221a4b17cda03916a0599628fcbb5f48605a0e5aJason SamsBaseObj::BaseObj(void *id, RenderScript *rs) {
31221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    mRS = rs;
32221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    mID = id;
33221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams}
34221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
35221a4b17cda03916a0599628fcbb5f48605a0e5aJason Samsvoid BaseObj::checkValid() {
36221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    if (mID == 0) {
37221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams        ALOGE("Invalid object.");
38221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    }
39221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams}
40221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
41221a4b17cda03916a0599628fcbb5f48605a0e5aJason SamsBaseObj::~BaseObj() {
42221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    rsObjDestroy(mRS->mContext, mID);
43221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    mRS = NULL;
44221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    mID = NULL;
45221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams}
46221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
47221a4b17cda03916a0599628fcbb5f48605a0e5aJason Samsvoid BaseObj::updateFromNative() {
48221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    const char *name = NULL;
49221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    rsaGetName(mRS, mID, &name);
50221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    mName = name;
51221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams}
52221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
53221a4b17cda03916a0599628fcbb5f48605a0e5aJason Samsbool BaseObj::equals(const BaseObj *obj) {
54221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    // Early-out check to see if both BaseObjs are actually the same
55221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    if (this == obj)
56221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams        return true;
57221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams    return mID == obj->mID;
58221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams}
59221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
60221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
61221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams
62