rk3288 HDMI修改旋轉方向90度
阿新 • • 發佈:2019-01-04
frameworks/base/services/core/java/com/android/server/display/LocalDisplayAdapter.java
final class LocalDisplayAdapter extends DisplayAdapter {
} else {
mInfo.name = getContext().getResources().getString(mInfo.type = Display.TYPE_HDMI; mInfo.flags |= DisplayDeviceInfo.FLAG_PRESENTATION; +boolean noRotate = "0".equals(SystemProperties.get("ro.sf.hwrotation")); +if(noRotate && mBuiltInDisplayId == SurfaceControl.BUILT_IN_DISPLAY_ID_HDMI){ +if (SystemProperties.getBoolean("ro.rotation.external", false)) { +mInfo.flags |= DisplayDeviceInfo.FLAG_ROTATES_WITH_CONTENT; + } + String value = SystemProperties.get("ro.orientation.einit"); +if ("0".equals(value)) { + mInfo.rotation = Surface.ROTATION_0; +} else if ("90".equals(value)) { +mInfo.rotation = Surface.ROTATION_90; +} else if ("180".equals(value)) { +mInfo.rotation = Surface.ROTATION_180; +} else if ("270".equals(value)) { +mInfo.rotation = Surface.ROTATION_270; +} +}
frameworks/native/services/surfaceflinger/DisplayDevice.cpp
void DisplayDevice::setProjection(int orientation, mClientOrientation = orientation; orientation = (mHardwareOrientation + orientation) % 4; } + if (mType == DisplayDevice::DISPLAY_EXTERNAL) { + mClientOrientation = orientation; + if (orientation %2 == 1) + frame = Rect(0,0,getHeight(),getWidth()); + }
device/rockchip/rk3288/system.prop
+ro.same.orientation=true
+ro.rotation.external=true
+ro.orientation.einit=90