May 21, 2008
Tom S schrieb:
> Thanks! No multi-line textboxes yet, sorry. But I'm planning to investigate about writing a scintilla backend.

Yes yes yes! That would be so awesome.

The demos really look good, I'm going to investigate how I can use Hybrid in my project.

Sebastian
May 21, 2008
On Wed, 21 May 2008 06:34:26 +0200, Tom S <h3r3tic@remove.mat.uni.torun.pl> 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?

-Mike

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
May 21, 2008
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

-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode
May 21, 2008
On Wed, 21 May 2008 22:33:33 +0200, Tom S <h3r3tic@remove.mat.uni.torun.pl> wrote:

Ok, I downloaded the demos and was too lazy to read anything.
(I had an Excel introducation seminar today and a very demanding group ... that's enough for one day :) )

I hope I'll find some time to try it out on the weekend. I'm building an audio app and it could be just the thing to replace my current Cairo-based GUI-ish thing (which isn't even remotely near half done due to time constraints and stupid design mistakes).

-Mike

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
May 22, 2008
Tom S wrote:
> janderson wrote:
>> Wow that looks really kick ass.  Does it support multi-line textboxes?
> 
> Thanks! No multi-line textboxes yet, sorry. But I'm planning to investigate about writing a scintilla backend. I'd really like to edit scripts within a working game/engine. Or perhaps there's something more suitable for the code/text editing component? If you have any suggestions, I'd be glad to hear them :)
> 
> 

Yes scintilla in openGL would be awesome and would be closer to what I need then simply a multiline textbox.

-Joel
May 22, 2008
I'm getting a black window, unfortunatly. Anything I should look for to debug, setup my env differently, etc.? Thanks.

System: mandriva linux 2008.1 running compiz on Geforce 6600GT with nvidia's driver, compiled with dmd 1.030.
May 22, 2008
Lutger wrote:
> I'm getting a black window, unfortunatly. Anything I should look for to
> debug, setup my env differently, etc.? Thanks.
> 
> System: mandriva linux 2008.1 running compiz on Geforce 6600GT with nvidia's driver, compiled with dmd 1.030.

Are you getting the same black window with the demos from http://hybrid.team0xf.com/Demos.7z ?
I'm not sure if anyone has tested Hybrid/Dog with compiz yet. If e.g. glxgears works for you, I could try comparing its (GL)X code with Hybrid's bit by bit, and perhaps something will stand out.
Other than that... you might check if any of the Dog demos work (xf.dog.test / xf.dog.testThreads) and don't yield black windows.

-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode
May 22, 2008
On Thu, 22 May 2008 00:33:33 +0400, Tom S <h3r3tic@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.
May 22, 2008
Tom S wrote:
> Here's a beta release of Hybrid - a pretty fresh approach to GUI toolkits which combines Immediate Mode GUIs with Retained Mode GUIs.
> 
> // Tango-only at the moment.
> 
> Quoting the wiki, "Hybrid is a Graphical User Interface toolkit for the D programming language. It is primarily aimed at games (for menus, in-game options, debug consoles, HUDs), their tools and other sorts of multimedia applications, where the GUI can change dynamically."
> 
> More info at http://hybrid.team0xf.com/
> 
> As for info not mentioned on the wiki, I'm planning to use Hybrid in Deadlock and its level, animation, shader, etc. editors. In fact, the prototype for Hybrid was used in Deadlock before and has worked very well. This release is a complete redesign and rewrite.
> 
> Hybrid is licensed under the MIT license.
> 
> PS. Make sure to see the immediate-mode API to Menu creation. Lazy evaluation and typesafe variadics do wonders there :)
> 
> 

Awesome! Look very professional.
~ Clay
May 22, 2008
Clay Smith wrote:
> Tom S wrote:
>> Here's a beta release of Hybrid - a pretty fresh approach to GUI toolkits which combines Immediate Mode GUIs with Retained Mode GUIs.
>>
>> // Tango-only at the moment.
>>
>> Quoting the wiki, "Hybrid is a Graphical User Interface toolkit for the D programming language. It is primarily aimed at games (for menus, in-game options, debug consoles, HUDs), their tools and other sorts of multimedia applications, where the GUI can change dynamically."
>>
>> More info at http://hybrid.team0xf.com/
>>
>> As for info not mentioned on the wiki, I'm planning to use Hybrid in Deadlock and its level, animation, shader, etc. editors. In fact, the prototype for Hybrid was used in Deadlock before and has worked very well. This release is a complete redesign and rewrite.
>>
>> Hybrid is licensed under the MIT license.
>>
>> PS. Make sure to see the immediate-mode API to Menu creation. Lazy evaluation and typesafe variadics do wonders there :)
>>
>>
> 
> Awesome! Look very professional.
> ~ Clay

Scintilla support would be great as well, because besides being my favorite editor, it would be the one component I would need to edit AI scripts in WarBots in-game, if I ever get around to that project. Were you thinking of using in-game Scintilla support for the Fragbots?

~ Clay