diff options
| -rw-r--r-- | rsFont.cpp | 11 | ||||
| -rw-r--r-- | rsFont.h | 2 | ||||
| -rw-r--r-- | rsProgramFragment.cpp | 17 | ||||
| -rw-r--r-- | rsProgramVertex.cpp | 21 |
4 files changed, 26 insertions, 25 deletions
@@ -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 ++; @@ -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); |
