bool ColorShaderClass::render(ID3D11DeviceContext* deviceContext, int indexCount, XMMATRIX worldMatrix, XMMATRIX viewMatrix, XMMATRIX projectionMatrix) { bool result; // Set the shader parameters that it will use for rendering. result = setShaderParameters(deviceContext, worldMatrix, viewMatrix, projectionMatrix); if (!result) { return false; } // Now render the prepared buffers with the shader. renderShader(deviceContext, indexCount); return true; }
bool LightShader::render(ID3D11DeviceContext* deviceContext, int indexCount, XMMATRIX& worldMatrix, XMMATRIX& viewMatrix, XMMATRIX& projectionMatrix, ID3D11ShaderResourceView* texture, XMFLOAT3& lightDirection, XMFLOAT4& diffuseColor) { bool result; // Set the shader parameters that it will use for rendering. result = setShaderParameters(deviceContext, worldMatrix, viewMatrix, projectionMatrix, texture, lightDirection, diffuseColor); if (!result) { return false; } // Now render the prepared buffers with the shader. renderShader(deviceContext, indexCount); return true; }
bool TextureShaderClass::render( ID3D11DeviceContext* deviceContext, int indexCount, D3DXMATRIX worldMatrix, D3DXMATRIX viewMatrix, D3DXMATRIX projectionMatrix, ID3D11ShaderResourceView* texture) { bool result; result = setShaderParameters( deviceContext, worldMatrix, viewMatrix, projectionMatrix, texture); if(!result) { return false; } renderShader(deviceContext, indexCount); return true; }
bool LightShaderClass::render( ID3D11DeviceContext *aD3DDeviceContext, int aIndexCount, D3DXMATRIX aWorldMatrix, D3DXMATRIX aViewMatrix, D3DXMATRIX aProjectionMatrix, ID3D11ShaderResourceView *aShaderResourceView, D3DXVECTOR3 aLightDirection, D3DXVECTOR4 aDiffuseColor ) { bool result; result = setShaderParameters( aD3DDeviceContext, aWorldMatrix, aViewMatrix, aProjectionMatrix, aShaderResourceView, aLightDirection, aDiffuseColor); if(!result) { return false; } renderShader(aD3DDeviceContext, aIndexCount); return true; }
/* ================ TransparentShader::render ================ */ void TransparentShader::render( ID3D10Device* device, int indexCount, D3DXMATRIX worldMatrix, D3DXMATRIX viewMatrix, D3DXMATRIX projectionMatrix, ID3D10ShaderResourceView* texture, float blend) { setShaderParameters(worldMatrix, viewMatrix, projectionMatrix, texture, blend); renderShader(device, indexCount); }
void ShaderBallotBaseTestCase::ShaderPipeline::executeComputeShader(deqp::Context& context) { const glw::Functions& gl = context.getRenderContext().getFunctions(); const glu::Texture outputTexture(context.getRenderContext()); gl.useProgram(m_programCompute->getProgram()); // output image gl.bindTexture(GL_TEXTURE_2D, *outputTexture); gl.texStorage2D(GL_TEXTURE_2D, 1, GL_RGBA32UI, 16, 16); gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); GLU_EXPECT_NO_ERROR(gl.getError(), "Uploading image data failed"); // bind image gl.bindImageTexture(1, *outputTexture, 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA32UI); GLU_EXPECT_NO_ERROR(gl.getError(), "Image setup failed"); // dispatch compute gl.dispatchCompute(1, 1, 1); GLU_EXPECT_NO_ERROR(gl.getError(), "glDispatchCompute()"); gl.memoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT); GLU_EXPECT_NO_ERROR(gl.getError(), "glMemoryBarrier()"); // render output texture std::string vs = "#version 450 core\n" "in highp vec2 position;\n" "in vec2 inTexcoord;\n" "out vec2 texcoord;\n" "void main()\n" "{\n" " texcoord = inTexcoord;\n" " gl_Position = vec4(position, 0.0, 1.0);\n" "}\n"; std::string fs = "#version 450 core\n" "uniform sampler2D sampler;\n" "in vec2 texcoord;\n" "out vec4 color;\n" "void main()\n" "{\n" " color = texture(sampler, texcoord);\n" "}\n"; glu::ProgramSources sources; sources.sources[glu::SHADERTYPE_VERTEX].push_back(vs); sources.sources[glu::SHADERTYPE_FRAGMENT].push_back(fs); glu::ShaderProgram renderShader(context.getRenderContext(), sources); if (!m_programRender->isOk()) { TCU_FAIL("Shader compilation failed"); } gl.bindTexture(GL_TEXTURE_2D, *outputTexture); GLU_EXPECT_NO_ERROR(gl.getError(), "glBindTexture() call failed."); gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); gl.useProgram(renderShader.getProgram()); gl.uniform1i(gl.getUniformLocation(renderShader.getProgram(), "sampler"), 0); GLU_EXPECT_NO_ERROR(gl.getError(), "glUniform1i failed"); deUint16 const quadIndices[] = { 0, 1, 2, 2, 1, 3 }; float const position[] = { -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f }; float const texCoord[] = { 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f }; glu::VertexArrayBinding vertexArrays[] = { glu::va::Float("position", 2, 4, 0, position), glu::va::Float("inTexcoord", 2, 4, 0, texCoord) }; glu::draw(context.getRenderContext(), renderShader.getProgram(), DE_LENGTH_OF_ARRAY(vertexArrays), vertexArrays, glu::pr::TriangleStrip(DE_LENGTH_OF_ARRAY(quadIndices), quadIndices)); GLU_EXPECT_NO_ERROR(gl.getError(), "glu::draw error"); }
/* ================ ShadowShader::render ================ */ void ShadowShader::render( ID3D10Device* device, int indexCount, D3DXMATRIX worldMatrix, D3DXMATRIX viewMatrix, D3DXMATRIX projectionMatrix, D3DXMATRIX lightViewMatrix, D3DXMATRIX lightProjectionMatrix, ID3D10ShaderResourceView* texture, ID3D10ShaderResourceView* depthMapTexture, D3DXVECTOR3 lightPosition, D3DXVECTOR4 ambientColor, D3DXVECTOR4 diffuseColor ) { setShaderParameters(device, indexCount, worldMatrix, viewMatrix, projectionMatrix, lightViewMatrix, lightProjectionMatrix, texture, depthMapTexture, lightPosition, ambientColor, diffuseColor ); renderShader(device, indexCount); }
void D3DFontShader::render(RaccoonData::ShaderParamType params) { setShaderParams(params); renderShader(params.dc, params.indexCount); }
/* ================ Shader::render ================ */ void Shader::render( ID3D11DeviceContext* deviceContext, int indexCount, D3DXMATRIX worldMatrix, D3DXMATRIX viewMatrix, D3DXMATRIX projectionMatrix, std::vector<ID3D11ShaderResourceView*> textureArray, D3DXVECTOR3 lightDirection, D3DXVECTOR4 ambientColor, D3DXVECTOR4 diffuseColor, D3DXVECTOR3 cameraPosition, D3DXVECTOR4 specularColor, float specularPower, float specularIntensity) { setShaderParameters(deviceContext, worldMatrix, viewMatrix, projectionMatrix, textureArray, lightDirection, ambientColor, diffuseColor, cameraPosition, specularColor, specularPower, specularIntensity); renderShader(deviceContext, indexCount); }