Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> D3DXCreateTexture из BITMAP 
:(
    Опции темы
ZC1989
Дата 26.10.2012, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



раньше как то не сталкивался с таким выводом и вот завис...

есть битмап, он загружен и периодически может изменяться, задача засунуть его в текстуру и отрисовать....
но у меня чтото не так, либо белый фон либо вообще все цвета умирают на треугольниках... 

делаю так
Код

HBITMAP    hBitmap;
BITMAP Bitmap;

hBitmap = NULL;
hBitmap = (HBITMAP)::LoadImage( NULL, "E:\\_lill\\_cpp\\lill_v0.2\\Debug\\texture\\map_example.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION );

if( hBitmap )
    GetObject( hBitmap, sizeof(BITMAP), &Bitmap );

... (этот код нашел в нете)

res = D3DXCreateTexture( D3dDevice, BITMAP .bmWidth, BITMAP .bmHeight, 2, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8,D3DPOOL_DEFAULT, &tex );


SIZE size = { 1000, 700 };   
D3DLOCKED_RECT rcLockedRect = { 0 };   
RECT rc = { 0, 0, size.cx, size.cy };   

tex->LockRect(0, &rcLockedRect, &rc, D3DLOCK_DISCARD);   

BYTE* pTextureBits = (BYTE*)rcLockedRect.pBits;
DWORD* pBitmapBits = (DWORD*)_file.bmBits;
BYTE* pLineTextureBits = pTextureBits; 

for (int j = 0; j < size.cy; j++)   {   
    DWORD* pPixels = (DWORD*)pLineTextureBits;   
  
    for (int i = 0; i < size.cx; i++)   {   
        pPixels = pBitmapBits;   
  
        pPixels++;   
        pBitmapBits++;   
    }   
  
    pLineTextureBits += rcLockedRect.Pitch;   
}   

tex->UnlockRect(0);   


самое странное, что этот код, не оставляет белого фона текстуры, она полностью оказывается прозрачна, и другие треугольники которые рендарятся после этого куска перестают отображаться.... (они не текстурные а с цветами на вершинах)


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.