diff options
| author | Jason Sams <rjsams@android.com> | 2010-01-04 16:52:27 -0800 |
|---|---|---|
| committer | Jason Sams <rjsams@android.com> | 2010-01-04 16:52:27 -0800 |
| commit | b4d3568f68b1ae97e2a82061cccf220f8e93cd94 (patch) | |
| tree | c5fe66a5c055e4bf2fb35559ec10ca854ae50cdd /rsProgram.cpp | |
| parent | 0c0ccb01874f41e2028de017ec0d90fb66dbb079 (diff) | |
| download | android_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.cpp | 36 |
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() { |
