< prev index next >
modules/media/src/main/java/javafx/scene/media/MediaView.java
Print this page
*** 101,110 ****
--- 101,131 ----
@Override
public void doUpdatePeer(Node node) {
((MediaView) node).doUpdatePeer();
}
+
+ @Override
+ public void doTransformsChanged(Node node) {
+ ((MediaView) node).doTransformsChanged();
+ }
+
+ @Override
+ public BaseBounds doComputeGeomBounds(Node node,
+ BaseBounds bounds, BaseTransform tx) {
+ return ((MediaView) node).doComputeGeomBounds(bounds, tx);
+ }
+
+ @Override
+ public boolean doComputeContains(Node node, double localX, double localY) {
+ return ((MediaView) node).doComputeContains(localX, localY);
+ }
+
+ @Override
+ public Object doProcessMXNode(Node node, MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) {
+ return ((MediaView) node).doProcessMXNode(alg, ctx);
+ }
});
}
/**
* The name of the property in the {@link ObservableMap} returned by
*** 131,141 ****
private InvalidationListener errorListener = new MediaErrorInvalidationListener();
/** Listener which causes the geometry to be updated when the media dimension changes. */
private InvalidationListener mediaDimensionListener = value -> {
NodeHelper.markDirty(this, DirtyBits.NODE_VIEWPORT);
! impl_geomChanged();
};
/** Listener for decoded frame rate. */
private com.sun.media.jfxmedia.events.VideoFrameRateListener decodedFrameRateListener;
private boolean registerVideoFrameRateListener = false;
--- 152,162 ----
private InvalidationListener errorListener = new MediaErrorInvalidationListener();
/** Listener which causes the geometry to be updated when the media dimension changes. */
private InvalidationListener mediaDimensionListener = value -> {
NodeHelper.markDirty(this, DirtyBits.NODE_VIEWPORT);
! NodeHelper.geomChanged(this);
};
/** Listener for decoded frame rate. */
private com.sun.media.jfxmedia.events.VideoFrameRateListener decodedFrameRateListener;
private boolean registerVideoFrameRateListener = false;
*** 236,246 ****
}
private static Affine3D calculateNodeToSceneTransform(Node node) {
final Affine3D transform = new Affine3D();
do {
! transform.preConcatenate(node.impl_getLeafTransform());
node = node.getParent();
} while (node != null);
return transform;
}
--- 257,267 ----
}
private static Affine3D calculateNodeToSceneTransform(Node node) {
final Affine3D transform = new Affine3D();
do {
! transform.preConcatenate(NodeHelper.getLeafTransform(node));
node = node.getParent();
} while (node != null);
return transform;
}
*** 268,285 ****
getIOSPlayer().setOverlayOpacity(getOpacity());
getIOSPlayer().setOverlayVisible(determineVisibility());
updateOverlayTransformDirectly();
}
! /**
! * @treatAsPrivate implementation detail
! * @deprecated This is an internal API that is not intended for use and will be removed in the next version
*/
! @Deprecated
! @Override
! public void impl_transformsChanged() {
! super.impl_transformsChanged();
if (HostUtils.isIOS()) {
updateOverlayTransform();
}
}
--- 289,303 ----
getIOSPlayer().setOverlayOpacity(getOpacity());
getIOSPlayer().setOverlayVisible(determineVisibility());
updateOverlayTransformDirectly();
}
! /*
! *
! * Note: This method MUST only be called via its accessor method.
*/
! private void doTransformsChanged() {
if (HostUtils.isIOS()) {
updateOverlayTransform();
}
}
*** 307,317 ****
decodedFrameRateListener = createVideoFrameRateListener();
setNodeOrientation(NodeOrientation.LEFT_TO_RIGHT);
if (HostUtils.isIOS()) {
createListeners();
parentProperty().addListener(parentListener);
! impl_treeVisibleProperty().addListener(treeVisibleListener);
opacityProperty().addListener(opacityListener);
}
}
/**
--- 325,335 ----
decodedFrameRateListener = createVideoFrameRateListener();
setNodeOrientation(NodeOrientation.LEFT_TO_RIGHT);
if (HostUtils.isIOS()) {
createListeners();
parentProperty().addListener(parentListener);
! NodeHelper.treeVisibleProperty(this).addListener(treeVisibleListener);
opacityProperty().addListener(opacityListener);
}
}
/**
*** 396,406 ****
media.widthProperty().addListener(mediaDimensionListener);
media.heightProperty().addListener(mediaDimensionListener);
}
}
NodeHelper.markDirty(MediaView.this, DirtyBits.MEDIAVIEW_MEDIA);
! impl_geomChanged();
oldValue = newValue;
}
@Override
public Object getBean() {
return MediaView.this;
--- 414,424 ----
media.widthProperty().addListener(mediaDimensionListener);
media.heightProperty().addListener(mediaDimensionListener);
}
}
NodeHelper.markDirty(MediaView.this, DirtyBits.MEDIAVIEW_MEDIA);
! NodeHelper.geomChanged(MediaView.this);
oldValue = newValue;
}
@Override
public Object getBean() {
return MediaView.this;
*** 493,503 ****
if (HostUtils.isIOS()) {
updateOverlayPreserveRatio();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_VIEWPORT);
! impl_geomChanged();
}
}
@Override
public Object getBean() {
--- 511,521 ----
if (HostUtils.isIOS()) {
updateOverlayPreserveRatio();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_VIEWPORT);
! NodeHelper.geomChanged(MediaView.this);
}
}
@Override
public Object getBean() {
*** 594,604 ****
if (HostUtils.isIOS()) {
updateOverlayX();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_GEOMETRY);
! impl_geomChanged();
}
}
@Override
public Object getBean() {
--- 612,622 ----
if (HostUtils.isIOS()) {
updateOverlayX();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_GEOMETRY);
! NodeHelper.geomChanged(MediaView.this);
}
}
@Override
public Object getBean() {
*** 644,654 ****
if (HostUtils.isIOS()) {
updateOverlayY();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_GEOMETRY);
! impl_geomChanged();
}
}
@Override
public Object getBean() {
--- 662,672 ----
if (HostUtils.isIOS()) {
updateOverlayY();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_GEOMETRY);
! NodeHelper.geomChanged(MediaView.this);
}
}
@Override
public Object getBean() {
*** 701,711 ****
if (HostUtils.isIOS()) {
updateOverlayWidth();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_VIEWPORT);
! impl_geomChanged();
}
}
@Override
public Object getBean() {
--- 719,729 ----
if (HostUtils.isIOS()) {
updateOverlayWidth();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_VIEWPORT);
! NodeHelper.geomChanged(MediaView.this);
}
}
@Override
public Object getBean() {
*** 758,768 ****
if (HostUtils.isIOS()) {
updateOverlayHeight();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_VIEWPORT);
! impl_geomChanged();
}
}
@Override
public Object getBean() {
--- 776,786 ----
if (HostUtils.isIOS()) {
updateOverlayHeight();
}
else {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_VIEWPORT);
! NodeHelper.geomChanged(MediaView.this);
}
}
@Override
public Object getBean() {
*** 810,820 ****
viewport = new ObjectPropertyBase<Rectangle2D>() {
@Override
protected void invalidated() {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_VIEWPORT);
! impl_geomChanged();
}
@Override
public Object getBean() {
return MediaView.this;
--- 828,838 ----
viewport = new ObjectPropertyBase<Rectangle2D>() {
@Override
protected void invalidated() {
NodeHelper.markDirty(MediaView.this, DirtyBits.NODE_VIEWPORT);
! NodeHelper.geomChanged(MediaView.this);
}
@Override
public Object getBean() {
return MediaView.this;
*** 835,850 ****
final NGMediaView peer = NodeHelper.getPeer(this);
peer.setMediaProvider(player);
}
NodeHelper.markDirty(this, DirtyBits.MEDIAVIEW_MEDIA);
! impl_geomChanged();
}
void notifyMediaSizeChange() {
NodeHelper.markDirty(this, DirtyBits.NODE_VIEWPORT);
! impl_geomChanged();
}
void notifyMediaFrameUpdated() {
decodedFrameCount++;
NodeHelper.markDirty(this, DirtyBits.NODE_CONTENTS);
--- 853,868 ----
final NGMediaView peer = NodeHelper.getPeer(this);
peer.setMediaProvider(player);
}
NodeHelper.markDirty(this, DirtyBits.MEDIAVIEW_MEDIA);
! NodeHelper.geomChanged(this);
}
void notifyMediaSizeChange() {
NodeHelper.markDirty(this, DirtyBits.NODE_VIEWPORT);
! NodeHelper.geomChanged(this);
}
void notifyMediaFrameUpdated() {
decodedFrameCount++;
NodeHelper.markDirty(this, DirtyBits.NODE_CONTENTS);
*** 858,874 ****
// this has to be done on the main toolkit thread...
peer.setFrameTracker(new MediaViewFrameTracker());
return peer;
}
! /**
! * @treatAsPrivate implementation detail
! * @deprecated This is an internal API that is not intended for use and will be removed in the next version
*/
! @Deprecated
! @Override
! public BaseBounds impl_computeGeomBounds(BaseBounds bounds, BaseTransform tx) {
// need to figure out the width/height to use for computing bounds
Media media = (getMediaPlayer() == null) ? null : getMediaPlayer().getMedia();
double w = media != null ? media.getWidth() : 0; // if media is null, width will be 0
double h = media != null ? media.getHeight() : 0; // if media is null, height will be 0
--- 876,889 ----
// this has to be done on the main toolkit thread...
peer.setFrameTracker(new MediaViewFrameTracker());
return peer;
}
! /*
! * Note: This method MUST only be called via its accessor method.
*/
! private BaseBounds doComputeGeomBounds(BaseBounds bounds, BaseTransform tx) {
// need to figure out the width/height to use for computing bounds
Media media = (getMediaPlayer() == null) ? null : getMediaPlayer().getMedia();
double w = media != null ? media.getWidth() : 0; // if media is null, width will be 0
double h = media != null ? media.getHeight() : 0; // if media is null, height will be 0
*** 923,939 ****
(float)(getX()+w), (float)(getY()+h), 0.0f);
bounds = tx.transform(bounds, bounds);
return bounds;
}
! /**
! * @treatAsPrivate implementation detail
! * @deprecated This is an internal API that is not intended for use and will be removed in the next version
*/
! @Deprecated
! @Override
! protected boolean impl_computeContains(double localX, double localY) {
// Currently this is simply a local bounds test which is already tested
// by the caller (Node.contains()).
return true;
}
--- 938,951 ----
(float)(getX()+w), (float)(getY()+h), 0.0f);
bounds = tx.transform(bounds, bounds);
return bounds;
}
! /*
! * Note: This method MUST only be called via its accessor method.
*/
! private boolean doComputeContains(double localX, double localY) {
// Currently this is simply a local bounds test which is already tested
// by the caller (Node.contains()).
return true;
}
*** 1030,1045 ****
public void incrementRenderedFrameCount(int count) {
renderedFrameCount += count;
}
}
! /**
! * @treatAsPrivate implementation detail
! * @deprecated This is an internal API that is not intended for use and will be removed in the next version
*/
! @Deprecated
! public Object impl_processMXNode(MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) {
return alg.processLeafNode(this, ctx);
}
/**
* Called by MediaPlayer when it becomes ready
--- 1042,1055 ----
public void incrementRenderedFrameCount(int count) {
renderedFrameCount += count;
}
}
! /*
! * Note: This method MUST only be called via its accessor method.
*/
! private Object doProcessMXNode(MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) {
return alg.processLeafNode(this, ctx);
}
/**
* Called by MediaPlayer when it becomes ready
< prev index next >