diff options
| author | 2009-07-16 17:47:40 -0700 | |
|---|---|---|
| committer | 2009-07-16 17:47:40 -0700 | |
| commit | 764205c19420256ccc05df2a1669a7b69c5daaf9 (patch) | |
| tree | 59c966cad8f88d2dbcfb9fd88d6d7f5d8178587e /libs/rs/rsScriptC.cpp | |
| parent | a2b0d2e422b481f532c36efc58f701791cb2c24a (diff) | |
Fix conflict with automatic DPI support on high density devices by forcing bitmap loading to not be scaled.
Diffstat (limited to 'libs/rs/rsScriptC.cpp')
| -rw-r--r-- | libs/rs/rsScriptC.cpp | 89 | 
1 files changed, 24 insertions, 65 deletions
| diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp index 21d792cb10a3..adbe3e9d07e6 100644 --- a/libs/rs/rsScriptC.cpp +++ b/libs/rs/rsScriptC.cpp @@ -353,67 +353,6 @@ static void SC_drawQuad(float x1, float y1, float z1,      glDrawArrays(GL_TRIANGLE_FAN, 0, 4);  } -extern "C" void drawQuad(int32_t x1, int32_t y1, int32_t z1, -                         int32_t x2, int32_t y2, int32_t z2, -                         int32_t x3, int32_t y3, int32_t z3, -                         int32_t x4, int32_t y4, int32_t z4) -{ -    GET_TLS(); -    //x1 = (x1 << 16); -    //x2 = (x2 << 16); -    //y1 = (y1 << 16); -    //y2 = (y2 << 16); - -    //LOGE("Quad"); -    //LOGE("0x%08x, 0x%08x, 0x%08x", x1, y1, z1); -    //LOGE("0x%08x, 0x%08x, 0x%08x", x2, y2, z2); -    //LOGE("0x%08x, 0x%08x, 0x%08x", x3, y3, z3); -    //LOGE("0x%08x, 0x%08x, 0x%08x", x4, y4, z4); - -    int32_t vtx[] = {x1,y1,z1, x2,y2,z2, x3,y3,z3, x4,y4,z4}; -    static const int32_t tex[] = {0,0, 0,0x10000, 0x10000,0x10000, 0x10000,0}; - - -    rsc->setupCheck(); - -    glBindBuffer(GL_ARRAY_BUFFER, 0); -    //glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, tm->mBufferObjects[1]); - -    glEnableClientState(GL_VERTEX_ARRAY); -    glVertexPointer(3, GL_FIXED, 0, vtx); - -    glClientActiveTexture(GL_TEXTURE0); -    glEnableClientState(GL_TEXTURE_COORD_ARRAY); -    glTexCoordPointer(2, GL_FIXED, 0, tex); -    glClientActiveTexture(GL_TEXTURE1); -    glEnableClientState(GL_TEXTURE_COORD_ARRAY); -    glTexCoordPointer(2, GL_FIXED, 0, tex); -    glClientActiveTexture(GL_TEXTURE0); - -    glDisableClientState(GL_NORMAL_ARRAY); -    glDisableClientState(GL_COLOR_ARRAY); - -    //glColorPointer(4, GL_UNSIGNED_BYTE, 12, ptr); - -    glDrawArrays(GL_TRIANGLE_FAN, 0, 4); -} - -extern "C" int32_t sinx(int32_t angle) -{ -    float a = ((float)angle) / 0x10000; -    a *= 3.14f / 180.f; -    float s = (float)sin(a); -    return int32_t(s * 0x10000); -} - -extern "C" int32_t cosx(int32_t angle) -{ -    float a = ((float)angle) / 0x10000; -    a *= 3.14f / 180.f; -    float s = (float)cos(a); -    return int32_t(s * 0x10000); -} -  extern "C" float sinf(float angle)  {      float s = (float)sin(angle); @@ -580,12 +519,12 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = {      { "loadF", (void *)&SC_loadF, "float loadF(int, int)" },      { "storeI32", (void *)&SC_storeI32, "void storeI32(int, int, int)" },      { "storeF", (void *)&SC_storeF, "void storeF(int, int, float)" }, -    { "drawQuad", (void *)&SC_drawQuad, "drawQuad(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4)" }, +    { "drawQuad", (void *)&SC_drawQuad, "void drawQuad(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4)" },      { "sinf", (void *)&sinf, "float sinf(float)" },      { "cosf", (void *)&cosf, "float cosf(float)" }, -    { "contextBindProgramFragmentStore", (void *)&contextBindProgramFragmentStore, "" }, -    { "pfClearColor", (void *)&pfClearColor, "" }, -    { "pfBindTexture", (void *)&pfBindTexture, "" }, +    { "contextBindProgramFragmentStore", (void *)&contextBindProgramFragmentStore, "void contextBindProgramFragmentStore(int)" }, +    { "pfClearColor", (void *)&pfClearColor, "void pfClearColor(float, float, float, float)" }, +    { "pfBindTexture", (void *)&pfBindTexture, "void pfBindTexture(int, int, int)" },      { NULL, NULL, NULL } @@ -618,12 +557,24 @@ static ACCvoid* symbolLookup(ACCvoid* pContext, const ACCchar* name)      return NULL;  } +void ScriptCState::appendDecls(String8 *str) +{ +    ScriptCState::SymbolTable_t *syms = gSyms; +    while (syms->mPtr) { +        str->append(syms->mDecl); +        str->append(";\n"); +        syms++; +    } +} +  void ScriptCState::runCompiler(Context *rsc)  {      mAccScript = accCreateScript();      String8 tmp;      rsc->appendNameDefines(&tmp); +    appendDecls(&tmp); +    //tmp.append("#line 1\n");      const char* scriptSource[] = {tmp.string(), mProgram.mScriptText};      int scriptLength[] = {tmp.length(), mProgram.mScriptTextLength} ; @@ -633,6 +584,14 @@ void ScriptCState::runCompiler(Context *rsc)      accGetScriptLabel(mAccScript, "main", (ACCvoid**) &mProgram.mScript);      rsAssert(mProgram.mScript); +    if (!mProgram.mScript) { +        ACCchar buf[4096]; +        ACCsizei len; +        accGetScriptInfoLog(mAccScript, sizeof(buf), &len, buf); +        LOGE(buf); + +    } +      mEnviroment.mFragment.set(rsc->getDefaultProgramFragment());      mEnviroment.mVertex.set(rsc->getDefaultProgramVertex());      mEnviroment.mFragmentStore.set(rsc->getDefaultProgramFragmentStore()); |