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 22a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.graphics.Camera; 23dd1da451159578d865230ceada3e1f0058e3c18eAlex Sakhartchoukimport android.renderscript.RenderScriptGL; 24a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.Float4; 25a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.Matrix4f; 26a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.ProgramFragment; 27a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.ProgramStore; 28a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.ProgramVertex; 29a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.renderscript.Element; 30a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukimport android.util.Log; 31a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 32a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk/** 33a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk * @hide 34a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk */ 35a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchoukpublic class TextureParam extends ShaderParam { 36a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 3799b93819f12f18b8559f702d7a303c31fe05205aAlex Sakhartchouk TextureBase mTexture; 38a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 39a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk public TextureParam(String name) { 40a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk super(name); 41a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk } 42a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 4399b93819f12f18b8559f702d7a303c31fe05205aAlex Sakhartchouk public TextureParam(String name, TextureBase t) { 44ce047cb47b761f00593f247a3901fe8155371d47Alex Sakhartchouk super(name); 45ce047cb47b761f00593f247a3901fe8155371d47Alex Sakhartchouk setTexture(t); 46ce047cb47b761f00593f247a3901fe8155371d47Alex Sakhartchouk } 47ce047cb47b761f00593f247a3901fe8155371d47Alex Sakhartchouk 4899b93819f12f18b8559f702d7a303c31fe05205aAlex Sakhartchouk public void setTexture(TextureBase t) { 49a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk mTexture = t; 50a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk } 51a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 5299b93819f12f18b8559f702d7a303c31fe05205aAlex Sakhartchouk public TextureBase getTexture() { 53a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk return mTexture; 54a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk } 55dd1da451159578d865230ceada3e1f0058e3c18eAlex Sakhartchouk 560c9523357f48a26c8214ccff0b0d95c6927ac0d3Alex Sakhartchouk void initLocalData() { 57e8bb420a687598be9801e7ff4a0d114fa72ac5bcAlex Sakhartchouk mData.type = ScriptC_export.const_ShaderParam_TEXTURE; 58e8bb420a687598be9801e7ff4a0d114fa72ac5bcAlex Sakhartchouk if (mTexture != null) { 59e8bb420a687598be9801e7ff4a0d114fa72ac5bcAlex Sakhartchouk mData.texture = mTexture.getRsData(false).getAllocation(); 60e8bb420a687598be9801e7ff4a0d114fa72ac5bcAlex Sakhartchouk } 61dd1da451159578d865230ceada3e1f0058e3c18eAlex Sakhartchouk } 62a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk} 63a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 64a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 65a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 66a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 67a7a211b8a68a7d3f5ff4409aa286db07f96c0550Alex Sakhartchouk 68