Merge "Add support for 180/270 degrees rotation."

This commit is contained in:
Chih-Chung Chang
2010-01-22 18:08:23 -08:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 6 deletions

View File

@@ -55,8 +55,11 @@ public:
class BufferHeap {
public:
enum {
/* rotate source image 90 degrees */
/* rotate source image */
ROT_0 = 0,
ROT_90 = HAL_TRANSFORM_ROT_90,
ROT_180 = HAL_TRANSFORM_ROT_180,
ROT_270 = HAL_TRANSFORM_ROT_270,
};
BufferHeap();

View File

@@ -444,12 +444,21 @@ void LayerBase::drawWithOpenGL(const Region& clip, const Texture& texture) const
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);
switch (texture.transform) {
case HAL_TRANSFORM_ROT_90:
glTranslatef(0, 1, 0);
glRotatef(-90, 0, 0, 1);
break;
case HAL_TRANSFORM_ROT_180:
glTranslatef(1, 1, 0);
glRotatef(-180, 0, 0, 1);
break;
case HAL_TRANSFORM_ROT_270:
glTranslatef(1, 0, 0);
glRotatef(-270, 0, 0, 1);
break;
}
if (texture.NPOTAdjust) {
glScalef(texture.wScale, texture.hScale, 1.0f);
}