diff options
| author | 2009-09-24 14:57:26 -0700 | |
|---|---|---|
| committer | 2009-09-24 14:57:26 -0700 | |
| commit | f2d28b74850ea0869aef2ce0727a6abb7b166a5c (patch) | |
| tree | a59d2712a9cef92619bb003b77203592e5c32a7b /libs/surfaceflinger/LayerBase.cpp | |
| parent | 2ddccd16496701370572e1ad3d83da056d9ad281 (diff) | |
minor SurfaceFlinger code cleanup and remove unnecessary tests
Diffstat (limited to 'libs/surfaceflinger/LayerBase.cpp')
| -rw-r--r-- | libs/surfaceflinger/LayerBase.cpp | 120 | 
1 files changed, 55 insertions, 65 deletions
diff --git a/libs/surfaceflinger/LayerBase.cpp b/libs/surfaceflinger/LayerBase.cpp index 5a93b2d46161..a351253d8d09 100644 --- a/libs/surfaceflinger/LayerBase.cpp +++ b/libs/surfaceflinger/LayerBase.cpp @@ -363,15 +363,13 @@ void LayerBase::clearWithOpenGL(const Region& clip, GLclampx red,      Region::const_iterator it = clip.begin();      Region::const_iterator const end = clip.end(); -    if (it != end) { -        glEnable(GL_SCISSOR_TEST); -        glVertexPointer(2, GL_FIXED, 0, mVertices); -        while (it != end) { -            const Rect& r = *it++; -            const GLint sy = fbHeight - (r.top + r.height()); -            glScissor(r.left, sy, r.width(), r.height()); -            glDrawArrays(GL_TRIANGLE_FAN, 0, 4);  -        } +    glEnable(GL_SCISSOR_TEST); +    glVertexPointer(2, GL_FIXED, 0, mVertices); +    while (it != end) { +        const Rect& r = *it++; +        const GLint sy = fbHeight - (r.top + r.height()); +        glScissor(r.left, sy, r.width(), r.height()); +        glDrawArrays(GL_TRIANGLE_FAN, 0, 4);       }  } @@ -427,71 +425,63 @@ void LayerBase::drawWithOpenGL(const Region& clip, const Texture& texture) const          }      } +    Region::const_iterator it = clip.begin(); +    Region::const_iterator const end = clip.end();      if (UNLIKELY(transformed()              || !(mFlags & DisplayHardware::DRAW_TEXTURE_EXTENSION) ))       {          //StopWatch watch("GL transformed"); -        Region::const_iterator it = clip.begin(); -        Region::const_iterator const end = clip.end(); -        if (it != end) { -            const GLfixed texCoords[4][2] = { -                    { 0,        0 }, -                    { 0,        0x10000 }, -                    { 0x10000,  0x10000 }, -                    { 0x10000,  0 } -            }; - -            glMatrixMode(GL_TEXTURE); -            glLoadIdentity(); -             -            // the texture's source is rotated -            if (texture.transform == HAL_TRANSFORM_ROT_90) { -                // TODO: handle the other orientations -                glTranslatef(0, 1, 0); -                glRotatef(-90, 0, 0, 1); -            } +        const GLfixed texCoords[4][2] = { +                { 0,        0 }, +                { 0,        0x10000 }, +                { 0x10000,  0x10000 }, +                { 0x10000,  0 } +        }; + +        glMatrixMode(GL_TEXTURE); +        glLoadIdentity(); + +        // the texture's source is rotated +        if (texture.transform == HAL_TRANSFORM_ROT_90) { +            // TODO: handle the other orientations +            glTranslatef(0, 1, 0); +            glRotatef(-90, 0, 0, 1); +        } -            if (!(mFlags & (DisplayHardware::NPOT_EXTENSION | -                            DisplayHardware::DIRECT_TEXTURE))) { -                // find the smallest power-of-two that will accommodate our surface -                GLuint tw = 1 << (31 - clz(width)); -                GLuint th = 1 << (31 - clz(height)); -                if (tw < width)  tw <<= 1; -                if (th < height) th <<= 1; -                // this divide should be relatively fast because it's -                // a power-of-two (optimized path in libgcc) -                GLfloat ws = GLfloat(width) /tw; -                GLfloat hs = GLfloat(height)/th; -                glScalef(ws, hs, 1.0f); -            } +        if (!(mFlags & (DisplayHardware::NPOT_EXTENSION | +                DisplayHardware::DIRECT_TEXTURE))) { +            // find the smallest power-of-two that will accommodate our surface +            GLuint tw = 1 << (31 - clz(width)); +            GLuint th = 1 << (31 - clz(height)); +            if (tw < width)  tw <<= 1; +            if (th < height) th <<= 1; +            GLfloat ws = GLfloat(width) /tw; +            GLfloat hs = GLfloat(height)/th; +            glScalef(ws, hs, 1.0f); +        } -            glEnableClientState(GL_TEXTURE_COORD_ARRAY); -            glVertexPointer(2, GL_FIXED, 0, mVertices); -            glTexCoordPointer(2, GL_FIXED, 0, texCoords); +        glEnableClientState(GL_TEXTURE_COORD_ARRAY); +        glVertexPointer(2, GL_FIXED, 0, mVertices); +        glTexCoordPointer(2, GL_FIXED, 0, texCoords); -            while (it != end) { -                const Rect& r = *it++; -                const GLint sy = fbHeight - (r.top + r.height()); -                glScissor(r.left, sy, r.width(), r.height()); -                glDrawArrays(GL_TRIANGLE_FAN, 0, 4);  -            } -            glDisableClientState(GL_TEXTURE_COORD_ARRAY); +        while (it != end) { +            const Rect& r = *it++; +            const GLint sy = fbHeight - (r.top + r.height()); +            glScissor(r.left, sy, r.width(), r.height()); +            glDrawArrays(GL_TRIANGLE_FAN, 0, 4);           } +        glDisableClientState(GL_TEXTURE_COORD_ARRAY);      } else { -        Region::const_iterator it = clip.begin(); -        Region::const_iterator const end = clip.end(); -        if (it != end) { -            GLint crop[4] = { 0, height, width, -height }; -            glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, crop); -            int x = tx(); -            int y = ty(); -            y = fbHeight - (y + height); -            while (it != end) { -                const Rect& r = *it++; -                const GLint sy = fbHeight - (r.top + r.height()); -                glScissor(r.left, sy, r.width(), r.height()); -                glDrawTexiOES(x, y, 0, width, height); -            } +        GLint crop[4] = { 0, height, width, -height }; +        glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, crop); +        int x = tx(); +        int y = ty(); +        y = fbHeight - (y + height); +        while (it != end) { +            const Rect& r = *it++; +            const GLint sy = fbHeight - (r.top + r.height()); +            glScissor(r.left, sy, r.width(), r.height()); +            glDrawTexiOES(x, y, 0, width, height);          }      }  }  |