1d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines/*
2d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * Copyright (C) 2013 The Android Open Source Project
3d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines *
4d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License");
5d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * you may not use this file except in compliance with the License.
6d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * You may obtain a copy of the License at
7d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines *
8d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines *      http://www.apache.org/licenses/LICENSE-2.0
9d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines *
10d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * Unless required by applicable law or agreed to in writing, software
11d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS,
12d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * See the License for the specific language governing permissions and
14d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines * limitations under the License.
15d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines */
16d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
17d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#ifndef ANDROID_RS_DEBUG_HELPER_H
18d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#define ANDROID_RS_DEBUG_HELPER_H
19d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
20d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#include "rsUtils.h"
21d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#include "rsDefines.h"
22d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
23d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#ifndef RS_SERVER
24d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines// This shouldn't ever be defined with RS_SERVER
25d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#define RS_OBJECT_DEBUG 0
26d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#endif
27d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
28d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#if RS_OBJECT_DEBUG
29d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#include <utils/CallStack.h>
30d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#endif
31d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
32d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hinesnamespace android {
33d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hinesnamespace renderscript {
34d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
35d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#if RS_OBJECT_DEBUG
36d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
37d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hinesclass DebugHelper {
38d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hinespublic:
39d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines    DebugHelper() {
40d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines        mStack.update(2);
41d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines    }
42d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
43d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines    void dump() {
44d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines        mStack.dump();
45d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines    }
46d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
47d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hinesprivate:
48d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines    CallStack mStack;
49d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines};
50d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
51d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#else
52d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
53d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hinesclass DebugHelper {
54d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hinespublic:
55d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines    DebugHelper() { }
56d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines};
57d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
58d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#endif
59d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
60d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines}  // namespace renderscript
61d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines}  // namespace android
62d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
63d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines#endif //ANDROID_RS_DEBUG_HELPER_H
64d216dafa216f3329577ab624cdc5a5d1860ec035Stephen Hines
65