www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Hybrid GUI beta release - an IM+RM GUI toolkit for games, multimedia,

reply Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
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 :)


-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode
May 20 2008
next sibling parent reply "Leonid S. Krashenko" <jetbird gmail.com> writes:
Tom S пишет:
 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 :)
 
 

I've launched the box.exe example, and it works well, but when I try to close the application it stops responding. The same situation with calc.exe.
May 21 2008
parent reply "Leonid S. Krashenko" <jetbird gmail.com> writes:
Leonid S. Krashenko wrote:
 Tom S пишет:
 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 :)

I've launched the box.exe example, and it works well, but when I try to close the application it stops responding. The same situation with calc.exe.

and probably with other examples.
May 21 2008
parent Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
Leonid S. Krashenko wrote:
 Leonid S. Krashenko wrote:
 I've launched the box.exe example, and it works well, but when I try 
 to close the application it stops responding. The same situation with 
 calc.exe.

and probably with other examples.

hopefully get fixed soon. -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
May 21 2008
prev sibling next sibling parent Lutger <lutger.blijdestin gmail.com> writes:
Looks beautiful! Compliments on the website too, damn nice documentation.

Exciting to see someone create an fresh approach to gui and make use of the
strengths of D. 
May 21 2008
prev sibling next sibling parent Mike Parker <aldacron gmail.com> writes:
GTom 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 :)
 
 

May 21 2008
prev sibling next sibling parent reply "Koroskin Denis" <2korden gmail.com> writes:
On Wed, 21 May 2008 08:34:26 +0400, Tom S  
<h3r3tic remove.mat.uni.torun.pl> 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 :)

Looks great! Is there any way to browse your source apart from team0xf.com:8080? I was trying to sync the source using hg clone, but failed to do so. Following the guide at http://wiki.team0xf.com/index.php?n=Tools.MercurialWindows gave no result. Is it intended for developers only? It keeps asking for a password and I found no way to register anywere.
May 21 2008
parent Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
Thanks for the feedback, folks!


Koroskin Denis wrote:
 Looks great! Is there any way to browse your source apart from 
 team0xf.com:8080?
 I was trying to sync the source using hg clone, but failed to do so.
 Following the guide at 
 http://wiki.team0xf.com/index.php?n=Tools.MercurialWindows
 gave no result. Is it intended for developers only? It keeps asking for 
 a password
 and I found no way to register anywere.

You can currently only clone the repo in read-only mode, e.g. by following the steps here: http://hybrid.team0xf.com/wiki/Main/GettingStarted The 'Tools.MercurialWindows' on the team0xf wiki guide assumes that you've got a way to upload your public key to our server - which is restricted to, um, team0xf ;) -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
May 21 2008
prev sibling next sibling parent reply janderson <askme me.com> writes:
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 :)
 
 

-Joel
May 21 2008
parent reply Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
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 :) -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
May 21 2008
next sibling parent Sebastian Beschke <s.beschke gmx.de> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFINFuUKb/1n5A2TAMRAlTSAJ9mr6Jnqj5P8T2SUDshyk50NEdxKgCeLHjn gYjMZZBTNx+bQgTIPnoMSW4= =EfAh -----END PGP SIGNATURE-----
May 21 2008
prev sibling parent janderson <askme me.com> writes:
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 21 2008
prev sibling next sibling parent reply Mike <vertex gmx.at> writes:
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
next sibling parent reply Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
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
parent Mike <vertex gmx.at> writes:
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 21 2008
prev sibling parent "Koroskin Denis" <2korden gmail.com> writes:
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
prev sibling next sibling parent reply Lutger <lutger.blijdestin gmail.com> writes:
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
parent reply Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
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
next sibling parent Lutger <lutger.blijdestin gmail.com> writes:
Tom S wrote:

 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.

Hi, the demos give the same result. xf.dog.testThreads.d also a black window. With xf.dog.test.d I get this assertion: "tango.core.Exception.AssertException xf.dog.ext.ARB_shader_objects(369): Assertion failure" (this is gl.GetString returning null on querying the extension strings) glxgears works fine. I've ported this example program to D: http://www.opengl.org/wiki/index.php/Programming_OpenGL_in_Linux:_GLX_and_Xlib This also works ok with derelict and the x11 bindings from gld and might be somewhat simpler than glxgears. I get the same result btw. when compiz is not enabled, it could very well be something in my setup, perhaps it's linking to mesa or something like that. I still haven't figured out how all these opengl libs + glx work under linux, it's all quite messy imho.
May 27 2008
prev sibling parent reply Lukas Pinkowski <pinkowls informatik.uni-stuttgart.de> writes:
Tom S wrote:

 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.

I've got the same problems; though, I found by accident, that in the platform related libraries like glx.d and Xlib.d the function pointer aliases have D linkage: alias void function(void *, char *, int, int, char * *) _BCD_func__849; There is no extern(C): at the start of the files. It should of course read: alias extern(C) void function(void *, char *, int, int, char * *) _BCD_func__849; I can't test it right here, since I've got no xf86vm (why is this needed at all?)
May 27 2008
next sibling parent reply e-t172 <e-t172 akegroup.org> writes:
Lukas Pinkowski a crit :
 I've got the same problems; though, I found by accident, that in the
 platform related libraries like glx.d and Xlib.d the function pointer
 aliases have D linkage:
 
 alias void function(void *, char *, int, int, char * *) _BCD_func__849;
 
 There is no extern(C): at the start of the files. It should of course read:
 
 alias extern(C) void function(void *, char *, int, int, char * *)
 _BCD_func__849;
 
 I can't test it right here, since I've got no xf86vm (why is this needed at
 all?)

Indeed, it's a BCD bug: http://www.dsource.org/projects/bcd/ticket/4
May 27 2008
parent Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
e-t172 wrote:
 Indeed, it's a BCD bug: http://www.dsource.org/projects/bcd/ticket/4

"Opened 1 year ago" ? Ouch... Looks like it will require manual fixing. Thanks for bringing this up! -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
May 27 2008
prev sibling parent reply Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
Lutget wrote:
 Hi, the demos give the same result. xf.dog.testThreads.d also a black
 window. With xf.dog.test.d I get this assertion: 
 "tango.core.Exception.AssertException xf.dog.ext.ARB_shader_objects(369):
 Assertion failure" (this is gl.GetString returning null on querying the
 extension strings)

Thanks for checking it out! A relatively sane reason for this behavior is that the GL context is not created, somehow. glGetString could theoretically return null if it's called within glBegin .. glEnd, but this is not the case.
 glxgears works fine. I've ported this example program to D:
 http://www.opengl.org/wiki/index.php/Programming_OpenGL_in_Linux:_GLX_and_Xlib

Thanks! I'll look at it.
 I get the same result btw. when compiz is not enabled, it could very well be
 something in my setup, perhaps it's linking to mesa or something like that.
 I still haven't figured out how all these opengl libs + glx work under
 linux, it's all quite messy imho. 

Well, it should work well with Mesa. At least it works for me, in the Debian Etch I've got set up in VMWare Player. Lukas Pinkowski wrote:
 I've got the same problems; though, I found by accident, that in the
 platform related libraries like glx.d and Xlib.d the function pointer
 aliases have D linkage:
 
 alias void function(void *, char *, int, int, char * *) _BCD_func__849;
 
 There is no extern(C): at the start of the files. It should of course read:
 
 alias extern(C) void function(void *, char *, int, int, char * *)
 _BCD_func__849;

:o Hrm, this doesn't look too good, I'll pass the info to Ralith / Benjamin who's created the GLX backend. Such an error should cause it to crash on his GDC under FreeBSD and my VM'd debian... Weird. Thanks a lot for testing and finding it out :)
 I can't test it right here, since I've got no xf86vm (why is this needed at
 all?)

It appears that it's used for changing display modes for fullscreen support, tho I'm sure Ralith would be able to give you more info :} -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
May 27 2008
parent reply Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
The missing 'extern(C)' has been added to the generated bindings, xf86vm 
has been replaced by randr. The Demos.7z package has been updated as 
well. So far, it's been tested on Ralith's FreeBSD and my Debian Etch in 
a VM.


-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode
May 28 2008
parent reply Lukas Pinkowski <Lukas.Pinkowski web.de> writes:
Tom S wrote:

 The missing 'extern(C)' has been added to the generated bindings, xf86vm
 has been replaced by randr. The Demos.7z package has been updated as
 well. So far, it's been tested on Ralith's FreeBSD and my Debian Etch in
 a VM.

Hi, it works under Ubuntu Gutsy (which my university is using), but it doesn't work under openSUSE 10.3: This is the output: ... ... Registering widget: FramedTopLevelWindow Registering widget: GLViewport Creating widget: FramedTopLevelWindow object.Exception: Unable to create double-buffered visual X Error: BadWindow (invalid Window parameter) My Graphics Card: OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce 7600 GS/PCI/SSE2/3DNOW! OpenGL version string: 2.1.2 NVIDIA 169.12 The test-program 'runs' when I make the following change to GLX.d (though I get only a black window): int[] attrListDbl = [ GLX_RGBA, GLX_DOUBLEBUFFER, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_DEPTH_SIZE, _depthBits, None]; I also tried RED_SIZE 5, GREEN_SIZE 6, BLUE_SIZE 5, which results in a black window, too. Although, the program seems to react to clicks, just nothing is rendered (tried a different color for glClear). Btw. the test.d in the Dog-package crashes with: tango.core.Exception.AssertException xf.dog.ext.ARB_shader_objects(369): Assertion failure And testThreads shows black windows only. Cheers
May 28 2008
parent reply Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
Lukas Pinkowski wrote:
 (...)

Thanks a lot for the comprehensive report :) I'll look into this stuff as soon as I get some univ stuff sorted out, perhaps I'll even get a real Linux setup :P The GLX backend dude will surely get this info as well :> I'm sure that with a bit of hacking it will be able to run (almost) everywhere. -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
May 28 2008
parent reply Lukas Pinkowski <Lukas.Pinkowski web.de> writes:
Tom S wrote:

 Lukas Pinkowski wrote:
 (...)

Thanks a lot for the comprehensive report :) I'll look into this stuff as soon as I get some univ stuff sorted out, perhaps I'll even get a real Linux setup :P The GLX backend dude will surely get this info as well :> I'm sure that with a bit of hacking it will be able to run (almost) everywhere.

I've just found out that the problem lies with reshaping the window. After clearing with yellow (glclear(1,1,0,1)) the window indeed was yellow. But after this, the contents of the window were not changed. Even worse, when the window was resized, it became a black window. Hope this helps with finding the problem! Cheers
May 28 2008
parent reply Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
Lukas Pinkowski wrote:
 I've just found out that the problem lies with reshaping the window. After
 clearing with yellow (glclear(1,1,0,1)) the window indeed was yellow. But
 after this, the contents of the window were not changed.
 Even worse, when the window was resized, it became a black window.
 
 Hope this helps with finding the problem!

I think you must be running for the top tester award... It definitely will help :D Thanks again! -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
May 28 2008
parent Lukas Pinkowski <Lukas.Pinkowski web.de> writes:
Tom S wrote:

 Lukas Pinkowski wrote:
 I've just found out that the problem lies with reshaping the window.
 After clearing with yellow (glclear(1,1,0,1)) the window indeed was
 yellow. But after this, the contents of the window were not changed.
 Even worse, when the window was resized, it became a black window.
 
 Hope this helps with finding the problem!

I think you must be running for the top tester award... It definitely will help :D Thanks again!

Once again; I found out, that it's the wrapped OpenGL-calls that don't work. It seems that somehow the loadFuncFromLib doesn't work correctly. I assign OpenGL-functions like this: fp_glClear = &glClear; Then the wrapped-calls succeed. I may check this further.
May 31 2008
prev sibling next sibling parent reply Clay Smith <clayasaurus gmail.com> writes:
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
parent reply Clay Smith <clayasaurus gmail.com> writes:
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
May 22 2008
parent Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
Clay Smith wrote:
 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?

Thanks! I'm actually focusing on Deadlock and its in-game scripting, as well as tweaking shaders and perhaps other code (which might be recompiled and loaded dynamically) from within a game/editor. But in the longer run, when I finally get around to reanimating Fragbots, that would be an option as well. -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
May 22 2008
prev sibling parent Chad J <gamerChad _spamIsBad_gmail.com> writes:
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 :)
 
 

When I execute one of the examples, it goes like this: ... Registering widget: TopLevelWindow Registering widget: FramedTopLevelWindow Registering widget: GLViewport derelict.util.exception.SharedLibLoadException: Failed to load shared library Failed to load shared library libIL.so This is on Gentoo Linux. I have DevIL installed: $ ls /usr/lib | grep libIL.so libIL.so libIL.so.1 libIL.so.1.0.0 $ I managed to run them in wine, though. Only problem then is that as I drag them around my screen, they start to jitter and shoot off in the direction of the last mouse movement. Other than those technical issues, I must say I like where this is going. MIT license & portability (linux!) & good documentation, ftw. It also looks pretty. Once finals are over I'll have to play with it and see if I enjoy the design as much. I'm excited about it. Thank you for doing this!
Jun 06 2008