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 | e17964e150e459bacced5658ae36fe1c56082e37 (patch) | |
tree | d9a3f9bf24dcc509d8475e978c262d702cfb0bf3 /libs/rs/rsProgram.cpp | |
parent | 7d46f612a25fc9f190358e9bd807b71d424ce7d2 (diff) | |
download | frameworks_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.cpp | 36 |
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() { |