Я использую С# для управляемого Direct3D для создания квадрата. Текстура этого квадрата — мой рабочий стол (скриншот). Я использовал Direct3D, чтобы сделать снимок экрана (занимает 70 миллисекунд), затем я переделываю текстуру, чтобы она отображалась на квадрате (занимает 1000 миллисекунд).
Как я могу мгновенно создавать текстуры в Direct3D для просмотра в реальном времени? Ниже показано, как я сейчас создаю текстуру для использования.
using (Bitmap bmp = new Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
{
bitmapData = bmp.LockBits(bounds, ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
Marshal.Copy(screenData, 0, bitmapData.Scan0, screenData.Length);
bmp.UnlockBits(bitmapData);
texture = Texture.FromBitmap(d3dDevice, bmp, 0, Pool.SystemMemory);
}