diff options
-rw-r--r-- | libs/rs/rsProgramVertex.cpp | 7 | ||||
-rw-r--r-- | libs/rs/rsProgramVertex.h | 1 | ||||
-rw-r--r-- | libs/rs/rsScriptC_Lib.cpp | 4 |
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 { |