Commit c90faa71 by Le Hoang Quyen Committed by Commit Bot

Metal: Auto detect parent layer's contentsScale change

Currently when user passes a CALayer to create WindowSurface, Metal back-end will create a child CAMetalLayer to render to. However, when this CALayer's contentsScale is changed, the CAMetalLayer's contentsScale wasn't updated accordingly. This CL fix this. Bug: angleproject:2634 Change-Id: I20411aa8b81a30c6353e595680f1de00a4a24da7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482407Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
parent 3d6df964
...@@ -749,6 +749,12 @@ CGSize WindowSurfaceMtl::calcExpectedDrawableSize() const ...@@ -749,6 +749,12 @@ CGSize WindowSurfaceMtl::calcExpectedDrawableSize() const
bool WindowSurfaceMtl::checkIfLayerResized(const gl::Context *context) bool WindowSurfaceMtl::checkIfLayerResized(const gl::Context *context)
{ {
if (mMetalLayer.get() != mLayer && mMetalLayer.get().contentsScale != mLayer.contentsScale)
{
// Parent layer's content scale has changed, update Metal layer's scale factor.
mMetalLayer.get().contentsScale = mLayer.contentsScale;
}
CGSize currentLayerDrawableSize = mMetalLayer.get().drawableSize; CGSize currentLayerDrawableSize = mMetalLayer.get().drawableSize;
CGSize expectedDrawableSize = calcExpectedDrawableSize(); CGSize expectedDrawableSize = calcExpectedDrawableSize();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment