D2D1
is the namespace for Direct2D technology in Win32. However I don't understand the etymology of this name. The D2D
part most likely refers to Direct2D, however the last 1 puzzles me...
There are also a lot of classes with "1" as a suffix: IDWriteFactory1
, IDWriteFont1
, IDWriteTextLayout1
, etc. — what is their purpose, and difference from the similar objects without the suffix?
COM interfaces are usually named with increasing numbers to allow for versioning. Once a COM interface has been published publically, COM rules dictate that the interface is not allowed to be changed anymore, or else compatibility with existing code breaks. If new functionality needs to be added, a new interface has to be exposed. Let's take IDWriteFactory1
for example. Today, that is a first release interface. In the future, maybe IDWriteFactory2
will be added that extends IDWriteFactory1
with new methods. Existing code is preserved, since they don't know anything about IDWriteFactory2
, but new code could create an IDWriteFactory1
object and query it to see if it supports IDWriteFactory2
and if so then use the newer methods as needed.
The naming of the D2D1
namespace is likely similar. It is probably being used for versioning purposes (Direct2D v1 ?). Maybe there will be a D2D2
(Direct2D v2) namespace added in the future for things that don't fit in the existing Direct2D architecture. Who knows for sure.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With