По просьбе, да и многим пригодится для практики и повышения кругозора......

Использовать будем функцию D3DXCreateTextureFromFileInMemoryEx, которая загружает текстуру из файла, который уже загружен в память(представлен в виде массива байт)...
Эта же система использовалась при построении "меню со спрайтами"....

В итоге мы отрисуем вот такую текстуру:
http://s019.radikal.ru/i639/1301/2d/c1f074f8677a.jpg

Байт код этой текстурки я предаставлю в конце под тегом CODE или прикреплю txt....

Работать будем в Reset[16] и EndScene[42]

Reset:
КОД: ВЫДЕЛИТЬ ВСЕ
typedef HRESULT (WINAPI* oReset) (LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
oReset pReset;
HRESULT WINAPI myReset ( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
{
   HRESULT hReset = pReset(pDevice, pPresentationParameters);
   
return hReset;
}

Хук
КОД: ВЫДЕЛИТЬ ВСЕ
pReset=(oReset)DetourCreate((PBYTE)vtbl[16],(PBYTE)myReset,5);

EndScene думаю есть у всех...

Теперь пишем код(точнее копируем):

Определяем:
КОД: ВЫДЕЛИТЬ ВСЕ
D3DXVECTOR3         pFile;
LPD3DXSPRITE        File_tex;
LPDIRECT3DTEXTURE9  txFile;

Для удобности определяем переменные жля размеров и положения:
КОД: ВЫДЕЛИТЬ ВСЕ
int WidthH = 200;//ширина
int HeightH =370;//высота
int pX =50;
int pY=10 ;

WidthH и HeightH - это реальное разрешение нашей текстуры(у меня 200х370)

Переходим в EndScene:
Задаем положение
КОД: ВЫДЕЛИТЬ ВСЕ
    pFile.x=pX;
   pFile.y=pY;

Указываем
КОД: ВЫДЕЛИТЬ ВСЕ
if(File_tex == NULL)D3DXCreateSprite(pDevice, &File_tex);

Загружаем текстуру
КОД: ВЫДЕЛИТЬ ВСЕ
if(txFile == NULL)D3DXCreateTextureFromFileInMemoryEx(pDevice
       ,&byte_File,sizeof(byte_File),WidthH,HeightH,D3DX_DEFAULT,0,D3DFMT_UNKNOWN
       ,D3DPOOL_MANAGED,D3DX_DEFAULT,D3DX_DEFAULT,0,NULL,NULL,&txFile);

Отрисовываем
КОД: ВЫДЕЛИТЬ ВСЕ
    File_tex->Begin(D3DXSPRITE_ALPHABLEND);                                     
    File_tex->Draw(txFile,0,0,&pFile,0xFFFFFFFF);                             
    File_tex->End();   

Переходим в myReset:

Пишем(копируем)
КОД: ВЫДЕЛИТЬ ВСЕ
File_tex->OnLostDevice();
File_tex->OnResetDevice();

таким вот образом:
КОД: ВЫДЕЛИТЬ ВСЕ
HRESULT WINAPI myReset ( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
{
File_tex->OnLostDevice();
   HRESULT hReset = pReset(pDevice, pPresentationParameters);
File_tex->OnResetDevice();
return hReset;
}

Осталось определить массив байтов нашего изображение:
КОД: ВЫДЕЛИТЬ ВСЕ
BYTE byte_File[] ={ 0x89, 0x50,....................... 0x4E, 0x82};

На этом все...

как и говорил предаставляю массив моего изображения в виде txt, так как массив размером в 40686 байт сложно скопировать из под тега CODE...

Скачать байтКод