summaryrefslogtreecommitdiffstats
path: root/libs/rs
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-12-16 14:13:06 -0800
committerJason Sams <rjsams@android.com>2009-12-16 14:13:06 -0800
commitce9adcce02ef528cf5a65c3650099aa54ebb712a (patch)
tree0f7a423d186d588d0324ed6c9c5b7524e06bac44 /libs/rs
parent5dad8b4d1fda37b7b4763ef7361c5eb92131cb7e (diff)
downloadframeworks_base-ce9adcce02ef528cf5a65c3650099aa54ebb712a.zip
frameworks_base-ce9adcce02ef528cf5a65c3650099aa54ebb712a.tar.gz
frameworks_base-ce9adcce02ef528cf5a65c3650099aa54ebb712a.tar.bz2
Fix emulated glColor in es2 mode.
Diffstat (limited to 'libs/rs')
-rw-r--r--libs/rs/rsProgramVertex.cpp7
-rw-r--r--libs/rs/rsProgramVertex.h1
-rw-r--r--libs/rs/rsScriptC_Lib.cpp4
3 files changed, 12 insertions, 0 deletions
diff --git a/libs/rs/rsProgramVertex.cpp b/libs/rs/rsProgramVertex.cpp
index 058cd73..153e2d6 100644
--- a/libs/rs/rsProgramVertex.cpp
+++ b/libs/rs/rsProgramVertex.cpp
@@ -158,6 +158,8 @@ void ProgramVertex::setupGL2(const Context *rsc, ProgramVertexState *state, Shad
//return;
}
+ glVertexAttrib4f(1, state->color[0], state->color[1], state->color[2], state->color[3]);
+
const float *f = static_cast<const float *>(mConstants->getPtr());
Matrix mvp;
@@ -259,6 +261,11 @@ void ProgramVertexState::init(Context *rsc, int32_t w, int32_t h)
pv->init(rsc);
pv->bindAllocation(alloc);
+ color[0] = 1.f;
+ color[1] = 1.f;
+ color[2] = 1.f;
+ color[3] = 1.f;
+
updateSize(rsc, w, h);
}
diff --git a/libs/rs/rsProgramVertex.h b/libs/rs/rsProgramVertex.h
index 4748acc..8c63d82 100644
--- a/libs/rs/rsProgramVertex.h
+++ b/libs/rs/rsProgramVertex.h
@@ -79,6 +79,7 @@ public:
ObjectBaseRef<Type> mAllocType;
+ float color[4];
};
diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp
index 55a8391..878ec60 100644
--- a/libs/rs/rsScriptC_Lib.cpp
+++ b/libs/rs/rsScriptC_Lib.cpp
@@ -842,6 +842,10 @@ static void SC_drawSimpleMeshRange(RsSimpleMesh vsm, uint32_t start, uint32_t le
static void SC_color(float r, float g, float b, float a)
{
GET_TLS();
+ rsc->mStateVertex.color[0] = r;
+ rsc->mStateVertex.color[1] = g;
+ rsc->mStateVertex.color[2] = b;
+ rsc->mStateVertex.color[3] = a;
if (rsc->checkVersion2_0()) {
glVertexAttrib4f(1, r, g, b, a);
} else {