summaryrefslogtreecommitdiffstats
path: root/libs/rs/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
commite17964e150e459bacced5658ae36fe1c56082e37 (patch)
treed9a3f9bf24dcc509d8475e978c262d702cfb0bf3 /libs/rs/rsProgram.cpp
parent7d46f612a25fc9f190358e9bd807b71d424ce7d2 (diff)
downloadframeworks_base-e17964e150e459bacced5658ae36fe1c56082e37.zip
frameworks_base-e17964e150e459bacced5658ae36fe1c56082e37.tar.gz
frameworks_base-e17964e150e459bacced5658ae36fe1c56082e37.tar.bz2
Add RS support for generic attribs as input to vertex programs.
Diffstat (limited to 'libs/rs/rsProgram.cpp')
-rw-r--r--libs/rs/rsProgram.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/libs/rs/rsProgram.cpp b/libs/rs/rsProgram.cpp
index ede8c86..b7639be 100644
--- a/libs/rs/rsProgram.cpp
+++ b/libs/rs/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()
{