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