Merge "Camera2: cleanup unused imports" into klp-dev
diff --git a/api/current.txt b/api/current.txt
index eaf28f3b..48a07cb 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -11017,6 +11017,7 @@
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_EXPOSURE_TIME;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_FRAME_DURATION;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_SENSITIVITY;
+ field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_TEMPERATURE;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_TIMESTAMP;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_FACE_DETECT_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_FACE_IDS;
diff --git a/core/java/android/hardware/camera2/impl/CameraDevice.java b/core/java/android/hardware/camera2/impl/CameraDevice.java
index fa79051..1fb690e 100644
--- a/core/java/android/hardware/camera2/impl/CameraDevice.java
+++ b/core/java/android/hardware/camera2/impl/CameraDevice.java
@@ -24,6 +24,7 @@
import android.hardware.camera2.CameraProperties;
import android.hardware.camera2.CaptureRequest;
import android.hardware.camera2.utils.CameraRuntimeException;
+import android.hardware.camera2.utils.CameraBinderDecorator;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
@@ -67,7 +68,8 @@
}
public void setRemoteDevice(ICameraDeviceUser remoteDevice) {
- mRemoteDevice = remoteDevice;
+ // TODO: Move from decorator to direct binder-mediated exceptions
+ mRemoteDevice = CameraBinderDecorator.newInstance(remoteDevice);
}
@Override
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index c0b3bfc..f8d3589 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -166,11 +166,16 @@
debugLayersUpdates = false;
}
+ debugOverdraw = false;
if (property_get(PROPERTY_DEBUG_OVERDRAW, property, NULL) > 0) {
INIT_LOGD(" Overdraw debug enabled: %s", property);
- debugOverdraw = !strcmp(property, "show");
- } else {
- debugOverdraw = false;
+ if (!strcmp(property, "show")) {
+ debugOverdraw = true;
+ mOverdrawDebugColorSet = kColorSet_Default;
+ } else if (!strcmp(property, "show_deuteranomaly")) {
+ debugOverdraw = true;
+ mOverdrawDebugColorSet = kColorSet_Deuteranomaly;
+ }
}
// See Properties.h for valid values
@@ -235,6 +240,16 @@
// Debug
///////////////////////////////////////////////////////////////////////////////
+uint32_t Caches::getOverdrawColor(uint32_t amount) const {
+ static uint32_t sOverdrawColors[2][4] = {
+ { 0x2f0000ff, 0x2f00ff00, 0x3fff0000, 0x7fff0000 },
+ { 0x2f0000ff, 0x4fffff00, 0x5fff8ad8, 0x7fff0000 }
+ };
+ if (amount < 1) amount = 1;
+ if (amount > 4) amount = 4;
+ return sOverdrawColors[mOverdrawDebugColorSet][amount - 1];
+}
+
void Caches::dumpMemoryUsage() {
String8 stringLog;
dumpMemoryUsage(stringLog);
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h
index f8b1e17..282aee9 100644
--- a/libs/hwui/Caches.h
+++ b/libs/hwui/Caches.h
@@ -150,6 +150,12 @@
}
/**
+ * Returns a non-premultiplied ARGB color for the specified
+ * amount of overdraw (1 for 1x, 2 for 2x, etc.)
+ */
+ uint32_t getOverdrawColor(uint32_t amount) const;
+
+ /**
* Call this on each frame to ensure that garbage is deleted from
* GPU memory.
*/
@@ -348,6 +354,11 @@
PFNGLGETOBJECTLABELEXTPROC getLabel;
private:
+ enum OverdrawColorSet {
+ kColorSet_Default = 0,
+ kColorSet_Deuteranomaly
+ };
+
void initFont();
void initExtensions();
void initConstraints();
@@ -400,6 +411,8 @@
uint32_t mFunctorsCount;
GLuint mBoundTextures[REQUIRED_TEXTURE_UNITS_COUNT];
+
+ OverdrawColorSet mOverdrawDebugColorSet;
}; // class Caches
}; // namespace uirenderer
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 707f662..f2352bb 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -530,14 +530,22 @@
mCaches.setScissor(clip->left, mFirstSnapshot->height - clip->bottom,
clip->right - clip->left, clip->bottom - clip->top);
+ // 1x overdraw
mCaches.stencil.enableDebugTest(2);
- drawColor(0x2f0000ff, SkXfermode::kSrcOver_Mode);
+ drawColor(mCaches.getOverdrawColor(1), SkXfermode::kSrcOver_Mode);
+
+ // 2x overdraw
mCaches.stencil.enableDebugTest(3);
- drawColor(0x2f00ff00, SkXfermode::kSrcOver_Mode);
+ drawColor(mCaches.getOverdrawColor(2), SkXfermode::kSrcOver_Mode);
+
+ // 3x overdraw
mCaches.stencil.enableDebugTest(4);
- drawColor(0x3fff0000, SkXfermode::kSrcOver_Mode);
+ drawColor(mCaches.getOverdrawColor(3), SkXfermode::kSrcOver_Mode);
+
+ // 4x overdraw and higher
mCaches.stencil.enableDebugTest(4, true);
- drawColor(0x7fff0000, SkXfermode::kSrcOver_Mode);
+ drawColor(mCaches.getOverdrawColor(4), SkXfermode::kSrcOver_Mode);
+
mCaches.stencil.disable();
}
}
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index 86b0aa2..20b8f2f 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -70,8 +70,15 @@
#define PROPERTY_DEBUG_LAYERS_UPDATES "debug.hwui.show_layers_updates"
/**
- * Used to enable/disable overdraw debugging. The accepted values are
- * "show", "count" and "false". The default value is "false".
+ * Used to enable/disable overdraw debugging.
+ *
+ * The accepted values are
+ * "show", to show overdraw
+ * "show_deuteranomaly", to show overdraw if you suffer from Deuteranomaly
+ * "count", to show an overdraw counter
+ * "false", to disable overdraw debugging
+ *
+ * The default value is "false".
*/
#define PROPERTY_DEBUG_OVERDRAW "debug.hwui.overdraw"