public class JmeSurfaceView extends android.widget.RelativeLayout implements SystemListener, android.content.DialogInterface.OnClickListener, androidx.lifecycle.LifecycleEventObserver
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.Modifier and Type | Class and Description |
---|---|
static class |
JmeSurfaceView.DestructionPolicy
Determines whether the app context would be destructed
with the holder activity context in case of
JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH or be
spared for a second use in case of JmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISH . |
protected static class |
JmeSurfaceView.GameState
Used as a static memory to protect the game context from destruction by Activity#onDestroy().
|
android.widget.RelativeLayout.LayoutParams
android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener
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
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
audioRendererType |
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, TRUE
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_CACHE
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 and Description |
---|
JmeSurfaceView(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.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addGlSurfaceView()
Adds the glSurfaceView to the screen immediately, saving the current app instance.
|
void |
bindAppStateToActivityLifeCycle(boolean condition)
Binds/Unbinds the game life cycle to the holder activity life cycle.
|
void |
destroy()
Callback to indicate that the context has been destroyed (either
by the user or requested by the application itself).
|
void |
gainFocus()
Called when the application gained focus.
|
AppSettings |
getAppSettings()
Gets the game window settings.
|
java.lang.String |
getAudioRendererType()
Gets the audio renderer in String.
|
JmeSurfaceView.DestructionPolicy |
getDestructionPolicy()
Gets the current destruction policy.
|
int |
getEglAlphaBits()
Gets the Embedded gL alpha(opacity) bits.
|
int |
getEglBitsPerPixel()
Gets the bits/pixel for Embedded gL
|
int |
getEglDepthBits()
Gets the memory representing the EGL depth in bits.
|
int |
getEglSamples()
Gets the number of samples to use for multi-sampling.
|
int |
getEglStencilBits()
Gets the number of stencil buffer bits.
|
int |
getFrameRate()
Gets the limited FrameRate level for egl INFO.
|
java.lang.String |
getGlEsVersion()
Gets the current device GL_ES version.
|
LegacyApplication |
getLegacyApplication()
Gets the jme app instance.
|
void |
handleError(java.lang.String errorMsg,
java.lang.Throwable throwable)
Called when an error has occurred.
|
void |
initialize()
Callback to indicate the application to initialize.
|
boolean |
isAppStateBoundToActivityLifeCycle()
Checks whether the current game application life cycle is bound to the activity life cycle.
|
boolean |
isEmulateKeyBoard()
Checks if the keyboard interfacing is enabled.
|
boolean |
isEmulateMouse()
Checks whether the mouse interfacing is enabled or not.
|
boolean |
isExitOnEscPressed()
Checks whether the exit on esc press is activated.
|
boolean |
isGLThreadPaused()
Checks whether the GLThread is paused or not.
|
boolean |
isShowErrorDialog()
Checks whether the error dialog is enabled upon encountering exceptions/errors.
|
boolean |
isShowEscExitPrompt()
Checks whether the system would show an exit prompt dialog when the esc keyboard input is invoked.
|
boolean |
isUseJoyStickEvents()
Checks whether joystick interfacing is enabled or not.
|
void |
loseFocus()
Called when the application lost focus.
|
void |
onClick(android.content.DialogInterface dialog,
int which) |
void |
onStateChanged(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.
|
void |
requestClose(boolean esc)
Called when the user requests to close the application.
|
void |
reshape(int width,
int height)
Called to notify the application that the resolution has changed.
|
void |
setAppSettings(AppSettings appSettings)
Sets the appSettings instance.
|
void |
setAudioRendererType(java.lang.String audioRendererType)
Sets the audioRenderer type.
|
void |
setDestructionPolicy(JmeSurfaceView.DestructionPolicy destructionPolicy)
Sets the current destruction policy, destruction policy
JmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISH ensures that we protect the app state
using JmeSurfaceView.GameState.legacyApplication static memory when the activity finishes, while
JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH destroys the game context with the activity onDestroy(). |
void |
setEglAlphaBits(int eglAlphaBits)
Sets the memory representing the alpha of embedded gl in bits.
|
void |
setEglBitsPerPixel(int eglBitsPerPixel)
Sets the memory representing each pixel in bits.
|
void |
setEglDepthBits(int eglDepthBits)
Sets the EGL depth in bits.
|
void |
setEglSamples(int eglSamples)
Sets the number of samples to use for multi-sampling.
|
void |
setEglStencilBits(int eglStencilBits)
Sets the number of stencil buffer bits.
|
void |
setEmulateKeyBoard(boolean emulateKeyBoard)
Enables keyboard interfacing.
|
void |
setEmulateMouse(boolean emulateMouse)
enables mouse interfacing.
|
void |
setExitOnEscPressed(boolean exitOnEscPressed)
Determines whether the system would exit on pressing the keyboard esc button.
|
void |
setFrameRate(int frameRate)
Limits the frame rate (fps) in the second.
|
protected void |
setGLThreadPaused(boolean GLThreadPaused)
Sets GL Thread paused.
|
void |
setLegacyApplication(LegacyApplication legacyApplication)
Sets the jme game instance that will be engaged into the
SystemListener . |
void |
setOnExceptionThrown(OnExceptionThrown onExceptionThrown)
Sets the listener that will fire when an exception is thrown.
|
void |
setOnLayoutDrawn(OnLayoutDrawn onLayoutDrawn)
Sets the listener that will dispatch an event when the layout is drawn by
addGlSurfaceView() . |
void |
setOnRendererCompleted(OnRendererCompleted onRendererCompleted)
Sets the listener for the completion of rendering, ie : when the GL thread holding the
JmeSurfaceView
joins the UI thread, after asynchronous rendering. |
void |
setOnRendererStarted(OnRendererStarted onRendererStarted)
Sets the listener that will fire after initializing the game.
|
void |
setShowErrorDialog(boolean showErrorDialog)
Determines whether the error dialog would be shown on encountering exceptions.
|
void |
setShowEscExitPrompt(boolean showEscExitPrompt)
Determines whether to show an exit prompt dialog when the esc keyboard button is invoked.
|
void |
setUseJoyStickEvents(boolean useJoyStickEvents)
Enables joystick interfacing for a jme-game
|
protected void |
showErrorDialog(java.lang.Throwable throwable,
java.lang.String title)
Displays an error dialog with a throwable title(error/exception), message and 3 buttons.
|
void |
startRenderer(int delayMillis)
Starts the jmeRenderer on a GlSurfaceView attached to a RelativeLayout.
|
void |
update()
Callback to update the application state, and render the scene
to the back buffer.
|
checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getBaseline, getGravity, onLayout, onMeasure, requestLayout, setGravity, setHorizontalGravity, setIgnoreGravity, setVerticalGravity, shouldDelayChildPressedState
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, updateViewLayout
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, willNotDraw
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows
public JmeSurfaceView(@NonNull android.content.Context context)
context
- the parent context.public JmeSurfaceView(@NonNull android.content.Context context, @Nullable android.util.AttributeSet attrs)
context
- the parent context.attrs
- a collection of attributes describes the tags in an XML document.Resources.obtainAttributes(AttributeSet, int[])
public JmeSurfaceView(@NonNull android.content.Context context, @Nullable android.util.AttributeSet attrs, int defStyleAttr)
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.Resources.Theme.obtainStyledAttributes(AttributeSet, int[], int, int)
public JmeSurfaceView(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr, int defStyleRes)
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.Resources.Theme.obtainStyledAttributes(AttributeSet, int[], int, int)
public void startRenderer(int delayMillis)
delayMillis
- delays the attachment of the surface view to the UI (RelativeLayout).public void handleError(java.lang.String errorMsg, java.lang.Throwable throwable)
SystemListener
handleError
in interface SystemListener
errorMsg
- The error message, if any, or null.throwable
- Throwable object, or null.public void onStateChanged(@NonNull androidx.lifecycle.LifecycleOwner source, @NonNull androidx.lifecycle.Lifecycle.Event event)
onStateChanged
in interface androidx.lifecycle.LifecycleEventObserver
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.public void initialize()
SystemListener
initialize
in interface SystemListener
public void reshape(int width, int height)
SystemListener
reshape
in interface SystemListener
width
- the new width of the display (in pixels, ≥0)height
- the new height of the display (in pixels, ≥0)public void update()
SystemListener
update
in interface SystemListener
public void requestClose(boolean esc)
SystemListener
requestClose
in interface SystemListener
esc
- If true, the user pressed ESC to close the application.public void gainFocus()
SystemListener
gainFocus
in interface SystemListener
public void loseFocus()
SystemListener
loseFocus
in interface SystemListener
public void destroy()
SystemListener
destroy
in interface SystemListener
public void onClick(android.content.DialogInterface dialog, int which)
onClick
in interface android.content.DialogInterface.OnClickListener
protected void addGlSurfaceView()
protected void showErrorDialog(java.lang.Throwable throwable, java.lang.String title)
throwable
- the throwable stack.title
- the message title.public void bindAppStateToActivityLifeCycle(boolean condition)
gainFocus()
, loseFocus()
and destroy()
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.condition
- true if you want to bind them, false otherwise.public void setDestructionPolicy(JmeSurfaceView.DestructionPolicy destructionPolicy)
JmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISH
ensures that we protect the app state
using JmeSurfaceView.GameState.legacyApplication
static memory when the activity finishes, while
JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH
destroys the game context with the activity onDestroy().
Default value is : JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH
.destructionPolicy
- a destruction policy to set.JmeSurfaceView.DestructionPolicy
,
JmeSurfaceView.GameState
public JmeSurfaceView.DestructionPolicy getDestructionPolicy()
JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH
.JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH
or JmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISH
.JmeSurfaceView.DestructionPolicy
,
JmeSurfaceView.GameState
public boolean isAppStateBoundToActivityLifeCycle()
public void setShowEscExitPrompt(boolean showEscExitPrompt)
showEscExitPrompt
- true to show the exit prompt dialog before exiting, false otherwise.public boolean isShowEscExitPrompt()
public void setExitOnEscPressed(boolean exitOnEscPressed)
exitOnEscPressed
- true to activate exiting on Esc button press, false otherwise.public boolean isExitOnEscPressed()
public void setLegacyApplication(@NonNull LegacyApplication legacyApplication)
SystemListener
.legacyApplication
- your jme game instance.public LegacyApplication getLegacyApplication()
public void setAppSettings(@NonNull AppSettings appSettings)
appSettings
- the custom appSettings instancepublic AppSettings getAppSettings()
public void setEglBitsPerPixel(int eglBitsPerPixel)
eglBitsPerPixel
- the bits for each pixel.public int getEglBitsPerPixel()
public void setEglAlphaBits(int eglAlphaBits)
eglAlphaBits
- the alpha bits.public int getEglAlphaBits()
public void setEglDepthBits(int eglDepthBits)
eglDepthBits
- the depth bits.setEglStencilBits(int)
public int getEglDepthBits()
public void setEglSamples(int eglSamples)
eglSamples
- embedded gl samples bits to set.public int getEglSamples()
public void setEglStencilBits(int eglStencilBits)
eglStencilBits
- the desired number of stencil bits.setEglDepthBits(int)
public int getEglStencilBits()
public void setFrameRate(int frameRate)
frameRate
- the limitation in integers.public int getFrameRate()
public void setAudioRendererType(java.lang.String audioRendererType)
AppSettings.ANDROID_OPENAL_SOFT
.audioRendererType
- string representing audioRenderer type.public java.lang.String getAudioRendererType()
AppSettings.ANDROID_OPENAL_SOFT
.public void setEmulateKeyBoard(boolean emulateKeyBoard)
emulateKeyBoard
- true to enable keyboard interfacing.public boolean isEmulateKeyBoard()
public void setEmulateMouse(boolean emulateMouse)
emulateMouse
- true to enable the mouse interfacing.public boolean isEmulateMouse()
public void setUseJoyStickEvents(boolean useJoyStickEvents)
useJoyStickEvents
- true to enable the joystick interfacing.public boolean isUseJoyStickEvents()
protected void setGLThreadPaused(boolean GLThreadPaused)
GLThreadPaused
- true if you want to pause the GLThread.public boolean isGLThreadPaused()
public void setOnRendererCompleted(OnRendererCompleted onRendererCompleted)
JmeSurfaceView
joins the UI thread, after asynchronous rendering.onRendererCompleted
- an instance of the interface OnRendererCompleted
.public void setOnExceptionThrown(OnExceptionThrown onExceptionThrown)
onExceptionThrown
- an instance of the interface OnExceptionThrown
.public void setOnRendererStarted(OnRendererStarted onRendererStarted)
onRendererStarted
- an instance of the interface OnRendererStarted
.public void setOnLayoutDrawn(OnLayoutDrawn onLayoutDrawn)
addGlSurfaceView()
.onLayoutDrawn
- the event to be dispatched.addGlSurfaceView()
public java.lang.String getGlEsVersion()
public void setShowErrorDialog(boolean showErrorDialog)
showErrorDialog
- true to activate the error dialog, false otherwise.public boolean isShowErrorDialog()