litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.render; public class DetermineRectSizeNowRHP extends RenderHelperProcess { public static final int INITIAL_NEXT_DELAY = 64; public static final int MAX_NEXT_DELAY = 1024; private int mNextDelay = INITIAL_NEXT_DELAY; public DetermineRectSizeNowRHP( String pName, AbstractRenderHelper pRenderHelper ) { super( pName, pRenderHelper ); } public void startingToParticipateInRendering() { if ( isActive() ) { mNextDelay = INITIAL_NEXT_DELAY; RenderProcessManager.INSTANCE.release( this ); // reschedule for ASAP } } protected RenderProcessResult LLprocess() { if ( isProcessingNeeded() ) { int zDelay = mNextDelay; if ( zDelay < MAX_NEXT_DELAY ) { mNextDelay += mNextDelay; } return defer( this, zDelay ); } return RenderProcessResult.Completed; // Our value is ready } protected boolean LLisProcessingNeeded() { boolean rv = (getAbstractRenderHelper().getRectSizeNow() == null); if ( !rv ) { mNextDelay = INITIAL_NEXT_DELAY; } return rv; } protected AbstractRenderHelper getAbstractRenderHelper() { return (AbstractRenderHelper) mRenderHelper; } } |