Fixing fonts to use constant color instead of variable.
Change-Id: Ia590dfed482f82b7bc748c25b7b1592efea5b68c
diff --git a/libs/rs/java/ModelViewer/src/com/android/modelviewer/modelviewer.rs b/libs/rs/java/ModelViewer/src/com/android/modelviewer/modelviewer.rs
index 41594eb..adb609c 100644
--- a/libs/rs/java/ModelViewer/src/com/android/modelviewer/modelviewer.rs
+++ b/libs/rs/java/ModelViewer/src/com/android/modelviewer/modelviewer.rs
@@ -62,7 +62,7 @@
rsgDrawMesh(gTestMesh);
- color(0.3f, 0.3f, 0.3f, 1.0f);
+ rsgFontColor(0.3f, 0.3f, 0.3f, 1.0f);
rsgDrawText("Renderscript model test", 30, 695);
rsgBindFont(gItalic);
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 681f83e..dfdeb98 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -263,38 +263,18 @@
{
char buffer[128];
sprintf(buffer, "Frame %i ms, Script %i ms", mTimeMSLastFrame, mTimeMSLastScript);
- /*float oldR = mStateVertex.color[0];
- float oldG = mStateVertex.color[1];
- float oldB = mStateVertex.color[2];
- float oldA = mStateVertex.color[3];*/
+ float oldR, oldG, oldB, oldA;
+ mStateFont.getFontColor(&oldR, &oldG, &oldB, &oldA);
float shadowCol = 0.2f;
- /*mStateVertex.color[0] = shadowCol;
- mStateVertex.color[1] = shadowCol;
- mStateVertex.color[2] = shadowCol;
- mStateVertex.color[3] = 1.0f;
- if (!checkVersion2_0()) {
- glColor4f(shadowCol, shadowCol, shadowCol, 1.0f);
- }*/
+ mStateFont.setFontColor(shadowCol, shadowCol, shadowCol, 1.0f);
mStateFont.renderText(buffer, 5, getHeight() - 5);
- /*float textCol = 0.9f;
- mStateVertex.color[0] = textCol;
- mStateVertex.color[1] = textCol;
- mStateVertex.color[2] = textCol;
- mStateVertex.color[3] = 1.0f;
- if (!checkVersion2_0()) {
- glColor4f(textCol, textCol, textCol, 1.0f);
- }*/
+ float textCol = 0.9f;
+ mStateFont.setFontColor(textCol, textCol, textCol, 1.0f);
mStateFont.renderText(buffer, 4, getHeight() - 6);
- /*mStateVertex.color[0] = oldR;
- mStateVertex.color[1] = oldG;
- mStateVertex.color[2] = oldB;
- mStateVertex.color[3] = oldA;
- if (!checkVersion2_0()) {
- glColor4f(oldR, oldG, oldB, oldA);
- }*/
+ mStateFont.setFontColor(oldR, oldG, oldB, oldA);
}
void * Context::threadProc(void *vrsc)
diff --git a/libs/rs/rsFont.cpp b/libs/rs/rsFont.cpp
index a741adc..833bee0 100644
--- a/libs/rs/rsFont.cpp
+++ b/libs/rs/rsFont.cpp
@@ -259,7 +259,7 @@
mCurrentQuadIndex = 0;
mRSC = NULL;
mLibrary = NULL;
- setFontColor(0.0f, 0.0f, 0.0f, 1.0f);
+ setFontColor(0.1f, 0.1f, 0.1f, 1.0f);
}
FontState::~FontState()
@@ -521,6 +521,11 @@
ObjectBaseRef<const ProgramStore> tmpPS(mRSC->getFragmentStore());
mRSC->setFragmentStore(mFontProgramStore.get());
+ if(mFontColorDirty) {
+ mFontShaderF->setConstantColor(mFontColor[0], mFontColor[1], mFontColor[2], mFontColor[3]);
+ mFontColorDirty = false;
+ }
+
if (!mRSC->setupCheck()) {
mRSC->setVertex((ProgramVertex *)tmpV.get());
mRSC->setRaster((ProgramRaster *)tmpR.get());
@@ -669,6 +674,13 @@
mFontColorDirty = true;
}
+void FontState::getFontColor(float *r, float *g, float *b, float *a) const {
+ *r = mFontColor[0];
+ *g = mFontColor[1];
+ *b = mFontColor[2];
+ *a = mFontColor[3];
+}
+
void FontState::deinit(Context *rsc)
{
mInitialized = false;
diff --git a/libs/rs/rsFont.h b/libs/rs/rsFont.h
index 2d9a34a..ab229be 100644
--- a/libs/rs/rsFont.h
+++ b/libs/rs/rsFont.h
@@ -117,6 +117,7 @@
void renderText(Allocation *alloc, uint32_t start, int len, int x, int y);
void setFontColor(float r, float g, float b, float a);
+ void getFontColor(float *r, float *g, float *b, float *a) const;
protected: