[DX11] ImGui draw image

off
Участник
Участник
Статус
Оффлайн
Регистрация
7 Сен 2017
Сообщения
713
Реакции
163
Здарова, решил перевести лоадер на DX11, и застрял на моменте вывода кастомных картонок.
Если в dx9 я это делал так:
C++:
Expand Collapse Copy
IDirect3DTexture9* g_mainBgImage = nullptr;

BYTE BgImage[/*3291*/] =
{
    0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00,
    0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x01, 0xFE,
    0x00, 0x00, 0x01, 0x40, 0x08, 0x04, ...
}

//init

D3DXCreateTextureFromFileInMemoryEx(
        g_pd3dDevice,
        &BgImage,
        sizeof(BgImage),
        800,
        600,
        D3DX_DEFAULT,
        0,
        D3DFMT_UNKNOWN,
        D3DPOOL_MANAGED,
        D3DX_DEFAULT,
        D3DX_DEFAULT,
        0,
        NULL,
        NULL,
        &g_mainBgImage
);

// ImGui::Image(g_mainBgImage, ImVec2(800, 600));
то в dx11 я пробую:
C++:
Expand Collapse Copy
static ID3D11ShaderResourceView* g_MainBG = NULL;

BYTE BgImage[/*3291*/] =
{
    0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00,
    0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x01, 0xFE,
    0x00, 0x00, 0x01, 0x40, 0x08, 0x04, ...
}

// init

// и тут 2 аргумента мне не понятны: как загружать байты, или что другое?
g_pd3dDevice->CreateShaderResourceView(???, &m???, &g_MainBG);

// ImGui::Image((void*)g_MainBG, ImVec2(800, 600));
Надеюсь кто скинет пример, и пояснит. Именно такой темы не видел, думаю не только мне будет полезно.
 
Последнее редактирование:
// и тут 2 аргумента мне не понятны: как загружать байты, или что другое?
зач те байты загружать
сделай из байтов файл, создай статик ID3D11Resource* (будет текстура), с помощью
Пожалуйста, авторизуйтесь для просмотра ссылки.
один раз сделай инициализируй ее (2 аргумент в этой функции - путь до файла, сойдет и короткий, тип "file.png") и удали файл картинки, и также через imgui::image рендери ее
 
//del
 
Последнее редактирование:
//del
 
Последнее редактирование:
зач те байты загружать
сделай из байтов файл, создай статик ID3D11Resource* (будет текстура), с помощью
Пожалуйста, авторизуйтесь для просмотра ссылки.
один раз сделай инициализируй ее (2 аргумент в этой функции - путь до файла, сойдет и короткий, тип "file.png") и удали файл картинки, и также через imgui::image рендери ее
Пример?!
 
Пожалуйста, авторизуйтесь для просмотра ссылки.
1574617230194.png
 
Назад
Сверху Снизу