985 updateViewport(); 986 } 987 if (NodeHelper.isDirty(this, DirtyBits.NODE_CONTENTS)) { 988 peer.renderNextFrame(); 989 } 990 if (NodeHelper.isDirty(this, DirtyBits.MEDIAVIEW_MEDIA)) { 991 MediaPlayer player = getMediaPlayer(); 992 if (player != null) { 993 peer.setMediaProvider(player); 994 updateViewport(); 995 } else { 996 peer.setMediaProvider(null); 997 } 998 } 999 } 1000 1001 1002 private int decodedFrameCount; 1003 private int renderedFrameCount; 1004 1005 /** 1006 * @treatAsPrivate implementation detail 1007 * @deprecated This is an internal API that is not intended for use and will be removed in the next version 1008 */ 1009 @Deprecated 1010 public void impl_perfReset() { 1011 decodedFrameCount = 0; 1012 renderedFrameCount = 0; 1013 } 1014 1015 /** 1016 * @return number of frames that have been submitted for rendering 1017 * @treatAsPrivate implementation detail 1018 * @deprecated This is an internal API that is not intended for use and will be removed in the next version 1019 */ 1020 @Deprecated 1021 public int impl_perfGetDecodedFrameCount() { 1022 return decodedFrameCount; 1023 } 1024 1025 /** 1026 * @return number of frames that have been rendered 1027 * @treatAsPrivate implementation detail 1028 * @deprecated This is an internal API that is not intended for use and will be removed in the next version 1029 */ 1030 @Deprecated 1031 public int impl_perfGetRenderedFrameCount() { 1032 return renderedFrameCount; 1033 } 1034 1035 private class MediaViewFrameTracker implements MediaFrameTracker { 1036 @Override 1037 public void incrementDecodedFrameCount(int count) { 1038 decodedFrameCount += count; 1039 } 1040 1041 @Override 1042 public void incrementRenderedFrameCount(int count) { 1043 renderedFrameCount += count; 1044 } 1045 } 1046 1047 /* 1048 * Note: This method MUST only be called via its accessor method. 1049 */ 1050 private Object doProcessMXNode(MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) { 1051 return alg.processLeafNode(this, ctx); | 985 updateViewport(); 986 } 987 if (NodeHelper.isDirty(this, DirtyBits.NODE_CONTENTS)) { 988 peer.renderNextFrame(); 989 } 990 if (NodeHelper.isDirty(this, DirtyBits.MEDIAVIEW_MEDIA)) { 991 MediaPlayer player = getMediaPlayer(); 992 if (player != null) { 993 peer.setMediaProvider(player); 994 updateViewport(); 995 } else { 996 peer.setMediaProvider(null); 997 } 998 } 999 } 1000 1001 1002 private int decodedFrameCount; 1003 private int renderedFrameCount; 1004 1005 void perfReset() { 1006 decodedFrameCount = 0; 1007 renderedFrameCount = 0; 1008 } 1009 1010 /** 1011 * @return number of frames that have been submitted for rendering 1012 */ 1013 int perfGetDecodedFrameCount() { 1014 return decodedFrameCount; 1015 } 1016 1017 /** 1018 * @return number of frames that have been rendered 1019 */ 1020 int perfGetRenderedFrameCount() { 1021 return renderedFrameCount; 1022 } 1023 1024 private class MediaViewFrameTracker implements MediaFrameTracker { 1025 @Override 1026 public void incrementDecodedFrameCount(int count) { 1027 decodedFrameCount += count; 1028 } 1029 1030 @Override 1031 public void incrementRenderedFrameCount(int count) { 1032 renderedFrameCount += count; 1033 } 1034 } 1035 1036 /* 1037 * Note: This method MUST only be called via its accessor method. 1038 */ 1039 private Object doProcessMXNode(MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) { 1040 return alg.processLeafNode(this, ctx); |