summaryrefslogtreecommitdiffstats
path: root/rsProgram.cpp
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-01-04 16:52:27 -0800
committerJason Sams <rjsams@android.com>2010-01-04 16:52:27 -0800
commitb4d3568f68b1ae97e2a82061cccf220f8e93cd94 (patch)
treec5fe66a5c055e4bf2fb35559ec10ca854ae50cdd /rsProgram.cpp
parent0c0ccb01874f41e2028de017ec0d90fb66dbb079 (diff)
downloadandroid_frameworks_rs-b4d3568f68b1ae97e2a82061cccf220f8e93cd94.tar.gz
android_frameworks_rs-b4d3568f68b1ae97e2a82061cccf220f8e93cd94.tar.bz2
android_frameworks_rs-b4d3568f68b1ae97e2a82061cccf220f8e93cd94.zip
Add RS support for generic attribs as input to vertex programs.
Diffstat (limited to 'rsProgram.cpp')
-rw-r--r--rsProgram.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/rsProgram.cpp b/rsProgram.cpp
index ede8c860..b7639be6 100644
--- a/rsProgram.cpp
+++ b/rsProgram.cpp
@@ -144,6 +144,42 @@ void Program::bindSampler(uint32_t slot, Sampler *s)
mDirty = true;
}
+String8 Program::getGLSLInputString() const
+{
+ String8 s;
+ for (uint32_t ct=0; ct < mInputCount; ct++) {
+ const Element *e = mInputElements[ct].get();
+ for (uint32_t field=0; field < e->getFieldCount(); field++) {
+ const Element *f = e->getField(field);
+
+ // Cannot be complex
+ rsAssert(!f->getFieldCount());
+ switch(f->getComponent().getVectorSize()) {
+ case 1: s.append("attribute float ATTRIB_"); break;
+ case 2: s.append("attribute vec2 ATTRIB_"); break;
+ case 3: s.append("attribute vec3 ATTRIB_"); break;
+ case 4: s.append("attribute vec4 ATTRIB_"); break;
+ default:
+ rsAssert(0);
+ }
+
+ s.append(e->getFieldName(field));
+ s.append(";\n");
+ }
+ }
+ return s;
+}
+
+String8 Program::getGLSLOutputString() const
+{
+ return String8();
+}
+
+String8 Program::getGLSLConstantString() const
+{
+ return String8();
+}
+
void Program::createShader()
{