Add test for gamma correction.

Change-Id: Id2a311bc116438d3627a943cb5fb1ba8dc121bb0
diff --git a/tests/HwAccelerationTest/AndroidManifest.xml b/tests/HwAccelerationTest/AndroidManifest.xml
index 564f13e..34cbc44 100644
--- a/tests/HwAccelerationTest/AndroidManifest.xml
+++ b/tests/HwAccelerationTest/AndroidManifest.xml
@@ -31,6 +31,26 @@
         </activity>
         
         <activity
+                android:name="TextGammaActivity"
+                android:label="_Gamma"
+                android:theme="@android:style/Theme.Translucent.NoTitleBar">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+            <activity
+                android:name="TextGammaActivity$SubGammaActivity"
+                android:label="_Sub Gamma"
+                android:theme="@android:style/Theme.Translucent.NoTitleBar"
+                android:hardwareAccelerated="false">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+        
+        <activity
                 android:name="LayersActivity"
                 android:label="_Layers"
                 android:theme="@android:style/Theme.Translucent.NoTitleBar">
diff --git a/tests/HwAccelerationTest/res/layout/text_large.xml b/tests/HwAccelerationTest/res/layout/text_large.xml
new file mode 100644
index 0000000..85b374c
--- /dev/null
+++ b/tests/HwAccelerationTest/res/layout/text_large.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="6dip"
+    android:layout_marginLeft="6dip"
+    android:textAppearance="?android:attr/textAppearanceLargeInverse"
+    android:text="Widget "/> 
diff --git a/tests/HwAccelerationTest/res/layout/text_medium.xml b/tests/HwAccelerationTest/res/layout/text_medium.xml
new file mode 100644
index 0000000..8e195e6
--- /dev/null
+++ b/tests/HwAccelerationTest/res/layout/text_medium.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="6dip"
+    android:layout_marginLeft="6dip"
+    android:textAppearance="?android:attr/textAppearanceMediumInverse"
+    android:text="Widget "/> 
diff --git a/tests/HwAccelerationTest/res/layout/text_small.xml b/tests/HwAccelerationTest/res/layout/text_small.xml
new file mode 100644
index 0000000..45eee60
--- /dev/null
+++ b/tests/HwAccelerationTest/res/layout/text_small.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="6dip"
+    android:layout_marginLeft="6dip"
+    android:textAppearance="?android:attr/textAppearanceSmallInverse"
+    android:text="Widget "/> 
diff --git a/tests/HwAccelerationTest/src/com/google/android/test/hwui/TextGammaActivity.java b/tests/HwAccelerationTest/src/com/google/android/test/hwui/TextGammaActivity.java
new file mode 100644
index 0000000..185cfa4
--- /dev/null
+++ b/tests/HwAccelerationTest/src/com/google/android/test/hwui/TextGammaActivity.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.android.test.hwui;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+
+@SuppressWarnings({"UnusedDeclaration"})
+public class TextGammaActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        final LinearLayout layout = new LinearLayout(this);
+        layout.setOrientation(LinearLayout.VERTICAL);
+
+        final GammaTextView gamma = new GammaTextView(this);
+        layout.addView(gamma, new LinearLayout.LayoutParams(
+                LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT
+        ));
+
+        setContentView(layout);
+        
+        layout.post(new Runnable() {
+            @Override
+            public void run() {
+                Bitmap b = Bitmap.createBitmap(gamma.getWidth(), gamma.getHeight(),
+                        Bitmap.Config.ARGB_8888);
+                Canvas c = new Canvas(b);
+                c.drawColor(0, PorterDuff.Mode.CLEAR);
+                gamma.draw(c);
+
+                ImageView image = new ImageView(TextGammaActivity.this);
+                image.setImageBitmap(b);
+
+                layout.addView(image, new LinearLayout.LayoutParams(
+                        LinearLayout.LayoutParams.WRAP_CONTENT,
+                        LinearLayout.LayoutParams.WRAP_CONTENT
+                ));
+
+                startActivity(new Intent(TextGammaActivity.this, SubGammaActivity.class));
+            }
+        });
+
+        getWindow().setBackgroundDrawable(new ColorDrawable(0xffffffff));
+    }
+
+    static class GammaTextView extends LinearLayout {
+        GammaTextView(Context c) {
+            super(c);
+
+            setBackgroundColor(0xffffffff);
+
+            final LayoutInflater inflater = LayoutInflater.from(c);
+            inflater.inflate(R.layout.text_large, this, true);
+            inflater.inflate(R.layout.text_medium, this, true);
+            inflater.inflate(R.layout.text_small, this, true);
+        }
+    }
+
+    public static class SubGammaActivity extends Activity {
+        @Override
+        protected void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+
+            final LinearLayout layout = new LinearLayout(this);
+            layout.setOrientation(LinearLayout.VERTICAL);
+        
+            final GammaTextView gamma = new GammaTextView(this);
+            final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
+                    LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT
+            );
+            lp.setMargins(0, 74, 0, 0);
+            layout.addView(gamma, lp);
+
+            setContentView(layout);
+        }
+    }
+}