Гайд [INDIGO] Фикс засветления меню

///
Пользователь
Статус
Оффлайн
Регистрация
25 Янв 2018
Сообщения
511
Реакции[?]
114
Поинты[?]
0
Привет всем! Опять //Тема спащена с другого борда
Идем в Render.cpp
Заменяем BeginRender и EndRender на код в спойлере ниже
Код:
void CRender::BeginRender()
    {
        m_pDevice->CreateStateBlock(D3DSBT_ALL, &m_pStateBlockDraw);
        m_pDevice->CreateStateBlock(D3DSBT_ALL, &m_pStateBlockText);

        if (m_pStateBlockDraw)
            m_pStateBlockDraw->Capture();

   m_pDevice>GetRenderState(D3DRS_COLORWRITEENABLE,&dwOld_D3DRS_COLORWRITEENABLE);
        m_pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, 0xffffffff);


        DWORD colorwrite, srgbwrite;
        m_pDevice->GetRenderState(D3DRS_COLORWRITEENABLE, &colorwrite);
        m_pDevice->GetRenderState(D3DRS_SRGBWRITEENABLE, &srgbwrite);

        m_pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, 0xffffffff);
        m_pDevice->SetRenderState(D3DRS_SRGBWRITEENABLE, false);

        //draw here

    }

    void CRender::EndRender()
    {
        m_pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, dwOld_D3DRS_COLORWRITEENABLE);
        DWORD colorwrite, srgbwrite;
        m_pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, colorwrite);
        m_pDevice->SetRenderState(D3DRS_SRGBWRITEENABLE, srgbwrite);

        if (m_pStateBlockDraw)
        {
            m_pStateBlockDraw->Apply();
            m_pStateBlockDraw->Release();
        }

        if (m_pStateBlockText)
            m_pStateBlockText->Release();
    }
 
Начинающий
Статус
Оффлайн
Регистрация
15 Июн 2018
Сообщения
39
Реакции[?]
27
Поинты[?]
0
Лучше восстанавливать только Pixel State, иначе могут багаться текстуры на некоторых картах.
Код:
// Перед рендером
if (SUCCEEDED(pDevice->CreateStateBlock(D3DSBT_PIXELSTATE, &gPixelState))) gPixelState->Capture();
pDevice->GetRenderState(D3DRS_ALPHABLENDENABLE, &gOldAlphaBlendEnable);
pDevice->GetRenderState(D3DRS_COLORWRITEENABLE, &gOldColorWriteEnable);
pDevice->GetRenderState(D3DRS_SRGBWRITEENABLE, &gOldSRGBWriteEnable);
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, 0xFFFFFFFF);
pDevice->SetRenderState(D3DRS_SRGBWRITEENABLE, FALSE);

// После рендера
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, gOldAlphaBlendEnable);
pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, gOldColorWriteEnable);
pDevice->SetRenderState(D3DRS_SRGBWRITEENABLE, gOldSRGBWriteEnable);

if (IsValidPtr(gPixelState))
{
gPixelState->Apply();
gPixelState->Release();
}
 
oooh my...
Пользователь
Статус
Оффлайн
Регистрация
5 Янв 2018
Сообщения
168
Реакции[?]
66
Поинты[?]
0
Лучше восстанавливать только Pixel State, иначе могут багаться текстуры на некоторых картах.
Код:
// Перед рендером
if (SUCCEEDED(pDevice->CreateStateBlock(D3DSBT_PIXELSTATE, &gPixelState))) gPixelState->Capture();
pDevice->GetRenderState(D3DRS_ALPHABLENDENABLE, &gOldAlphaBlendEnable);
pDevice->GetRenderState(D3DRS_COLORWRITEENABLE, &gOldColorWriteEnable);
pDevice->GetRenderState(D3DRS_SRGBWRITEENABLE, &gOldSRGBWriteEnable);
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, 0xFFFFFFFF);
pDevice->SetRenderState(D3DRS_SRGBWRITEENABLE, FALSE);

// После рендера
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, gOldAlphaBlendEnable);
pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, gOldColorWriteEnable);
pDevice->SetRenderState(D3DRS_SRGBWRITEENABLE, gOldSRGBWriteEnable);

if (IsValidPtr(gPixelState))
{
gPixelState->Apply();
gPixelState->Release();
}
можно поподробнее куда именно это вставить в индиго?)
 
Начинающий
Статус
Оффлайн
Регистрация
15 Июн 2018
Сообщения
39
Реакции[?]
27
Поинты[?]
0
можно поподробнее куда именно это вставить в индиго?)
Посмотри, как у ТС'а оформлен код. Туда, вероятно, и нужно его вставить. Главное, чтобы первая часть была перед рендером меню и визуалов, а вторая после. Я не компетентен в этом вопросе, поскольку у меня не индиго.
 
Забаненный
Статус
Оффлайн
Регистрация
12 Июл 2018
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Посмотри, как у ТС'а оформлен код. Туда, вероятно, и нужно его вставить. Главное, чтобы первая часть была перед рендером меню и визуалов, а вторая после. Я не компетентен в этом вопросе, поскольку у меня не индиго.
Can u show me this:
gOldAlphaBlendEnable,
gOldColorWriteEnable,
gOldSRGBWriteEnable
 
Сверху Снизу