1a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk/*
2a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * Copyright (C) 2011 The Android Open Source Project
3a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk *
4a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * Licensed under the Apache License, Version 2.0 (the "License");
5a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * you may not use this file except in compliance with the License.
6a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * You may obtain a copy of the License at
7a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk *
8a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk *      http://www.apache.org/licenses/LICENSE-2.0
9a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk *
10a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * Unless required by applicable law or agreed to in writing, software
11a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * distributed under the License is distributed on an "AS IS" BASIS,
12a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * See the License for the specific language governing permissions and
14a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * limitations under the License.
15a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk */
16a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
17a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukpackage com.android.scenegraph;
18a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
19a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport java.lang.Math;
20a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport java.util.ArrayList;
21a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
22e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchoukimport com.android.scenegraph.SceneManager;
23e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk
24a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.Allocation;
25a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.Element;
26a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.Matrix4f;
27a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.ProgramFragment;
28a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.ProgramStore;
29a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.ProgramVertex;
30a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.RSRuntimeException;
31e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchoukimport android.renderscript.RenderScript;
32e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchoukimport android.renderscript.RenderScriptGL;
33a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.util.Log;
34a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
35a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk/**
36a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * @hide
37a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk */
38a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukpublic abstract class SceneGraphBase {
39a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    String mName;
40e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk    Allocation mNameAlloc;
41a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    public void setName(String n) {
42a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        mName = n;
43e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk        mNameAlloc = null;
44a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
45a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
46a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    public String getName() {
47a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk        return mName;
48a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk    }
49e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk
50e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk    Allocation getNameAlloc(RenderScriptGL rs) {
51e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk        if (mNameAlloc == null)  {
52e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk            mNameAlloc = SceneManager.getStringAsAllocation(rs, getName());
53e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk        }
54e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk        return mNameAlloc;
55e93db17a143ff560f92d94b68ce1e76f79db7902Alex Sakhartchouk    }
56a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk}
57a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
58a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
59a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
60a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
61a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk
62