Page 2 of 25 FirstFirst 123456789101112 ... LastLast
Results 11 to 20 of 241

Thread: An Open Source, Fast and Modular, C# Front End

  1. #11
    Fusion Brain Creator 2k1Toaster's Avatar
    Join Date
    Mar 2006
    Location
    Colorado, but Canadian!
    Posts
    10,053
    I too am a fan of C#, but how are you planning on managing the graphics? Are you going to use the built in?
    Fusion Brain Version 6 Released!
    1.9in x 2.9in -- 47mm x 73mm
    30 Digital Outputs -- Directly drive a relay
    15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
    Buy now in the MP3Car.com Store

  2. #12
    Low Bitrate nalav's Avatar
    Join Date
    Apr 2009
    Location
    Louisiana
    Posts
    102
    Yet another Windows based front end. Aren't there enough already? Supporting Linux could spark a bit more interest. Or maybe that's your plan and you just haven't mentioned it yet...

  3. #13
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    nalav: How many other windows front ends require no other programs to be installed? How many others have native support for bluetooth (including the hands-free profile) and don't rely on external media players? How many are GPL'd?

    2k1toaster: Thats the area i'm still looking for input on. I had considered using WPF but I think its a bit on the slow side and would rule out porting to linux or macOS. I've considered directx or opengl but building an engine from scratch is no easy task. I've considered a windows forms app with a skinning engine but dismissed that immediately. So i'm going to look at everyones input and we can weigh the pros and cons.

    NSFW: you really know your stuff.

    Your plugin loading issue sounds like reflection... with native code you can quickly load a DLL and GetProcAddress a few things and you're good to go. With managed code, the loader needs to import a bunch of type information, which takes a while. You only need to worry about the load though. Once loaded, you can call into the plugs with no overhead. (I'm actually not sure if that last bit is true for AppDomains though - is serialization necessary to cross the AppDomain boundaries?)
    The load does take time but if you load the plugins in the background the user never notices. Tricks like storing plugin info in the assembly info can make it even faster. Yea app domains require some method to cross the boundary which is more overhead then they help prevent. So i've actually rethought it and will probably use a thread manager type of system. Each plugin is called on a unique thread in the same appDomain which has its own error handling (one of the cool features of managed code) and the main thread (different from the UI thread) can kill any plugin that hangs or crashes.

    Doing non-trivial operations on the UI thread is bad news in managed code or native code. Outlook 2007 is all native code and the UI thread locks up all the time because they completely failed to understand this point. All the goddamn time (I'm not bitter or anything).
    Like I hinted at above - absolutely true. I prefer doing a main/background thread, a UI thread and threads for each plugin. Should the main thread ever hang, the UI thread is still responsive and can restart the program.


    But then again I wouldn't personally put a video player of any sort in my front end. Waay too distracting.
    Similar to streetdeck - video and other things you shouldnt be doing while moving are disabled when the gps indicates movement. To disable that functionality you need to accept the whole - your an idiot its not our fault disclaimer.

  4. #14
    Variable Bitrate UnusuallyGenius's Avatar
    Join Date
    Mar 2009
    Location
    Grand Rapids, Mi
    Posts
    306
    Quote Originally Posted by NSFW View Post
    Doing non-trivial operations on the UI thread is bad news in managed code or native code. Outlook 2007 is all native code and the UI thread locks up all the time because they completely failed to understand this point. All the goddamn time (I'm not bitter or anything).
    i so totally hate Outlook 2007, it freezes more than it is worth...still cant find a free single app that manages everything in one place like Outlook does...if you know of any free ones let me know(i'm cheap)

    at justchat_1: i am so willing to lend my time to graphical design, i you want i will PM you my email for collaboration. and as far as my FE, i was originally going for the Powermate interface, but decided to do it more tailored to touchscreen to appease the masses.
    - Project: Unified Car Control
    - Original OpenMobile Interface Designer

  5. #15
    Fusion Brain Creator 2k1Toaster's Avatar
    Join Date
    Mar 2006
    Location
    Colorado, but Canadian!
    Posts
    10,053
    Well I wrote my software in C# and the graphics just bogged everything down big time. So I switched to XNA (managed DX10 basically). It sucked. So I switched to OpenGL and could never get it stable. So I switched to DirectX, and it is not great, but it works.

    If you want my code for DX, let me know.
    Fusion Brain Version 6 Released!
    1.9in x 2.9in -- 47mm x 73mm
    30 Digital Outputs -- Directly drive a relay
    15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
    Buy now in the MP3Car.com Store

  6. #16
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    I was thinking about slimDX - i've heard mdx and xna were horrible. I've seen full 3d games using managed code with some pretty low system requirements so I have to imagine that 2d rendering with a few 3d effects should be pretty easy - but well see I guess.

    I'm also throwing around the idea of using openGL instead. There seem to be more libraries for c# and openGL and it would be supported natively by mono but then I wouldn't be able to use directshow for the media decoding.

    I'm kinda flying blind in the graphics area so yea code would be great.

  7. #17
    Fusion Brain Creator 2k1Toaster's Avatar
    Join Date
    Mar 2006
    Location
    Colorado, but Canadian!
    Posts
    10,053
    Quote Originally Posted by justchat_1 View Post
    I was thinking about slimDX - i've heard mdx and xna were horrible. I've seen full 3d games using managed code with some pretty low system requirements so I have to imagine that 2d rendering with a few 3d effects should be pretty easy - but well see I guess.

    I'm also throwing around the idea of using openGL instead. There seem to be more libraries for c# and openGL and it would be supported natively by mono but then I wouldn't be able to use directshow for the media decoding.

    I'm kinda flying blind in the graphics area so yea code would be great.
    Managed DX is horrible. But it is the best I have seen. Like I said I could not get opengl to work. I could draw a triangle, and that was about it before random things happened. Fullscreen it was ok, but not great. As soon as you force it into window mode, it is weird.
    Fusion Brain Version 6 Released!
    1.9in x 2.9in -- 47mm x 73mm
    30 Digital Outputs -- Directly drive a relay
    15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
    Buy now in the MP3Car.com Store

  8. #18
    Fusion Brain Creator 2k1Toaster's Avatar
    Join Date
    Mar 2006
    Location
    Colorado, but Canadian!
    Posts
    10,053
    In here I do all the initialization of the DX object (as well as the rest of the program): http://www.fusioncontrolcentre.com/M...MDX/MainMDX.cs

    And this is where all the graphics are updated: http://www.fusioncontrolcentre.com/M...GUI_Display.cs

    And the FusionImage class in here does the actual drawing: http://www.fusioncontrolcentre.com/M...MDX/Globals.cs
    Fusion Brain Version 6 Released!
    1.9in x 2.9in -- 47mm x 73mm
    30 Digital Outputs -- Directly drive a relay
    15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
    Buy now in the MP3Car.com Store

  9. #19
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Anyone have a slow computer they can test this out on?:
    http://www.codeproject.com/KB/directx/OdysseyUI.aspx

    I'm a big fan of how modular and well written it looks. i would need to update some of the control rendering to use textures (for skinning) but in general it seems pretty well done.

  10. #20
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Finally got a chance to test it on a slower computer (5+ year old 1.4ghz p4 with integrated video) - its going to need some tweaking but there is definitely potential. I think if I can sustain 15fps on even the slowest hardware it should work out. On computers with dx9 hardware i averaged 60+fps and i would probably limit it to 25.

    That done - heres a very very rough mockup of what I had in mind for the default UI. This is graphically nothing like how the UI should look but I figure the best place to start is what regions will contain what. Comment away...
    Attached Images Attached Images  

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •