Что такое pd3dDevice в DirectX 11?

#c #directx-11 #alphablending #blending

#c #directx-11 #перенос букв #смешивание

Вопрос:

В настоящее время я пытаюсь сделать пользовательский интерфейс прозрачным в DirectX 11 для университетского проекта и просматриваю состояния смешивания и другие ресурсы в документах Microsoft. Я продолжаю сталкиваться pd3dDevice и действительно теряюсь в том, что это такое. Я смотрел во многих местах, просто чтобы увидеть, как люди используют его, но без ссылки на то, что это такое.

Я впервые нашел это здесь: Настройка функциональности наложения: создайте состояние наложения, и я пытаюсь найти способ использовать его или получить к нему доступ любым способом, но я не могу узнать, что это такое или на что оно ссылается.

 ID3D11BlendState1* g_pBlendStateNoBlend = NULL;

D3D11_BLEND_DESC1 BlendState;
ZeroMemory(amp;BlendState, sizeof(D3D11_BLEND_DESC1));
BlendState.RenderTarget[0].BlendEnable = FALSE;
BlendState.RenderTarget[0].RenderTargetWriteMask = 
D3D11_COLOR_WRITE_ENABLE_ALL;
pd3dDevice->CreateBlendState1(amp;BlendState, amp;g_pBlendStateNoBlend);
 

Комментарии:

1. Сначала я должен спросить, что вы знаете о DirectX 11?? можете ли вы создать базовое приложение? потому что, если бы вы могли, вы бы не задавали этот вопрос. Чтобы ответить на ваш вопрос, я бы сказал, изучите основы DirectX, прежде чем что-либо делать, поэтому я бы порекомендовал вам прочитать «Введение в программирование 3D-игр с DirectX 11» Фрэнка Луна

Ответ №1:

Это ID3D11Device1* .

Чтобы найти это, помимо имени, где p означает «указатель», просто погуглите метод, поскольку он часто достаточно дискриминантен, например, здесь CreateBlendState1 приведет вас к ID3D11Device1::CreateBlendState1

Комментарии:

1. Это буквально указано в документе, на который ссылается OP, прямо над цитируемым фрагментом кода: » Состояние смешивания — это набор состояний, используемых для управления смешиванием. Эти состояния (определенные в D3D11_BLEND_DESC1 ) используются для создания объекта состояния смешивания путем вызова ID3D11Device1 ::CreateBlendState1. »

2. @RemyLebeau — это, возможно, очевидно для вас (и для меня), но, видимо, не для OP, который не понимает, что такое pd3dDevice, вот почему я дал дополнительные подсказки.