mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 04:15:43 +00:00
Merge backout
This commit is contained in:
commit
3d7c76396c
@ -60,7 +60,8 @@ import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class GeckoLayerClient implements GeckoEventListener,
|
||||
FlexibleGLSurfaceView.Listener {
|
||||
FlexibleGLSurfaceView.Listener,
|
||||
VirtualLayer.Listener {
|
||||
private static final String LOGTAG = "GeckoLayerClient";
|
||||
|
||||
private LayerController mLayerController;
|
||||
@ -120,6 +121,8 @@ public class GeckoLayerClient implements GeckoEventListener,
|
||||
sendResizeEventIfNecessary(false);
|
||||
|
||||
LayerView view = layerController.getView();
|
||||
view.setListener(this);
|
||||
|
||||
mLayerRenderer = new LayerRenderer(view);
|
||||
}
|
||||
|
||||
@ -323,6 +326,7 @@ public class GeckoLayerClient implements GeckoEventListener,
|
||||
|
||||
Log.e(LOGTAG, "### Creating virtual layer");
|
||||
VirtualLayer virtualLayer = new VirtualLayer();
|
||||
virtualLayer.setListener(this);
|
||||
virtualLayer.setSize(getBufferSize());
|
||||
mLayerController.setRoot(virtualLayer);
|
||||
mTileLayer = virtualLayer;
|
||||
@ -492,6 +496,11 @@ public class GeckoLayerClient implements GeckoEventListener,
|
||||
renderRequested();
|
||||
}
|
||||
|
||||
/** Implementation of VirtualLayer.Listener */
|
||||
public void dimensionsChanged(Point newOrigin, float newResolution) {
|
||||
Log.e(LOGTAG, "### dimensionsChanged " + newOrigin + " " + newResolution);
|
||||
}
|
||||
|
||||
/** Used by robocop for testing purposes. Not for production use! This is called via reflection by robocop. */
|
||||
public void setDrawListener(DrawListener listener) {
|
||||
mDrawListener = listener;
|
||||
|
@ -182,6 +182,10 @@ public abstract class Layer {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected boolean dimensionChangesPending() {
|
||||
return (mNewOrigin != null) || (mNewResolution != 0.0f);
|
||||
}
|
||||
|
||||
public static class RenderContext {
|
||||
public final RectF viewport;
|
||||
public final FloatSize pageSize;
|
||||
|
@ -38,9 +38,16 @@
|
||||
|
||||
package org.mozilla.gecko.gfx;
|
||||
|
||||
import android.graphics.Point;
|
||||
|
||||
public class VirtualLayer extends Layer {
|
||||
private Listener mListener;
|
||||
private IntSize mSize;
|
||||
|
||||
public void setListener(Listener listener) {
|
||||
mListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(RenderContext context) {
|
||||
// No-op.
|
||||
@ -54,5 +61,20 @@ public class VirtualLayer extends Layer {
|
||||
public void setSize(IntSize size) {
|
||||
mSize = size;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean performUpdates(RenderContext context) {
|
||||
boolean dimensionsChanged = dimensionChangesPending();
|
||||
boolean result = super.performUpdates(context);
|
||||
if (dimensionsChanged && mListener != null) {
|
||||
mListener.dimensionsChanged(getOrigin(), getResolution());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public interface Listener {
|
||||
void dimensionsChanged(Point newOrigin, float newResolution);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user