1182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski/*
2908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen * Copyright (C) 2011 The Android Open Source Project
3182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski *
4182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
5182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * you may not use this file except in compliance with the License.
6182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * You may obtain a copy of the License at
7182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski *
8182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
9182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski *
10182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * Unless required by applicable law or agreed to in writing, software
11182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
12182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * See the License for the specific language governing permissions and
14182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * limitations under the License.
15182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski */
16182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski
17182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski#ifndef ANDROID_RS_PROGRAM_BASE_H
18182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski#define ANDROID_RS_PROGRAM_BASE_H
19908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
20182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski#include "rsObjectBase.h"
21182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski#include "rsElement.h"
22908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
23908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen// ---------------------------------------------------------------------------
24908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassennamespace android {
25182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinskinamespace renderscript {
26908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
27908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassenclass ProgramBase : public ObjectBase {
28908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassenpublic:
29908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen    explicit ProgramBase(Context *rsc) : ObjectBase(rsc) {
30908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen        mDirty = true;
31908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen    }
32908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
33908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen    void forceDirty() const {mDirty = true;}
34908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
35908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassenprotected:
36908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen    mutable bool mDirty;
37908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen};
38908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
39908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen} // namespace renderscript
40908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen} // namespace android
41908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen#endif // ANDROID_RS_PROGRAM_BASE_H
42908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
43908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
44908b86c796443ba4ec55c669e8a0297fc80574a6Justin Klaassen
45182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski