2010-04-16 2 views
4

Я использую Direct2D в C# для рендеринга небольшой рамки gui для моего исследовательского проекта. Я не очень привык работать в Windows или DirectX. Я использую элемент управления Windows Forms для создания цели рендеринга, и msdn предупреждает, что, поскольку он использует BindDC, чем больше цель рендеринга, тем хуже будет производительность (что оказалось резкой разницей, когда я максимизирую окно, я получаю около 15 кадров в секунду).Как я могу предоставить другую цель рендеринга для Direct2D?

Что было бы лучшим способом создать цель рендеринга для Direct2D? Есть ли способ создать окно и визуализировать его непосредственно, вместо того, чтобы сначала визуализировать буфер управления, а затем сделать это? Если да, то как?

Извините, если мой английский сосет, а не мой родной язык.

ответ

2

Вместо этого вы должны использовать CreateHwndRenderTarget, используя свойство Handle элемента управления. Чтобы сделать это совершенно правильно, создайте свой собственный элемент управления и переопределите метод OnHandleCreated(). И переопределить OnPaintBackground() и ничего не делать.