summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rsFont.cpp11
-rw-r--r--rsFont.h2
-rw-r--r--rsProgramFragment.cpp17
-rw-r--r--rsProgramVertex.cpp21
4 files changed, 26 insertions, 25 deletions
diff --git a/rsFont.cpp b/rsFont.cpp
index 958ecb54..2a2c3b49 100644
--- a/rsFont.cpp
+++ b/rsFont.cpp
@@ -640,11 +640,9 @@ void FontState::checkInit() {
initVertexArrayBuffers();
// We store a string with letters in a rough frequency of occurrence
- mLatinPrecache = String8(" eisarntolcdugpmhbyfvkwzxjq");
- mLatinPrecache += String8("EISARNTOLCDUGPMHBYFVKWZXJQ");
- mLatinPrecache += String8(",.?!()-+@;:`'");
- mLatinPrecache += String8("0123456789");
-
+ mLatinPrecache = " eisarntolcdugpmhbyfvkwzxjq"
+ "EISARNTOLCDUGPMHBYFVKWZXJQ"
+ ",.?!()-+@;:`'0123456789";
mInitialized = true;
}
@@ -740,7 +738,8 @@ void FontState::precacheLatin(Font *font) {
// Remaining capacity is measured in %
uint32_t remainingCapacity = getRemainingCacheCapacity();
uint32_t precacheIdx = 0;
- while (remainingCapacity > 25 && precacheIdx < mLatinPrecache.size()) {
+ const size_t l = strlen(mLatinPrecache);
+ while ((remainingCapacity > 25) && (precacheIdx < l)) {
font->getCachedUTFChar((int32_t)mLatinPrecache[precacheIdx]);
remainingCapacity = getRemainingCacheCapacity();
precacheIdx ++;
diff --git a/rsFont.h b/rsFont.h
index 8f43a2ab..f7ad3cdf 100644
--- a/rsFont.h
+++ b/rsFont.h
@@ -183,7 +183,7 @@ protected:
uint32_t getRemainingCacheCapacity();
void precacheLatin(Font *font);
- String8 mLatinPrecache;
+ const char *mLatinPrecache;
Context *mRSC;
diff --git a/rsProgramFragment.cpp b/rsProgramFragment.cpp
index f2885a94..fb00cd10 100644
--- a/rsProgramFragment.cpp
+++ b/rsProgramFragment.cpp
@@ -93,13 +93,14 @@ ProgramFragmentState::~ProgramFragmentState() {
}
void ProgramFragmentState::init(Context *rsc) {
- String8 shaderString(RS_SHADER_INTERNAL);
- shaderString.append("varying lowp vec4 varColor;\n");
- shaderString.append("varying vec2 varTex0;\n");
- shaderString.append("void main() {\n");
- shaderString.append(" lowp vec4 col = UNI_Color;\n");
- shaderString.append(" gl_FragColor = col;\n");
- shaderString.append("}\n");
+ const char *shaderString =
+ RS_SHADER_INTERNAL
+ "varying lowp vec4 varColor;\n"
+ "varying vec2 varTex0;\n"
+ "void main() {\n"
+ " lowp vec4 col = UNI_Color;\n"
+ " gl_FragColor = col;\n"
+ "}\n";
ObjectBaseRef<const Element> colorElem = Element::createRef(rsc, RS_TYPE_FLOAT_32, RS_KIND_USER, false, 4);
Element::Builder builder;
@@ -114,7 +115,7 @@ void ProgramFragmentState::init(Context *rsc) {
Allocation *constAlloc = Allocation::createAllocation(rsc, inputType.get(),
RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS);
- ProgramFragment *pf = new ProgramFragment(rsc, shaderString.string(), shaderString.length(),
+ ProgramFragment *pf = new ProgramFragment(rsc, shaderString, strlen(shaderString),
NULL, 0, NULL, tmp, 2);
pf->bindAllocation(rsc, constAlloc, 0);
pf->setConstantColor(rsc, 1.0f, 1.0f, 1.0f, 1.0f);
diff --git a/rsProgramVertex.cpp b/rsProgramVertex.cpp
index 52652161..30000b05 100644
--- a/rsProgramVertex.cpp
+++ b/rsProgramVertex.cpp
@@ -190,15 +190,16 @@ void ProgramVertexState::init(Context *rsc) {
ObjectBaseRef<Type> inputType = Type::getTypeRef(rsc, constInput.get(), 1, 0, 0, false, false, 0);
- String8 shaderString(RS_SHADER_INTERNAL);
- shaderString.append("varying vec4 varColor;\n");
- shaderString.append("varying vec2 varTex0;\n");
- shaderString.append("void main() {\n");
- shaderString.append(" gl_Position = UNI_MVP * ATTRIB_position;\n");
- shaderString.append(" gl_PointSize = 1.0;\n");
- shaderString.append(" varColor = ATTRIB_color;\n");
- shaderString.append(" varTex0 = ATTRIB_texture0;\n");
- shaderString.append("}\n");
+ const char *shaderString =
+ RS_SHADER_INTERNAL
+ "varying vec4 varColor;\n"
+ "varying vec2 varTex0;\n"
+ "void main() {\n"
+ " gl_Position = UNI_MVP * ATTRIB_position;\n"
+ " gl_PointSize = 1.0;\n"
+ " varColor = ATTRIB_color;\n"
+ " varTex0 = ATTRIB_texture0;\n"
+ "}\n";
uint32_t tmp[4];
tmp[0] = RS_PROGRAM_PARAM_CONSTANT;
@@ -206,7 +207,7 @@ void ProgramVertexState::init(Context *rsc) {
tmp[2] = RS_PROGRAM_PARAM_INPUT;
tmp[3] = (uint32_t)attrElem.get();
- ProgramVertex *pv = new ProgramVertex(rsc, shaderString.string(), shaderString.length(),
+ ProgramVertex *pv = new ProgramVertex(rsc, shaderString, strlen(shaderString),
NULL, 0, NULL, tmp, 4);
Allocation *alloc = Allocation::createAllocation(rsc, inputType.get(),
RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS);