2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Загрузка текстур.
Сообщение20.06.2011, 02:28 
Аватара пользователя


03/03/10
1341
Нужно сделать текстуру из картинки, которая редактируется во время работы программы, используя SlimDX. последовательность действий такая: загрузить картинку -> отредактировать её -> сделать из неё текстуру. В Managed DirectX у класса Texture был метод FromBitmap. И код выглядел так
Используется синтаксис C#
Bitmap Pic = new Bitmap(...);
// Некоторые действия с Pic
Texture txr = Texture.FromBitmap(...,Pic,...);

Проблема в том, что в SlimDX нет аналога Texture.FromBitmap из Managed DirectX.
зато есть:
код: [ скачать ] [ спрятать ]
Используется синтаксис C#
 FromFile(Device, String)// Loads a texture from file.
 FromFile(Device, String, Usage, Pool);
 FromFile(Device, String, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32) ;
 FromFile(Device, String, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32, ImageInformation);  
 FromFile(Device, String, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32, ImageInformation, arrayPaletteEntry[]);
 
 FromMemory(Device, array Byte[]) //Creates a texture from a specified block of memory.
 FromMemory(Device, array Byte[], Usage, Pool);
 FromMemory(Device, array Byte[], Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32);  
 FromMemory(Device, array Byte[], Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32,
         ImageInformation);
 FromMemory(Device, array Byte[], Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32, ImageInformation%, array PaletteEntry[])  
 
 FromPointer(IntPtr)
 
 FromStream(Device, Stream); //Creates a texture from a stream.
 FromStream(Device, Stream, Usage, Pool);
 FromStream(Device, Stream, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32);
 FromStream(Device, Stream, Int32, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32)
 FromStream(Device, Stream, Int32, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32,  
          ImageInformation)
 FromStream(Device, Stream, Int32, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32,
          ImageInformation, array PaletteEntry[])
 
Нельзя что-нибудь придумать используя эти методы? У меня есть идея сохранять изображение после редактирования на жёсткий диск, а потом использовать FromFile(), но она мне не нравится.

 Профиль  
                  
 
 Re: Загрузка текстур.
Сообщение20.06.2011, 06:41 


28/09/09
29
Почему бы не использовать FromMemory, FromStream?

 Профиль  
                  
 
 Re: Загрузка текстур.
Сообщение20.06.2011, 13:35 
Аватара пользователя


03/03/10
1341
А как загнать картинку в поток, или получить её адрес в памяти?

 Профиль  
                  
 
 Re: Загрузка текстур.
Сообщение20.06.2011, 13:48 


28/09/09
29
судя по документации Bitmap http://msdn.microsoft.com/ru-ru/library ... .aspx#Y171 методом Save.

 Профиль  
                  
 
 Re: Загрузка текстур.
Сообщение22.06.2011, 15:53 
Аватара пользователя


03/03/10
1341
FromStream() отказался работать на отрез - код
Используется синтаксис C#
MemoryStream st = new MemoryStream();
Texture txr = Texture.FromStream(device, st);
ругался, что индекс находится за границами массива.
Нашёл другой способ:
Используется синтаксис C#
byte[] buffer = st.ToArray();
txr = Texture.FromMemory(device, buffer);

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group