OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2010 Google Inc. | 3 * Copyright 2010 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "GrDrawTarget.h" | 9 #include "GrDrawTarget.h" |
10 | 10 |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
525 fColorPOI = fPipelineBuilder->colorProcInfo(batch); | 525 fColorPOI = fPipelineBuilder->colorProcInfo(batch); |
526 fCoveragePOI = fPipelineBuilder->coverageProcInfo(batch); | 526 fCoveragePOI = fPipelineBuilder->coverageProcInfo(batch); |
527 if (!target->setupDstReadIfNecessary(*fPipelineBuilder, fColorPOI, fCoverage
POI, | 527 if (!target->setupDstReadIfNecessary(*fPipelineBuilder, fColorPOI, fCoverage
POI, |
528 &fDstCopy, devBounds)) { | 528 &fDstCopy, devBounds)) { |
529 fPipelineBuilder = NULL; | 529 fPipelineBuilder = NULL; |
530 } | 530 } |
531 } | 531 } |
532 | 532 |
533 /////////////////////////////////////////////////////////////////////////////// | 533 /////////////////////////////////////////////////////////////////////////////// |
534 | 534 |
535 void GrShaderCaps::reset() { | 535 GrShaderCaps::GrShaderCaps() { |
536 fShaderDerivativeSupport = false; | 536 fShaderDerivativeSupport = false; |
537 fGeometryShaderSupport = false; | 537 fGeometryShaderSupport = false; |
538 fPathRenderingSupport = false; | 538 fPathRenderingSupport = false; |
539 fDstReadInShaderSupport = false; | 539 fDstReadInShaderSupport = false; |
540 fDualSourceBlendingSupport = false; | 540 fDualSourceBlendingSupport = false; |
541 fMixedSamplesSupport = false; | 541 fMixedSamplesSupport = false; |
542 | |
543 fShaderPrecisionVaries = false; | 542 fShaderPrecisionVaries = false; |
544 } | 543 } |
545 | 544 |
546 GrShaderCaps& GrShaderCaps::operator=(const GrShaderCaps& other) { | |
547 fShaderDerivativeSupport = other.fShaderDerivativeSupport; | |
548 fGeometryShaderSupport = other.fGeometryShaderSupport; | |
549 fPathRenderingSupport = other.fPathRenderingSupport; | |
550 fDstReadInShaderSupport = other.fDstReadInShaderSupport; | |
551 fDualSourceBlendingSupport = other.fDualSourceBlendingSupport; | |
552 fMixedSamplesSupport = other.fMixedSamplesSupport; | |
553 | |
554 fShaderPrecisionVaries = other.fShaderPrecisionVaries; | |
555 for (int s = 0; s < kGrShaderTypeCount; ++s) { | |
556 for (int p = 0; p < kGrSLPrecisionCount; ++p) { | |
557 fFloatPrecisions[s][p] = other.fFloatPrecisions[s][p]; | |
558 } | |
559 } | |
560 return *this; | |
561 } | |
562 | |
563 static const char* shader_type_to_string(GrShaderType type) { | 545 static const char* shader_type_to_string(GrShaderType type) { |
564 switch (type) { | 546 switch (type) { |
565 case kVertex_GrShaderType: | 547 case kVertex_GrShaderType: |
566 return "vertex"; | 548 return "vertex"; |
567 case kGeometry_GrShaderType: | 549 case kGeometry_GrShaderType: |
568 return "geometry"; | 550 return "geometry"; |
569 case kFragment_GrShaderType: | 551 case kFragment_GrShaderType: |
570 return "fragment"; | 552 return "fragment"; |
571 } | 553 } |
572 return ""; | 554 return ""; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 fFloatPrecisions[s][p].fBits); | 591 fFloatPrecisions[s][p].fBits); |
610 } | 592 } |
611 } | 593 } |
612 } | 594 } |
613 | 595 |
614 return r; | 596 return r; |
615 } | 597 } |
616 | 598 |
617 /////////////////////////////////////////////////////////////////////////////// | 599 /////////////////////////////////////////////////////////////////////////////// |
618 | 600 |
619 void GrCaps::reset() { | 601 GrCaps::GrCaps() { |
620 fMipMapSupport = false; | 602 fMipMapSupport = false; |
621 fNPOTTextureTileSupport = false; | 603 fNPOTTextureTileSupport = false; |
622 fTwoSidedStencilSupport = false; | 604 fTwoSidedStencilSupport = false; |
623 fStencilWrapOpsSupport = false; | 605 fStencilWrapOpsSupport = false; |
624 fDiscardRenderTargetSupport = false; | 606 fDiscardRenderTargetSupport = false; |
625 fReuseScratchTextures = true; | 607 fReuseScratchTextures = true; |
626 fGpuTracingSupport = false; | 608 fGpuTracingSupport = false; |
627 fCompressedTexSubImageSupport = false; | 609 fCompressedTexSubImageSupport = false; |
628 fOversizedStencilSupport = false; | 610 fOversizedStencilSupport = false; |
629 fTextureBarrierSupport = false; | 611 fTextureBarrierSupport = false; |
630 | 612 |
631 fUseDrawInsteadOfClear = false; | 613 fUseDrawInsteadOfClear = false; |
632 | 614 |
633 fBlendEquationSupport = kBasic_BlendEquationSupport; | 615 fBlendEquationSupport = kBasic_BlendEquationSupport; |
634 fMapBufferFlags = kNone_MapFlags; | 616 fMapBufferFlags = kNone_MapFlags; |
635 | 617 |
636 fMaxRenderTargetSize = 0; | 618 fMaxRenderTargetSize = 0; |
637 fMaxTextureSize = 0; | 619 fMaxTextureSize = 0; |
638 fMaxSampleCount = 0; | 620 fMaxSampleCount = 0; |
639 | 621 |
640 memset(fConfigRenderSupport, 0, sizeof(fConfigRenderSupport)); | 622 memset(fConfigRenderSupport, 0, sizeof(fConfigRenderSupport)); |
641 memset(fConfigTextureSupport, 0, sizeof(fConfigTextureSupport)); | 623 memset(fConfigTextureSupport, 0, sizeof(fConfigTextureSupport)); |
642 } | 624 } |
643 | 625 |
644 GrCaps& GrCaps::operator=(const GrCaps& other) { | |
645 fMipMapSupport = other.fMipMapSupport; | |
646 fNPOTTextureTileSupport = other.fNPOTTextureTileSupport; | |
647 fTwoSidedStencilSupport = other.fTwoSidedStencilSupport; | |
648 fStencilWrapOpsSupport = other.fStencilWrapOpsSupport; | |
649 fDiscardRenderTargetSupport = other.fDiscardRenderTargetSupport; | |
650 fReuseScratchTextures = other.fReuseScratchTextures; | |
651 fGpuTracingSupport = other.fGpuTracingSupport; | |
652 fCompressedTexSubImageSupport = other.fCompressedTexSubImageSupport; | |
653 fOversizedStencilSupport = other.fOversizedStencilSupport; | |
654 fTextureBarrierSupport = other.fTextureBarrierSupport; | |
655 | |
656 fUseDrawInsteadOfClear = other.fUseDrawInsteadOfClear; | |
657 | |
658 fBlendEquationSupport = other.fBlendEquationSupport; | |
659 fMapBufferFlags = other.fMapBufferFlags; | |
660 | |
661 fMaxRenderTargetSize = other.fMaxRenderTargetSize; | |
662 fMaxTextureSize = other.fMaxTextureSize; | |
663 fMaxSampleCount = other.fMaxSampleCount; | |
664 | |
665 memcpy(fConfigRenderSupport, other.fConfigRenderSupport, sizeof(fConfigRende
rSupport)); | |
666 memcpy(fConfigTextureSupport, other.fConfigTextureSupport, sizeof(fConfigTex
tureSupport)); | |
667 | |
668 return *this; | |
669 } | |
670 | |
671 static SkString map_flags_to_string(uint32_t flags) { | 626 static SkString map_flags_to_string(uint32_t flags) { |
672 SkString str; | 627 SkString str; |
673 if (GrCaps::kNone_MapFlags == flags) { | 628 if (GrCaps::kNone_MapFlags == flags) { |
674 str = "none"; | 629 str = "none"; |
675 } else { | 630 } else { |
676 SkASSERT(GrCaps::kCanMap_MapFlag & flags); | 631 SkASSERT(GrCaps::kCanMap_MapFlag & flags); |
677 SkDEBUGCODE(flags &= ~GrCaps::kCanMap_MapFlag); | 632 SkDEBUGCODE(flags &= ~GrCaps::kCanMap_MapFlag); |
678 str = "can_map"; | 633 str = "can_map"; |
679 | 634 |
680 if (GrCaps::kSubset_MapFlag & flags) { | 635 if (GrCaps::kSubset_MapFlag & flags) { |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
783 GrPipelineBuilder::AutoRestoreFragmentProcessors* a
rfp, | 738 GrPipelineBuilder::AutoRestoreFragmentProcessors* a
rfp, |
784 GrPipelineBuilder::AutoRestoreStencil* ars, | 739 GrPipelineBuilder::AutoRestoreStencil* ars, |
785 GrScissorState* scissorState, | 740 GrScissorState* scissorState, |
786 const SkRect* devBounds) { | 741 const SkRect* devBounds) { |
787 return fClipMaskManager.setupClipping(pipelineBuilder, | 742 return fClipMaskManager.setupClipping(pipelineBuilder, |
788 arfp, | 743 arfp, |
789 ars, | 744 ars, |
790 scissorState, | 745 scissorState, |
791 devBounds); | 746 devBounds); |
792 } | 747 } |
OLD | NEW |