Smart pointers instead of GC?

Ola Fosheim Grøstad" <ola.fosheim.grostad+dlang at gmail.com> Ola Fosheim Grøstad" <ola.fosheim.grostad+dlang at gmail.com>
Tue Feb 4 03:33:05 PST 2014


On Tuesday, 4 February 2014 at 07:15:17 UTC, Adam Wilson wrote:
> On Mon, 03 Feb 2014 23:05:35 -0800, Eric Suen 
> <eric.suen.tech at gmail.com> wrote:
>
>>
>> "Ola Fosheim Gr?stad" <ola.fosheim.grostad+dlang at gmail.com>">

>>> So, Microsoft does not think that GC is suitable for real 
>>> time interactive graphics. And they are right.

>> And they are right." is only your opinion. you don't know the 
>> real reason
>> behind MS's decision. some resource need release ASAP, so you

> Actually the reason is that DirectX is a specialized Native 
> COM-Like API that is NOT compatible with normal COM and 
> therefore not compatible with .NET COM Interop. Milcore is a

Quoting
http://msdn.microsoft.com/en-us/library/ms750441(v=vs.110).aspx :

«Milcore is written in unmanaged code in order to enable tight 
integration with DirectX. All display in WPF is done through the 
DirectX engine, allowing for efficient hardware and software 
rendering. WPF also required fine control over memory and 
execution. The composition engine in milcore is extremely 
performance sensitive, and required giving up many advantages of 
the CLR to gain performance.»

Please note that Microsoft knows their stuff: «WPF also required 
fine control over memory and execution.» and «required giving up 
many advantages of the CLR to gain performance».

WPF maintains a retained mode shadow-tree of the composition 
elements of the scene graph to get more responsive applications. 
i.e. to avoid having client code blocking rendering:

«There is a very important architectural detail to notice here – 
the entire tree of visuals and drawing instructions is cached. In 
graphics terms, WPF uses a retained rendering system. This 
enables the system to repaint at high refresh rates without the 
composition system blocking on callbacks to user code. This helps 
prevent the appearance of an unresponsive application.»

But… I don't think it was a good idea to go for full 
back-to-front rendering.


More information about the Digitalmars-d mailing list