bool CompositorD3D11::CreateShaders() { HRESULT hr; hr = mDevice->CreateVertexShader(LayerQuadVS, sizeof(LayerQuadVS), nullptr, byRef(mAttachments->mVSQuadShader[MaskType::MaskNone])); if (FAILED(hr)) { return false; } hr = mDevice->CreateVertexShader(LayerQuadMaskVS, sizeof(LayerQuadMaskVS), nullptr, byRef(mAttachments->mVSQuadShader[MaskType::Mask2d])); if (FAILED(hr)) { return false; } hr = mDevice->CreateVertexShader(LayerQuadMask3DVS, sizeof(LayerQuadMask3DVS), nullptr, byRef(mAttachments->mVSQuadShader[MaskType::Mask3d])); if (FAILED(hr)) { return false; } #define LOAD_PIXEL_SHADER(x) hr = mDevice->CreatePixelShader(x, sizeof(x), nullptr, byRef(mAttachments->m##x[MaskType::MaskNone])); \ if (FAILED(hr)) { \ return false; \ } \ hr = mDevice->CreatePixelShader(x##Mask, sizeof(x##Mask), nullptr, byRef(mAttachments->m##x[MaskType::Mask2d])); \ if (FAILED(hr)) { \ return false; \ } LOAD_PIXEL_SHADER(SolidColorShader); LOAD_PIXEL_SHADER(RGBShader); LOAD_PIXEL_SHADER(RGBAShader); LOAD_PIXEL_SHADER(YCbCrShader); if (gfxPrefs::ComponentAlphaEnabled()) { LOAD_PIXEL_SHADER(ComponentAlphaShader); } #undef LOAD_PIXEL_SHADER hr = mDevice->CreatePixelShader(RGBAShaderMask3D, sizeof(RGBAShaderMask3D), nullptr, byRef(mAttachments->mRGBAShader[MaskType::Mask3d])); if (FAILED(hr)) { return false; } return true; }