Проблема в итоговом коде
загрузить изображение из формата в битовую матрицу, подготовить описание текстуры, создать контекст текстуры используя битовую матрицу и описание
- в целом, разобрался сам, но высокоуровнево:
1. Шаг сама текстура - тут очень неприятный нюанс вышел с D3DXCreateTextureFromFile - нужно брать D3DXCreateTextureFromFileEx:
extern "C" bool LoadTextureFromFile(const char* filename, void** out_texture, int* out_width, int* out_height)
{
// Load texture from disk
PDIRECT3DTEXTURE9 texture;
D3DCOLOR color = 0xFFFFFFFF;
HRESULT hr = D3DXCreateTextureFromFileExA(
g_pd3dDevice, filename, D3DX_DEFAULT_NONPOW2, D3DX_DEFAULT_NONPOW2, D3DX_DEFAULT, 0,
D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, color, NULL, NULL,
&texture);
//HRESULT hr = D3DXCreateTextureFromFileA( &texture);
if (hr != S_OK)
return false;
// Retrieve description of the texture surface so we can access its size
D3DSURFACE_DESC my_image_desc;
texture->GetLevelDesc(0, &my_image_desc);
*out_texture = (void *)texture;
*out_width = (int)my_image_desc.Width;
*out_height = (int)my_image_desc.Height;
return true;
}
2. Вывод взял кусками из imgui_impl_dx9.cpp
Т.о. как загрузить данные - stbi_load() - не проблема - а вот как это все запихнуть в DIRECT3DTEXTURE9 не высокоуровнево, чтобы модифицировать можно было - тут еще предстоит подумать.
С 11 версией DirectX тоже разобрался, а вот 12й малех проблемы