From ce9adcce02ef528cf5a65c3650099aa54ebb712a Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Wed, 16 Dec 2009 14:13:06 -0800 Subject: [PATCH] Fix emulated glColor in es2 mode. --- libs/rs/rsProgramVertex.cpp | 7 +++++++ libs/rs/rsProgramVertex.h | 1 + libs/rs/rsScriptC_Lib.cpp | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/libs/rs/rsProgramVertex.cpp b/libs/rs/rsProgramVertex.cpp index 058cd737dbce9..153e2d6844aeb 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(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 4748acc9d93d4..8c63d82632acc 100644 --- a/libs/rs/rsProgramVertex.h +++ b/libs/rs/rsProgramVertex.h @@ -79,6 +79,7 @@ public: ObjectBaseRef mAllocType; + float color[4]; }; diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp index 55a8391cdefe5..878ec6062b466 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 {