ID:1324773
 
So, why CAN'T BYOND do transparency very well?
The common reason given is that Windows doesn't support it very well, yet the Aero theme seems to pull it off perfectly well.

I'm not professing to be an expert on the situation it just seems like it should be something relatively trivial.
Which aspects of transparency, are you specifically after an explanation of?
An element's transparency within a window causes major issues/is pretty much unfeasible.
This element is presumably overlaying something, correct?
Overlaying something, or just on its own out in the middle of somewhere.

I mean I know there are workarounds but currently if you set a colour to be transparent and then place an element of that colour in the skin, it creates a hole in the window.
As a for-instance, such a control being say ... an output control?
I can't speak for every element but, sure, theoretically an output should create the same effect a label would.
Right, well if it's that you're talking about, the answer is APIs.

Windows Aero / Glass is implemented directly on top of the WDDM (Windows Driver Display Model), and is essentially an OS-level implementation of rendering. As such, it gets to do things that applications aren't necessarily allowed to, in ways applications can't necessarily do. Some of it is exposed via the Windows API, but is very Windows Vista/7 specific in places, so that would be awkward to use.

BYOND uses GDI/GDI+ for it's own controls. GDI+ is in turn implemented on top of the WDDM (being the common drawing layer) and provided by Microsoft as a 2D rendering layer. GDI/GDI+ is pretty old (and so, backwards compatible), and largely was designed for XP, with alpha transparency of controls mostly being an after-thought. Large parts of the API don't even have the option to provide alpha transparent colours or models, but some do.

GDI/GDI+ used to be an entirely in system memory rendering pipeline, using the CPU. From Vista/7, it got an implementation on top of WDDM, which meant it could render most things in hardware instead. However Vista's implementation made a mess of it, and was generally bad, often falling through to software rendering. When it does so, GDI/GDI+'s entire context falls through to software rendering, meaning you lose all hardware acceleration.

Other applications tend to go the route of WPF now, but that's built entirely for managed contexts like .NET, so aside from being a big re-write for BYOND to upgrade to, would add the .NET framework as a dependency also.
So to summerize, the display module used by BYOND is XP focused, in which time there were no real transparent elements, and as such it's not really entirely capable of displaying such effects (At least not without major re-writes and as such loss of a lot of backwards compatibility, and since BYOND still seems to target XP users as their target audience that's not going to happen any time soon)



If that's the case then, yeah alright fair enough. Glad that's sorted up.
Well, the major rewrite alone is the big reason, the use of GDI/GDI+ for controls is pretty much core to all the 4.0 interface work. You would pretty much have to go back tot he drawing board (pun intended). I'm sure that would be the blocker much before the loss of XP support.
The most flexible solution (and the one that would take the most work, so will likely never happen), would be to rewrite it using OpenGL or some existing window/component framework that uses OpenGL. It would pretty much guarantee hardware acceleration, allow for 3D graphics as a future feature, permit interesting visual effects, and would be cross-platform.

However, it would take a *lot* of work, probably not enough to make up for any gains, so it would probably be best to see if they ever release a public client interface spec, and if they do, if someone writes an OpenGL-based client for non-windows systems.
In less technical terms, BYOND uses lots of old stuff and it would be a lot of work to change everything to take advantage of recent improvements in the operating system and hardware.

Not XP. Much older than XP.

Uristqwerty wrote:
-snip- some things about better clients

BYOND would gain a lot more from improving the server, I think.