Hi,
Now that I've found the problem this probably doesn't matter, but to answer your questions I am creating my surfaces in the OnDisplayInit method and I am testing on a Dell Axim 51v.
To have a better look I wrapped the edgelib api calls with timing counts using ClassERTimer::Count() (very handy btw!
) and did some rough timing measurements.
(in milliseconds)
new surface: 0 (new E2DSurface())
create surface: 0 (display->CreateSurface(...))
resize surface: 1466 (surface->Resize(w,h))
So it's pretty obvious where the problem is!! surface->Resize(..) doesn't seem to be documented but as I scrolled through my IntelliSense window seemed like the obvious choice for resizing a surface. And it does it's job but seemingly performance isn't it's key feature. What is the context in which this method should be used? Is it deprecated?
Anyway I switched out the Resize call with display->CreateSurface and the time of 1466ms dropped down to 5ms.
As a result I am finding the startup time to be just fine and am excited to proceed with my evaluation of edgelib.
Something to note is that the call-times to CreateSurface seem to increase for each of the first 3 calls, ~(0-5-20), but then drop back down to ~0 for any further calls. I messed around with the width and height parameters but they didn't seem to have an effect. I don't have anything concrete around this, but found it interesting so I thought I would pass it on. Whatever it is, it's not causing me any problems
Thanks