void LayerManagerD3D10::SetupPipeline() { VerifyBufferSize(); UpdateRenderTarget(); nsIntRect rect; mWidget->GetClientBounds(rect); HRESULT hr; hr = mEffect->GetVariableByName("vTextureCoords")->AsVector()-> SetFloatVector(ShaderConstantRectD3D10(0, 0, 1.0f, 1.0f)); if (FAILED(hr)) { NS_WARNING("Failed to set Texture Coordinates."); return; } ID3D10RenderTargetView *view = mRTView; mDevice->OMSetRenderTargets(1, &view, NULL); mDevice->IASetInputLayout(mInputLayout); UINT stride = sizeof(Vertex); UINT offset = 0; ID3D10Buffer *buffer = mVertexBuffer; mDevice->IASetVertexBuffers(0, 1, &buffer, &stride, &offset); mDevice->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); SetViewport(nsIntSize(rect.width, rect.height)); }
void CompositorD3D11::UpdateRenderTarget() { EnsureSize(); VerifyBufferSize(); if (mDefaultRT) { return; } HRESULT hr; nsRefPtr<ID3D11Texture2D> backBuf; hr = mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (void**)backBuf.StartAssignment()); if (Failed(hr)) { return; } mDefaultRT = new CompositingRenderTargetD3D11(backBuf, IntPoint(0, 0)); mDefaultRT->SetSize(mSize.ToIntSize()); }