My first reaction is that if you really want render speed then you need to 
be leveraging the GPU which is going to be most reliable with OpenGL (as I 
understanding it more recent versions of Android will actually hardware 
accelerate for you, but there are many variables that affect whether this 
works, not least of which is the Android version running on the user's 
device).

However, the requirement for "fast rendering" may be misleading.  Render 
speeds will vary wildly from device to device regardless of what mechanism 
you use, and you don't have any control over this.  Game development faces 
this issue perhaps more than most but the key thing is to effectively 
"synchronize and interpolate".

This means two things:

1. Changes in pixel color on screen (any change in the screen image is 
effectively a pixel color change) need to be synchronized with changes in 
the objects they represent.  That is, if there are several objects in the 
scene that are changing position it is important that all the changes for a 
single frame are done without it affecting what's rendered to screen until 
ALL changes are done.  Failure to do this will often result in "tearing" of 
visuals or jittery movement.

2. If there is a separation between changes in "world coordinate" objects 
and "screen coordinate" objects (i.e. the actual objects and their 
on-screen representations) there can sometimes be a case where changes in 
world coordinates are out of sync with screen refreshes.  This is common in 
games where the "game thread" is using a fixed time step to calculate 
changes in world coordinates but the screen refresh rate is variable.  In 
these cases it's important to keep both coordinate spaces in sync and one 
way to do this is to interpolate the world coordinates where there is an 
uneven number of "steps" required to synchronize the amount of time that 
has passed between screen render operations.  For example if the fixed time 
step is 16ms, but the last render took 24ms you need 1.5 steps to 
accomodate this.  In a fixed time step environment there is no such thing 
as a "half a step" so you need to perform 2 full steps then "estimate" the 
position at 1.5 steps by interpolating back from 2 to 1.5.

Wow.. that was probably way more complicated than it needed to be :/

On Sunday, March 31, 2013 6:59:44 AM UTC-7, Simon Giddings wrote:
>
> I am writing a music notation app for android tablets.
> As I draw everything (ie. this is not a "simple" image (jpg, pdf, etc) 
> which needs displaying), I need to ensure that the choice of drawing method 
> is the fastest possible.
>
> My options, as I see them at present, are
>
>    1. Classic on-screen drawing.
>    2. Draw on a memory based canvas and bitblt the resulting bitmap onto 
>    the screen
>
> Will either option give better rendering time results ?
>
> I have chosen to use classic drawing methods, rather than an OpenGL type 
> surface.
> Is this a mistake ?
>
> Any help will be appreciated.
> Thank you
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to