Package com.jme3.view.surfaceview
Class JmeSurfaceView
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.RelativeLayout
com.jme3.view.surfaceview.JmeSurfaceView
- All Implemented Interfaces:
android.content.DialogInterface.OnClickListener,android.graphics.drawable.Drawable.Callback,android.view.accessibility.AccessibilityEventSource,android.view.KeyEvent.Callback,android.view.ViewManager,android.view.ViewParent,androidx.lifecycle.LifecycleEventObserver,androidx.lifecycle.LifecycleObserver,SystemListener
public class JmeSurfaceView
extends android.widget.RelativeLayout
implements SystemListener, android.content.DialogInterface.OnClickListener, androidx.lifecycle.LifecycleEventObserver
A RelativeLayout class holder that wraps a
GLSurfaceView as a renderer UI component and uses OGLESContext as a renderer context to render
a jme game on an android view for custom xml designs.
The main idea of JmeSurfaceView class is to start a jMonkeyEngine application in a SystemListener context on a GL_ES thread,
then the game is rendered and updated through a GLSurfaceView component with a delay of user's choice using a Handler, during the delay,
the user has the ability to handle a couple of actions asynchronously as displaying a progress bar on a SplashScreen or an image or even play a preface game music of choice.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumDetermines whether the app context would be destructed with the holder activity context in case ofJmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISHor be spared for a second use in case ofJmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISH.protected static final classUsed as a static memory to protect the game context from destruction by Activity#onDestroy().Nested classes/interfaces inherited from class android.widget.RelativeLayout
android.widget.RelativeLayout.LayoutParamsNested classes/interfaces inherited from class android.view.ViewGroup
android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListenerNested classes/interfaces inherited from class android.view.View
android.view.View.AccessibilityDelegate, android.view.View.BaseSavedState, android.view.View.DragShadowBuilder, android.view.View.MeasureSpec, android.view.View.OnApplyWindowInsetsListener, android.view.View.OnAttachStateChangeListener, android.view.View.OnCapturedPointerListener, android.view.View.OnClickListener, android.view.View.OnContextClickListener, android.view.View.OnCreateContextMenuListener, android.view.View.OnDragListener, android.view.View.OnFocusChangeListener, android.view.View.OnGenericMotionListener, android.view.View.OnHoverListener, android.view.View.OnKeyListener, android.view.View.OnLayoutChangeListener, android.view.View.OnLongClickListener, android.view.View.OnScrollChangeListener, android.view.View.OnSystemUiVisibilityChangeListener, android.view.View.OnTouchListener, android.view.View.OnUnhandledKeyEventListener -
Field Summary
FieldsFields inherited from class android.widget.RelativeLayout
ABOVE, ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_END, ALIGN_LEFT, ALIGN_PARENT_BOTTOM, ALIGN_PARENT_END, ALIGN_PARENT_LEFT, ALIGN_PARENT_RIGHT, ALIGN_PARENT_START, ALIGN_PARENT_TOP, ALIGN_RIGHT, ALIGN_START, ALIGN_TOP, BELOW, CENTER_HORIZONTAL, CENTER_IN_PARENT, CENTER_VERTICAL, END_OF, LEFT_OF, RIGHT_OF, START_OF, TRUEFields inherited from class android.view.ViewGroup
CLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHEFields inherited from class android.view.View
ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z -
Constructor Summary
ConstructorsConstructorDescriptionJmeSurfaceView(android.content.Context context) Instantiates a default surface view holder without XML attributes.JmeSurfaceView(android.content.Context context, android.util.AttributeSet attrs) Instantiates a surface view holder with XML attributes from an XML document.JmeSurfaceView(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr) Instantiates a surface view holder with XML attributes and a default style attribute.JmeSurfaceView(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr, int defStyleRes) Instantiates a surface view holder with XML attributes, default style attribute and a default style resource. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdds the glSurfaceView to the screen immediately, saving the current app instance.voidbindAppStateToActivityLifeCycle(boolean condition) Binds/Unbinds the game life cycle to the holder activity life cycle.voiddestroy()Callback to indicate that the context has been destroyed (either by the user or requested by the application itself).voidCalled when the application gained focus.Gets the game window settings.Gets the audio renderer in String.Gets the current destruction policy.intGets the Embedded gL alpha(opacity) bits.intGets the bits/pixel for Embedded gLintGets the memory representing the EGL depth in bits.intGets the number of samples to use for multi-sampling.intGets the number of stencil buffer bits.intGets the limited FrameRate level for egl INFO.Gets the current device GL_ES version.Gets the jme app instance.voidhandleError(String errorMsg, Throwable throwable) Called when an error has occurred.voidCallback to indicate the application to initialize.booleanChecks whether the current game application life cycle is bound to the activity life cycle.booleanChecks if the keyboard interfacing is enabled.booleanChecks whether the mouse interfacing is enabled or not.booleanChecks whether the exit on esc press is activated.booleanChecks whether the GLThread is paused or not.booleanChecks whether the error dialog is enabled upon encountering exceptions/errors.booleanChecks whether the system would show an exit prompt dialog when the esc keyboard input is invoked.booleanChecks whether joystick interfacing is enabled or not.voidCalled when the application lost focus.voidonClick(android.content.DialogInterface dialog, int which) voidonStateChanged(androidx.lifecycle.LifecycleOwner source, androidx.lifecycle.Lifecycle.Event event) A state change observer to the holder Activity life cycle, used to keep this android view up-to-date with the holder activity life cycle.voidrequestClose(boolean esc) Called when the user requests to close the application.voidrescale(float x, float y) Called to notify the application that the scale has changed.voidreshape(int width, int height) Called to notify the application that the resolution has changed.voidsetAppSettings(AppSettings appSettings) Sets the appSettings instance.voidsetAudioRendererType(String audioRendererType) Sets the audioRenderer type.voidsetDestructionPolicy(JmeSurfaceView.DestructionPolicy destructionPolicy) Sets the current destruction policy, destruction policyJmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISHensures that we protect the app state usingJmeSurfaceView.GameState.legacyApplicationstatic memory when the activity finishes, whileJmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISHdestroys the game context with the activity onDestroy().voidsetEglAlphaBits(int eglAlphaBits) Sets the memory representing the alpha of embedded gl in bits.voidsetEglBitsPerPixel(int eglBitsPerPixel) Sets the memory representing each pixel in bits.voidsetEglDepthBits(int eglDepthBits) Sets the EGL depth in bits.voidsetEglSamples(int eglSamples) Sets the number of samples to use for multi-sampling.voidsetEglStencilBits(int eglStencilBits) Sets the number of stencil buffer bits.voidsetEmulateKeyBoard(boolean emulateKeyBoard) Enables keyboard interfacing.voidsetEmulateMouse(boolean emulateMouse) Enables mouse interfacing.voidsetExitOnEscPressed(boolean exitOnEscPressed) Determines whether the system would exit on pressing the keyboard esc button.voidsetFrameRate(int frameRate) Limits the frame rate (fps) in the second.protected voidsetGLThreadPaused(boolean GLThreadPaused) Sets GL Thread paused.voidsetLegacyApplication(LegacyApplication legacyApplication) Sets the jme game instance that will be engaged into theSystemListener.voidsetOnExceptionThrown(OnExceptionThrown onExceptionThrown) Sets the listener that will fire when an exception is thrown.voidsetOnLayoutDrawn(OnLayoutDrawn onLayoutDrawn) Sets the listener that will dispatch an event when the layout is drawn byaddGlSurfaceView().voidsetOnRendererCompleted(OnRendererCompleted onRendererCompleted) Sets the listener for the completion of rendering, ie : when the GL thread holding theJmeSurfaceViewjoins the UI thread, after asynchronous rendering.voidsetOnRendererStarted(OnRendererStarted onRendererStarted) Sets the listener that will fire after initializing the game.voidsetShowErrorDialog(boolean showErrorDialog) Determines whether the error dialog would be shown on encountering exceptions.voidsetShowEscExitPrompt(boolean showEscExitPrompt) Determines whether to show an exit prompt dialog when the esc keyboard button is invoked.voidsetUseJoyStickEvents(boolean useJoyStickEvents) Enables joystick interfacing for a jme-gameprotected voidshowErrorDialog(Throwable throwable, String title) Displays an error dialog with a throwable title(error/exception), message and 3 buttons.voidstartRenderer(int delayMillis) Starts the jmeRenderer on a GlSurfaceView attached to a RelativeLayout.voidupdate()Callback to update the application state, and render the scene to the back buffer.Methods inherited from class android.widget.RelativeLayout
checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getBaseline, getGravity, onLayout, onMeasure, requestLayout, setGravity, setHorizontalGravity, setIgnoreGravity, setVerticalGravity, shouldDelayChildPressedStateMethods inherited from class android.view.ViewGroup
addChildrenForAccessibility, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onAttachedToWindow, onCreateDrawableState, onDescendantInvalidated, onDetachedFromWindow, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, updateViewLayoutMethods inherited from class android.view.View
addExtraDataToAccessibilityNodeInfo, addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getApplicationWindowToken, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintList, getBackgroundTintMode, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getId, getImportantForAccessibility, getImportantForAutofill, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineAmbientShadowColor, getOutlineProvider, getOutlineSpotShadowColor, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarWidth, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onDisplayHint, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideStructure, onProvideVirtualStructure, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAlpha, setAnimation, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForeground, setForegroundGravity, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateListAnimator, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionName, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDrawMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface android.view.ViewParent
canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows
-
Field Details
-
audioRendererType
-
-
Constructor Details
-
JmeSurfaceView
public JmeSurfaceView(@NonNull android.content.Context context) Instantiates a default surface view holder without XML attributes. On instantiating this surface view, the holder is bound directly to the parent context life cycle.- Parameters:
context- the parent context.
-
JmeSurfaceView
public JmeSurfaceView(@NonNull android.content.Context context, @Nullable android.util.AttributeSet attrs) Instantiates a surface view holder with XML attributes from an XML document. On instantiating this surface view, the holder is bound directly to the parent context life cycle.- Parameters:
context- the parent context.attrs- a collection of attributes describes the tags in an XML document.- See Also:
-
Resources.obtainAttributes(AttributeSet, int[])
-
JmeSurfaceView
public JmeSurfaceView(@NonNull android.content.Context context, @Nullable android.util.AttributeSet attrs, int defStyleAttr) Instantiates a surface view holder with XML attributes and a default style attribute. On instantiating this surface view, the holder is bound directly to the parent context life cycle.- Parameters:
context- the parent context.attrs- a collection of attributes describes the tags in an XML document.defStyleAttr- an attribute in the current theme that contains a reference to a style resource that supplies defaults values. Can be 0 to not look for defaults.- See Also:
-
Resources.Theme.obtainStyledAttributes(AttributeSet, int[], int, int)
-
JmeSurfaceView
public JmeSurfaceView(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr, int defStyleRes) Instantiates a surface view holder with XML attributes, default style attribute and a default style resource. On instantiating this surface view, the holder is bound directly to the parent context life cycle.- Parameters:
context- the parent context.attrs- a collection of attributes describes the tags in an XML document.defStyleAttr- an attribute in the current theme that contains defaults. Can be 0 to not look for defaults.defStyleRes- a resource identifier of a style resource that supplies default values, used only if defStyleAttr is 0 or can not be found in the theme. Can be 0 to not look for defaults.- See Also:
-
Resources.Theme.obtainStyledAttributes(AttributeSet, int[], int, int)
-
-
Method Details
-
startRenderer
public void startRenderer(int delayMillis) Starts the jmeRenderer on a GlSurfaceView attached to a RelativeLayout.- Parameters:
delayMillis- delays the attachment of the surface view to the UI (RelativeLayout).
-
handleError
Description copied from interface:SystemListenerCalled when an error has occurred. This is typically invoked when an uncaught exception is thrown in the render thread.- Specified by:
handleErrorin interfaceSystemListener- Parameters:
errorMsg- The error message, if any, or null.throwable- Throwable object, or null.
-
onStateChanged
public void onStateChanged(@NonNull androidx.lifecycle.LifecycleOwner source, @NonNull androidx.lifecycle.Lifecycle.Event event) A state change observer to the holder Activity life cycle, used to keep this android view up-to-date with the holder activity life cycle.- Specified by:
onStateChangedin interfaceandroidx.lifecycle.LifecycleEventObserver- Parameters:
source- the life cycle source, aka the observable object.event- the fired event by the observable object, which is dispatched and sent to the observers.
-
initialize
public void initialize()Description copied from interface:SystemListenerCallback to indicate the application to initialize. This method is called in the GL/Rendering thread so any GL-dependent resources can be initialized.- Specified by:
initializein interfaceSystemListener
-
reshape
public void reshape(int width, int height) Description copied from interface:SystemListenerCalled to notify the application that the resolution has changed.- Specified by:
reshapein interfaceSystemListener- Parameters:
width- the new width of the display (in pixels, ≥0)height- the new height of the display (in pixels, ≥0)
-
rescale
public void rescale(float x, float y) Description copied from interface:SystemListenerCalled to notify the application that the scale has changed.- Specified by:
rescalein interfaceSystemListener- Parameters:
x- the new horizontal scale of the displayy- the new vertical scale of the display
-
update
public void update()Description copied from interface:SystemListenerCallback to update the application state, and render the scene to the back buffer.- Specified by:
updatein interfaceSystemListener
-
requestClose
public void requestClose(boolean esc) Description copied from interface:SystemListenerCalled when the user requests to close the application. This could happen when he clicks the X button on the window, presses the Alt-F4 combination, attempts to shut down the process from the task manager, or presses ESC.- Specified by:
requestClosein interfaceSystemListener- Parameters:
esc- If true, the user pressed ESC to close the application.
-
gainFocus
public void gainFocus()Description copied from interface:SystemListenerCalled when the application gained focus. The display implementation is not allowed to call this method before initialize() has been called or after destroy() has been called.- Specified by:
gainFocusin interfaceSystemListener
-
loseFocus
public void loseFocus()Description copied from interface:SystemListenerCalled when the application lost focus. The display implementation is not allowed to call this method before initialize() has been called or after destroy() has been called.- Specified by:
loseFocusin interfaceSystemListener
-
destroy
public void destroy()Description copied from interface:SystemListenerCallback to indicate that the context has been destroyed (either by the user or requested by the application itself). Typically cleanup of native resources should happen here. This method is called in the GL/Rendering thread.- Specified by:
destroyin interfaceSystemListener
-
onClick
public void onClick(android.content.DialogInterface dialog, int which) - Specified by:
onClickin interfaceandroid.content.DialogInterface.OnClickListener
-
addGlSurfaceView
protected void addGlSurfaceView()Adds the glSurfaceView to the screen immediately, saving the current app instance. -
showErrorDialog
Displays an error dialog with a throwable title(error/exception), message and 3 buttons. 1st button is : EXIT to exit the activity and terminates the app. 2nd button is : DISMISS to dismiss the dialog and ignore the exception. 3rd button is : CopyCrashLog to copy the crash log to the clipboard.- Parameters:
throwable- the throwable stack.title- the message title.
-
bindAppStateToActivityLifeCycle
public void bindAppStateToActivityLifeCycle(boolean condition) Binds/Unbinds the game life cycle to the holder activity life cycle. Unbinding the game life cycle, would disablegainFocus(),loseFocus()anddestroy()from being invoked by the System Listener. The Default value is : true, and the view component is pre-bounded to its activity lifeCycle when initialized.- Parameters:
condition- true if you want to bind them, false otherwise.
-
getDestructionPolicy
Gets the current destruction policy. Default value is :JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH.- Returns:
- the destruction policy, either
JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISHorJmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISH. - See Also:
-
setDestructionPolicy
Sets the current destruction policy, destruction policyJmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISHensures that we protect the app state usingJmeSurfaceView.GameState.legacyApplicationstatic memory when the activity finishes, whileJmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISHdestroys the game context with the activity onDestroy(). Default value is :JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH.- Parameters:
destructionPolicy- a destruction policy to set.- See Also:
-
isAppStateBoundToActivityLifeCycle
public boolean isAppStateBoundToActivityLifeCycle()Checks whether the current game application life cycle is bound to the activity life cycle.- Returns:
- true it matches the condition, false otherwise.
-
isShowEscExitPrompt
public boolean isShowEscExitPrompt()Checks whether the system would show an exit prompt dialog when the esc keyboard input is invoked.- Returns:
- ture if the exit prompt dialog is activated on exit, false otherwise.
-
setShowEscExitPrompt
public void setShowEscExitPrompt(boolean showEscExitPrompt) Determines whether to show an exit prompt dialog when the esc keyboard button is invoked.- Parameters:
showEscExitPrompt- true to show the exit prompt dialog before exiting, false otherwise.
-
isExitOnEscPressed
public boolean isExitOnEscPressed()Checks whether the exit on esc press is activated.- Returns:
- true if the exit on escape is activated, false otherwise.
-
setExitOnEscPressed
public void setExitOnEscPressed(boolean exitOnEscPressed) Determines whether the system would exit on pressing the keyboard esc button.- Parameters:
exitOnEscPressed- true to activate exiting on Esc button press, false otherwise.
-
getLegacyApplication
Gets the jme app instance.- Returns:
- legacyApplication instance representing your game enclosure.
-
setLegacyApplication
Sets the jme game instance that will be engaged into theSystemListener.- Parameters:
legacyApplication- your jme game instance.
-
getAppSettings
Gets the game window settings.- Returns:
- app settings instance.
-
setAppSettings
Sets the appSettings instance.- Parameters:
appSettings- the custom appSettings instance
-
getEglBitsPerPixel
public int getEglBitsPerPixel()Gets the bits/pixel for Embedded gL- Returns:
- integer representing it.
-
setEglBitsPerPixel
public void setEglBitsPerPixel(int eglBitsPerPixel) Sets the memory representing each pixel in bits.- Parameters:
eglBitsPerPixel- the bits for each pixel.
-
getEglAlphaBits
public int getEglAlphaBits()Gets the Embedded gL alpha(opacity) bits.- Returns:
- integer representing it.
-
setEglAlphaBits
public void setEglAlphaBits(int eglAlphaBits) Sets the memory representing the alpha of embedded gl in bits.- Parameters:
eglAlphaBits- the alpha bits.
-
getEglDepthBits
public int getEglDepthBits()Gets the memory representing the EGL depth in bits.- Returns:
- the depth bits.
-
setEglDepthBits
public void setEglDepthBits(int eglDepthBits) Sets the EGL depth in bits. The depth buffer or Z-buffer is basically coupled with stencil buffer, usually 8bits stencilBuffer + 24bits depthBuffer = 32bits shared memory.- Parameters:
eglDepthBits- the depth bits.- See Also:
-
getEglSamples
public int getEglSamples()Gets the number of samples to use for multi-sampling.- Returns:
- number of samples to use for multi-sampling.
-
setEglSamples
public void setEglSamples(int eglSamples) Sets the number of samples to use for multi-sampling. Leave 0 (default) to disable multi-sampling. Set to 2 or 4 to enable multi-sampling.- Parameters:
eglSamples- embedded gl samples bits to set.
-
getEglStencilBits
public int getEglStencilBits()Gets the number of stencil buffer bits. Default is : 0.- Returns:
- the stencil buffer bits.
-
setEglStencilBits
public void setEglStencilBits(int eglStencilBits) Sets the number of stencil buffer bits. Stencil buffer is used in depth-based shadow maps and shadow rendering as it limits rendering, it's coupled with Z-buffer or depth buffer, usually 8bits stencilBuffer + 24bits depthBuffer = 32bits shared memory. (default = 0)- Parameters:
eglStencilBits- the desired number of stencil bits.- See Also:
-
getFrameRate
public int getFrameRate()Gets the limited FrameRate level for egl INFO. Default is : -1, for a device based limited value (determined by hardware).- Returns:
- the limit frameRate in integers.
-
setFrameRate
public void setFrameRate(int frameRate) Limits the frame rate (fps) in the second. Default is : -1, for a device based limited value (determined by hardware).- Parameters:
frameRate- the limitation in integers.
-
getAudioRendererType
Gets the audio renderer in String. Default is :AppSettings.ANDROID_OPENAL_SOFT.- Returns:
- string representing audio renderer framework.
-
setAudioRendererType
Sets the audioRenderer type. Default is :AppSettings.ANDROID_OPENAL_SOFT.- Parameters:
audioRendererType- string representing audioRenderer type.
-
isEmulateKeyBoard
public boolean isEmulateKeyBoard()Checks if the keyboard interfacing is enabled. Default is : true.- Returns:
- true if the keyboard interfacing is enabled.
-
setEmulateKeyBoard
public void setEmulateKeyBoard(boolean emulateKeyBoard) Enables keyboard interfacing. Default is : true.- Parameters:
emulateKeyBoard- true to enable keyboard interfacing.
-
isEmulateMouse
public boolean isEmulateMouse()Checks whether the mouse interfacing is enabled or not. Default is : true.- Returns:
- true if the mouse interfacing is enabled.
-
setEmulateMouse
public void setEmulateMouse(boolean emulateMouse) Enables mouse interfacing. Default is : true.- Parameters:
emulateMouse- true to enable the mouse interfacing.
-
isUseJoyStickEvents
public boolean isUseJoyStickEvents()Checks whether joystick interfacing is enabled or not. Default is : true.- Returns:
- true if the joystick interfacing is enabled.
-
setUseJoyStickEvents
public void setUseJoyStickEvents(boolean useJoyStickEvents) Enables joystick interfacing for a jme-game- Parameters:
useJoyStickEvents- true to enable the joystick interfacing.
-
isGLThreadPaused
public boolean isGLThreadPaused()Checks whether the GLThread is paused or not.- Returns:
- true/false
-
setGLThreadPaused
protected void setGLThreadPaused(boolean GLThreadPaused) Sets GL Thread paused.- Parameters:
GLThreadPaused- true if you want to pause the GLThread.
-
setOnRendererCompleted
Sets the listener for the completion of rendering, ie : when the GL thread holding theJmeSurfaceViewjoins the UI thread, after asynchronous rendering.- Parameters:
onRendererCompleted- an instance of the interfaceOnRendererCompleted.
-
setOnExceptionThrown
Sets the listener that will fire when an exception is thrown.- Parameters:
onExceptionThrown- an instance of the interfaceOnExceptionThrown.
-
setOnRendererStarted
Sets the listener that will fire after initializing the game.- Parameters:
onRendererStarted- an instance of the interfaceOnRendererStarted.
-
setOnLayoutDrawn
Sets the listener that will dispatch an event when the layout is drawn byaddGlSurfaceView().- Parameters:
onLayoutDrawn- the event to be dispatched.- See Also:
-
getGlEsVersion
Gets the current device GL_ES version.- Returns:
- the current gl_es version in a string format.
-
isShowErrorDialog
public boolean isShowErrorDialog()Checks whether the error dialog is enabled upon encountering exceptions/errors. Default is : true.- Returns:
- true if the error dialog is activated, false otherwise.
-
setShowErrorDialog
public void setShowErrorDialog(boolean showErrorDialog) Determines whether the error dialog would be shown on encountering exceptions. Default is : true.- Parameters:
showErrorDialog- true to activate the error dialog, false otherwise.
-