Я храню все необходимые данные для визуализации текстуры в структуре под названием Текстура::data, вот что я пытаюсь установить в качестве полезной нагрузки для перетаскивания.
Все доступные текстуры отображаются в окне ImGui, и оттуда вы сможете их перетаскивать. .
Код: Выделить всё
for (const auto& text : texts) {
ImGui::ImageButton((void*)text.ID, ImVec2(buttonSize.x, buttonSize.y), {0,1}, {1,0});
if(ImGui::BeginDragDropSource())
{
ImGui::SetDragDropPayload("TEXTURE", &text, sizeof(Texture::data));
ImGui::EndDragDropSource();
}
}
Код: Выделить всё
ImGui::Image((void*)2, ImVec2{windowSize.x, windowSize.y}, {0, 1}, {1, 0});
if (ImGui::BeginDragDropTarget())
{
auto x = ImGui::AcceptDragDropPayload("TEXTURE");
if (x)
{
auto* f = (Texture::data *) &x;
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78684279/c-dearimgui-drag-and-drop-with-personalized-data-type[/url]
Мобильная версия