2017-03-24 6 views
0

J'apprends Direct2D pour une application (en C# en utilisant sharpdx) mais j'ai un temps difficile à trouver qui est le chemin à jour pour travailler ..Constructeur SharpDX/SolidColorBrush avec DeviceContext?

Voici mon problème actuel:

Au début, j'ai utilisé Direct2D seulement avec le D2D1Factory comme décrit dans le "démarrage rapide" de MSDN. Mais lorsque vous cherchez à optimiser les performances, il semble que je devrais dessiner en utilisant le ID2D1DeviceContext pour avoir accès à some caching mechanism. J'ai donc suivi this MSDN article pour mettre à jour mon application.

Mais le constructeur SharpDX de SolidColorBrush n'accepte que RenderTarget comme premier paramètre, il ne semble pas qu'un constructeur accepte un DeviceContext. Mais il l'avait l'habitude, j'ai trouvé l'exemple de code SharpDX avec lui.

Cette méthode est-elle décrépitée? Pourquoi SharpDX a supprimé ce constructeur? Parce que j'ai besoin d'initialiser les pinceaux à partir de DeviceContext pour les utiliser avec mes appels de dessin DeviceContext.

Création d'un RenderTarget du ID2D1Factory pour créer mes pinceaux et puis essayer de les utiliser avec ID2D1DeviceContext.Draw_something() lancer une exception ressources DirectX (qui semble logique ...)

Tout le monde peut me éclairer s'il vous plaît?

Merci beaucoup.

+1

Je ne sais pas à propos de sharpdx, je n'en ai jamais eu besoin, mais avez-vous regardé le SDK Direct2D actuel? ID2D1DeviceContext est lui-même une cible de rendu, il hérite de ID2D1RenderTarget. – bunglehead

+0

Je suis stupide ... Je n'ai pas remarqué ça! Je dois juste passer mon DeviceContext en tant que RenderTarget ... Si vous voulez, répondez à mon message avec votre commentaire afin que je puisse le marquer comme réponse acceptée. Merci;) – Karnalta

+0

Ok, posté comme une réponse. – bunglehead

Répondre

1

Selon SDK ID2D1DeviceContext est lui-même une cible de rendu, il hérite de ID2D1RenderTarget. Vous devriez donc pouvoir utiliser le pointeur de contexte de périphérique en tant que valeur d'argument de pointeur de rendu.