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