Added new swizzle parameters to Sampler's state The new parameters are: swizzleR, swizzleG, swizzleB, swizzleA. Also, parameters sent from the context that can be either originating from the Texture object or the Sampler object are now sent from the correct origin. An implementation for the swizzleR, swizzleG, swizzleB, swizzleA parameters was done in SamplerCore. All related dEQP tests pass. Change-Id: I45405a0d241d0e70a91a3c56357c7bc04c7dc75a Reviewed-on: https://swiftshader-review.googlesource.com/4017 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Renderer/Renderer.cpp b/src/Renderer/Renderer.cpp index e17bc11..6e86551 100644 --- a/src/Renderer/Renderer.cpp +++ b/src/Renderer/Renderer.cpp
@@ -2231,6 +2231,54 @@ } } + void Renderer::setSwizzleR(SamplerType type, int sampler, SwizzleType swizzleR) + { + if(type == SAMPLER_PIXEL) + { + PixelProcessor::setSwizzleR(sampler, swizzleR); + } + else + { + VertexProcessor::setSwizzleR(sampler, swizzleR); + } + } + + void Renderer::setSwizzleG(SamplerType type, int sampler, SwizzleType swizzleG) + { + if(type == SAMPLER_PIXEL) + { + PixelProcessor::setSwizzleG(sampler, swizzleG); + } + else + { + VertexProcessor::setSwizzleG(sampler, swizzleG); + } + } + + void Renderer::setSwizzleB(SamplerType type, int sampler, SwizzleType swizzleB) + { + if(type == SAMPLER_PIXEL) + { + PixelProcessor::setSwizzleB(sampler, swizzleB); + } + else + { + VertexProcessor::setSwizzleB(sampler, swizzleB); + } + } + + void Renderer::setSwizzleA(SamplerType type, int sampler, SwizzleType swizzleA) + { + if(type == SAMPLER_PIXEL) + { + PixelProcessor::setSwizzleA(sampler, swizzleA); + } + else + { + VertexProcessor::setSwizzleA(sampler, swizzleA); + } + } + void Renderer::setPointSpriteEnable(bool pointSpriteEnable) { context->setPointSpriteEnable(pointSpriteEnable);