internal override android.view.HardwareLayer getHardwareLayer() { if (mLayer == null) { if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) { return(null); } mLayer = mAttachInfo.mHardwareRenderer.createHardwareLayer(mOpaque); mSurface = mAttachInfo.mHardwareRenderer.createSurfaceTexture(mLayer); nSetDefaultBufferSize(mSurface, getWidth(), getHeight()); nCreateNativeWindow(mSurface); mUpdateListener = new _OnFrameAvailableListener_315(this); mSurface.setOnFrameAvailableListener(mUpdateListener); if (mListener != null) { mListener.onSurfaceTextureAvailable(mSurface, getWidth(), getHeight()); } } applyUpdate(); applyTransformMatrix(); return(mLayer); }
protected internal override void onDetachedFromWindow() { base.onDetachedFromWindow(); if (mLayer != null) { bool shouldRelease = true; if (mListener != null) { shouldRelease = mListener.onSurfaceTextureDestroyed(mSurface); } lock (mNativeWindowLock) { nDestroyNativeWindow(); } mLayer.destroy(); if (shouldRelease) { mSurface.release(); } mSurface = null; mLayer = null; } }
internal override android.view.HardwareLayer getHardwareLayer() { if (mLayer == null) { if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) { return null; } mLayer = mAttachInfo.mHardwareRenderer.createHardwareLayer(mOpaque); mSurface = mAttachInfo.mHardwareRenderer.createSurfaceTexture(mLayer); nSetDefaultBufferSize(mSurface, getWidth(), getHeight()); nCreateNativeWindow(mSurface); mUpdateListener = new _OnFrameAvailableListener_315(this); mSurface.setOnFrameAvailableListener(mUpdateListener); if (mListener != null) { mListener.onSurfaceTextureAvailable(mSurface, getWidth(), getHeight()); } } applyUpdate(); applyTransformMatrix(); return mLayer; }
internal override void drawHardwareLayer(android.view.HardwareLayer layer, float x, float y, android.graphics.Paint paint) { throw new System.NotImplementedException(); }
internal abstract android.graphics.SurfaceTexture createSurfaceTexture(android.view.HardwareLayer layer);
internal override android.graphics.SurfaceTexture createSurfaceTexture(android.view.HardwareLayer layer) { throw new System.NotImplementedException(); }
/// <summary>Draws the specified layer onto this canvas.</summary> /// <remarks>Draws the specified layer onto this canvas.</remarks> /// <param name="layer">The layer to composite on this canvas</param> /// <param name="x">The left coordinate of the layer</param> /// <param name="y">The top coordinate of the layer</param> /// <param name="paint">The paint used to draw the layer</param> internal abstract void drawHardwareLayer(android.view.HardwareLayer layer, float x, float y, android.graphics.Paint paint);