Bug 663803 - Zoomed view implementation using render document r=mcomella,snorp

This commit is contained in:
dominique vincent
2015-01-21 05:59:23 +01:00
parent baeec9f653
commit 40e211f525
18 changed files with 835 additions and 20 deletions

View File

@@ -5,7 +5,9 @@
package org.mozilla.gecko.gfx;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import java.util.ArrayList;
import org.mozilla.gecko.AndroidGamepadManager;
import org.mozilla.gecko.AppConstants.Versions;
@@ -530,6 +532,19 @@ public class LayerView extends FrameLayout implements Tabs.OnTabsChangedListener
}
}
@WrapElementForJNI(allowMultithread = true, stubName = "updateZoomedView")
public static void updateZoomedView(ByteBuffer data) {
data.position(0);
LayerView layerView = GeckoAppShell.getLayerView();
if (layerView != null) {
LayerRenderer layerRenderer = layerView.getRenderer();
if (layerRenderer != null){
layerRenderer.updateZoomedView(data);
}
}
return;
}
public interface Listener {
void renderRequested();
void sizeChanged(int width, int height);
@@ -662,7 +677,27 @@ public class LayerView extends FrameLayout implements Tabs.OnTabsChangedListener
public void onPanZoomStopped();
}
public void setOnMetricsChangedListener(OnMetricsChangedListener listener) {
mLayerClient.setOnMetricsChangedListener(listener);
public void setOnMetricsChangedDynamicToolbarViewportListener(OnMetricsChangedListener listener) {
mLayerClient.setOnMetricsChangedDynamicToolbarViewportListener(listener);
}
public void setOnMetricsChangedZoomedViewportListener(OnMetricsChangedListener listener) {
mLayerClient.setOnMetricsChangedZoomedViewportListener(listener);
}
// Public hooks for zoomed view
public interface OnZoomedViewListener {
public void requestZoomedViewRender();
public void updateView(ByteBuffer data);
}
public void addOnZoomedViewListener(OnZoomedViewListener listener) {
mRenderer.addOnZoomedViewListener(listener);
}
public void removeOnZoomedViewListener(OnZoomedViewListener listener) {
mRenderer.removeOnZoomedViewListener(listener);
}
}