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 Classes
    Modifier and Type
    Class
    Description
    static enum 
    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 final class 
    Used 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.LayoutParams

    Nested classes/interfaces inherited from class android.view.ViewGroup

    android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener

    Nested 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

    Fields
    Modifier and Type
    Field
    Description
    protected String
     

    Fields 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, TRUE

    Fields 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_CACHE

    Fields 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

    Constructors
    Constructor
    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.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    Adds the glSurfaceView to the screen immediately, saving the current app instance.
    void
    Binds/Unbinds the game life cycle to the holder activity life cycle.
    void
    Callback to indicate that the context has been destroyed (either by the user or requested by the application itself).
    void
    Called when the application gained focus.
    Gets the game window settings.
    Gets the audio renderer in String.
    Gets the current destruction policy.
    int
    Gets the Embedded gL alpha(opacity) bits.
    int
    Gets the bits/pixel for Embedded gL
    int
    Gets the memory representing the EGL depth in bits.
    int
    Gets the number of samples to use for multi-sampling.
    int
    Gets the number of stencil buffer bits.
    int
    Gets the limited FrameRate level for egl INFO.
    Gets the current device GL_ES version.
    Gets the jme app instance.
    void
    handleError(String errorMsg, Throwable throwable)
    Called when an error has occurred.
    void
    Callback to indicate the application to initialize.
    boolean
    Checks whether the current game application life cycle is bound to the activity life cycle.
    boolean
    Checks if the keyboard interfacing is enabled.
    boolean
    Checks whether the mouse interfacing is enabled or not.
    boolean
    Checks whether the exit on esc press is activated.
    boolean
    Checks whether the GLThread is paused or not.
    boolean
    Checks whether the error dialog is enabled upon encountering exceptions/errors.
    boolean
    Checks whether the system would show an exit prompt dialog when the esc keyboard input is invoked.
    boolean
    Checks whether joystick interfacing is enabled or not.
    void
    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
    rescale(float x, float y)
    Called to notify the application that the scale has changed.
    void
    reshape(int width, int height)
    Called to notify the application that the resolution has changed.
    void
    Sets the appSettings instance.
    void
    setAudioRendererType(String audioRendererType)
    Sets the audioRenderer type.
    void
    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
    Sets the jme game instance that will be engaged into the SystemListener.
    void
    Sets the listener that will fire when an exception is thrown.
    void
    Sets the listener that will dispatch an event when the layout is drawn by addGlSurfaceView().
    void
    Sets the listener for the completion of rendering, ie : when the GL thread holding the JmeSurfaceView joins the UI thread, after asynchronous rendering.
    void
    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(Throwable throwable, 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
    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, shouldDelayChildPressedState

    Methods 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, updateViewLayout

    Methods 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, willNotDraw

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface android.view.ViewParent

    canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows
  • Field Details

    • audioRendererType

      protected String 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

      public void handleError(String errorMsg, Throwable throwable)
      Description copied from interface: SystemListener
      Called when an error has occurred. This is typically invoked when an uncaught exception is thrown in the render thread.
      Specified by:
      handleError in interface SystemListener
      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:
      onStateChanged in interface androidx.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: SystemListener
      Callback 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:
      initialize in interface SystemListener
    • reshape

      public void reshape(int width, int height)
      Description copied from interface: SystemListener
      Called to notify the application that the resolution has changed.
      Specified by:
      reshape in interface SystemListener
      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: SystemListener
      Called to notify the application that the scale has changed.
      Specified by:
      rescale in interface SystemListener
      Parameters:
      x - the new horizontal scale of the display
      y - the new vertical scale of the display
    • update

      public void update()
      Description copied from interface: SystemListener
      Callback to update the application state, and render the scene to the back buffer.
      Specified by:
      update in interface SystemListener
    • requestClose

      public void requestClose(boolean esc)
      Description copied from interface: SystemListener
      Called 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:
      requestClose in interface SystemListener
      Parameters:
      esc - If true, the user pressed ESC to close the application.
    • gainFocus

      public void gainFocus()
      Description copied from interface: SystemListener
      Called 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:
      gainFocus in interface SystemListener
    • loseFocus

      public void loseFocus()
      Description copied from interface: SystemListener
      Called 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:
      loseFocus in interface SystemListener
    • destroy

      public void destroy()
      Description copied from interface: SystemListener
      Callback 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:
      destroy in interface SystemListener
    • onClick

      public void onClick(android.content.DialogInterface dialog, int which)
      Specified by:
      onClick in interface android.content.DialogInterface.OnClickListener
    • addGlSurfaceView

      protected void addGlSurfaceView()
      Adds the glSurfaceView to the screen immediately, saving the current app instance.
    • showErrorDialog

      protected void showErrorDialog(Throwable throwable, String title)
      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 disable 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.
      Parameters:
      condition - true if you want to bind them, false otherwise.
    • getDestructionPolicy

      public JmeSurfaceView.DestructionPolicy getDestructionPolicy()
      Gets the current destruction policy. Default value is : JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH.
      Returns:
      the destruction policy, either JmeSurfaceView.DestructionPolicy.DESTROY_WHEN_FINISH or JmeSurfaceView.DestructionPolicy.KEEP_WHEN_FINISH.
      See Also:
    • setDestructionPolicy

      public 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(). 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

      public LegacyApplication getLegacyApplication()
      Gets the jme app instance.
      Returns:
      legacyApplication instance representing your game enclosure.
    • setLegacyApplication

      public void setLegacyApplication(@NonNull LegacyApplication legacyApplication)
      Sets the jme game instance that will be engaged into the SystemListener.
      Parameters:
      legacyApplication - your jme game instance.
    • getAppSettings

      public AppSettings getAppSettings()
      Gets the game window settings.
      Returns:
      app settings instance.
    • setAppSettings

      public void setAppSettings(@NonNull AppSettings appSettings)
      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

      public String getAudioRendererType()
      Gets the audio renderer in String. Default is : AppSettings.ANDROID_OPENAL_SOFT.
      Returns:
      string representing audio renderer framework.
    • setAudioRendererType

      public void setAudioRendererType(String audioRendererType)
      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

      public 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.
      Parameters:
      onRendererCompleted - an instance of the interface OnRendererCompleted.
    • setOnExceptionThrown

      public void setOnExceptionThrown(OnExceptionThrown onExceptionThrown)
      Sets the listener that will fire when an exception is thrown.
      Parameters:
      onExceptionThrown - an instance of the interface OnExceptionThrown.
    • setOnRendererStarted

      public void setOnRendererStarted(OnRendererStarted onRendererStarted)
      Sets the listener that will fire after initializing the game.
      Parameters:
      onRendererStarted - an instance of the interface OnRendererStarted.
    • setOnLayoutDrawn

      public void setOnLayoutDrawn(OnLayoutDrawn onLayoutDrawn)
      Sets the listener that will dispatch an event when the layout is drawn by addGlSurfaceView().
      Parameters:
      onLayoutDrawn - the event to be dispatched.
      See Also:
    • getGlEsVersion

      public String 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.