Поэтому у меня возникли проблемы с адресным пространством памяти при использовании растровых изображений (или, как мне кажется, основываясь на моем чтении), и поэтому я хотел использовать один поток памяти для изображения самого большого размера и просто повторно использовать его при создании всех необходимых мне текстур.
Однако после завершения цикла и использования текстур для рисования создается впечатление, что все текстуры содержат одну и ту же текстуру, что заставляет меня думать, что я не могу повторно использовать поток памяти. Создает ли текстура из памяти только текстуру, указывающую на эту область памяти?
Я действительно запутался, и мне хотелось бы знать, что именно происходит в Texture.FromMemory (устройство, byte []) и Texture.FromStream (устройство, поток).
Я также не знаю, какое использование использовать при вызове Texture.FromMemory (устройство, байт [], использование, пул).
Использование определяется здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/bb322805%28v=vs.85%29.aspx
но я действительно не понимаю, какое использование я должен использовать в качестве параметра при использовании сигнатуры этого метода. Usage.None ничего не отображается. Usage.Dynamic приводит к недостаточному объему памяти, а Usage.WriteOnly выдает еще одну загадочную ошибку.
Небеса знают, какое использование фактически используется по умолчанию, когда я вызываю более короткий двухпараметрический метод Texture.FromStream (device, stream).
MemoryStream BitmapStream = new MemoryStream();
for (int y = 0; y < OriginalBitmap.Height; y += MaxHeight)
{
for (int x = 0; x < OriginalBitmap.Width; x += MaxWidth)
{
Bitmap NewBitmap = OriginalBitmap.Clone(RegionToClone, OriginalBitmap.PixelFormat);
Bitmaps.Add(NewBitmap);
BitmapStream.Position= 0;
NewBitmap.Save(BitmapStream, System.Drawing.Imaging.ImageFormat.Bmp);
BitmapStream.Position = 0;
Texture t = Texture.FromMemory(device, BitmapStream.GetBuffer());
Задача ещё не решена.