| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "GrVkPipeline.h" | 8 #include "GrVkPipeline.h" |
| 9 | 9 |
| 10 #include "GrGeometryProcessor.h" | 10 #include "GrGeometryProcessor.h" |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 472 return nullptr; | 472 return nullptr; |
| 473 } | 473 } |
| 474 | 474 |
| 475 return new GrVkPipeline(vkPipeline); | 475 return new GrVkPipeline(vkPipeline); |
| 476 } | 476 } |
| 477 | 477 |
| 478 void GrVkPipeline::freeGPUData(const GrVkGpu* gpu) const { | 478 void GrVkPipeline::freeGPUData(const GrVkGpu* gpu) const { |
| 479 GR_VK_CALL(gpu->vkInterface(), DestroyPipeline(gpu->device(), fPipeline, nul
lptr)); | 479 GR_VK_CALL(gpu->vkInterface(), DestroyPipeline(gpu->device(), fPipeline, nul
lptr)); |
| 480 } | 480 } |
| 481 | 481 |
| 482 | |
| 483 void set_dynamic_scissor_state(GrVkGpu* gpu, | 482 void set_dynamic_scissor_state(GrVkGpu* gpu, |
| 484 GrVkCommandBuffer* cmdBuffer, | 483 GrVkCommandBuffer* cmdBuffer, |
| 485 const GrPipeline& pipeline, | 484 const GrPipeline& pipeline, |
| 486 const GrRenderTarget& target) { | 485 const GrRenderTarget& target) { |
| 487 // We always use one scissor and if it is disabled we just make it the size
of the RT | 486 // We always use one scissor and if it is disabled we just make it the size
of the RT |
| 488 const GrScissorState& scissorState = pipeline.getScissorState(); | 487 const GrScissorState& scissorState = pipeline.getScissorState(); |
| 489 VkRect2D scissor; | 488 VkRect2D scissor; |
| 490 if (scissorState.enabled() && | 489 if (scissorState.enabled() && |
| 491 !scissorState.rect().contains(0, 0, target.width(), target.height())) { | 490 !scissorState.rect().contains(0, 0, target.width(), target.height())) { |
| 492 // This all assumes the scissorState has previously been clipped to the
device space render | 491 // This all assumes the scissorState has previously been clipped to the
device space render |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 537 GrBlendCoeff dstCoeff = blendInfo.fDstBlend; | 536 GrBlendCoeff dstCoeff = blendInfo.fDstBlend; |
| 538 float floatColors[4]; | 537 float floatColors[4]; |
| 539 if (blend_coeff_refs_constant(srcCoeff) || blend_coeff_refs_constant(dstCoef
f)) { | 538 if (blend_coeff_refs_constant(srcCoeff) || blend_coeff_refs_constant(dstCoef
f)) { |
| 540 GrColorToRGBAFloat(blendInfo.fBlendConstant, floatColors); | 539 GrColorToRGBAFloat(blendInfo.fBlendConstant, floatColors); |
| 541 } else { | 540 } else { |
| 542 memset(floatColors, 0, 4 * sizeof(float)); | 541 memset(floatColors, 0, 4 * sizeof(float)); |
| 543 } | 542 } |
| 544 cmdBuffer->setBlendConstants(gpu, floatColors); | 543 cmdBuffer->setBlendConstants(gpu, floatColors); |
| 545 } | 544 } |
| 546 | 545 |
| 547 | |
| 548 | |
| 549 void GrVkPipeline::SetDynamicState(GrVkGpu* gpu, | 546 void GrVkPipeline::SetDynamicState(GrVkGpu* gpu, |
| 550 GrVkCommandBuffer* cmdBuffer, | 547 GrVkCommandBuffer* cmdBuffer, |
| 551 const GrPipeline& pipeline) { | 548 const GrPipeline& pipeline) { |
| 552 const GrRenderTarget& target = *pipeline.getRenderTarget(); | 549 const GrRenderTarget& target = *pipeline.getRenderTarget(); |
| 553 set_dynamic_scissor_state(gpu, cmdBuffer, pipeline, target); | 550 set_dynamic_scissor_state(gpu, cmdBuffer, pipeline, target); |
| 554 set_dynamic_viewport_state(gpu, cmdBuffer, target); | 551 set_dynamic_viewport_state(gpu, cmdBuffer, target); |
| 555 set_dynamic_blend_constant_state(gpu, cmdBuffer, pipeline); | 552 set_dynamic_blend_constant_state(gpu, cmdBuffer, pipeline); |
| 556 } | 553 } |
| OLD | NEW |