ID2D1Factory-Schnittstelle (d2d1.h)
Erstellt Direct2D-Ressourcen.
Vererbung
Die ID2D1Factory-Schnittstelle erbt von der IUnknown-Schnittstelle . ID2D1Factory verfügt auch über folgende Membertypen:
Methoden
Die ID2D1Factory-Schnittstelle verfügt über diese Methoden.
ID2D1Factory::CreateDCRenderTarget Erstellt ein Renderziel, das auf einen GDI-Gerätekontext (Windows Graphics Device Interface) verweist. |
ID2D1Factory::CreateDrawingStateBlock Erstellt einen ID2D1DrawingStateBlock, der mit den Methoden SaveDrawingState und RestoreDrawingState eines Renderziels verwendet werden kann. (Überladung 1/3) |
ID2D1Factory::CreateDrawingStateBlock Erstellt einen ID2D1DrawingStateBlock, der mit den Methoden SaveDrawingState und RestoreDrawingState eines Renderziels verwendet werden kann. (Überladung 2/3) |
ID2D1Factory::CreateDrawingStateBlock Erstellt einen ID2D1DrawingStateBlock, der mit den Methoden SaveDrawingState und RestoreDrawingState eines Renderziels verwendet werden kann. (Überladung 3/3) |
ID2D1Factory::CreateDxgiSurfaceRenderTarget Erstellt ein Renderziel, das auf eine DXGI-Oberfläche (DirectX Graphics Infrastructure) zeichnet. (Überladung 1/2) |
ID2D1Factory::CreateDxgiSurfaceRenderTarget Erstellt ein Renderziel, das auf eine DXGI-Oberfläche (DirectX Graphics Infrastructure) zeichnet. (Überladung 2/2) |
ID2D1Factory::CreateEllipseGeometry Erstellt eine ID2D1EllipseGeometry. (Überladung 2/2) |
ID2D1Factory::CreateEllipseGeometry Erstellt eine ID2D1EllipseGeometry. (Überladung 1/2) |
ID2D1Factory::CreateGeometryGroup Erstellt eine ID2D1GeometryGroup, bei der es sich um ein Objekt handelt, das andere Geometrien enthält. |
ID2D1Factory::CreateHwndRenderTarget Erstellt ein ID2D1HwndRenderTarget, ein Renderziel, das in einem Fenster gerendert wird. (Überladung 2/2) |
ID2D1Factory::CreateHwndRenderTarget Erstellt ein ID2D1HwndRenderTarget, ein Renderziel, das in einem Fenster gerendert wird. (Überladung 1/2) |
ID2D1Factory::CreatePathGeometry Erstellt eine leere ID2D1PathGeometry. |
ID2D1Factory::CreateRectangleGeometry Erstellt eine ID2D1RectangleGeometry. (Überladung 2/2) |
ID2D1Factory::CreateRectangleGeometry Erstellt eine ID2D1RectangleGeometry. (Überladung 1/2) |
ID2D1Factory::CreateRoundedRectangleGeometry Erstellt eine ID2D1RoundedRectangleGeometry. (Überladung 2/2) |
ID2D1Factory::CreateRoundedRectangleGeometry Erstellt eine ID2D1RoundedRectangleGeometry. (Überladung 1/2) |
ID2D1Factory::CreateStrokeStyle Erstellt einen ID2D1StrokeStyle, der die Startkappe, das Bindestrichmuster und andere Merkmale eines Strichs beschreibt. (Überladung 2/2) |
ID2D1Factory::CreateStrokeStyle Erstellt einen ID2D1StrokeStyle, der die Startkappe, das Bindestrichmuster und andere Merkmale eines Strichs beschreibt. (Überladung 1/2) |
ID2D1Factory::CreateTransformedGeometry Transformiert die angegebene Geometrie und speichert das Ergebnis als ID2D1TransformedGeometry-Objekt. (Überladung 2/2) |
ID2D1Factory::CreateTransformedGeometry Transformiert die angegebene Geometrie und speichert das Ergebnis als ID2D1TransformedGeometry-Objekt. (Überladung 1/2) |
ID2D1Factory::CreateWicBitmapRenderTarget Erstellt ein Renderziel, das in einer WIC-Bitmap (Microsoft Windows Imaging Component) gerendert wird. (Überladung 2/2) |
ID2D1Factory::CreateWicBitmapRenderTarget Erstellt ein Renderziel, das in einer WIC-Bitmap (Microsoft Windows Imaging Component) gerendert wird. (Überladung 1/2) |
ID2D1Factory::GetDesktopDpi Ruft die aktuellen Desktoppunkte pro Zoll (DPI) ab. Rufen Sie ReloadSystemMetrics auf, um diesen Wert zu aktualisieren. |
ID2D1Factory::ReloadSystemMetrics Erzwingt, dass die Factory alle Systemstandardeinstellungen aktualisiert, die sie seit der Erstellung der Factory möglicherweise geändert hat. |
Hinweise
Die ID2D1Factory-Schnittstelle ist der Ausgangspunkt für die Verwendung von Direct2D. Es ist das, was Sie verwenden, um andere Direct2D-Ressourcen zu erstellen, die Sie zum Zeichnen oder Beschreiben von Formen verwenden können.
Eine Factory definiert einen Satz von CreateResource-Methoden , die die folgenden Zeichnungsressourcen erzeugen können:
- Renderziele: Objekte, die Zeichnungsbefehle rendern.
- Zeichnungszustandsblöcke: Objekte, die Zeichnungszustandsinformationen speichern, z. B. die aktuelle Transformation und den Antialiasingmodus.
- Geometrien: Objekte, die einfache und potenziell komplexe Formen darstellen.
Um eine ID2D1Factory zu erstellen, verwenden Sie eine der CreateFactory-Methoden . Sie sollten die ID2D1Factory-instance so lange beibehalten, wie Sie Direct2D-Ressourcen verwenden. Im Allgemeinen sollten Sie sie nicht neu erstellen müssen, wenn die Anwendung ausgeführt wird. Weitere Informationen zu Direct2D-Ressourcen finden Sie unter Ressourcenübersicht.
Singlethreaded- und Multithreaded Factorys
Wenn Sie eine Factory erstellen, können Sie angeben, ob es sich um Multithread- oder Singlethreading handelt. Eine Singlethreaded-Factory bietet keine Serialisierung für andere singlethreaded instance innerhalb von Direct2D, sodass dieser Mechanismus einen sehr großen Grad an Skalierung für die CPU bereitstellt.Sie können auch eine Multithread-Factory instance erstellen. In diesem Fall können die Factory und alle abgeleiteten Objekte von jedem Thread verwendet werden, und jedes Renderziel kann unabhängig in gerendert werden. Direct2D serialisiert Aufrufe dieser Objekte, sodass ein einzelner Multithread-Direct2D-instance nicht so gut auf der CPU skaliert wird wie viele Einzelthreadinstanzen. Die Ressourcen können jedoch innerhalb des Multithread-instance freigegeben werden.
Beachten Sie, dass der Qualifizierer "On the CPU": GPUs in der Regel die Vorteile einer differenzierten Parallelität stärker nutzen als CPUs. Multithreadaufrufe von der CPU können beispielsweise weiterhin serialisiert werden, wenn sie an die GPU gesendet werden. Eine ganze Bank von Pixel- und Vertexshadern wird jedoch parallel ausgeführt, um das Rendering auszuführen.
Weitere Informationen finden Sie unter Multithreaded Direct2D Apps .
Beispiele
Die folgenden Codefragmente deklarieren einen Factoryzeiger, erstellen eine Singlethreaded Factory-instance und verwenden die Factory, um ein Renderziel zu erstellen.
ID2D1Factory* m_pDirect2dFactory;
// Create a Direct2D factory.
hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &m_pDirect2dFactory);
// Create a Direct2D render target.
hr = m_pDirect2dFactory->CreateHwndRenderTarget(
D2D1::RenderTargetProperties(),
D2D1::HwndRenderTargetProperties(m_hwnd, size),
&m_pRenderTarget
);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | d2d1.h |