2013-08-16 2 views
1

Я хочу, чтобы объекты были частично прозрачными, но я не знаю как. Я использую MSDN и кодирование на C++.Как рисовать прозрачные прямоугольники с помощью DirectX в C++?

Следующий код, как я рисую правильный прямоугольник, но хочу нарисовать прозрачный прямоугольник.

VOID DrawingObject::Draw() 
{ 
    ID2D1HwndRenderTarget *m_pRenderTarget; 
    m_pRenderTarget->FillRectangle(RectF(10, 10, 20, 20), 
     m_pD2DDriver->GetBrush(static_cast<DrawingColor>(m_uColorIndex)) 
     ); 
} 

Любая помощь или рекомендация приветствуются.

+1

Думаете, вы имели в виду ** DirectX API **, а не MSDN (которая является библиотекой ресурсов разработчика для разработчиков программ Windows). – WhozCraig

+0

Хороший звонок! Я был смущен. – CodeDoctorJL

ответ

3

Посмотрите на Brush Interface. Вы можете создать кисть и использовать SetOpacity, чтобы создать прозрачную кисть для отправки в прямоугольник.

Вы также можете просто создать цвет непосредственно с помощью функции D2D1::ColorF(red,green,blue,alpha). Аргументом alpha является прозрачность. 0 полностью прозрачен, а 1 непрозрачен.

Если вы не знаете, как использовать его, this link содержит фантастические примеры с кодом о том, как использовать ID2D1 Brushes. Ниже приведен пример кода с этой страницы.

ID2D1SolidColorBrush *pGridBrush = NULL; 
hr = pCompatibleRenderTarget->CreateSolidColorBrush(
    D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)), 
    &pGridBrush 
    ); 
+1

Спасибо Кирку, это именно то, что я искал. Ценить это (: – CodeDoctorJL

Смежные вопросы