Freigeben über


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

Weitere Informationen

Übersicht über Direct2D

Einfache Direct2D-Anwendung erstellen

Erste Schritte mit Direct2D

IUnknown

Direct2D-Multithread-Apps

Ressourcenübersicht