3 ms·
When a new UI framework comes out, my test is: "Can Adobe build the next version of Photoshop with this?". WinForms and WPF failed the test because they can on
by DaiPlusPlus 10y ago
When a new UI framework comes out, my test is: "Can Adobe build the next version of Photoshop with this?".
WinForms and WPF failed the test because they can only be run from within .NET applications. I was hopefull for Direct2D, but D2D is only a drawing API, there are no native widgets. XAML with C++ is nice in Windows 10, but I understand your application must run in the sandbox (for better and for worse) and when you use Win10 XAML you cannot use any UI code that uses any of the old-world code (e.g. Photoshop plugins). I'm also concerned that XAML prevents you from getting lower-level control over hardware (e.g. Deep-color support, hosting low-latency OpenGL contexts, etc). The sandbox requirement itself kills it for a lot of applications anyway.
Today, if you're writing a C/C++ program for Windows that needs to display a native Windows checkbox on screen (i.e. the Common Controls library or the raw Checkbox window class), and you want to customise how that checkbox is rendered, then you're still stuck with GDI - the WM_Paint message gives you access to s GDI device context in RAM - so you have to jump through hoops to use it with another 2D library or widget toolkit. How do I get an opaque handle to the window's texture surface in VRAM for ultra-fast painting or low-level control?
- pjmlp 10y agoThe future is sandboxed Windows, there is no way around it. So while XAML with C++ does indeed require WinRT and sanboxing. That is where future Windows versions will be. For high performance graphics there is DirectX and it interoperates perfectly fine with XAML. There are quite a few examples, including VS templates. As for Win32, the Anniversary edition will bring the productified version of project Centennial, which allows running Win32 applications as sandboxed WinRT apps. This is intended as a porting aid to bring Win32 apps into the new world, not as as something to use for new applications.