HardwareRenderer Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Creates an instance of a hardware-accelerated renderer.
[Android.Runtime.Register("android/graphics/HardwareRenderer", ApiSince=29, DoNotGenerateAcw=true)]
public class HardwareRenderer : Java.Lang.Object
[<Android.Runtime.Register("android/graphics/HardwareRenderer", ApiSince=29, DoNotGenerateAcw=true)>]
type HardwareRenderer = class
inherit Object
- Inheritance
- Attributes
Remarks
Creates an instance of a hardware-accelerated renderer. This is used to render a scene built from RenderNode
's to an output android.view.Surface
. There can be as many HardwareRenderer instances as desired.
<h3>Resources & lifecycle</h3>
All HardwareRenderer instances share a common render thread. The render thread contains the GPU context & resources necessary to do GPU-accelerated rendering. As such, the first HardwareRenderer created comes with the cost of also creating the associated GPU contexts, however each incremental HardwareRenderer thereafter is fairly cheap. The expected usage is to have a HardwareRenderer instance for every active Surface
. For example when an Activity shows a Dialog the system internally will use 2 hardware renderers, both of which may be drawing at the same time.
NOTE: Due to the shared, cooperative nature of the render thread it is critical that any Surface
used must have a prompt, reliable consuming side. System-provided consumers such as android.view.SurfaceView
, android.view.Window#takeSurface(SurfaceHolder.Callback2)
, or android.view.TextureView
all fit this requirement. However if custom consumers are used such as when using SurfaceTexture
or android.media.ImageReader
it is the app's responsibility to ensure that they consume updates promptly and rapidly. Failure to do so will cause the render thread to stall on that surface, blocking all HardwareRenderer instances.
Java documentation for android.graphics.HardwareRenderer
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Constructors
HardwareRenderer() |
Creates a new instance of a HardwareRenderer. |
HardwareRenderer(IntPtr, JniHandleOwnership) |
Fields
SyncContextIsStopped |
Obsolete.
The hardware renderer has been set to a "stopped" state. |
SyncFrameDropped |
Obsolete.
The content was synced but the renderer has declined to produce a frame in this vsync interval. |
SyncLostSurfaceRewardIfFound |
Obsolete.
The hardware renderer no longer has a valid |
SyncOk |
Obsolete.
Nothing interesting to report. |
SyncRedrawRequested |
Obsolete.
The renderer is requesting a redraw. |
Properties
Class |
Returns the runtime class of this |
DrawingEnabled |
Returns true if HardwareRender will produce output. -or- Toggles whether or not HardwareRenderer will produce drawing output globally in the current process. |
Handle |
The handle to the underlying Android instance. (Inherited from Object) |
JniIdentityHashCode | (Inherited from Object) |
JniPeerMembers | |
Opaque |
Whether or not the renderer is set to be opaque. -or- Change the HardwareRenderer's opacity. |
PeerReference | (Inherited from Object) |
ThresholdClass | |
ThresholdType |
Methods
ClearContent() |
Destroys all the display lists associated with the current rendering content. |
Clone() |
Creates and returns a copy of this object. (Inherited from Object) |
CreateRenderRequest() |
Returns a |
Destroy() |
Destroys the rendering context of this HardwareRenderer. |
Dispose() | (Inherited from Object) |
Dispose(Boolean) | (Inherited from Object) |
Equals(Object) |
Indicates whether some other object is "equal to" this one. (Inherited from Object) |
GetHashCode() |
Returns a hash code value for the object. (Inherited from Object) |
JavaFinalize() |
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. (Inherited from Object) |
Notify() |
Wakes up a single thread that is waiting on this object's monitor. (Inherited from Object) |
NotifyAll() |
Wakes up all threads that are waiting on this object's monitor. (Inherited from Object) |
NotifyFramePending() |
Notifies the hardware renderer that a call to |
SetContentRoot(RenderNode) |
Sets the content root to render. |
SetHandle(IntPtr, JniHandleOwnership) |
Sets the Handle property. (Inherited from Object) |
SetLightSourceAlpha(Single, Single) |
Configures the ambient & spot shadow alphas. |
SetLightSourceGeometry(Single, Single, Single, Single) |
Sets the center of the light source. |
SetName(String) |
Sets a name for this renderer. |
SetSurface(Surface) |
The surface to render into. |
Start() |
Resumes rendering into the surface. |
Stop() |
Hard stops rendering into the surface. |
ToArray<T>() | (Inherited from Object) |
ToString() |
Returns a string representation of the object. (Inherited from Object) |
UnregisterFromRuntime() | (Inherited from Object) |
Wait() |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>. (Inherited from Object) |
Wait(Int64, Int32) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
Wait(Int64) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
Explicit Interface Implementations
IJavaPeerable.Disposed() | (Inherited from Object) |
IJavaPeerable.DisposeUnlessReferenced() | (Inherited from Object) |
IJavaPeerable.Finalized() | (Inherited from Object) |
IJavaPeerable.JniManagedPeerState | (Inherited from Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) | (Inherited from Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) | (Inherited from Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) | (Inherited from Object) |
Extension Methods
JavaCast<TResult>(IJavaObject) |
Performs an Android runtime-checked type conversion. |
JavaCast<TResult>(IJavaObject) | |
GetJniTypeName(IJavaPeerable) |