DirectX 10 IDXGISwapChain :: GetBuffer Многопоточная ошибка CTD

Я пытаюсь создать многопоточную программу, в которой весь рендеринг выполняется в первичном потоке, а обработка сообщений (и создание окон) — во вторичном потоке. Следующая строка кода SwapChain->GetBuffer(0, __uuidof(ID3D10Texture2D), (void**)&back_buffer); в функции инициализации выдает ошибку нарушения доступа (0xc0000005), когда функция инициализации размещается в основном потоке.

Как я могу исправить эту ошибку, не помещая функцию инициализации во вторичный поток?

РЕДАКТИРОВАТЬ: я разместил весь соответствующий код Вот.

1

Решение

В строке 49 файла Application.cpp while (HWindow != nullptr); ждал HWindow в становиться nullptr, Но HWindow инициализируется как nullptr и поэтому цикл while пропустил бы и попытался инициализировать окно, которое еще не было создано.

Эта строка теперь читает while (HWindow == nullptr);, Это означает, что цикл выполняется до тех пор, пока окно не будет создано, тем самым блокируя инициализацию окна, которое не существует.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector