Hybrid GUI beta release - an IM+RM GUI toolkit for games, multimedia, etc
Koroskin Denis
2korden at gmail.com
Thu May 22 05:45:05 PDT 2008
On Thu, 22 May 2008 00:33:33 +0400, Tom S
<h3r3tic at remove.mat.uni.torun.pl> wrote:
> Mike wrote:
>> Looks great and very impressive. However, calc.exe skyrocketed to 25%
>> CPU here (this is a fairly decent gaming machine, it even runs Crysis
>> nicely), and half a core just for such a little thing seems a bit
>> surprising. What values are usually expected?
>
> Well, normal GUIs idle most of the time, only doing a redraw and a state
> update when it's more or less necessary. Hybrid draws and updates its
> stuff in a loop, thus without any sleeping or yielding, it will use one
> core completely. When such a GUI is used within a game or some
> application which has to redraw its display continuously, this is not an
> issue.
>
> Main page of the wiki says: "Hybrid does not currently support any form
> of lazy updating or rendering, thus may not be suited for applications
> that don't redraw and update their state every frame."
>
> ... and the Overview section states it again: "The most serious drawback
> of Hybrid is that it's tricky to do lazy state updates with it. In order
> for it to have an immediate-mode API, some code has to be executed once
> per frame (once per mouse move / keyboard press in the best case). So
> far, lazy updating remains a distant option and not a top priority, but
> to some extent, it should be possible in the long run."
>
> If your app has a mostly static GUI and should not use the CPU, Hybrid
> may not be a good option for you. But even adding a simple
> Thread.yield() at the end of the loop will make it go nicely with other
> apps. AFAIK, most desktop operating systems increase the thread priority
> of the top-most window's process, so switching to another app that needs
> the CPU power will get it the CPU cycles. Decreasing the thread priority
> is also an option.
>
> Hope this makes it a bit clearer
>
How about enabling vsync? This should reduce CPU usage signaficantly.
More information about the Digitalmars-d-announce
mailing list